哪位高手指点一下matlab解微分方程组!
图片是微分方程组。
下面是我根据网上查到的解法写的程序,能运行,但是计算出来的图像完全不对。
主函数:
tspan=[0:0.01:2];%求解时间为2秒也可以 tspan=[0 2]表示自动时间步长
x0=[0;0;2.4*10^(-4);20;1.15*10^(-7);0];%初值
[t,x]=ode45(@ff,tspan,x0);%用龙格库塔法求解
figure
plot(t,x(:,1))
figure
plot(t,x(:,2))
figure
plot(t,x(:,3))
figure
plot(t,x(:,4))
figure
plot(t,x(:,5))
figure
plot(t,x(:,6))
M文件
%微分方程
function dx=ff(t,x)
dx=zeros(6,1);
%x(1)=X1
%x(2)=X2
%x(3)=X3
%x(4)=X4
%x(5)=X5
%x(6)=X6
k1u=1.5*10^(-7)
k1b=1.0*10^(-4)
k2=1.3*10^(7)
k3=7*10^(-1)
k4=1.0*10^(10)
k5=2.6*10^(9)
k6=3*10^(3)
Xc=0.5
MMT=0
dx(1)=2*k1u*x(3)+k1b*x(3)^2-k2*x(1)*x(5)+k3*x(2)*x(4)-2*k4*x(1)^2-k5*x(1)*x(2);
dx(2)=k1b*x(3)^2+k2*x(1)*x(5)-k3*x(2)*x(4)-k5*x(1)*x(2)-2*k6*x(2);
dx(3)=-k1u*x(3)-2*k1b*x(3)^2+k3*x(2)*x(4);
dx(4)=-k1u*x(3)-k1b*x(3)^2-k3*x(2)*x(4);
dx(5)=-k2*x(1)*x(5)+k6*x(2)^2;
dx(6)=(k1u*x(3)+k1b*x(3)^2)*(1-Xc-MMT)*1.1111;
end
![]()
![]()
![]()
![]()
![]()
![]() |