我想解决n个线性微分方程组:
dx(t)/dt=A(t)*x(t)
其中:
x(t)=(x1(t) , x2(t) , ... , xn(t))
A(t)
是n*n
矩阵。我有矩阵A(t)
和n
以及初始条件x(0)=x0
作为输入。如何编写用于求解微分方程组的Matlab代码。
我可以编写已知n
的代码,例如n=2
或n=3
(代码如下),但我不知道如何为不同的n
编写代码?
下面的代码解决了'n = 3'的方程组,其中
A=[ -t -10 0
28 -1 -t
1 1 -8 ]
和初始条件
x1(0)=-8
x2(0)=8
x3(0)=27
包含方程式的MATLAB M文件如下所示:
function xprime = xderivatives(t,x)
xprime=[-t*x(1) - 10*x(2); 28*x(1) - x(2) - t*x(3); -8*x(3) + x(1) + x(2)];
主要文件是:
x0=[-8 8 27]; % initial condition
tspan=[0,20];
[t,x]=ode45(@xderivatives,tspan,x0)
plot(x(:,1),x(:,2))
非常感谢。