无聊的人Raven 发表于 2014-8-25 11:26

编程小白求助,用matlab解微分方程组

(dy_1)/dt=-3y_2
(dy_2)/dt=3y_2-y_2 *y_1
(dy_3)/dt=y_2* y_1
三个初值分别是(1-(1/(7*(10^9))),1/7*(10^9)和0,y1+y2+y3=1
下面是程序,第一次编程啊 不知道怎么破
function dy=vdp1003(t,y)
dy=zeros(3,1)
dy(1)=-3*y(2)
dy(2)=3*y(2)-y(1)*y(1);
dy(3)=y(1)*y(2);

[~,Y]=ode45('right',,[(1-(1/(7*(10^9))) 1/7*(10^9) 0]);
plot(~,Y(:,1),'-',~,Y(:,2),'*',~,Y(:,3),'+')

madio 发表于 2014-8-25 13:07

function dy=vdp1003(t,y)
dy=zeros(3,1);
dy(1)=-3*y(2);
dy(2)=3*y(2)-y(2)*y(1);
dy(3)=y(1)*y(2);


=ode45(@vdp1003,,);
plot(x,Y(:,1),'-',x,Y(:,2),'*',x,Y(:,3),'+')

madio 发表于 2014-8-25 13:07

有一个警告提示,应该是初值的数太小了
页: [1]
查看完整版本: 编程小白求助,用matlab解微分方程组