资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第14章 常微分方程的MATLAB求解编者 角没伦押嫡搔匝钠馒靛燎掩剃涛码怀越埠要炯雀俊邱雍巷绰然壶企七衣新第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解Outlinen14.1 微分方程的基本概念微分方程的基本概念n14.2 几种常用微分方程类型几种常用微分方程类型n14.3 高阶线性微分方程高阶线性微分方程n14.4 一阶微分方程初值问题的数值解一阶微分方程初值问题的数值解n14.5 一阶微分方程组和高阶微分方程的数值解一阶微分方程组和高阶微分方程的数值解n14.6 边值问题的数值解边值问题的数值解核第路怕起闯梆彬运僳束芹爆烃陪粮沥同毯性婚需锭凿砚吻食死乙抢庞旭第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解14.1 微分方程的基本概念微分方程微分方程:一般的,凡表示未知函数、未知函数的导数与自变量之间的关系的方程,叫做微分方程,有时也简称方程。微分方程的阶微分方程的阶:微分方程中所出现的未知函数的最高阶导数的阶数,叫做微分方程的阶微分方程的解微分方程的解:找出这样的函数,把这函数代入微分方程能使该方程成为恒等式。这个函数就叫做微分方程的解。微分方程的通解微分方程的通解:如果微分方程的解中含有任意常数,且任意常数的个数与微分方程的阶数相同,这样的解叫做微分方程的通解。初始条件初始条件:设微分方程中的未知函数为 ,如果微分方程是一阶的,通常用来确定任意常数的条件是 时, 或写成 其中 都是给定的值;如果微分方程是二阶的,通常用来确定任意常数的条件是其中 和 都是给定的值,上述这种条件叫做初始条件。确定了通解中的任意常数以后,就得到微分方程的特解。求微分方程 满足初始条件 的特解是这样一个问题,叫做一阶微分方程的初值问题初值问题,记作微分方程的解的图形是一条曲线,叫做微分方程的积分曲线积分曲线。莉锡歹盾僧荐淀聋羹讹眨嵌厩罕颂拌怔窘槛腮怒窝议伐弛匆魁耘挥赦升毡第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解14.2 几种常用微分方程类型1.可分离变量的可分离变量的微分方程微分方程 一般的,如果一个一阶微分方程能写成的形式,就是说,能把微分方程写成一端只含 的函数和 ,另一端只含 的函数和 ,那么原方程就称为可分离变量的微分方程。2.齐次齐次方程方程 如果一阶微分方程可化成 的形式,那么就称这方程为齐次方程。3.一阶线性微分方程一阶线性微分方程 线性方程:方程 叫做一阶线性微分方程因为它对于未知函数y 及其导数是一次方程。如果 , 则上述方程称为齐次的;如果 , 则上述方程称为非齐次的。为了求出非齐次线性方程的解,我们先把 换成零而写出方程 该方程叫做对应于非齐次线性方程的齐次线性方程。齐次线性方程的通解为 非齐次线性方程的通解为伯努利方程:方程 叫做伯努利(Bernoulli)方程。当 时,该方程是线性微分方程,当 时,该方程不是线性的,但是通过变量的替换,便可把它化为线性的凑植庐始看豁骇矩复敞较葵丙伴祸徽纷烤孝区疹当霜创筏檬域衍服迪呆巴第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解4.可降阶的可降阶的高阶微分方程高阶微分方程 型的微分方程:微分方程 的右端仅含有自变量 x ,容易看出,只要把 作为新的未知函数,那么微分方程 即化为新未知函数 的一阶微分方程,两边积分,就得到一个 阶的微分方程同理可得依此法继续进行,接连积分 n次,便得到方程 的含有 n 个任意常数的通解。 型的微分方程:方程的右端不显含未知函数 y。如果我们设 ,那么因此,方程 就成为 ,这是一个关于变量 的一阶微分方程,设其通解为 ,又 因此又得到一个一阶微分方程对它进行积分,便得到方程 的通解为 型的微分方程:方程中不显含自变量x ,为了求出它的解,我们令 ,并利用复合函数求导法则把 化为对 的导数,即这样,方程 就成为 这是一个关于变量 的一阶微分方程,设它的通解为 分离变量并积分,便得方程 的通解为 枣舍摔尾劝狄酱基翼歉礼士丸淀药笑朽胡氯沫航彦途稽檀山肩拨步征扎家第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解14.3 高阶线性微分方程1.1.线性微分方程解的线性微分方程解的结构结构 在 n 阶微分方程 中, 若 是 的一次有理整式,则称此方程为 n 阶线性微分方程。一般形式可写成:线性微分方程解的结构定理: 如果 是方程的n个线性无关的解,则该方程的通解为 其中 是任意常数。 设 是方程 的一个特解, 是对应的齐次线性方程的通解,则是上述方程的通解。 若 和 分别是方程与 的特解,则是方程 的特解2.2.常系数线性微分方程的常系数线性微分方程的MATLABMATLAB符号求解符号求解 MATLAB中提供了dsolve函数求解微分方程(组)。该函数允许用字符串的形式描述微分方程及初值、边值条件,最终将给出微分方程的解析解。涧肃湛律惶撰冰鞘茂催列围瘸影觅咕谆窟荣迸偷梆矽杯绦羚肄仇价茬两蔗第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解14.4 一阶微分方程初值问题的数值解1.欧拉法及其欧拉法及其MATLAB实现实现 对于一阶微分方程的初值问题 ,若要求其数值解,我们可以采用离散化方法。在求解区间 上取一组节点:称 为步长。为简单起见,仅考虑等距步长 ,即 将方程 的两端在区间 上积分,得到 即 应用左矩形公式 : ,则有略去上式中的 ,得 考虑到 ,设已求得 , 的1个近似值 ,则由上式可得 由可依次求出 。称上式即为求解初值问题的Euler公式。 惯靛气洋点斩闽监剁慢段吕赣烬呕丈嚎泉芯齐收犬恬厩寄氢邀喷鸽模丘金第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解2.2. Runge-Kutta Runge-Kutta法及其法及其MATLABMATLAB实现实现 考虑微分方程 ,由Lagrange微分中值定理,存在 ,使得于是,由 得 记 ,则称 为区间 上的平均斜率。这样,只要给出了 的一种算法,就可以得到求解微分方程初值问题的一种计算公式。显然,显式Euler公式就是以 作为平均斜率 的近似。经典四阶Runge-Kutta方法的迭代公式:涡职即茵愤假揖嚷幅拾烁墙向英杏割搁康圆传逆牟树吁矾艳繁笛暂旧拣鞭第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解14.5 一阶微分方程组和高阶微分方程的数值解1. 一一阶微分方程阶微分方程组组 前面研究的是求解单微分方程 的数值解法,对于微分方程组,只需将y 理解成向量, 理解成向量函数,那么对前面研究过的各种计算公式即可用到一阶微分方程组上来。2. 高阶微分方程高阶微分方程 对于高阶微分方程组的数值求解,首先应将其变换成一阶显式常微分方程组。其具体转换方法如下:(1)将微分方程的最高阶变量移到等式的左边,其他移到右边,并按阶次从低到高排列,(这里以两个高阶微分方程的转换为例)假设两个高阶微分方程最后能够显式的表达成下述形式:(2)为每一阶微分式选择状态变量,最高阶除外(3)根据(2)中选用的状态变量,写出所有状态变量的一阶微分的表达式最后,对初值进行相应的变换,就可以得到所期盼的一阶微分方程组了。3.微分方程组的微分方程组的MATLAB求解求解函数函数 MATLAB提供了一系列的函数来求解微分方程组,包括ode系列函数,另外还提供了几类特殊的微分方程的求解函数,例如ode15s,ode15i等。峦咯掌漫言甥推审座艳嗽丧沈脊羞线笋滩烹蛛恬熊挪窝滋驴捌嘱芽搂巢钒第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解14.6 边值问题的数值解1.打靶法打靶法 打靶法也称为试射法,其基本思想是把边值问题作初值问题来求解,从满足左端边界条件的解曲线中寻找也满足右端边界条件的解。线性方程边值问题的打靶法:线性方程边值问题的打靶法:考虑如下给出的二阶线性边值问题该边值问题的打靶法求解过程可以由如下步骤完成:(1)计算下面齐次微分方程在区间 上的数值解 , ,初值条件: ;(2)计算下面齐次微分方程在区间 上的数值解 , ,初值条件: ;(3)计算下面初值问题在区间 上的数值解 , ,初值条件 : ;(4)若 ,则计算 ;(5)计算下面初值问题的数值解,则 即为原边值问题的数值解 ,初值条件:锡呼颂匠饱诛汀攀酬嚎柑杉禹酱剪诵兽釉贼延豆稽连额校准振占烬最喘耶第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解非线性方程边值问题的打靶法:非线性方程边值问题的打靶法:考虑二阶常微分方程 的边值问题,边界条件为 。假定该问题可以转换为下面的初值问题则问题转化为求解 ,这是一个复杂的超越方程,可以考虑引入牛顿迭代法求解参数 m。具体的迭代公式为:式中 通过这些关系可以建立方程具体计算中可以指定一个m 值,然后求解上面的初值问题,将结果代入上面的迭代公式中迭代一步,并将结果代入上式中重新计算,直至两次计算出来的 m值的误差在允许的范围内为止,最后将 m值代入初值问题 即可求解原始问题。绞定谍糯皱耳粪验梢兰耘琼特给欲溃慨伞蜘祟瞄敬塔催档关讨国衣吭钨件第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解2.边值问题的边值问题的MATLAB函数求解函数求解 MATLAB能求解的边值问题的一般形式如下 其中y 为状态变量向量 为方程中其他未知参数向量。该方程已知的边界值为 MATLAB提供了专门求解边值问题的bvp解算器bvpslover。要想求解一个常微分方程的边值问题,一般应该遵循以下几个步骤:(1)参数初始化(2)微分方程和边值问题的MATLAB函数描述(3)边值问题的求解籍疲憋杏炎袭蹦翠略相田柬赃蒂坍滨侣栽括冉库萎惟晕罐捕熊和宴茨说嗅第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解谢谢大家!碰酸米慌瘴唬舶表芜睛愁愁成锑侄缺咬闰蓝稗距焕礁酷探娶谚蠕疡钎盂零第14章常微分方程的MATLAB求解第14章常微分方程的MATLAB求解
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号