数学建模社区-数学中国

标题: 编程小白求助,用matlab解微分方程组 [打印本页]

作者: 无聊的人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',[0 100],[(1-(1/(7*(10^9))) 1/7*(10^9) 0]);
plot(~,Y(:,1),'-',~,Y(:,2),'*',~,Y(:,3),'+')

作者: madio    时间: 2014-8-25 13:07
  1. function dy=vdp1003(t,y)
  2. dy=zeros(3,1);
  3. dy(1)=-3*y(2);
  4. dy(2)=3*y(2)-y(2)*y(1);
  5. dy(3)=y(1)*y(2);


  6. [x,Y]=ode45(@vdp1003,[0 100],[1-(1/(7*(10^9))),1/7*(10^9),0]);
  7. plot(x,Y(:,1),'-',x,Y(:,2),'*',x,Y(:,3),'+')
复制代码

作者: madio    时间: 2014-8-25 13:07
有一个警告提示,应该是初值的数太小了




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5