数值积分(基于MATLAB)课件 chapter5 常微分方程数值解;chapter6 非线性方程数值解_第1页
数值积分(基于MATLAB)课件 chapter5 常微分方程数值解;chapter6 非线性方程数值解_第2页
数值积分(基于MATLAB)课件 chapter5 常微分方程数值解;chapter6 非线性方程数值解_第3页
数值积分(基于MATLAB)课件 chapter5 常微分方程数值解;chapter6 非线性方程数值解_第4页
数值积分(基于MATLAB)课件 chapter5 常微分方程数值解;chapter6 非线性方程数值解_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

科学研究和工程实践中,有很多实际问题的数学模型都是微分方程。利用微分方程理论,我们可以研究它们的一些性质,对实际问题进行分析。但是,只有极少数特殊的方程有解析解。对于绝大部分的微分方程是没有办法求出它的解析解的。

常微分方程作为微分方程的基本类型之一,在自然界与工程界有很广泛的应用。很多问题的数学模型都可以归结为常微分方程的定解问题。很多偏微分方程问题,也可以化为常微分方程问题来近似求解。常微分方程数值解本章讨论常微分方程的数值解法考虑一阶常微分方程的初值问题只要f(x,y)在[a,b]

R1上连续,且关于y

满足Lipschitz

条件,即存在与x,y无关的常数L

使对任意x

[a,b],和y1,y2

R1都有|f(x,y1)

f(x,y2)|

L|y1

y2|成立,则上述问题存在唯一解。

虽然有些微分方程初值问题的解是存在而且唯一的,但是,要求出其精确解y=y(x)往往是非常困难的。为此,我们想法计算出解函数y(x)在一系列离散节点a=x0<x1<…<xn=b处的近似值yi

y

(xi)(i=1,2,…,n).——这就是微分方程数值解。节点间距hi=xi+1

xi为步长,通常采用等距节点,即取hi=h

(常数)。求微分方程数值解的基本思想是:在这些节点上采用离散化方法,(通常用数值积分、微分、泰勒展开等)将初值问题化成关于离散变量的相应问题。把这个相应问题的解yn作为y(xn)的近似值。这样求得的yn就是上述初值问题在节点xn上的数值解。一般说来,不同的离散化导致不同的方法。

微分方程数值解:计算微分方程解函数y(x)在节点a=x0<x1<…<xn=b处的近似值yi

y

(xi)(i=1,2,…,n).1.欧拉法:x0xi向前差商近似导数记为亦称为欧拉折线法

x1定义在假设yi=y(xi),即第

i

步计算是精确的前提下,考虑的截断误差Ri=y(xi+1)

yi+1称为局部截断误差定义若某算法的局部截断误差为O(hp+1),则称该算法有p

阶精度。微分方程数值解的精度

欧拉法的局部截断误差:=O(h2)=O(h1+1)欧拉法的精度为1阶。例1

用欧拉法求初值问题在区间[0,0.10]上的数值解:当h=0.02时在区间[0,0.10]上的数值解。方程真解:nxnyny(xn)

n=y(xn)yn001.00001.0000010.020.98200.98250.000520.040.96500.96600.000530.060.94890.95030.001440.080.93360.93540.001850.100.91920.9230.0021当h=0.02时在区间[0,0.10]上的数值解。一阶方程的初值问题与积分方程是等价的,当x=x1时,

借助于数值积分,求y(x1)的值

若用矩形公式2.梯形公式用梯形公式

则有——Euler公式于是有递推格式:称之为梯形公式。这是一个隐式的计算公式,欲求的yn+1需需要解一个方程。Euler公式是求微分方程数值解的很好的方法,它算法简单,易于计算,但Euler方法有一个弱点就是误差较大不能保证精度要求。梯形公式的弱点在于需要解一个方程。因此常采用将简单的Euler公式与梯形公式相结合的方法:即预测-校正法:3.改进欧拉法——改进的Euler公式改进的Euler公式还有几种不同形式:取步长h=0.1,分别用Euler方法和改进的Euler方法,求微分方程初值问题在区间[0,1.5]上的数值解。解:本题的精确解为,可用来检验近似解的精确程度。例题Euler方法:y0=1,yn+1=yn+hf

(xn,yn).y1=y(0.1)=y0+hf(x0,y0)=1+0.1

(120/1)=1.1,y2=y(0.2)=1.191818,……y11=y(1.0)=1.784778改进的Euler方法:y0=1,y1=y0+hf(x0,y0)=1.1,y1=1+01./2[(1-20/1)+(1.1-20.1/1.1]=1.095909,……y11=……y11=1.737869.xn欧拉法yn改进欧拉法yn准确解01110.11.11.0959091.0954450.21.1918181.1840961.1832160.31.2774381.2602011.2649110.41.3582131.3433601.3416410.51.4351331.4161021.4142140.61.5089661.4829561.4832400.71.5803381.5525151.5491930.81.6497831.6164761.6124520.91.7177791.6781681.6733201.01.7847701.7378691.7320511.11.851181.7958221.7888541.21.9174641.8522421.8439091.31.9840461.9073231.8973671.42.0514041.9612531.9493591.52.1200522.0142072.0000003.局部截断误差二元泰勒公式:设z=f(x,y)在点(x0,y0)的某一邻域内连续且直到有n+1阶连续偏导数,(x0+h,y0+k)为此邻域内任一点,则有:欧拉法的截断误差:

改进欧拉法的截断误差:

建立高精度的单步递推格式。单步递推法的基本思想是从(xi,yi)点出发,以某一斜率沿直线达到(xi+1

,yi+1

)点。欧拉法及其各种变形所能达到的最高精度为2阶。考察改进的欧拉法,可以将其改写为:二、龙格-库塔法首先希望能确定系数

1、

2、p,使得到的算法格式有2阶精度,即在的前提假设下,使得

Step1:将K2在(xi,yi)

点作Taylor展开将改进欧拉法推广为:),(),(][12122111phKyphxfKyxfKKKhyyiiiiii++==++=+llStep2:将K2代入第1式,得到Step3:将yi+1与y(xi+1)在xi点的泰勒展开作比较要求,则必须有:这里有个未知数,个方程。32存在无穷多个解。所有满足上式的格式统称为2阶龙格-库塔格式。取注意到此式就是改进的欧拉法。则有类似的有三阶Runge-Kutta公式:问题:

为获得更高的精度,应该如何进一步推广?其中

i

(i=1,…,m),

i

(i=2,…,m)

ij

(i=2,…,m;j=1,…,i1

)

均为待定系数,确定这些系数的步骤与前面相似。)...,(......),(),(),(]...[1122112321313312122122111--++++++=+++=++==++++=mmmmmmimiiiiiimmiihKhKhKyhxfKhKhKyhxfKhKyhxfKyxfKKKKhyybbbabbaballl

最常用为四级4阶经典龙格-库塔法4阶龙格――库塔法截断误差阶为O(h5)。取步长h=0.1,

用四阶龙格――库塔法解初值问题y

=x2

–y(0≤x≤1)y(0)=1的数值解

解:初值问题的精确解为y=x2-2x+2-e-

x例题用四阶龙格――库塔公式

xi

yi

y(xi)(精确解)0.000000,y0=1.000000y(x0)=1.0000000.100000,y1=0.905163y(x1)=0.9051630.200000,y2=0.821269y(x2)=0.8212690.300000,y3=0.749182y(x3)=0.7491820.400000,y4=0.689680y(x4)=0.6896800.500000,y5=0.643470y(x5)=0.6434690.600000,y6=0.611189y(x6)=0.6111880.700000,y7=0.593415y(x7)=0.5934150.800000,y8=0.590672y(x8)=0.5906710.900000,y9=0.603431y(x9)=0.6034301.000000,y10=0.632122y(x10)=0.632121写成向量的形式:方程组和高阶方程的数值解法各种方法都可以直接运用过来。以两个方程的方程组为例Euler公式Runge-Kutta公式向量形式Runge-Kutta公式一般形式:例题:求微分方程组满足初始条件在区间[0,1]上的数值解,取h=0.1.容易计算该方程组的精确解为:y=sinx

cosx+ex

z=sinx+cosx+ex

1x0=0.000000,y0=0.000000z0=1.000000x1=0.100000,y1=0.205342,yy1=0.210000,z1=1.210175,zz1=1.200009x2=0.200000,y2=0.422806,yy2=0.440006,z2=1.441955,zz2=1.400139x3=0.300000,y3=0.654718,yy3=0.690043,z3=1.697616,zz3=1.600716x4=0.400000,y4=0.903649,yy4=0.960182,z4=1.979671,zz4=1.802304x5=0.500000,y5=1.172443,yy5=1.250564,z5=2.290899,zz5=2.005729x6=0.600000,y6=1.464238,yy6=1.561426,z6=2.634373,zz6=2.212097x7=0.700000,y7=1.782506,yy7=1.893128,z7=3.013488,zz7=2.422813x8=0.800000,y8=2.131082,yy8=2.246191,z8=3.431996,zz8=2.639604x9=0.900000,y9=2.514206,yy9=2.621320,z9=3.894045,zz9=2.864540x10=1.000,y10=2.936564,yy10=3.019451,z10=4.404220,zz10=3.100055经计算得数值解:1、2、确定方法,然后求解(0.202760.0881157)(0.2130070.0934037)(0.2237630.0988499)(0.2350520.104437)(0.2469020.110146)4阶Runge-Kutta法,h=1高阶方程则有:令用若干节点处的y

及y

值的线性组合来近似y(xn+1)。其通式可写为:)...(...110111101knknnnknknnnffffhyyyy--+---+++++++++=bbbbaaa当

10时,为隐式公式;

1=0则为显式公式。线性多步法(1)求出开头几个点上的近似值,即计算“表头”;线性多步法:(2)利用逐步求后面点xk上的值yk。

基于数值积分的构造法将在上积分,只要近似地算出右边的积分,则可通过近似y(xn+1)。而选用不同近似式Ik,可得到不同的计算公式。得到若积分用节点作为积分点,则有积分系数这是显格式,q+1阶r+1步格式。r=max{p,q}局部截断误差为积分节点,可以构造r+1步q+1阶隐格式同样,若以例:建立p=1,q=2的显格式p=1,q=2,显格式,积分区间为积分节点为所以例:建立p=2,q=2的隐格式p=2,q=2,隐格式,积分区间为积分节点为所以它的截断误差较显格式小,通常也具有更好的稳定性。1.阿当姆斯外推公式

以xn-2,xn-1,xn为节点作牛顿向后插值多项式P2(x)。其中对于一般的差分方程仍然考虑最简单的模型,即只有初值产生误差,看看这个误差的传播。差分方程的绝对稳定性由初始误差产生了差分解的误差,实际上是同一差分方程,取不同初值所得到的2组差分解之间的差。这个差不仅于差分方程本身有关,而且与微分方程本身有关。如果微分方程本身是不稳定,那就没理由要求这2组解充分接近。因此,差分方程的稳定性概念是建立在微分方程稳定的基础上的。把这个典型微分方程规定为:差分方程运用到如上的微分方程后,可以得到对于给定的初始误差,误差方程具有一样的形式定义:差分方程称为绝对稳定的,若差分方程作用到微分方程时,对任意的初值,总存在左半复平面上的一个区域,当在这个区域时,差分方程的解趋于0。这个区域称为稳定区域数值解的稳定性例:考察初值问题在区间[0,0.5]上的解。分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。0.00.10.20.30.40.5精确解改进欧拉法

欧拉隐式欧拉显式

节点xi

1.0000

2.00004.0000

8.00001.6000101

3.2000101

1.00002.5000101

6.25001021.56251023.90631039.76561041.00002.50006.25001.56261013.90631019.76561011.00004.97871022.47881031.23411046.14421063.05901071.0000001.3750001.8906252.5996103.5744644.914889龙格-库塔例:向后Euler公式的稳定性误差方程:210ReImg考察隐式欧拉法可见绝对稳定区域为:210ReImg注:一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。3阶Runge-Kutta显式

1~4阶方法的绝对稳定区域为k=1k=2k=3k=4-1-2-3---123ReImg插值公式的余项为则积分公式的截断误差为k=3时的外推公式为余项为:将差分表示成函数值的和的形式:二阶阿当姆斯外推公式可改写为:三阶阿当姆斯外推公式可改写为:2.阿当姆斯内插公式将被积函数用以xn-1,xn,xn+1为插值节点的内插多项式得到:k=1k=2时阿当姆斯外推法与内插联合起来考虑常微分方程的边值问题:

其中p(x),q(x)和f(x)均为[a,b]上给定的函数,

为已知数。假定p(x)、q(x)及f(x)均为[a,b]上充分光滑的函数,且q(x)≤0,这时,边值问题存在连续可微的解,且唯一。解二阶常微分方程边值问题的差分法用差分法解边值问题的主要步骤是:(1)将区间[a,b]离散化;(2)在这些节点上,将导数差商化,从而把微分方程化为差分方程;(3)解差分方程――实际上就是解线代数方程组。将[a,b]区间用节点分成N等分,其中x0=a与xN=b称为边界点,而x1,x2,…,xN-1称为内点。例9.7

试用差分法解方程解

将[0,1]划分为四等分,即取,得五个节点差分方程为将它改写成

在每个内点列方程得由追赶法公式解得:y3=1.4855y2=1.2802y1=0.7753二分法迭代法迭代法的加速(Aitken加速法、Steffensen迭代法)牛顿迭代法第6章非线性方程的数值解§1.非线性方程实根的对分法(二分法)2)对[a1,b1]重复1)的计算,并产生[a2,b2]二分法的收敛性ax*x0ba1b1§2.迭代法迭代过程的几何表示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论