常微分方程初值问题数值解法的比较
- 格式:doc
- 大小:352.50 KB
- 文档页数:16
常微分方程初值问题的数值解法在自然科学、工程技术、经济和医学等领域中,常常会遇到一阶常微分方程初值问题:(,),,(),y f x y a x b y a y '=≤≤⎧⎨=⎩ (1) 此处f 为,x y 的已知函数,0y 是给定的初始值。
本章讨论该问题的数值解法,要求f 在区域{(,)|,}G x y a x b y =≤≤<∞内连续,并对y 满足Lipschitz 条件,从而初值问题(1)有唯一的连续可微解()y y x =,且它是适定的。
1 几个简单的数值积分法1.1 Euler 方法(1)向前Euler 公式(显式Euler 公式)10(,),0,1,2,,(),n n n n y y hf x y n y y a +=+=⎧⎨=⎩(2) 其中h 为步长。
由此便可由初值0y 逐步算出一阶常微分方程初值问题(1)的解()y y x =在节点12,,x x 处的近似值12,,y y 。
该公式的局部截断误差为2()O h ,是一阶方法。
(2)向后Euler 公式(隐式Euler 公式)1110(,),0,1,2,,(),n n n n y y hf x y n y y a +++=+=⎧⎨=⎩(3) 这是一个隐格式,也是一阶方法。
这类隐格式的计算比显格式困难,一般采用迭代法求解。
首先用向前Euler 公式提供迭代初值,然后迭代计算:(0)1(1)()111(,),(,),0,1,2,n n n n k k n n n n y y hf x y y y hf x y k +++++⎧=+⎨=+=⎩ (4)1.2 梯形方法1110[(,)(,)],2(),(0,1,2,)n n n n n n h y y f x y f x y y y a n +++⎧=++⎪⎨⎪=⎩= (5) 这也是一个隐格式,是二阶方法。
一般也采用迭代法求解。
迭代公式如下:(0)1(1)()111(,),[(,)(,)],0,1,2,2n n n n k k n n n n n n y y hf x y h y y f x y f x y k +++++⎧=+⎪⎨=++=⎪⎩ (6)1.3 改进的Euler 方法11110(,),[(,)(,)],0,1,2,,2(),n n n n n n n n n n y y hf x y h y y f x y f x y n y y a ++++⎧=+⎪⎪=++=⎨⎪=⎪⎩(7) 为了便于上机编程计算,(7)可改写为110(,),(,),0,1,2,,1(),2(),p n n n cn n p n p c y y hf x y y y hf x y n y y y y y a ++=+⎧⎪=+⎪⎪=⎨=+⎪⎪=⎪⎩(8) 该格式是显式,也是二阶方法。
浅谈常微分方程初值问题数值解法在自然科学、工程技术、甚至社会科学的一些领域中,常常会遇见一阶常微分方程的求解问题:()上述问题,寻求解的具体表达式十分困难,仅对一些特殊形式的才有可能找到解的解析表达式,在大多情况下,初值问题的解不能用初等函数表示出来即使可写出解的解析表达式,但因为这些表达式过于复杂,要计算它在某些点上的函数值也异常困难。
在实际问题中,经常需要的恰是解在某些点上的函数值,因此研究初值问题的数值解法十分必要。
1 常微分方程初值问题的数值解法常微分方程的近似解法大体可分成三大类:一类是图解法和器械法;第二类是解的近似法;第三类是数值解法,即通过离散化的方法直接求出函数在某些点上的近似值,此数值解仅为精确解的近似解。
其基本原理为:一阶常微分方程的初值问题的解是上变量的连续函数,因此求上述问题的数值解,就是在区间上的若干离散点上用离散化的方法将初值问题化成离散变量的相应问题,从而相应问题的解可作为初值问题理论解的近似值。
由常微分方程的理论可知,只要在区域内连续,且关于满足林普希兹条件,则方程的解存在且唯一。
初值问题的数值解法通常采取“步进法”,而“步进法”又可分为“单步法”和“多步法”两类。
(1)单步法。
所谓“单步法”是指在计算时,只用到前一步的有关信息。
其一般形式为:,主要包括下面三种方法:Euler方法,改进的Euler公式-梯形公式和Runge-Kutta法。
(2)线性多步法。
单步法没有用到前几步计算得到的信息,因此为了提高精度,需重新计算多个点处的函数数值,如RK方法,故计算量较大。
线性多步法的基本思想是充分利用前面的已知信息来构造精度高且计算量小的算法来计算。
多步法常用方法是线性多步法,求解公式为:构造的常用方法是Taylor展开和数值积分方法。
常用的线性多步公式有:四阶Adams显式公式:四阶Adams隐式公式:四阶Milne显式公式:三阶Hamming公式:(隐式公式)预测校正系统和预测校正修正法:一般地,同阶的隐式法比显式法精确,而且数值稳定性好,但隐式公式中的求解较难,需要用到迭代法,这就增加了计算量。
常微分方程初值问题若干数值方法的分析比较
罗幼芝
【期刊名称】《重庆工商大学学报(自然科学版)》
【年(卷),期】2005(022)002
【摘要】讨论了常微分方程初值问题的一些数值方法,导出了若干种数值方法,如显式Eul-er法、隐式Euler法、θ-法、预报-修正法、龙格-库塔法等,并对这些数值方法进行了分析比较,最后给出了相应的数值例子.
【总页数】6页(P185-190)
【作者】罗幼芝
【作者单位】长沙民政职业技术学院,文法系,湖南,长沙,410004
【正文语种】中文
【中图分类】O157.1
【相关文献】
1.常微分方程初值问题数值方法的实验阶研究 [J], 胡伟
2.关于常微分方程初值问题数值解法的分析 [J], 赵慧娟;陈伟丽;赵晨霞;袁书娟
3.一类常微分方程初值问题的精度和误差分析 [J], 耿红梅
4.二阶常微分方程初值问题数值方法的研究综述 [J], 李庆宏
5.常微分方程初值问题的基本数值解法分析 [J], 林爽;张杰
因版权原因,仅展示原文概要,查看原文内容请购买。
微分方程数值解法微分方程数值解法微分方程数值解法【1】摘要:本文结合数例详细阐述了最基本的解决常微分方程初值问题的数值法,即Euler方法、改进Euler法,并进行了对比,总结了它们各自的优点和缺点,为我们深入探究微分方程的其他解法打下了坚实的基础。
关键词:常微分方程数值解法 Euler方法改进Euler法1、Euler方法由微分方程的相关概念可知,初值问题的解就是一条过点的积分曲线,并且在该曲线上任一点处的切线斜率等于函数的值。
根据数值解法的基本思想,我们取等距节点,其中h为步长,在点处,以为斜率作直线交直线于点。
如果步长比较小,那么所作直线与曲线的偏差不会太大,所以可用的近似值,即:,再从点出发,以为斜率作直线,作为的近似值,即:重复上述步骤,就能逐步求出准确解在各节点处的近似值。
一般地,若为的近似值,则过点以为斜率的直线为:从而的近似值为:此公式就是Euler公式。
因为Euler方法的思想是用折线近似代替曲线,所以Euler方法又称Euler折线法。
Euler方法是初值问题数值解中最简单的一种方法,由于它的精度不高,当步数增多时,由于误差的积累,用Euler方法作出的折线可能会越来越偏离曲线。
举例说明:解: ,精确解为:1.2 -0.96 -1 0.041.4 -0.84 -0.933 0.9331.6 -0.64 -0.8 0.161.8 -0.36 -0.6 0.242.0 0 -0.333 0.332.2 0.44 0 0.44通过上表可以比较明显地看出误差随着计算在积累。
2、改进Euler法方法构造在常微分方程初值问题 ,对其从到进行定积分得:用梯形公式将右端的定积分进行近似计算得:用和来分别代替和得计算格式:这就是改进的Euler法。
解:解得:由于 ,是线形函数可以从隐式格式中解出问题的精确解是误差0.2 2.421403 2.422222 0.000813 0.021400.4 2.891825 2.893827 0.00200 0.051830.6 3.422119 3.425789 0.00367 0.094112.0 10.38906 10.43878 0.04872 1.1973通过比较上表的第四列与第五列就能非常明显看出改进Euler方法精度比Euler方法精度高。
数值计算中的常微分方程初值问题常微分方程是描述许多自然规律和现象的数学方法之一,常常在科学研究和工程应用中被广泛应用。
求解常微分方程的数值算法称为数值方法,这些方法用于求解微分方程的初始值问题(Initial Value Problem,简称IVP)。
本文将讨论常微分方程初值问题以及数值方法的应用。
1. 常微分方程初值问题常微分方程初值问题是一类形如$y^{\prime}=f(t,y),y(t_0)=y_0$的微分方程。
其中,$f(t,y)$是已知的函数,$y^{\prime}$表示$y$对$t$的导数,$y_0$和$t_0$是已知的初始条件。
将微分方程的解表示为$y=y(t)$,则其在$t=t_0$处的值为$y(t_0)=y_0$。
对于一个给定的常微分方程初值问题,我们需要求出其解$y=y(t)$。
常微分方程的解是一类内禀函数,通常没有解析表达式。
因此,求解微分方程的目标是得到一个数值近似解,以使得这个近似解能够满足应用上的需要。
但是,求解微分方程时需要注意最小化误差,以充分利用计算机资源和减小不确定性。
2. 数值方法数值方法是一种使用数值计算技术快速求解微分方程的方法。
常见的数值方法包括显式欧拉法,向后欧拉法,中点法,龙格–库塔法等。
2.1 显式欧拉法显式欧拉法是最简单的求解微分方程的数值方法之一,它通过计算初始值函数的斜率来求解下一个点的值,使得下一个点的值可读性更高。
具体来说,显式欧拉法使用前项差分公式:$$y_{n+1}=y_n+hf(t_n,y_n)$$其中$t_n=n \cdot h$是离散时间步($h$是时间步长)。
显式欧拉法的误差随时间步长变小。
但显式欧拉法的缺点是它难以处理比较复杂的微分方程,因为这可能需要使用较小的时间步长。
此外,显式欧拉法可能产生的数值不稳定性也是一个挑战。
2.2 龙格-库塔法龙格-库塔方法是一种经典的提高微分方程数值解精度的数值方法。
龙格-库塔法是一类迭代方法,它使用多次计算初始值函数的斜率,以生成更准确的导数值。
常微分方程初值问题的数值解法中三种算法的比较
常微分方程初值问题的数值解法是数学分析中的一个重要的研究内容,众多的
算法都有助于我们更好地求解一般的初值问题,在这里我们将介绍常微分方程初值问题的三种基本算法,它们是欧拉法、改进欧拉法以及四阶龙格-库塔法。
欧拉法是常微分方程初值问题中最常用的算法,他是一种简洁而又灵活的方法,其基本思想是根据给定的常微分方程和初值,通过积分形式求解精确解,此方法解决的问题比较简单,但它的误差公式与时间步长的N次方有关,误差较大,而且容易出现严重的误差误差,当时间步长To增大时会出现误差振荡。
改进欧拉法是弥补欧拉法缺陷的一种优化算法,它使用线性插值,代替欧拉法
用积分形式计算出来的结果,从而更准确地求出结果,且误差降低,由于它对动态系统的误差有一定的抑制,使得它的运算误差相对于欧拉法是高准确度的,但在某些特殊情况下仍然可能出现误差波动的情况。
四阶龙格-库塔法是在现实生活中最常用的数值解法。
它把问题分解成5种不
同形式的积分公式,并分别交由5个层次的方法来解决,仔细把握每一步的运算,把数值舍入后再运算,虽然该法运算量大,但它的准确性更高,误差相对于其它两种方法要小得多,且具有良好的精度稳定性,具有很好的鲁棒性和适应性,可以很好地用于对解初值问题作出估计和预测。
综上,这三种数值解法都有自身的特点,欧拉法计算简单,但误差较大;改进
欧拉法的精度和误差抑制能力更强;四阶龙格-库塔法的算术精度更高,出现误差
波动的概率最低,在可靠性方面更加准确。
因此,应用的时机对于三种算法的选择就显得尤为重要。
第七章 常微分方程初值问题的数值解法--------学习小结一、本章学习体会通过本章的学习,我了解了常微分方程初值问题的计算方法,对于解决那些很难求解出解析表达式的,甚至有解析表达式但是解不出具体的值的常微分方程非常有用。
在这一章里求解常微分方程的基本思想是将初值问题进行离散化,然后进行迭代求解。
在这里将初值问题离散化的方法有三种,分别是差商代替导数的方法、Taylor 级数法和数值积分法。
常微分方程初值问题的数值解法的分类有显示方法和隐式方法,或者可以分为单步法和多步法。
在这里单步法是指计算第n+1个y 的值时,只用到前一步的值,而多步法则是指计算第n+1个y 的值时,用到了前几步的值。
通过对本章的学习,已经能熟练掌握如何用Taylor 级数法去求解单步法中各方法的公式和截断误差,但是对线性多步法的求解理解不怎么透切,特别是计算过程较复杂的推理。
在本章的学习过程中还遇到不少问题,比如本章知识点多,公式多,在做题时容易混淆,其次对几种R-K 公式的理解不够透彻,处理一个实际问题时,不知道选取哪一种公式,通过课本里面几种方法的计算比较得知其误差并不一样,,这个还需要自己在往后的实际应用中多多实践留意并总结。
二、本章知识梳理常微分方程初值问题的数值解法一般概念步长h ,取节点0,(0,1,...,)n t t nh n M =+=,且M t T ≤,则初值问题000'(,),()y f t y t t Ty t y =≤≤⎧⎨=⎩的数值解法的一般形式是1(,,,...,,)0,(0,1,...,)n n n n k F t y y y h n M k ++==-@显示单步法7.2.1 显示单步法的一般形式1(,,),(0,1,...,1)n n n n y y h t y h n M ϕ+=+=-定理7.2.1 设增量函数(,,)n n t y h ϕ在区域00{(,,)|,||,0}D t y h t t T y h h =≤≤<∞≤≤内对变量y 满足Lipschitz 条件,即存在常数K ,使对D 内任何两点1(,,)t u h 和2(,,)t u h ,不等式1212|(,,)(,,)|||t u h t u h K u u ϕϕ-≤-成立,那么,若单步法的局部截断误差1n R +与1(1)p h p +≥同阶,即11()p n R O h ++=,则单步法的整体截断误差1n ε+与p h 同阶,即1()p n O h ε+=。