# Simplifying solution of a differential equation

5 views (last 30 days)
Aleem Andrew on 14 Jan 2021
Commented: Aleem Andrew on 14 Jan 2021
The most simplified version of ySol(t), the solution to the differential equation below, is 1.5*sin(2t+0.7297), but the output of the following code is in terms of exponential functions. Can someone explain how the output can be further simplified?
syms y(t) m k
Dy = diff(y,t); Dy2 = diff(y,t,2);
ode = m*Dy2 + k*y == 0;
cond = [y(0) == 1,Dy(0) == sqrt(5)];
ySol(t) = dsolve(ode,cond)
ySol(t) = simplify(ySol(t),'steps',500)
pretty(ySol(t))
Walter Roberson on 14 Jan 2021
When m and k are symbolic, you get symbolic expressions for the coefficients, not numeric ones like you show as your desired output.
Aleem Andrew on 14 Jan 2021
That is because there is an additional equation relating k and m, sqrt(k/m) = 2, that I tried to include in the dsolve command to solve the system but got an error message when trying to solve a system of equations, [ode sqrt(k/m) == 2]. Instead the ode = m*Dy2 + k*y == 0; line can be modified to ode = (k/4)*Dy2 + k*y == 0; to obtain the numeric solution.

Walter Roberson on 14 Jan 2021
m = rand(); k = rand();
syms y(t)
Dy = diff(y,t);
Dy2 = diff(y,t,2);
ode = m*Dy2 + k*y == 0;
cond = [y(0) == 1,Dy(0) == sqrt(5)];
ySol(t) = dsolve(ode,cond)
ySol(t) =
ySol(t) = simplify(ySol(t),'steps',500)
ySol(t) =
pretty(ySol(t))
/ sqrt(43198488722811199054095930230) t \ sqrt(8639697744562239810819186046) sin| ------------------------------------- | 5 / sqrt(43198488722811199054095930230) t \ \ 157178273090335 / cos| ------------------------------------- | + --------------------------------------------------------------------------------- \ 157178273090335 / 274837532398538
vpa(ySol(t), 5)
ans =
Aleem Andrew on 14 Jan 2021