加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

matlab命令ode45轻松求解常微分方程

(2015-12-21 18:38:34)
标签:

ode45

微分方程

enso

延迟振子理论

西太平洋振子理论

分类: matlab

常微分方程在物体运动, 热量传导,生态系统震荡,混沌现象,厄尔尼诺等等方面都有重要的应用。使用matlab命令ode45可以轻松求解这些常微分方程。

例1:(生态系统的振荡现象)

第一次世界大战中,因为战争很少捕鱼,按理战后应能捕到更多的鱼才是。可是大战后,在地中海却捕不到鲨鱼,因而渔民大惑不解。

       令x1为鱼饵的数量,x2为鲨鱼的数量,t为时间。微分方程为

 

                    http://s11/mw690/003cvAxDzy6XWXLhVq23a&690                                 

                    

式中a1, a2, b1, b2都是正常数。第一式鱼饵x1的增长速度大体上与x1成正比,即按a1x1比率增加, 而被鲨鱼吃掉的部分按b1x1x2的比率减少;第二式中鲨鱼的增长速度由于生存竞争的自然死亡或互相咬食按a2x2的比率减少,但又根据鱼饵的量的变化按b2x1x2的比率增加。对a1=3, b1=2, a2=2.5, b2=1, x1(0)=x2(0)=1求解。

画出解曲线图如下,可以观察到鱼饵和鲨鱼数量的周期振荡现象。

http://s15/mw690/003cvAxDzy6XWXPpVCu3e&690

程序如下:

先编写函数文件:

function f = eg2_4(t,x)

f(1)=3*x(1)-2*x(2)*x(1);

f(2)=-2.5*x(2)+x(2)*x(1);

f=f(:);

接着调用函数:

clear;
[t,x]=ode45(@eg2_4,[0 15],[1;1]);
plot(t,x(:,1),'r',t,x(:,2),'k');
xlabel('t')
ylabel('产量')
legend('鱼饵','鲨鱼')

 

例2:解释ENSO(厄尔尼诺和南方涛动)循环的负反馈机制延迟振子理论可以用下面的微分方程概括:

http://s12/mw690/003cvAxDzy6XWYfGswb5b&690
求解结果如下:

http://s14/mw690/003cvAxDzy6XWYd0dQh2d&690

 

 


在延迟振子理论上发展起来的西太平洋振子理论可以用下面的微分方程组概括:


http://s15/mw690/003cvAxDzy6XWYd6rlcae&690

求解如下:
http://s7/mw690/003cvAxDzy6XWYd6dzU06&690


 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有