How do you use ode45( ) when the equation is not in dy/dt form?

조회 수: 2 (최근 30일)
ssmith
ssmith 2021년 11월 19일
댓글: Star Strider 2021년 11월 23일
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

답변 (2개)

Paul
Paul 2021년 11월 19일
Check out this link ....
  댓글 수: 2
ssmith
ssmith 2021년 11월 19일
@Paul Do you have an example that shows how to apply initial conditions?
Paul
Paul 2021년 11월 19일
It's shown on the the doc page at that link. Or check
doc ode45
to see how to specifcy the initial conditions

댓글을 달려면 로그인하십시오.


Star Strider
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)
eqn(t) = 
[V,S] = odeToVectorField(eqn)
V = 
S = 
This is actually
The function presented to ode45 would then be coded using the matlabFunction function.
Explore that process!
.
  댓글 수: 10
Star Strider
Star Strider 2021년 11월 23일
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by