数值分析Euler方法
- 格式:ppt
- 大小:2.71 MB
- 文档页数:31
求解常微分方程初值问题的方法分为单步法和多步法,单步法主要有欧拉法和Runge- Kutta 法,多步法主要有Adams 法和Milne 法,本文仅以最常用的Runge- Kutta 法和Adams 法分别作为单步法和多步法的例子,对两种方法进行分析比较。
Euler 法是最简单的一种求解常微分方程初值问题的数值方法,但其局部截断误差仅为,是一阶方法,为了达到更高的精度,我们构造了RK 法.通过构造高阶单步法来提高精度,而较高的精度意味着计算结果更加精确,误差随着的减小迅速减小,考虑常微分方程:常用的多步法主要有Adams 法和Milne 法,本文仅以Adams 法为例介绍多步法,其中Adams 法又包括显式Adams 法和隐式Adams 法。
显式Adams 法:Adams- Bashforth 公式:公式(2.7)又称为Adams 外插公式[2]。
为方便计算,改用函数值表示后差:因(2.7)或(2.8)是显式公式,所以又称它们为显式Adams 公式, 易见显式Adams 公式(2.7)或(2.8)是线性步公式。
常用的四阶显式Adams 公式为[2]隐式Adams 法称(2.10)为Adams-Moulton 公式.所用的牛顿向后插值多项式基点为,而积分区间为,故上式又称为Adams 内插公式,该式为隐式公式,故又称为隐式Adams 公式。
这是一个关于的隐式方程,在计算中,需要将式(2.12)写成显式格式,但一些方程难以求出其显式格式,这就需要将四阶显式Adams 法和四阶隐式Adams 法结合起来,用显式公式(2.9)作为预测,然后用隐式公式(2.12)作校正,构造Adams预测- 校正公式[2]式(2.13)为四阶公式,式中的初始值除y0 已给定,y1,y2,y3 常用四阶RK法计算.四级RK 法每前进一步需要计算四个函数值,对N级RK法,每计算一步,函数f 需要计算N次。
因此,对给定的N,我们总是希望构造阶数最高的方法,记是N级RK法所能达到的最高的阶数,已经得到下面的结果[4]:由此可见,当时,,从而四级四阶RK法是较受欢迎的方法。
显示Euler法引言对于很多数学问题,我们往往需要求解微分方程。
微分方程描述了物理、化学、生物等领域中许多现象的变化规律。
然而,解析求解微分方程通常非常困难,甚至无法找到解析解。
因此,我们需要借助数值方法来近似求解微分方程。
Euler法是最简单且最早的一种数值方法之一,它可以用于求解一阶常微分方程。
本文将详细介绍Euler法的原理、步骤和应用。
一阶常微分方程在介绍Euler法之前,我们先来回顾一下一阶常微分方程的一般形式:dydt=f(t,y)其中,y为未知函数,t为自变量,函数f(t,y)描述了y关于t的变化规律。
Euler法原理Euler法的基本思想是将微分方程中的导数用差分的形式来近似表示。
我们将自变量t划分为若干个离散的点,步长为ℎ,即t0,t1,t2,…,t n,其中n为划分的个数。
在每个t i点,我们需要求解y(t i)的近似值y i。
根据微分的定义,可以得到:dy dt =limℎ→0y(t+ℎ)−y(t)ℎ为了用差分形式近似表示导数,我们可以将上式改写为:y(t+ℎ)−y(t)ℎ≈f(t,y)对上式进行变形可得:y(t+ℎ)≈y(t)+ℎf(t,y)这就是Euler法的基本迭代公式。
Euler 法步骤按照Euler 法的基本迭代公式,我们可以得到求解微分方程的步骤: 1.选择划分间隔步长ℎ,确定划分点个数n 。
2.给定初始条件y 0,即t =t 0时的y 值。
3.根据Euler 法迭代公式,计算y 1=y 0+ℎf (t 0,y 0)。
4. 重复步骤3,直到计算出所有的y i 。
Euler 法应用举例现在我们通过一个具体的例子来演示Euler 法的应用。
考虑一阶常微分方程:dy dt=−ty 初始条件为y (0)=1。
我们将该微分方程数值解与解析解进行比较。
划分步长和确定划分点个数为了开始计算,我们需要选择一个适当的步长ℎ和划分点个数n 。
在这个例子中,我们选择ℎ=0.1,n =10。
欧拉方法求数值解**《欧拉方法求数值解,看这一篇就够啦!》**嘿,朋友!今天我要给你唠唠一个超级厉害的东西——欧拉方法求数值解!别一听这名字就觉得头大,其实没那么难,跟着我一步一步来,保准你能搞明白。
首先咱来弄清楚啥是欧拉方法。
你就把它想象成一个在数学世界里的小导航,能帮咱找到那些复杂方程的近似答案。
比如说,有个方程像个迷宫,咱直接走进去可能会迷路,但欧拉方法就像给咱指了条小路,虽然不是百分百准确,但也能让咱大致知道往哪儿走。
接下来,咱们说说具体咋操作。
第一步,咱得有个方程。
就像你要去旅行得先知道目的地是哪儿一样。
比如说,咱有个方程:$y' = 2x + y$,初始条件是$y(0) = 1$。
别慌,这看着复杂,其实就是告诉咱这个“旅程”的规则和起点。
第二步,咱得确定步长$h$。
这个步长就好比你走路的步子大小。
步子太大容易跳过重要的地方,步子太小又走得太慢。
一般来说,咱先选个适中的,比如$h = 0.1$。
第三步,那就是开算啦!咱从初始点开始,按照欧拉公式一步步往前走。
公式就是:$y_{n+1} = y_n + hf(x_n, y_n)$ 。
这公式就像个魔法咒语,可管用了!比如说,第一步,$x_0 = 0$,$y_0 = 1$,那$f(0, 1)= 2×0 + 1 = 1$,所以$y_1 = y_0 + h×f(0, 1) = 1 + 0.1×1 = 1.1$ 。
然后就这么一步一步算下去,就像你一步一步走过一段路一样。
我跟你说,我第一次用欧拉方法的时候,那叫一个紧张,生怕算错一步。
结果还真算错了,从头再来,那感觉,真是酸爽!不过多练几次就熟练啦。
这里我再跟你强调一下哈,步长选得好不好很关键。
选大了,误差可能大得离谱,就像你大步流星结果跑偏了;选小了,算得又累又慢,就像小碎步挪半天还没走到重点。
还有啊,计算过程中可别粗心,一个数算错了,后面可能就全错啦,那可真是“一步错,步步错”。
微分方程数值解法微分方程数值解法微分方程数值解法【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方法精度高。
资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载微分方程常用的两种数值解法:欧拉方法与龙格—库塔法地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容四川师范大学本科毕业论文四川师范大学教务处二○一○年五月微分方程常用的两种数值解法:欧拉方法与龙格—库塔法学生姓名:xxx 指导教师:xx【内容摘要】微分方程是最有生命力的数学分支,在自然科学的许多领域中,都会遇到常微分方程的求解问题。
当前计算机的发展为常微分方程的应用及理论研究提供了非常有力的工具,利用计算机解微分方程主要使用数值方法,欧拉方法和龙格——库塔方法是求解微分方程最典型常用的数值方法。
本文详细研究了这两类数值计算方法的构造过程,分析了它们的优缺点,以及它们的收敛性,相容性,及稳定性。
讨论了步长的变化对数值方法的影响和系数不同的同阶龙格—库塔方法的差别。
通过编制C程序在计算机上实现这两类方法及对一些典型算例的结果分析比较,能更深切体会它们的功能,优缺点及适用场合,从而在实际应用中能对不同类型和不同要求的常微分方程会选取适当的求解方法。
关键词:显式单步法欧拉(Euler)方法龙格—库塔(Runge—Kutta)方法截断误差收敛性Two commonly used numerical solution of differential equations:Euler method and Runge - Kutta methodStudent Name: Xiong Shiying Tutor:Zhang Li【Abstract】The differential equation is the most vitality branch in mathematics. In many domains of natural science, we can meet the ordinary differential equation solution question. Currently, the development of computer has provided the extremely powerful tool for the ordinary differential equation application and the fundamental research, the computer solving differential equation mainly uses value method. The Euler method and the Runge—Kutta method are themost typical commonly value method to solve the differential equation. This article dissects the structure process of these two kinds of values commonly value method to solve the analyses their good and bad points, to their astringency, the compatibility, and the stabilityhas made the proof. At the same time, the article discuss the lengthof stride to the numerical method changing influence and thedifference of the coefficient different same step Runge—kutta method. Through establishing C program on the computer can realize these two kind of methods, Anglicizing some models of calculate example result can sincerely realize their function, the advantage and disadvantage points and the suitable situation, thus the suitable solution method can be selected to solve the different type and the different request ordinary differential equation in the practical application .Keywords: Explicit single-step process Euler method Runge—Kutta method truncation error convergence目录微分方程常用的两种数值解法:欧拉方法与龙格—库塔法前言常微分方程的形成与发展是和力学、天文学、物理学以及其他科学技术的发展密切相关的。
数学物理方程的数值解法数学物理方程是自然界和科学中描述物体运动、能量转化和相互作用的基本规律。
我们通常使用数值解法来求解这些方程,以得到近似的解析解。
数值解法既可以用于数学问题,也可以用于物理问题。
本文将介绍几种常见的数学物理方程的数值解法。
一、微分方程的数值解法微分方程是描述物体运动和变化的重要工具。
常见的微分方程有常微分方程和偏微分方程。
常见的数值解法包括:1. 欧拉法(Euler's method)欧拉法是最简单的数值解法之一,通过将微分方程离散化为差分方程,在每个小时间步长上近似计算微分方程的导数。
欧拉法易于实现,但精度相对较低。
2. 龙格-库塔法(Runge-Kutta method)龙格-库塔法是一类常用的数值解法,包括二阶、四阶等不同的步长控制方法。
龙格-库塔法通过计算多个离散点上的导数来近似微分方程,精度较高。
3. 有限差分法(Finite difference method)有限差分法是一种常用的数值解法,将微分方程转化为差分方程并在网格上逼近微分方程的导数。
有限差分法适用于边值问题和初值问题,且精度较高。
二、积分方程的数值解法积分方程描述了给定函数的积分和积分变换之间的关系。
常见的数值解法有:1. 数值积分法数值积分法是通过数值逼近求解积分方程,常用的数值积分法包括梯形法则、辛普森法则等。
数值积分法适用于求解一维和多维积分方程。
2. 蒙特卡洛法(Monte Carlo method)蒙特卡洛法通过随机采样和统计分析的方法,将积分方程转化为概率问题,并通过大量的随机样本来估计积分值。
蒙特卡洛法适用于高维空间和复杂积分方程。
三、优化问题的数值解法优化问题是寻找在给定约束条件下使目标函数取得极值的数学问题。
常见的数值解法有:1. 梯度下降法(Gradient descent method)梯度下降法是一种常用的优化算法,通过迭代和梯度方向来寻找目标函数的局部最优解。
梯度下降法适用于连续可导的优化问题。
CENTRAL SOUTH UNIVERSITY 数值分析实验报告Euler 方法与改进的Euler 方法的应用一、问题背景在工程和科学技术的实际问题中,常需求解微分方程,但常微分方程中往往只有少数较简单和典型的常微分方程(例如线性常系数常微分方程等)可求出其解析解,对于变系数常微分方程的解析求解就比较困难,而一般的非线性常微分方程的求解困难就更不用说了。
大多数情况下,常微分方程只能用近似方法求解。
这种近似解法可分为两大类:一类是近似解析法,如级数解法、逐次逼近法等;另一类是数值解法,它给出方程在一些离散点上的近似值。
二、数学模型在具体求解微分方程时,需具备某种定解条件,微分方程和定解条件合在一起组成定解问题。
定解条件有两种:一种是给出积分曲线在初始点的状态,称为初始条件,相应的定解问题称为初值问题。
另一类是给出积分曲线首尾两端的状态,称为边界条件,相应的定解问题称为边值问题。
在本文中主要讨论的是给定初值条件的简单Euler 方法和改进的Euler 方法来求解常微分方程。
三、算法及流程Euler 方法是最简单的一种显式单步法。
对于方程()y x f dxdy ,= 考虑用差商代替导数进行计算,取离散化点列nh x x n +=0,L n ,2,1,0=则得到方程的近似式()()()()n n n n x y x f hx y x y ,1≈-+ 即()n n n n y x hf y y ,1+=+ 得到简单Euler 方法。
具体计算时由0x 出发,根据初值,逐步递推二得到系列离散数值。
简单Euler 方法计算量小,然而精度却不高,因而我们可以构造梯形公式()()[]η=++=+++0111,,2y y t f y t f h y y n n n n n n 其中()N a b h -=。
这是一个二阶方法,比Euler 方法精度高。
但是上述公式右边有1+n y ,因而是隐式差分方程,可以用迭代方法计算1+n y 。
二,Euler 方法及改进的Euler 方法问题:<数值分析简明教程>P151-实验1用Euler 方法求初值问题的数值解。
取步长h=0.1,并在一个坐标系中画出数值解与准确解的图形。
问题求解:一, 工具:Mathematica二,分析:用Euler 公式y n+1= y n +h f(x n ,y n )求数值解的方法成为Euler 方法。
三,算法及求解过程算法:1. 输入函数f(x,y)、初值y 0、自变量区间端点a,b 步长h2. 计算节点数n 和节点x k3. 用Euler 公式y n+1= y n +h f(x n ,y n ) 求数值解Euler 方法程序Clear[x,y,f]f[x_,y_]= Input["函数f(x,y)="]y0=Input["初值y 0 ="]a=Input["左端点a="]b=Input["右端点b="]h=Input["步长h="]n=(b-a)/h;For[i=0,i<n,i++,xk=a+i*h;y1=y0+h*f[xk,y0];Print["y(",xk+h//N,")=",y1//N];y0=y1]说明:本程序用Euler 公式求常微方程初值问题数值解。
程序执行后,按要求通过键盘依次输入输入函数f(x,y)、初值y 0、自变量区间端点a,b 步长h 后,计算机则给出常微方程初值问题数值解。
程序中变量说明f[x,y]: 存放函数f(x,y)y0: 存放初值y 0及数值解⎪⎩⎪⎨⎧=<<-='1)0(102y x y x y ya:存放自变量区间左端点b: 存放自变量区间右端点n: 存放节点个数h: 存放节点步长xk:存放节点xiy1: 存放数值解注:(1)语句Print["y(",xk+h//N,")=",y1//N]是将数值解用6位有效数字显示出来,如果要显示n位数有效数字,可以将语句改为Print["y(",xk+h//N,")=",N[y1,n]](2)Mathematica中有求微分方程初值问题数值解的命令,形式为:NDSolve[ {y’[x]==f[x,y[x]],y[a]==y0}, y, {x, a, b}]由N DSolve命令得到的解是以{{未知函数名->InterpolatingFunction[range, <>]}}的形式给出的,其中的InterpolatingFunction[range, <>]是所求的插值函数表示的数值解, range就是所求数值解的自变量范围。
数值分析作业题目:用Euler 方法及二阶—四阶RK 方法,求解相应的微分方程的数值解,并与解析解进行类比,给以说明。
求解的方程为:(0)1y x y y '=+⎧⎨=⎩ 其精确解为()21x y x e x =--。
采用的Euler 算法为:111(,)n n n n y y hK K f x y +=+⎧⎨=⎩ 采用的二阶RK 算法为:12121(,)(/2,/2)n n n n n n y y hK K f x y K f x h y hK +=+⎧⎪=⎨⎪=++⎩ 采用的四阶RK 算法为:()11234121324322/6(,)(/2,/2)(/2,/2)(/2,)n n n n n n n n n n y y h K K K K K f x y K f x h y hK K f x h y hK K f x h y hK +=++++⎧⎪=⎪⎪=++⎨⎪=++⎪⎪=++⎩ 用MATLAB 实现四种算法的计算,并分析其计算结果和计算误差。
计算结果如图1所示,计算误差如图2所示,用于实现这些算法的MATLAB 程序如程序1所示。
图1 三种算法的计算结果 从图1可以看出二阶RK 和四阶RK 算法的计算结果已经很接近理论值,而传统Euler 算法的计算结果明显较差。
其具体数值为:x 的取值点为:[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]。
解析解:[1.110341836151295,1.24280551632034,1.399717615152006,1.5836493952825 41,1.797442541400256,2.044237600781018,2.327505414940953,2.6510818569 84936,3.019206222313899,3.436563656918091] 。
Euler算法的计算结果:[1.1,1.22,1.362,1.5282,1.72102,1.943122,2.1974342,2.48717762,2.815895 382,3.1874849202]。
euler法与梯形法求解微分方程Euler方法和梯形法是常用的数值方法,用于求解微分方程的数值解。
这两种方法在数值计算中具有重要的应用价值,可以有效地近似微分方程的解。
我们来介绍一下Euler方法。
Euler方法是一种简单而直观的数值方法,用于求解一阶常微分方程。
它的基本思想是将微分方程转化为差分方程,通过逐步逼近真实解来得到数值解。
具体步骤如下:1. 将自变量的取值范围划分为一系列小的区间,并选择一个合适的步长h。
2. 根据微分方程的初值条件,确定初始值。
3. 使用差分逼近的方法,不断迭代计算每个区间的数值解。
4. 重复步骤3,直到达到所需的精度或计算到指定的自变量值。
Euler方法的优点是计算简单、易于实现,但它的精度相对较低。
由于它是通过线性逼近来近似解,所以在复杂的微分方程中可能会产生较大的误差。
因此,在某些情况下,我们需要使用更为精确的数值方法,如梯形法。
梯形法是一种改进的数值方法,用于求解一阶常微分方程。
它的基本思想是利用梯形的面积来逼近函数的曲线面积,从而得到更为精确的数值解。
具体步骤如下:1. 将自变量的取值范围划分为一系列小的区间,并选择一个合适的步长h。
2. 根据微分方程的初值条件,确定初始值。
3. 使用梯形规则,通过迭代计算每个区间的数值解。
4. 重复步骤3,直到达到所需的精度或计算到指定的自变量值。
梯形法相比于Euler方法,具有更高的精度。
它通过考虑两个相邻点之间的曲线,得到更准确的数值解。
然而,梯形法的计算量较大,需要进行更多的计算。
因此,在实际应用中,我们需要根据具体情况选择合适的数值方法。
总结起来,Euler方法和梯形法是常用的数值方法,用于求解微分方程的数值解。
它们各自具有优缺点,适用于不同的求解问题。
在实际应用中,我们需要根据问题的要求和计算资源的限制,选择合适的数值方法来求解微分方程。
通过合理选择数值方法,可以有效地得到微分方程的数值解,从而解决实际问题。