How do you use ode45( ) when the equation is not in dy/dt form?
2 views (last 30 days)
Show older comments
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 Comments
Answers (2)
Star Strider
on 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 Comments
Star Strider
on 23 Nov 2021
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!