Solving differential equation using ode45 with three variables
显示 更早的评论
Hi I'm trying to solve a simple second-order differential equation y''-2y'+y=0, with initial conditions where y'=0 and y=0.
I have successfully made a function of
function dydt=ode5( t, y)
dydt=zeros(2,1);
dydt(1)=y(2);
dydt(2)=2*y(2)-y(1);
end
but I want to make a function that can substitute dydt=p or some other symbol to simply put it as
function dydx=ode9(x,p,y)
p=zeros(2,1);
dydx=p;
dpdx=-p+2*y;
end
but I keep getting errors. Help!
7 个评论
Torsten
2018-8-21
It's not possible to set a boundary condition for the second derivative for a differential equation of order 2. Only boundary conditions for the function itself and its first derivazive are allowed.
Jay Kim
2018-8-21
Jay Kim
2018-8-21
Jan
2018-8-21
@Jay Kim: It is not clear to me, what you are asking for.
Torsten
2018-8-21
The only meaningful I can think of is
[X,Y]=ode45(@(x,y)ode9(x,y(1),y(2)),tspan,y0)
function derivatives = ode9(x,y,yp)
derivatives = zeros(2,1)
dydx = yp;
dypdx = 2*yp-y;
derivatives = [dydx;dypdx]
end
Walter Roberson
2018-8-21
Do I understand correctly that you would like to pass in as p some indication of which y entry to use?
Would the code always be as simple as dydx being assigned y indexed at some fixed value?
采纳的回答
更多回答(1 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!