ode45是怎么用的?可以求高阶微分方程组吗?
1个回答

下面是关于ODE45求解高阶常微分方程的讲解,和一个例子.

如何求解y''=-t*y + e^t*y'' +3sin2t,y(0)=2,y'(0)=8?(后面有程序)

求解高阶常微分方程

关键是将高阶转为一阶,odefun的书写.

F(y,y',y''...y(n-1),t)=0用变量替换,y1=y,y2=y'...注意odefun方程定义为列向量

dxdy=[y(1),y(2).]

程序:

function Testode45

tspan=[3.9 4.0];

y0=[2 8]; %初值

[t,x]=ode45(@odefun,tspan,y0);plot(t,x(:,1),'-o',t,x(:,2),'-*')

高阶微分方程求解结果

legend('y1','y2')

title('y'' ''=-t*y + e^t*y'' +3sin2t')

xlabel('t')

ylabel('y')

%可以单独一个函数文件

function y=odefun(t,x)

y=zeros(2,1); % 列向量

y(1)=x(2);

y(2)=-t*x(1)+exp(t)*x(2)+3*sin(2*t);

end

end