常微分方程欧拉算法
第五章:常微分方程数值解法第一节欧拉法

常微分方程数值解法欧拉法

)
f ( xn1, yn1)
hL
y(k ) n 1
yn1
L
hL
k 1
y(0) n 1
yn1
Q
hL 1,
y (k 1) n 1
yn1 (k
)
在迭代公式中取极限,有
yn1 yn h f ( xn1, yn1 ) 因此yn(k1)的极限就是隐式方程的解
几何意义
y
设已知曲线上一点 Pn (xn , yn ),过该 点作弦线,斜率为(xn+1 , yn +1 ) 点的 方向场f(x,y)方向,若步长h充分小, 可用弦线和垂线x=xn+1的交点近似 曲线与垂线的交点。
式。隐式公式不能直接求解,一般需要用Euler显式公式
得到初值,然后用Euler隐式公式迭代求解。因此隐式公
式较显式公式计算复杂,但稳定性好
y0 n1
yn
h
y(k 1) n1
yn
h
f (xn , yn )
f
( xn1 ,
y(k) n1
)
收敛性
y (k 1) n 1
yn1
h
f
( xn1,
y(k ) n 1
如何求解
解析解法:(常微分方程理论)
只能求解极少一类常微分方程;实际中给定的问题不一 定是解析表达式,而是函数表,无法用解析解法。
数值解法: 求解所有的常微分方程
计算解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b
处的近似值 yi y( xi ) (i 1, ... , n)
y(xn1) y(xn ) hy(xn ) y(xn ) yn
y(xn1) yn1 yn h f (xn , yn )
欧拉公式19种证明

欧拉公式19种证明欧拉公式是数学中的一个重要公式,它的表达式为e^(ix)=cos(x)+i*sin(x),其中e表示自然对数的底数2.71828…,i表示虚数单位。
欧拉公式有多种证明方法,下面我们将介绍其中19种常见的证明方法。
1. 泰勒级数证明法:利用泰勒级数展开式展开e^(ix)和cos(x)+i*sin(x),然后将它们相等的系数进行比较,即可得出欧拉公式。
2. 复合函数证明法:将e^(ix)看作复数函数f(x)=e^x,将cos(x)和sin(x)看作f(x)的实部和虚部,则有f(ix)=cos(x)+i*sin(x),即e^(ix)=cos(x)+i*sin(x)。
3. 微积分证明法:将欧拉公式两边分别对x求导,得到ie^(ix)=-sin(x)+i*cos(x),再将其两边同时乘以i,即可得到欧拉公式。
4. 积分证明法:将欧拉公式两边同时积分,得到e^(ix)/i=-sin(x)/i+cos(x),再将其两边同时乘以i,即可得到欧拉公式。
5. 欧拉级数证明法:将e^(ix)和cos(x)+i*sin(x)的泰勒级数展开式进行对比,即可得到欧拉公式。
6. 幂级数证明法:将e^(ix)和cos(x)+i*sin(x)的幂级数展开式进行对比,即可得到欧拉公式。
7. 矩阵证明法:构造一个2x2矩阵,使其特征值为e^(ix)和e^(-ix),然后求解该矩阵的本征向量,即可得到欧拉公式。
8. 矩阵幂证明法:将e^(ix)表示为矩阵的形式,然后对该矩阵进行幂运算,即可得到欧拉公式。
9. 极限证明法:将e^(ix)表示为极限的形式,然后通过极限的性质推导出欧拉公式。
10. 解微分方程证明法:将e^(ix)看作微分方程y'=iy的解,并利用欧拉公式将其转化为y=cos(x)+i*sin(x),即可得到欧拉公式。
11. 解偏微分方程证明法:将e^(ix)看作偏微分方程u_t+iu_x=0的解,并利用欧拉公式将其转化为u=cos(x-t)+i*sin(x-t),即可得到欧拉公式。
常微分方程的数值解法(欧拉法、改进欧拉法、泰勒方法和龙格库塔法)

[例1]用欧拉方法与改进的欧拉方法求初值问题h 的数值解。
在区间[0,1]上取0.1[解]欧拉方法的计算公式为x0=0;y0=1;x(1)=0.1;y(1)=y0+0.1*2*x0/(3*y0^2);for n=1:9x(n+1)=0.1*(n+1);y(n+1)=y(n)+0.1*2*x(n)/(3*y(n)^2);end;xy结果为x =Columns 1 through 80.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 Columns 9 through 100.9000 1.0000y =Columns 1 through 81.0000 1.0067 1.0198 1.0391 1.0638 1.0932 1.1267 1.1634 Columns 9 through 101.2028 1.2443改进的欧拉方法其计算公式为本题的精确解为()y x=x0=0;y0=1;ya(1)=y0+0.1*2*x0/(3*y0^2);y(1)=y0+0.05*(2*x0/(3*y0^2)+2*x0/(3*ya^2));for n=1:9x(n+1)=0.1*(n+1);ya(n+1)=ya(n)+0.1*2*x(n)/(3*ya(n)^2);y(n+1)=y(n)+0.05*(2*x(n)/(3*y(n)^2)+2*x(n+1)/(3*ya(n+1)^2));end;xy结果为x =Columns 1 through 80.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 Columns 9 through 100.9000 1.0000y =Columns 1 through 81.0000 1.0099 1.0261 1.0479 1.0748 1.1059 1.1407 1.1783 Columns 9 through 101.2183 1.2600[例2]用泰勒方法解x=0.1, 0.2, …, 1.0处的数值解,并与精确解进行比较。
常微分方程组数值解法

常微分方程组数值解法一、引言常微分方程组是数学中的一个重要分支,它在物理、工程、生物等领域都有广泛应用。
对于一些复杂的常微分方程组,往往难以通过解析方法求解,这时候数值解法就显得尤为重要。
本文将介绍常微分方程组数值解法的相关内容。
二、数值解法的基本思想1.欧拉法欧拉法是最基础的数值解法之一,它的思想是将时间连续化,将微分方程转化为差分方程。
对于一个一阶常微分方程y'=f(x,y),其欧拉公式为:y_{n+1}=y_n+hf(x_n,y_n)其中h为步长,x_n和y_n为第n个时间点上x和y的取值。
2.改进欧拉法改进欧拉法是对欧拉法的改良,其公式如下:y_{n+1}=y_n+\frac{h}{2}[f(x_n,y_n)+f(x_{n+1},y_n+hf(x_n,y_n))] 3.四阶龙格-库塔方法四阶龙格-库塔方法是目前最常用的数值解法之一。
其公式如下:k_1=f(x_n,y_n)k_2=f(x_n+\frac{h}{2},y_n+\frac{h}{2}k_1)k_3=f(x_n+\frac{h}{2},y_n+\frac{h}{2}k_2)k_4=f(x_n+h,y_n+hk_3)y_{n+1}=y_n+\frac{h}{6}(k_1+2k_2+2k_3+k_4)其中,k_i为中间变量。
三、常微分方程组的数值解法1.欧拉法对于一个二阶常微分方程组:\begin{cases} y'_1=f_1(x,y_1,y_2) \\ y'_2=f_2(x,y_1,y_2)\end{cases}其欧拉公式为:\begin{cases} y_{n+1,1}=y_{n,1}+hf_1(x_n,y_{n,1},y_{n,2}) \\y_{n+1,2}=y_{n,2}+hf_2(x_n,y_{n,1},y_{n,2}) \end{cases}其中,x_n和y_{n,i}(i=1, 2)为第n个时间点上x和y_i的取值。
euler算法

euler算法欧拉算法(Euler's method),也称为数值积分算法或者欧拉积分,是一种常用的数值积分算法,用于近似解常微分方程(ODE)的初值问题。
它是一种一阶显式数值积分算法,通过使用l-step近似直线来逼近解析解。
本文将介绍欧拉算法的基本原理、算法步骤以及其应用。
欧拉算法的基本原理是将微分方程转化为差分方程,通过逐步逼近解析解。
对于给定的初值问题y'(t) = f(t, y(t)),y(t0) = y0,其中f是一元函数,y是未知函数。
我们想要求解在区间[t0, tn]上的近似解y(ti),其中ti = t0 + i*h,h是步长。
具体的欧拉算法步骤如下:1. 将初始条件t0和y0代入未知函数f(t, y)中,计算f(t0, y0)得到f0。
2. 使用近似直线来逼近解析解,y(ti+1) ≈ y(ti) + h*f(ti, yi),其中h是步长。
3. 重复步骤2,直到得到近似解y(tn)。
欧拉算法的实现相对简单,但是由于使用了线性逼近,所以误差较大。
对于某些情况下误差不能太大的问题,欧拉算法可能不够准确,这时需要使用更高阶的数值积分算法。
欧拉算法的应用广泛,包括但不限于以下方面:1. 物理学:在物理学中,许多问题可以用ODE建模,比如牛顿第二定律、电路等。
欧拉算法可以用于求解这些物理问题的近似解。
2. 经济学:经济学中的许多问题也可以用ODE描述,如宏观经济模型、供需分析等。
欧拉算法可以用于求解这些经济问题的近似解。
3. 生物学:生物学研究中,很多问题需要建立数学模型,如生物种群的增长和竞争、药物代谢和毒性等。
欧拉算法可以用于求解这些生物问题的近似解。
4. 计算机图形学:计算机图形学中,欧拉算法可以用于模拟物体的运动,如粒子系统的模拟、刚体的模拟等。
5. 控制工程:控制工程中的系统动力学可以用ODE建模,欧拉算法可以用于分析系统的稳定性和响应特性。
总结来说,欧拉算法是一种常用的数值积分算法,用于近似解常微分方程的初值问题。
常微分方程数值解法 欧拉格式与梯形格式的比较
验
结
果
分
析
及
心
得
体
会
程序运行结果如下:
一、欧拉格式
-.是真实值,*是数值解。从图形来看还是比较接近真实解的。
这是梯形格式的数值解与真实解的图形。-.是真实值,*是数值解
从图形看出,此题用梯形格式的数值解是非常接近真实值的。
心得体会:
欧拉格式的程序较简单,对于梯形格式的数值解法,也是逐步显式的过程,用Euler方法提供迭代处置,而得到迭代公式,从而建立程序的编写过程,这是关键。
end
y1=fun(x);
plot(x,y,'r*',x,y1,'*-')
梯形格式程序如下:
function f=funx(x,y)
f=10*x.*(1-y);
h=0.1;
x=0:0.1:1;
y=zeros(1,11);
y(1)=0;
for n=1:10
x(n+1)=x(n)+h;
z0=y(n)+h*feval(@funx,x(n),y(n));
欧拉格式的?程序较简单?对于梯形格?式的数值解?法也是逐步显?式的过程用eule?r方法提供?迭代处置而得到迭代?公式从而建立程?序的编写过?程这是关键
年级
00000
班号
0000
学号
0000
专业
000
姓名
00000
实验
名称
0
实验类型
设计型
综合型
创新型
实验目的或要求
常微分的数值解法用欧拉格式与梯形格式进行比较。
从图形来看,梯形格式显然比欧拉格式更接近真实值。
成
常微分方程-欧拉(Euler)方程
à
(2.1)
à DZ Euler à Ôa ,a ,··· ,a DZ dx =x xDZ t ø x=e à dt
0 1 n t n n−1 d y d y dy n n−1 a0 x + a1 x + · · · + an−1 x + an y = f (x) n n − 1 dx dx dx
a0 = 0
∞ ∞
ùÒ 2.1
 p (x ) Ãà
y + p (x )y + q (x ) = 0 q (x )
∞ n=0
à
¿ (−R, +R)
q (x ) =
p (x ) =
(2.7)
∞
pn xn ,
∞ n=0
Ñ þ
q n xn
è è
:
(2.7)
µDZ ð á
Ñ ¿ (−R, +R) þ æù ß´ù Ã R=∞
∞ ∞ k=0 ∞ k=0
µ
ak xk
y =
k=1 ∞
kak xk−1 =
(k + 1)ak+1 xk
∞ k=0
y =
k (k + 1)ak+1 xk−1 =
(k + 1)(k + 2)ak+2 xk
ã ¦à
k=1
∞
a0 + 2a2 +
k=1
(ak + kak + (k + 1)(k + 2)ak+2 )xk = 0
à
y + p (x )y + q (x )y = f (x )
(2.3)
à à
常微分方程的欧拉方程
常微分方程的欧拉方程常微分方程是数学中重要的一部分,它是研究函数的导数与自变量的关系的一门学科。
常微分方程的欧拉方程是其中非常重要的一种特殊方程,本文将对其进行探讨。
一、什么是常微分方程的欧拉方程是一种形如$ax^2y''+bxy'+cy=0$ 的二阶常微分方程,其中 $a,b,c$ 均为常数。
这个方程之所以称为欧拉方程,是因为它在欧拉时期(18世纪)被广泛应用于各种领域的问题中,例如生物学、物理学、工程学等等。
欧拉方程的形式非常特殊,因此可以直接用常数系数线性齐次方程的解法求解。
但在实际应用中,我们还需要结合具体问题进行变量代换,进一步简化方程的形式,便于求解。
二、欧拉方程的求解方法1、直接求解对于 $ax^2y''+bxy'+cy=0$ 这种形式的欧拉方程,我们可以直接进行求解。
首先,考虑进行变量代换,令$y=x^m$。
带入原方程,可以得到:$$ ax^2(m(m-1)x^{m-2})+bx(m x^{m-1})+c(x^m)=0 $$化简可得:$$ am(m-1)+bm+c=0 $$这是一个关于 $m$ 的二次方程,解出 $m_1,m_2$ 后,其通解即为 $y=c_1x^{m_1}+c_2x^{m_2}$。
需要注意的是,当 $m_1\neq m_2$ 时,通解中每个项的系数应当相同。
因此,可以通过 $(m_1-m_2)$ 次导数,消去其中的$c_1,c_2$ 系数,进一步简化通解。
2、解决边界条件在实际问题中,往往需要求解欧拉方程的一个特定解,而不是其通解。
此时可以通过边界条件来确定系数的值。
例如,考虑求解 $y''-3xy'+4y=2x^3+5x^2$ 在 $x=0$ 处的特解。
这个方程可以转化为 $x^2y''-3xy'+4x^2y=2x^5+5x^4$ 的欧拉方程形式。
令 $y=ux^2$,带入原方程中,化简可得:$$u''x^2+2u'x-4ux+2x^3+5x^2=0$$将 $u''x^2+2u'x-4ux$ 视为 $0$,可得$u=\frac{1}{2}x^3+\frac{1}{2}x^2$。
欧拉方程-
欧拉方程欧拉方程是微积分学中经常被用到的一类常微分方程,它的形式是:y^(n) + a1y^(n-1) + ... + an-1y' + any = f(x)其中,y^(n)表示y对x的n次导数,a1,a2,...,an-1,an为常数,f(x)是已知的函数。
欧拉方程的命名来源于瑞士数学家欧拉,他在1732年的一篇论文中首次研究了这种类型的方程。
欧拉方程的求解方法通常分为两种,一种是通过设定形式解的方式求解,另一种是通过变量替换的方式将欧拉方程转化为常系数线性微分方程来求解。
下面分别介绍这两种求解方法。
一、设定形式解的方式求解欧拉方程通过设定形式解的方式,可以求出欧拉方程的通解,常见的形式解如下:1. 当方程系数满足a1=a2=...=an-1=0时,特解可设为y = C1x^n +C2x^n∙lnx + ... + Cnxln^(n-1)x。
2. 当方程系数满足an≠0时,特解可设为y = x^λ(C1cos(ωlnx) +C2sin(ωlnx))。
二、通过变量替换的方式求解欧拉方程通过对欧拉方程的变量替换,可以将欧拉方程转化为常系数线性微分方程,从而用已知的求解方式进行求解。
通常采用的变量替换方式是x=et,即令t=lnx,y(x)=u(t)∙etλ,然后将y'、y''、...、y^(n)用u(t)、u'(t)、...、u^(n)(t)进行表示,将欧拉方程中的y用u(t)∙etλ来替代,最终得到形如下式的常系数线性微分方程:u^(n) + (a1-λ)a1u^(n-1) + ... + (an-1-λan-1)u' + (an-λan)u = e^(-λt)f(et)其中,f(et)=f(x)是原方程右侧的函数经过变量替换后得到的函数。
最后,在求解出常系数线性微分方程的解后,通过将u(t)∙etλ代入y(x)=u(t)∙etλ中,再将x=et代回到原方程中,就可以得到欧拉方程的通解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常微分方程欧拉算法
摘要:本文主要论述了常微分方程的欧拉算法的算法原理,误差分析,实例,程序,以及算法比较等内容。
关键词:常微分方程 显式欧拉法 隐式欧拉法
引言:微分方程初值问题模型是常见的一类数学模型。
对于一些简单而典型的微分方程模型,譬如线性方程、某些特殊的一阶非线性方程等是可以设法求出其解析解的,并有理论上的结果可资利用。
但在数学建模中碰到的常微分方程初值问题模型,通常很难,甚至根本无法求出其解析解,而只能求其近似解。
因此,研究其数值方法,以便快速求得数值鳃有其重大意义。
一、欧拉算法原理
对于微分方程初值问题
的解在xy 平面上是一条曲线,称为该微分方程的积分曲线。
积分曲线上一点(),x y 的切线斜率等于函数f 在点(),x y 的值,从初始点()000,P x y 出发,向该点的切线方向推进到下一个点()111,P x y ,
然后依次做下去,得到后面的未知点。
一般地,若知道(),n n n P x y 依上述方法推进到点()111,n n n P x y +++,则两点的坐标关系为:
即
这种方法就是欧拉(Euler )方法(也叫显式欧拉法或向前欧拉法)。
当初值0y 已知,则n y 可以逐步算出 对微分方程()=x y dy f dx
,从n x 到1n x +积分,那么有 现在用左矩形公式()(),n n hf x y x 代替()()1
,n n x x f t y t dt +⎰,n y 代替()n y x ,1n y +代替
()1n y x +就得到了欧拉方法。
如果用右矩形公式()()11,n n hf x y x ++去代替右端积分,
则得到另外一个公式,该方法就称为隐式欧拉法(或后退欧拉法),其公式为 欧拉公式与隐式欧拉公式的区别在于欧拉公式是关于1n y +的一个直接计算公式,然而隐式欧拉公式右端含有1n y +,所以它实际上是关于1n y +的一个函数方程。
二、实例
例 取h=0.1,用Euler 方法解
解 如果用Euler 法,代入0.1得 MATLAB 绘制图像如下:
三、误差分析
初值问题的单步法可以写成如下统一形式
其中ϕ和f 有关,若ϕ中不含1n y +,则方法是显式的,否则是隐式的,所以一般显示单步法表示为:
例如在Euler 方法中,有()(),,,x y h f x y φ=,对于不同的方法中,计算值1n y +与准确值()n y x 的误差各不相同。
所以有必要讨论方法的截断误差,我们称()n n n e y x y =-为某一方法在n x 点的整体截断误差。
显然,n e 不但与n x 这步的计算有关,所以误差被称为整体的。
分析和估计整体截断误差n e 是复杂的,为此,我们假设n x 处的1n y +没有误差,即()n n y y x =,考虑从n x 到1n x +这一步的误差,这就是如下的局部误差的概念。
()()()()()1111,,,,n n n n n n n T y x y x h x x y x y x h φ++++=--为单步法的局部截断误差。
四、算法程序
现用matlab 编程,程序如下
f .m
function f=f(x,y)
f=-y+x+1;
>>[x,y]=myeuler('f',0,1,1); %利用程序求解方程
>> y1=x+exp(-x); %方程f=-y+x+1的精确解
>>plot(x,y,'-b',x,y1,'-r') %在同一图窗将欧拉法解和精确解的图画出 >> legend('欧拉法','精确解')
五、算法比较
由表可以看出:当A ≤0.1时,欧拉法稳定,欧拉预测校正法也稳定。
当h=O .2时,欧拉法和欧拉预测校正法都不稳定,计算结果严重偏离精确法。
要想计算结果充分接近于解析解还需取较小的h 值,可以看出,h 越小,计算结果越好。
对于梯形法,理论上讲对于任何五值都稳定,但明显看出,要保证有较高的精度,也必须取较小的办值。
另外,由表可见,两个二阶方法精度也较高。
结论:将数值解和解析解进行比较,很容易对欧拉法的三种不同算法的精度进行。
,,11)(0=+-=y y x y x f
比较,其中改进欧拉法在这三种近似数值法的精度是最高的。
欧拉法的数值求解不仅减小了数值计算的工作强度,而且提高了它的运算速度。
这种方法对常微分方程初值问题的近似值求解和理论分析均具有一定的参考价值。
参考文献:
[1]徐萃徽。
孙绳武,计算方法引论(第二版)北京:高等教育出版社,2002.1
[2]冯康.数值计算方法口订]杭州:浙江大学出版社,2003
[3]胡健伟汤怀民.微分方程数值解法(第二版).北京;科学出版社.2007
[4]蔡大用擞值分析与实验呻】.北京:清华大学出版社,2001
[5]李立康,於祟华,朱政华.微分方程数值解法[M】.上海:复旦大学出版社,1999
[6]C.w|吉尔常微分方程初值问题的数值解法【M】.费景高译.北京;科学出版社,1978。