MATLAB在常微分方程初值问题的应用

MATLAB在常微分方程初值问题的应用

ID:38262624

大小:206.84 KB

页数:3页

时间:2019-05-25

MATLAB在常微分方程初值问题的应用_第1页
MATLAB在常微分方程初值问题的应用_第2页
MATLAB在常微分方程初值问题的应用_第3页
资源描述:

《MATLAB在常微分方程初值问题的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第24卷第3期长春师范学院学报(自然科学版)2005年8月Vol124No13JournalofChangChunTeachersCollege(NaturalScience)Aug2005MATLAB在常微分方程初值问题的应用何双(阳江职业技术学院,广东阳江529500)[摘要]现代科学计算和工程等很多问题中都是用微分方程的形式进行描述,因而研究微分方程具有非常重要的实际意义。本文主要介绍如何使用MATLAB求解常微分方程初值问题。[关键词]MATLAB;微分方程[中图分类号]TP311[文献标识码]A[文章编号]1008-178X(2005)03-00172

2、0311引言科学技术和工程中大量的问题都表达为常微分方程的形式,特别是描述系统的动态演变时,如:物体的运动、电路的振动瞬变、化学反应过程等都表达为以时间t为独立变量的常微分方程或方程组。对于一些简单或特殊的微分方程,我们可以用公式或其它特定的方法求解,但在实际问题中所遇到的大部分常微分方程要给出其解析解往往是非常困难的。MATLAB语言是1980年由美国的CleveMoler博士研制的,它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个简单易用的交互式工作环境中。可实现工程计算、算法研究、符号运算、建模和仿真、原型开发、数据分析及可视化、科学和工程绘图、应

3、用程序设计等功能。MATLAB强大的运算功能和图形使其为目前世界上应用最为广泛的科学计算软件之一。21MATLAB中常微分方程初值问题的数值求解命令与实例MATLAB提供了多个常微分方程求解的函数,ode45,ode113,ode15s,ode23s,ode23t,ode23tb,其中两个为ode23()和ode45(),分别采用了二阶P三阶的RTF方法和四P五阶层RKF方法,并采用自适应变步长的求解方法,即当解的变化较慢时采用较大的计算步长,从而使得计算速度很快,当方程的解变化得较快时,积分步长会自动地变小,从而使得计算的精度很高。这两个函数的调用格式分别为:

4、[t,x]=ode23(系统函数名,t0,tf,x0,tol,trace)[t,x]=ode45(系统函数名,t0,tf,x0,tol,trace)这里所用到的系统函数名为描述系统状态方程的m函数文件的名称,该函数名应该用引号括起来。t0和tf分别为用户指定的起始和终止仿真时间,x0为系统的初始状态变量的值。有了这些参数,就可以调用ode23()和ode45()两个函数对系统直接进行仿真了。为了限定变步长仿真的精度,用户还可以有选择地添加一个附加参数tol由它来指定变步长仿真中的期望的解的精度,如果不对之进行指定。则默认的误差限分别为:对ode23()函数取10

5、^(-3);对ode45()函数取10^(-6)。该函数调用中最后的控制参数trace为一个输出形式控制变量,如果trace不为0,则会将仿真的中间结果逐步地由屏幕显示出来,否则将不显示中间结果(这也是该函数的默认状态)。不论是否显示中间的仿真结果,此函数都将返回两个变量t和x,其中t为仿真的时间变量,因为采用了变步长的仿真算法,所以得出的t向量并不一定是等间隔的,另一个变量工力状态变量在各个时刻所组成的列向量所构成的矩阵的转量,有了t和x这样的变量,在仿真结束后当然可以采用plot(t,x)来绘制出仿真的结果曲线。值得指出的是,这里要用到的系统函数名的编写格式

6、是固定的,如果其格式没有按照要求去编写,则将得出错误的仿真结果。系统函数的编写格式为:[收稿日期]2005-04-29[作者简介]何双(1970-),男,广东阳江人,阳江职业技术学院讲师,从事计算数学研究。·17·functionxdot=函数名(t,x)其中t为时间变量,x为状态变量,而正dot为状态变量的导数。可见如果想编写这样的函数,首先必须已知原系统的状态方程模型。下面将通过例子来说明系统函数的编写及微分方程求解函数的使用。考虑著名的Vanderpol方程的数值仿真2¨x+(x-1)Ûx+x=0选择状态变量x2=x,x1=Ûx,则可以列写出如下的状态方程

7、模型2Ûx2=x1,Ûx1=x1(1-x2)-x2基于该状态方程可以编写出一个m函数文件vdpol。m来描述此系统functionxdot=vdpol(t,x)xdot(1,:)=x(1,:)3(1-x(2,:)^2)-x(2,:);xdot(1,:)=x(1,:);当然状态方程表现形式并不是唯一的,例如前面的描述还可以表示成xdot=[x(1)3(1-x(2)^2)-x(2);x(1)]或xdot=[1-x(2)^2-1;10]3x1有了系统的状态方程的m函数文件之后,就可以通过ode23()或ode45()来进行数字仿真了。如果选定初始值为x0=[0,25]

8、,并在0≤t≤20的时间

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。