Matlab在常微分方程求解中应用课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Matlab在常微分方程求解中应用课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 微分方程 求解 应用 课件
- 资源描述:
-
1、Matlab在常微分方程在常微分方程求解中的应用求解中的应用实验目的实验目的 (1 1)学会用学会用MatlabMatlab软件求解微分方程的初值问题软件求解微分方程的初值问题 (2 2)了解微分方程数值解思想,掌握基本的微分方程数值解方法)了解微分方程数值解思想,掌握基本的微分方程数值解方法 (3 3)学会根据实际问题建立简单微分方程数学模型)学会根据实际问题建立简单微分方程数学模型 (4 4)了解计算机数据仿真、数据模拟的基本方法)了解计算机数据仿真、数据模拟的基本方法 n17世纪:初等解法世纪:初等解法n18世纪:初等解法和无穷级数方法世纪:初等解法和无穷级数方法n19世纪:解的存在性、
2、奇点理论、定性世纪:解的存在性、奇点理论、定性理论、稳定性理论理论、稳定性理论l 包含一个自变量和它的未知函数以及未知函数的导数的包含一个自变量和它的未知函数以及未知函数的导数的等式等式l 形成和发展与力学、天文学、物理学及其他自然科学技形成和发展与力学、天文学、物理学及其他自然科学技术的发展互相促进和推动术的发展互相促进和推动 常微分方程常微分方程yxf,ybxaD,:1,yx2,yx2121,yyLyxfyxf xy定理 设函数设函数在区域在区域上连续,且在区域上连续,且在区域D内满足李普希兹内满足李普希兹(Lipschitz)条件,即存在条件,即存在正数正数L,使得对于,使得对于R内任意
3、两点内任意两点与与,恒有恒有则初值问题则初值问题(1)的解的解存在并且唯一。存在并且唯一。常微分方程的解析解常微分方程的解析解 求微分方程(组)的解析解命令:dsolve(方程方程1,方程方程2,方程方程n,初始条件初始条件,自变量自变量)结 果:u=tg(t-c)记号:在表达微分方程时,用字母D表示求微分,D2、D3等表示求高阶微分。D后所跟字母为因变量,自变量可以指定或由系统规则选定为缺省。例如:微分方程 可以表示为D2y=0.022dxyd 解解 输入命令:y=dsolve(D2y+4*Dy+29*y=0,y(0)=0,Dy(0)=15,x)结 果 为:y=3e-2xsin(5x)例例
4、3 求微分方程组的通解.zyxdtdzzyxdtdyzyxdtdx244354332解解 输入命令:x,y,z=dsolve(Dx=2*x-3*y+3*z,Dy=4*x-5*y+3*z,Dz=4*x-4*y+2*z,t);x=simple(x)%将将x化简化简 y=simple(y)z=simple(z)结 果 为:x=(c1-c2+c3+c2e-3t-c3e-3t)e2t y=(c1e-4t+c2e-4t+c2e-3t-c3e-3t+c1-c2+c3)e2t z=(-c1e-4t+c2e-4t+c1-c2+c3)e2t 虽然说解析解是最精确的,但是实际问虽然说解析解是最精确的,但是实际问题中
5、常要求研究常微分方程的数值解题中常要求研究常微分方程的数值解常微分方程的数值解常微分方程的数值解 常微分方程中只有一些典型方程能求出初等解(用初等函数表示的解)。另外,有些初值问题虽然有初等解,但由于形式太复杂不便于应用。因此,有必要探讨常微分方程初值问题的数值解法。以下主要介绍一阶常微分方程初值问题几种经典数值解方法:欧拉法及改进的欧拉法。其它方法:龙格-库塔法、阿达姆斯方法;一阶微分方程组与高阶方程初值问题的数值解法;二阶常微分方程值问题的差分方法等。求解常微分方程初值问题的数值解的整体思路:00)(),(yxyyxfdxdy (1))(xynxxxx210,210nyyyy ny1iii
6、xxh寻求准确解在一系列离散节点:上的近似值 称为问题的数值解,数值解所满足的离散方程统称为差称为步长,实用中常取定步长。分格式,建立数值解法的一些途径建立数值解法的一些途径001i)y(xy)f(x,y ,1,2,1,0 ,xynihxi解微分方程:可用以下离散化方法求设1、用差商代替导数、用差商代替导数 若步长h较小,则有hxyhxyxy)()()(故有公式:1-n,0,1,2,i )(),(001xyyyxhfyyiiii此即欧拉法欧拉法Euler法的几何意义:2、使用数值积分、使用数值积分对方程y=f(x,y),两边由xi到xi+1积分,并利用梯形公式,有:)(,()(,(2)(,()
7、()(11111iiiiiixxiixyxfxyxfxxdttytfxyxyii实际应用时,与欧拉公式结合使用:,2,1,0 ),(),(2),()(11)1(1)0(1kyxfyxfhyyyxhfyykiiiiikiiiii的计算。然后继续下一步,取时,当满足,对于已给的精确度)(y y 2i111i)(1)1(1kikikiyyy此即改进的欧拉法改进的欧拉法故有公式:)(),(),(200111xyyyxfyxfhyyiiiiii使得中值定理可知,存在可微的条件下,由微分在函数,10)(xy)()()(1hxyhxyxynnn上的平均斜率在区间为函数称,)()()(11nnnnxxxyhx
8、yxyhxyxyxxyxfxyxfxxxxyxnnnnnnnnnnnnn)()(,),(),(,)(111-111上的平均斜率区间的平均值代替了曲线在处的预测斜率和在处的斜率线在改进的欧拉公式:用曲上的平均斜率在区间了函数的斜率(导数值)代替欧拉公式:用曲线在的精度更高的计算公式计算由此可构造出由上的平均斜率,在区间的加权平均值作为曲线后将这些点处的斜率值值,然内多预测几个点的斜率间的公式;如果设法在区一种计算算法,就可以得到上的平均斜率提供一种间启发:只要对曲线在区11111,nnnnnnnnnyyxxxxyxx3、使用泰勒公式、使用泰勒公式 以此方法为基础,有龙格龙格-库塔法库塔法、线性多
9、步法线性多步法等方法。4、数值公式的精度、数值公式的精度 当一个数值公式的截断误差可表示为O(hk+1)时(k为正整数,h为步长),称它是一个k阶公式阶公式。k越大,则数值公式的精度越高。欧拉法是一阶公式,改进的欧拉法是二阶公式。龙格-库塔法有二阶公式和四阶公式。线性多步法有四阶阿达姆斯外插公式和内插公式。ODE 指令列表 nMATLAB 用於求解常微分方程式的指令:指令方法应用ODE类别ode45Explicit Runge-Kutta(4,5)pair of Dormand-PrinceNonstiff ODEode23Explicit Runge-Kutta(2,3)pair of Bo
10、gacki and ShampineNonstiff ODEode113Variable order Adams-Bashforth-Moulton PECE solverNonstiff ODEode15sNumerical differentiation formulas(NDFS)Stiff ODEode23sModified Rosenbrock formula of order 2Stiff ODEode23t Trapezoidal rule with a“free”interpolantStiff ODEode23tbImplicit Runge-Kutta formula wi
11、th a backward differentiation formula of order twoStiff ODE 适用于 Nonstiff 系統 n速率(即微分值)差异相常大 n使用一般的ode45、ode23或ode113來求解,可能会使得积分的步长(Step Sizes)变得很小,以便降低积分误差至可容忍范围以內,会导致计算时间过长 n专门对付Stiff系统的指令,例如ode15s、ode23s、ode23t及ode23tb 适用于 Nonstiff 系統 一般的常微分方程式都是 Nonstiff 系統 直接采用 ode45、ode23 或 ode113 來求解 提示 n使用 Sim
12、ulink 來求解常微分方程式Simulink是和MATLAB共同使用的一套软件 可使用拖拉的方式來建立动力系统 可直接产生C语言代码或进行动画演示 功能非常强大 n使用ODE指令时,必须先将要求解的ODE表示 成一个函数 输入为t(时间)及y(状态函数:State Variables)输出则为dy(状态变量的微分值)n若ODE函数的文件为odeFile.m,则调用ODE指令 的格式如下:t,y=solver(odeFile,t0,t1,y0)t0,t1 是积分的时间区间 y0代表起始条件(Initial Conditions)solver是前表所列的各种ODE指令 t是输出的时间向量 y是对
展开阅读全文