一、实验目的: 理解并掌握利用MATLAB在求解高阶微分方程时的应用。 |
||
二、实验内容
练习1 求初值问题的数值解,并画出的图形和数值解的相图。 练习2 考虑Vanderpol方程,与之等价的方程组有
扫描二维码关注公众号,回复:
15496492 查看本文章
对参数时,求出此方程组3个不同初值的解并绘制相图,并尝试在同一个坐标系里将它们的相轨线绘制出来。 |
||
程序代码: 被调用的untitled10_diaoyong.mlx文件(实时编辑器脚本) function dx=untitled10_diaoyong(t,x) dx=zeros(2,1); dx(1)=x(2); dx(2)=7.5*cos(t)-x(1)^3-0.05*x(2); return end 运行的untitled10.mlx文件 [t,x]=ode45('untitled10_diaoyong',[0:0.05:40],[3,4]); plot(t,x); figure; plot(x(:,1),x(:,2)); 程序测试及运行结果: |
||
程序代码: 被调用的untitled11_diaoyong.mlx文件(实时编辑器脚本) function dy=untitled11_diaoyong(t,y) u=0.1;dy=zeros(2,1); dy(1)=y(2)-u*((y(1)^3)/3-y(1)); dy(2)=-y(1); return end 运行的untitled11.mlx文件 [t1,Y1]=ode45('untitled11_diaoyong',[-10:0.1:10],[-2,-2]); [t2,Y2]=ode45('untitled11_diaoyong',[-10:0.1:10],[0.7,-0.7]); [t3,Y3]=ode45('untitled11_diaoyong',[-10:0.1:10],[2,0]); numso15=[t1,Y1,t2,Y2,t3,Y3]; subplot(3,1,1),plot(t1,Y1,'-r'); subplot(3,1,2),plot(t2,Y2,'-b'); subplot(3,1,3),plot(t3,Y3,'-g'); figure; plot(Y1(:,1),Y1(:,2),'-r'); hold on; plot(Y2(:,1),Y2(:,2),'-b'); plot(Y3(:,1),Y3(:,2),'-g'); 程序测试及运行结果: |
||
分析与讨论:
ode45实际上是数值分析中数值求解微分方程组的一种方法,4阶五级Runge-Kutta算法。其调用方法为: [t,x]=ode45(Fun,tspan,x,options,pars) Fun就是你要求解的微分方程组,微分方程组必须化成现代控制理论中的一阶微分方程组形式,之后定义.m函数亦或是匿名函数 |
数学建模(生物数学篇)之 MATLAB在求解高阶微分方程时的应用实例(3/3)
猜你喜欢
转载自blog.csdn.net/qq_59819866/article/details/131454212
今日推荐
周排行