Simplifying solution of a differential equation

17 views (last 30 days)
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))
  4 Comments
Aleem Andrew
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.

Sign in to comment.

Accepted Answer

Walter Roberson
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 = 

More Answers (0)

Categories

Find more on General Applications in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!