下面是关于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