将高阶常系数微分方程变换成一阶微分方程组,设 y 1 = y,y 2 = y',则微分方程转化为一阶微分方程组编写描述一阶微分方程组的函数的程序编写,有人会吗?
你好,主要要注意的地方
t0 = 0;
tf =10;
[t,y]= ode45(@dydtfun ,[t0,tf],[0;2]); % dydtfun前面加个@即可,不要用'dydtfun'了,这种用法已经被抛弃了
% [0;2]是初始条件参数,表示 =0,=2
subplot(1,2,1),plot(t,y(:,1));grid on;
title('y(t)') ;
subplot(1,2,2),plot(t,y(:,2));grid on;
title('y/prime(t)') ;
% 函数放后面,加一个end
function dydt = dydtfun(t,y)
dydt = zeros(2,1);
% dydt(1) 表示,dydt 本身仅是普通变量
dydt(1) = y(2);
% dydt(2) 表示
dydt(2) = -3* y(2) -2* y(1) + exp( - t);
end