Processing math: 100%

First time here? Check out the FAQ!

Ask Your Question
1

Solving an ODE and simplifying the result

asked 5 years ago

Dox gravatar image

updated 5 years ago

slelievre gravatar image

I'm interested in solving the differential equation 3h+3h2=c1, where c1 is a positive real number.

var('t')
var('c1', latex_name=r'c_1')
h = function('h')(t)
eq = -3*h^2 + c1 - 3*diff(h, t)
eq_sol = desolve(eq, h, ivar=t, contrib_ode=True)

The above code works, but it's not solved explicitly for h, so

h_sol = solve(eq_sol, h)
h_sol = h_sol[0]
h_sol

This gives something like h(t)=3c1(e(233Cc1+233c1t)+1)3(e(233Cc1+233c1t)1),

in sage notation (non-LaTeX) it starts like

h(t) == 1/3*sqrt(3)*sqrt(c1)* ...

Question 1: Is there a way to allocate to the solution (i.e. h_sol) the RHS of the above? without the h(t) == part.

I had to set by hand (it is ease, but it would be nice to automatize the allocation)

var('C')    # the integration constant introduced above
h_sol = 1/3*sqrt(3)*sqrt(c1)* ...

Then, by simply looking at the solution it is clear that it can be simplified. I tried things like

h_sol = h_sol.canonicalize_radical()
h_sol = h_sol.collect_common_factors()
h_sol = h_sol.simplify_rectform(complexity_measure = None)

but none of them returns the expected result, which could be obtained from Mathematica's kernel

mathematica("DSolve[3*h'[t] + 3*h[t]^2 == C[1], h[t], t]//FullSimplify")

c13tanh(c13(t3c2))

Question 2: How could the expression h_sol be manipulated to obtain the hyperbolic tangent?

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
1

answered 5 years ago

dan_fulea gravatar image

(1) One can use either solution_dict=True... or the rhs method...

sage: h_sol = solve(eq_sol, h, solution_dict=True)[0][ h(t) ]
sage: h_sol
1/3*sqrt(3)*sqrt(c1)*(e^(2/3*sqrt(3)*_C*sqrt(c1) + 2/3*sqrt(3)*sqrt(c1)*t) + 1)/(e^(2/3*sqrt(3)*_C*sqrt(c1) + 2/3*sqrt(3)*sqrt(c1)*t) - 1)

sage: h_sol = solve(eq_sol, h)[0].rhs()
sage: h_sol
1/3*sqrt(3)*sqrt(c1)*(e^(2/3*sqrt(3)*_C*sqrt(c1) + 2/3*sqrt(3)*sqrt(c1)*t) + 1)/(e^(2/3*sqrt(3)*_C*sqrt(c1) + 2/3*sqrt(3)*sqrt(c1)*t) - 1)

(2) The human eye can do this better, just divide by the exponential of the half exponent. For me, the delivered form is acceptable, rational function composed with exponential function. (No simplify.... method gave me an other expression.)

Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 5 years ago

Seen: 400 times

Last updated: May 15 '19