Filter löschen
Filter löschen

Simplifying solution of a differential equation

5 Ansichten (letzte 30 Tage)
Aleem Andrew
Aleem Andrew am 14 Jan. 2021
Kommentiert: Aleem Andrew am 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))
  4 Kommentare
Walter Roberson
Walter Roberson am 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
Aleem Andrew am 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

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

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by