How do you use ode45( ) when the equation is not in dy/dt form?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have an equation that I need to approximate the solution for using ode45( ) with initial values y(0) = 1 and y'(0) = 0 on interval of 0 < t < 150 and then plot x(t)
So far I have this for the equation y" + 4y = sin(1.9t)
syms y(t)
eqn = diff(y,2) + 4*y == sin(1.9*t)
V = odeToVectorField(eqn)
I know if the equation was in the form of dy/dt = sin(1.9t) - 4y then it would be
k = @(t,y) sin(1.9*t)-4*y;
[t,y] = oder45(k,[0,150])
plot(t,y)
But I do not know know how to write it for the form that my equation is in at this moment
0 Kommentare
Antworten (2)
Star Strider
am 19 Nov. 2021
Since the equation as written involves the second derivative, it is also necessary to define the first derivative as a separate element of the resulting system of first-order differential equatiions.
The odeToVectorField function does this (I added the second ‘substitutions’ output to illustrate what the function actually does) —
syms y(t)
eqn = diff(y,2) + 4*y == sin(1.9*t)
[V,S] = odeToVectorField(eqn)
This is actually

The function presented to ode45 would then be coded using the matlabFunction function.
Explore that process!
.
10 Kommentare
Star Strider
am 23 Nov. 2021
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.
Siehe auch
Kategorien
Mehr zu Equation Solving finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!