How do you use ode45( ) when the equation is not in dy/dt form?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(2 个)
Star Strider
2021-11-19
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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!