华中科技大学数值分析微分方程求解
数值分析常微分方程求解实验

实验报告
一、实验目的
解初值问题各种方法比较。
二、实验题目
给定初值问题
⎪⎩⎪⎨⎧=≤<+=,
0)1(,21y x xe x y dx dy x , 其精确解为)(e e x y x -=,按
(1)改进欧拉法,步长01.0,1.0==h h ;
(2)四阶标准龙格-库塔法,步长1.0=h ;
求在节点)10,...,2,1(1.01=+=k k x k 处的数值解及其误差,比较各个方法的优缺点。
三、实验原理
改进欧拉法程序,四阶标准龙格-库塔法程序。
四、实验内容及结果
五、实验结果分析
实验2中改进欧拉法和四阶标准龙格-库塔法的比较:
结果的第一个ans是x的值与对应的y的值,第二个ans是精确解x的对应值y,第三个ans 是与精确值的误差百分数。
通过误差百分数的比较,可以明显的发现改进欧拉法比四阶标准龙格-库塔法更精确。
华中科技大学精品课程—微积分(下)

一. 平面及其方程 二. 直线及其方程
一. 平面方程
1.平面的点法式方程
已知M 0 ( x0 , y0 , z0 ) , 矢量n , n A, B, C O
n称为平面的法矢量
z
n
M0
π
M
y
求平面的方程
o
x
解: 设平面上的任一点为 M ( x , y , z )
例 2 求过点(1,1,1) , 且垂直于平面 x y z 7 和
3 x 2 y 12 z 5 0 的平面方程.
解
n1 {1,1, 1}, n2 {3, 2,12} 取法矢量 n n1 n2 {10, 15, 5},
所求平面方程为
(1) D 0, 平面 Ax+By+Cz=0 通过坐标原点;
( 2) A 0, n 0, B, C x轴, D 0, 平面通过
轴; x D 0, 平面平行于 x 轴;
类似地可讨论 B 0, C 0 情形. 平面平行于 ( 3) B C 0, n A,0,0 yoz平面, yoz平面. 类似地可讨论 A = B = 0, A = C = 0 情况.
C 2 2 2 A B C
Pr jn P1 P0 P1 P0 n0
A( x0 x1 ) B( y0 y1 ) C ( z0 z1 ) 2 2 2 2 2 2 A B C A B C A2 B 2 C 2
Ax0 By0 Cz0 ( Ax1 By1 Cz1 ) , 2 2 2 A B C
知平面方程为 x , y , z 的三元一次方程. 命题2. 任何x , y , z 的三元一次方程:
华中科技大学出版社—数值分析第四版—课后习题及答案

14. 由于 x1 , x 2 , , x n 是 f ( x ) 的 n 个互异的零点,所以 f ( x) a 0 ( x x1 )( x x 2 ) ( x x n )
a 0 ( x xi ) a 0 ( x x j ) ( x xi ),
i 1 i 1 i j n n
4 7 h 3 时,取得最大值 max | l 2 ( x ) |
10 7 7 x 0 x x3 27 . k x , x , , x n 处进行 n 次拉格朗日插值,则有 6. i) 对 f ( x) x , (k 0,1, , n) 在 0 1 x k Pn ( x ) Rn ( x ) l j ( x) x k j
。
14.
1000000000 999999998 x1 1.000000, x2 1.000000 999999999 999999999 方程组的真解为 ,
x 1.00, x2 1.00 , 而无论用方程一还是方程二代入消元均解得 1 结果十分可 靠。 s b sin ca a sin cb ab cos cc a b c tan c c s ab sin c a b c 15.
可 得
计
算
( f1 ) ln(1
( f 2 ) ln(1
x x 1
2
) )
1 ( x x 2 1) 60 104 3 103 2 x x 1 ,
2
x x 1
2
x x 1
2
1 1 104 8.33 107 60 2
。
(Y100 ) 100
最新华中科技大学数值分析

Function t_charpt1_1%数值试验1.1 病态问题%输入:[0 20]之间的扰动项及小的扰动常数%输出:加扰动后得到的全部根Result=inputdlg({ 请输‘入扰动项:在[0 20]之间的整数:'}, ' charpt1_1 ',1 '{ ‘19'});Numb=str2num(char(result));if ((Numb>20)|(Numb<0))errordlg( 请输‘入正确的扰动项:[0 20]之间的整数!' );return;endresult= inputdlg({ 请输‘入(0 1)之间的扰动常数: '}, ' charpt1_1 ',1,{ ‘ 0.00001 '});ess=str2num(char(result));ve=zeros(1,21); ve(21-Numb)=ess;root=roots(poly(1:20)+ve);disp([对扰动项’,num2str(Numb)加扰动’,num2str(ess得到的全部根为:’]); disp(num2str(root));function charpt3%数值实验三:含“实验3.1 ”和“实验3.2 ” %子函数调用:dlsa%输入:实验选择%输出:原函数及求得的相应插值多项式的函数的图像以及参数alph 和误差rresult=inputdlg({ 请选择‘实验,若选 3.1,请输入1,否则输入2:' },' charpt_3 ' ,1,{ ‘ 1' });Nb=str2num(char(result));if(Nb~=1&(Nb~=2)errordlg( 实验选‘择错误! ';))return;endx0=-1:0.5:2 y0=[-4.447 -0.452 0.551 0.048 -0.447 0.549 4.552];n=3;%n 为拟合阶次if(Nb==1) alph=polyfit(x0,y0,n);y=polyval(alph,x0); r=(y0-y)*(y0- y) '平;%方误差x=-1:0.01:2;y=polyval(alph,x);plot(x,y, -'');kxlabel( ‘ x' );ylabel( ‘ y0*a-'nd)p; loyfit.yhold on;plot(x,y, -'');ktitle( 离散‘数据的多项式拟合 ' );grid on;else result=inpurdlg({ 请输入‘权向量w:'}, ' charpt_3,1,{ ‘[1 1 1 1 1 1 1] '});w=str2num(char(result));[a,b,c,alph,r]=dlsa(x0,y0,w,n);enddisp([ 平‘方误差:' ,sprint( ‘ %g,r ' )]);disp([ 参‘数alph: ' ,sprint(t ' ‘,al%ph)])% ---------------------------------------------------------------------------------------------------------------------------- function[a,b,c,alph,r]=dlsa(x,y,w,n)%功能:用正交化方法对离散数据作多项式最小二乘拟合。
微分方程求解方法

微分方程求解方法微分方程是数学中的一个重要概念,广泛应用于物理学、工程学、经济学等领域。
微分方程求解是通过已知条件找到满足方程的未知函数的过程。
根据方程的类型和性质,有多种解法可供选择。
一、可分离变量的微分方程可分离变量的微分方程形式为dy/dx = f(x)g(y),可以通过变量的分离和积分的方法进行求解。
具体步骤如下:1. 将方程变形为dy/g(y) = f(x)dx。
2. 对两边同时积分,得到∫(1/g(y))dy = ∫f(x)dx。
3.求出积分的表达式,然后求解原方程。
二、一阶线性微分方程一阶线性微分方程的一般形式为dy/dx + P(x)y = Q(x),可通过线性变换和积分的方法进行求解。
具体步骤如下:1. 通过线性变换将方程变为dy/dx + yP(x) = Q(x)P(x)。
2. 确定积分因子μ(x) = e∫P(x)dx。
3. 将原方程两边同时乘以μ(x),并进行化简得到d(yμ(x))/dx = Q(x)μ(x)。
4. 对等式两边同时积分得到∫d(yμ(x))/dx dx = ∫Q(x)μ(x)dx。
5.求出积分的表达式,然后求解原方程。
三、二阶线性齐次微分方程二阶线性齐次微分方程的一般形式为d²y/dx² + p(x)dy/dx + q(x)y = 0,可以通过特征根法求解。
具体步骤如下:1. 假设解的形式为y = e^(mx)。
2. 将形式代入原方程,得到特征方程m² + pm + q = 0。
3.求解特征方程得到特征根m₁和m₂。
4.根据特征根的情况,得到相应的通解。
四、二阶线性非齐次微分方程二阶线性非齐次微分方程的一般形式为d²y/dx² + p(x)dy/dx +q(x)y = f(x),可以通过常数变易法求解。
具体步骤如下:1.假设原方程的特解为y=u(x),将其代入原方程,得到关于u和它的导数的代数方程。
2.根据原方程的非齐次项f(x)的形式,设定特解的形式。
华中科技大学数理方程课件第四章格林函数法

1
n
d
由 与
后 的 球 的 为
,
N
n
中
小
k
任 常
u ( N
到 整
)
u ( M
)
)
u ( M
u ( M
1
) ,
N
u 不
意 数
性 矛
, 就 盾
上
有
) , 这
Kn N Mn M 2 K1 M 1 K2 M 3 S1 S2
l
Sn
图 4 .1
4.2 格林函数
1 1 1 u ( M ) (4.2.1) u ( M ) u ( M ) ( ) dS 0 4 n r r n MM MM 0 0
分方程,又可以研究偏微分方程;既可以研究齐次方 程又可以研究非齐次方程;既可以研究有界问题,又 可以研究无界问题。它的内容十分丰富,应用极其广 泛。这一章,我们主要介绍用格林函数求解拉普拉斯
方程的边值问题。
4.1 格林公式及其应用
4.1.1 基本解 对拉普拉斯方程 , 其球坐标形式为: u u u u 0 xx yy zz
由于调和函数有积分表示:
u 0, x , 又因为Dirichlet边值问题 的解唯一,故希望 u f
将此问题的解用积分表示出来。但由于在积分表达示中,u
u 在边界上的值虽然已知,而 在边界上的值却不知道.那么, n u 能否作为边界条件加上 | 的值呢?显然这是行不通的, n u | 因为,此时的解已经是唯一的了.那么只有想办法去掉 n 为此,引入格林函数的概念。
思考:Laplace方程Neumann问题有解的必要条件是什么?
华科数理方程总结

华科数理方程总结数理方程(Mathematical Equations)是数学中一个重要的研究领域,它涉及到数学方程的建立、求解和分析。
华中科技大学(HUST)是中国一所著名的综合性大学,在数理方程的研究方面也具有较高的声誉。
本文将对华科数理方程的研究进行总结。
首先,华科数理方程的研究内容非常丰富,包括常微分方程、偏微分方程、差分方程等不同类型的方程。
其中,常微分方程是研究关于未知函数的导数的方程,它在自然科学、工程技术等领域中具有广泛的应用。
华科数学院的研究人员在常微分方程的理论和应用方面具有深厚的研究基础,他们通过对方程的性质、解的存在性和稳定性等进行研究,为相关领域的发展提供了理论支持。
其次,华科数理方程的研究方法多样化,不仅包括数值方法、解析方法,还包括动力学系统理论、变分法、集合拓扑等方法。
数值方法是一种通过数值计算来求解方程的方法,它可以有效地解决一些复杂的方程。
华科数学院的研究人员在数值方法方面取得了显著的成果,他们开发了一系列高效、精确的数值算法,解决了多个实际问题。
除此之外,华科数学院还注重理论的推导和分析,通过对方程的特征和性质进行研究,进一步提高了方程的解析求解能力。
另外,华科数理方程的研究还涉及到一些具体的应用领域,如物理学、生物学、计算机科学等。
数学在这些领域中起着重要的作用,数理方程的研究为相关领域的发展提供了理论支持和实际解决方案。
华科数学院的研究人员不仅注重理论的研究,还积极参与到实际问题的解决中,以理论指导实践,为社会经济发展做出贡献。
华科数理方程的研究在国内外学术界享有很高的声誉。
华科数学院的研究成果在国内外学术期刊上发表,得到了同行的广泛认可。
华科数学院与国内外多个知名学府和科研机构合作,开展联合研究和学术交流,促进了数理方程研究的进一步发展。
总之,华科数理方程的研究涵盖了常微分方程、偏微分方程、差分方程等不同类型的方程,采用了多种研究方法,包括数值方法、解析方法、动力学系统理论、变分法、集合拓扑等。
数值分析常微分方程的数值解法

《计算机数学基础》数值部分第五单元辅导14 常微分方程的数值解法一、重点内容 1. 欧拉公式:),...,,,(),()(1-210=⎩⎨⎧+=+=≈01+1+n k kh x x y x hf y y x y kk k k k k局部截断误差是O (h 2)。
2. 改进欧拉公式:预报-校正公式:⎪⎩⎪⎨⎧++=+=++++)],(),([2),(1111k k k k k k k k k k y x f y x f hy y y x hf y y 校正值预报值即 ))],(,(),([211k k k k k k k k y x hf y x f y x f hy y +++=++ 或表成平均的形式:⎪⎪⎪⎩⎪⎪⎪⎨⎧+21=+=+=1+1+)(),(),(c p k p k k c k k k p y y y y x hf y y y x hf y y改进欧拉法的局部截断误差是O (h 3)3. 龙格-库塔法二阶龙格-库塔法的局部截断误差是O (h 3) 三阶龙格-库塔法的局部截断误差是O (h 4) 四阶龙格−库塔法公式: )22(643211κκκκ++++=+hy y k k其中 κ1=f (x k ,y k );κ2=f (x n +12h ,y k +21h κ1);κ3=f (x k +12h ,y n +21h κ2);κ4=f (x k +h ,y k +h κ3)四阶龙格-库塔法的局部截断误差是O (h 5)。
二、实例例1 用欧拉法解初值问题⎩⎨⎧1=060≤≤0--='2)().(y x xy y y ,取步长h =0.2。
计算过程保留4位小数。
解h =0.2, f (x )=-y -xy 2。
首先建立欧拉迭代格式),,)((.),(210=-420=--=+=21+k y x y y hx hy y y x hf y y k k k kk k k k k k k当k =0,x 1=0.2时,已知x 0=0,y 0=1,有y (0.2)≈y 1=0.2×1(4-0×1)=0.8000当k =1,x 2=0.4时,已知x 1=0.2, y 1=0.8,有 y (0.4)≈y 2=0.2×0.8×(4-0.2×0.8)=0.614 4 当k =2,x 3=0.6时,已知x 2=0.4,y 2=0.6144,有 y (0.6)≈y 3=0.2×0.6144×(4-0.4×0.4613)=0.8000例2 用欧拉预报-校正公式求解初值问题⎩⎨⎧1=10=++'2)(sin y x y y y ,取步长h =0.2,计算y (0.2),y (0.4)的近似值,计算过程保留5位小数。
数值分析-常微分方程初值问题的解法

2 e O ( h ) n 1
2阶的方法
是个隐式的方法, 要用迭代法求解
5、欧拉公式的改进:
• 隐式欧拉法 向后差商近似导数
y ( x ) y ( x ) 1 0 y ( x ) 1 h
y ( x1 ) y0 h f ( x1 , y ( x1 ))
多一个初值, 可能影响精度
• 改进欧拉法
Step 1: 先用显式欧拉公式作预测,算出 y Step 2: 再将 y
n1 n1
代入隐式梯形公式的右边作校正,得到
y y h f( x ,y ) n 1 n n n h y y x ,y )f( x ,y ) ] n 1 n [f( n n n 1 n 1 2
局部截断误差
2 h h y ( x ) y ( x ) [ f ( x , y ( x )) f ( x , y ( x ))] f ' ' ' ( ) n 1 n n n n 1 n 1 2 12
所以,有
h y y [ f ( x , y ) f ( x , y )] n 1 n n n n 1 n 1 2
例如:
=x+y , x [01 ,] y (0 )1 y
x
其解析解为: y x 1 2 e
但是, 只有一些特殊类型的微分方程问题能够得到用解析 表达式表示的函数解,而大量的微分方程问题很难得到其解 析解。 因此,只能依赖于数值方法去获得微分方程的数值解。
y =e , x [0,1] 例如: y(0) 1
i 0 ,, 1, 9
算例 分别用显式Euler方法,梯形方法和预估-校正Euler方法
华中科技大学数值分析实验报告

华中科技大学数值分析实验报告系、年级学号姓名类别硕士指导老师路志宏2013年4月13日实验 4.1实验目的:复化求积公式计算定积分实验题目:数值计算下列各式右端定积分的近似值3221(1)ln 2ln 321dx x -=--⎰121(2)41dx x π=+⎰102(3)3ln 3xdx=⎰221(4)xe xe dx =⎰实验要求:(1) 若用复化梯形公式、复化Simpson 公式和复化Gauss-Legendre I 型公式做计算,要求绝对误差限为71*102ε-=,分别利用它们的余项对每种算法做出步长的事前估计。
(2) 分别用复化梯形公式、复化Simpson 公式和复化Gauss-Legendre I 型公式作计算。
(3) 将计算结果与精确解作比较,并比较各种算法的计算量。
一、事前误差估计3221(1)ln 2ln 321dxx -=--⎰ 令 21()1f x x =- 则有2(2)234(31)()(1)x fx x -+=-(4)552424()(1)(1)fx x x =-+-故(2)52max ()27f x =(4)5808max ()243f x =由题中精度要求,可知对于复化梯形求积公式有22''()(32)52()()121227n b a h R f h f ηε--=-≤≤得步长h=5.582*10-4对于复化Simpson 求积公式有44(4)()(32)5808()()28802880243n b a h R f h f ηε--=-≤≤得步长h=0.04975对于复化Gauss-Legendre I 型求积公式有44(4)()(32)5808()()43204320243n b a h R f h f ηε--=≤≤得步长h=0.05494对于(2)~(4),其步长可以仿上加以确定,此处不再赘述,结果一并列表如下:二、利用求积公式进行计算利用上述求积公式进行计算,结果如下表:三、将计算结果与精确解作比较,并比较各种算法的计算量由上表中的误差分析可知,利用题目所要求的复化求积公式运算的结果均在误差限以内,精度满足要求。
华科数值分析期末复习总结

位(即截取按四舍五入规则) ,且该位到 x* 的第一位非 零数字共有 n 位,则称 x* 有 n 位有效数字
等价描述
设 x*为 x 的近似值,若 x* 可表示为
且有 x* = a1.a2···an10m (a10) |x - x*| 0.5 10m-n+1
如果存在一个简单易算的函数 P(x),使得
插值节点
P(xi) = f(xi),i = 1, 2, ... , n 则称 P(x) 为 f(x) 的插值函数
插值节点无需递 增排列,但必须 确保互不相同!
插值条件
求插值函数 P(x) 的方法就称为插值法
9
基函数插值法
基函数法
n+1 维线性空间
记
Zn(x) = {次数不超过 n 的多项式的全体}
Rn( x)
M n1 (n 1)!
n i0
x xi
计算插值点 x 上的近似值时,应选取与 x 相近插值节点
17
插值误差举例
例:已知函数 y = lnx 的函数值如下
x
0.4
0.5
0.6
0.7
0.8
lnx
-0.9163 -0.6931 -0.5108
-0.3567
-0.2231
试估计线性插值和抛物线插值计算 ln 0.54 的误差
24
差商举例
例:已知 y = (x) 的函数值表,试计算其各阶差商
i
0
1
2
3
xi
-2
-1
1
2
f(xi) 5
3 17 21
解:差商表如下
ex23.m ex24.m
微分方程数值求解方法

4. 二阶微分方程的数值求解
对于二阶微分方程
2 x 2 n x n x F cos t
引入变量u1、u2分别表示位移和速度,则可以化成2个一阶微分方程组
u 1 u2
2 u u1 2 F cos t 2 nu2 n
上述方程可以看成以t为参数,在(u1,u2)平面上曲线的切线矢量(斜率),就 能直接应用欧拉法或龙格库塔方法。
振动微分方程的数值方法 李 鹤 hli@
1. 数值求解微分方程的基本思想
每一个微分方程对应一条曲线。 微分方程的数值求解,实际上是计算一条未知曲线 的形状:它具有给定的起点并且满足一个给定的微 分方程。 “微分方程”可以看作能够通过曲线上任 意点的位置而计算出这一点的切线斜率的公式。 求解思路是,一开始只知道曲线的起点(假设为 A0),曲线其他部份是未知的,通过微分方程, A0 的斜率可以被计算出来,也就得到了切线。 顺着切线向前走一小步到点。如果我们假设是曲线 上的一点(实际上通常不是),那么同样的道理就 可以确定下一条切线,依此类推。在经过几步之后, 一条折线就被计算出来了。大部分的情况下,这条 折线与原先的未知曲线偏离不远,并且任意小的误 差都可以通过减少步长来得到。
在t1时刻,曲线上点 y t1 可以切线上的点代替,则
数值分析中的常微分方程数值求解

数值分析中的常微分方程数值求解常微分方程是自然科学中一类最为普遍的数学模型,涉及到热力学、物理、化工等多个领域。
然而,解常微分方程并非易事。
尤其是当我们面对一些复杂、非线性、多维的方程组时,常微分方程数值求解成为了一个十分关键的问题。
因此,数值求解方法成为了常微分方程研究中的重要组成部分。
本文将介绍一些数值解常微分方程的常见方法和应用。
1. 一般线性方法一般线性方法(general linear methods)是经典的常微分方程数值解法之一。
它以一种特殊的形式给出步进公式:$$ y_{n+1}=\sum_{i=0}^{s-1}\alpha_i y_{n-i}+h\sum_{i=0}^{s-1}\beta_i f(t_{n-i},y_{n-i}) $$ 其中,$y_{n}$为第$n$步的项值,$f(t_n,y_n)$为时间$t_n$处函数$y(t)$的导数。
$\alpha_i$和$\beta_i$是常数,可以通过确定如下特征方程来选择:$$ \sum_{i=0}^{s-1}\alpha_i\ lambda^{i}=0,~(\lambda\in C) $$ 与此同时,也可以通过选择$\beta_i$来使方法达到一定的准确性和稳定性。
2. Runge-Kutta方法比一般线性方法更为流行的方法是Runge-Kutta方法。
通常附加一个或多个修正以获得更好的数值稳定性和误差控制。
第1阶Runge-Kutta方法仅使用导数$f(t_n,y_n)$估算下一个项的值:$$y_{n+1}=y_n+hf(t_n,y_n)$$ 许多高阶方法可以使用中间的“插值”来更准确地估计下一个步骤:$$y_{n+1}=y_n+h\sum_{i=1}^kb_ik_i$$$$k_i=f(t_n+c_ih,y_n+h\sum _{j=1}^{i-1}a_{ij}k_j)$$ $k_i$是第$i$台车的估计值,$a_{ij}$和$b_i$在经典Runge-Kutta方法和其他变体中具有不同的取值。
数值微分方程求解方法与应用

数值微分方程求解方法与应用引言:数值微分方程求解方法是现代科学和工程领域中非常重要的一部分。
它们被广泛应用于各种领域,如物理学、化学、生物学、经济学等。
本文将介绍数值微分方程求解方法的基本原理和常见应用,并对其中的一些方法进行比较和分析。
一、数值微分方程的基本原理数值微分方程是描述自然现象和工程问题的数学模型,通常由一系列的微分方程组成。
求解这些微分方程的解析解往往是困难的,因此需要借助数值方法来近似求解。
1.1 欧拉法欧拉法是最简单的数值微分方程求解方法之一。
它基于微分方程的定义,通过离散化自变量的取值来近似求解微分方程。
欧拉法的原理是根据微分方程的导数来计算下一个点的函数值,并以此递推求解整个方程。
虽然欧拉法简单易懂,但由于其线性逼近的特性,误差较大,不适用于复杂的问题。
1.2 二阶龙格-库塔法二阶龙格-库塔法是一种改进的数值微分方程求解方法。
它通过对欧拉法的改进,引入了更多的导数信息来减小误差。
二阶龙格-库塔法的基本原理是通过计算两个不同的斜率来估计下一个点的函数值,并以此递推求解整个方程。
相比欧拉法,二阶龙格-库塔法的精度更高,适用于一些中等复杂度的问题。
1.3 龙格-库塔法的改进方法除了二阶龙格-库塔法,还有更高阶的龙格-库塔法可供选择。
这些方法通过计算更多的斜率信息来进一步减小误差。
其中最著名的是四阶龙格-库塔法,它通过计算四个不同的斜率来估计下一个点的函数值。
四阶龙格-库塔法的精度非常高,适用于大多数实际问题的求解。
二、数值微分方程的应用数值微分方程求解方法在各个领域都有广泛的应用。
以下是一些常见的应用示例。
2.1 物理学中的应用物理学是数值微分方程求解方法的重要应用领域之一。
例如,在天体力学中,数值微分方程可以用来模拟行星的运动轨迹和天体碰撞的过程。
在电磁学中,数值微分方程可以用来求解电场和磁场的分布情况。
这些模拟和求解过程都离不开数值微分方程求解方法的支持。
2.2 化学中的应用化学是另一个重要的应用领域。
数值分析常微分方程数值解法

(Numerical Methods for Ordinary Differential Equations )
中心差商近似导数
y( x1 )
y( x2 ) y( x0 ) 2h
y( x2 ) y( x0 ) 2h f ( x1 , y( x1 ))
x0
x1
x2
yi1 yi1 2h f ( xi , yi ) i 1, ... , n 1
假设 yi1 y( xi1 ), yi y( xi ) ,则可以导出 Ri y( xi1 ) yi1 O(h3 ) 即中点公式具有 2 阶精度。
只要f (x, y)在a,b R1上连续, 且关于 y 满足
Lipschitz 条件,即存在与 x, y无关的常数 L 使 | f (x, y1) f (x, y2 ) | L | y1 y2 |
对任意定义在 a,b上的 y1 x, y2 x都成立,
则上述IVP存在唯一解。
求函数 y(x) 在一系列节点 a = x0< x1<…< xn= b 处的近似值
yi y(xi ) (i 1, ... , n)
的方法称为微分方程的数值解法。 y1,L , yn 称为微分方程的数值解。
称节点间距 hi xi1 xi (i 0, ... , n 1)为步长, 通常采用等距节点,即取 hi = h (常数)。
三、初值问题的离散化方法
离散化方法的基本特点是依照某一递推公式, 按节点从左至右的顺序依次求出y(xi )的近似 yi 值(i 1, ... , n),取 y0。
微分方程的数值解法

微分方程的数值解法微分方程是数学中的一种重要的基础理论,广泛用于科学技术的研究中。
微分方程的解析解往往比较难求得,而数值解法则成为了解决微分方程的重要手段之一。
本文将阐述微分方程的数值解法,探讨一些经典的数值方法及其应用。
一、数值解法的基本思想微分方程的数值解法的基本思想是建立微分方程的差分方程,然后通过数值计算的方法求得差分方程的近似解,最终得到微分方程的数值解。
其中,差分方程是微分方程的离散化,将微分方程转化为差分方程的过程称为离散化或网格化。
离散化的目的是将连续问题转化为离散问题,使问题求解更为方便。
差分方程的计算通常需要将区间分成若干份,每一份都对应着一个节点,节点的个数与区间长度有关。
在每个节点处采集函数值,根据这些函数值计算出差分方程的值,再根据差分方程的迭代公式计算出每个节点的函数值。
因此差分方程的求解问题就转化成了求解节点函数值的问题。
二、欧拉法欧拉法是微分方程数值解法中最简单的一种方法,广泛应用于各种领域。
欧拉法的基本思想是运用泰勒公式,将函数在某一点展开成一次多项式,用两个相邻节点之间的差分来逼近导数的值,从而得到连续问题的离散解。
具体实现过程如下:1. 将微分方程的初始值问题区间[a,a]分成若干个小区间,每个小区间长度为a,共有a个节点,其中节点序列为a0,a1,a2,⋯,aa,节点之间的间隔为a。
2. 根据微分方程的迭代公式得到差分方程,即令aa+1=aa+aa(aa,aa)3. 按照差分方程的迭代公式,从初始值a0开始,逐一计算得到函数值,a1,a2,⋯,aa。
欧拉法的精度比较低,误差常常会较大,但是它运算速度快,实现简单,计算量小,因此在计算简单模型时常常使用。
三、龙格-库塔法龙格-库塔法是微分方程数值解法中精度最高的一种方法,具有比欧拉法更精确、更稳定的特点,广泛应用于各种实际问题中。
龙格-库塔法的主要思想是用多阶段逼近法估算每一步的函数值,从而提高时间的精度。
具体实现过程如下:1. 将微分方程的初始值问题区间[a,a]分成若干个小区间,每个小区间长度为a,共有a个节点,其中节点序列为a0,a1,a2,⋯,aa,节点之间的间隔为a。
微分方程的数值求解方法步骤

微分方程的数值求解方法步骤常微分方程数值解法(numerical methods for ordinary differential equations)计算数学的一个分支。
是解常微分方程各类定解问题的数值方法。
现有的解析方法只能用于求解一些特殊类型的定解问题,实用上许多很有价值的常微分方程的解不能用初等函数来表示。
简介常常须要建议其数值求解。
所谓数值求解,就是所指在解区间内一系列线性点处得出真解的近似值。
这就催生了数值方法的产生与发展。
定义做为数值分析的基础内容,常微分方程数值数学分析的研究已发展得相当明朗,理论上也十分健全,各类存有实用价值的算法已经创建,并已构成计算机软件。
它处置问题的思路与方法常可以用作略偏微分方程的数值解。
主要研究以下三类定解问题的数值数学分析:初值问题、两点边值问题与特征值问题。
初值问题的数值数学分析应用领域广为,就是常微分方程数值数学分析的主要内容。
在这方面存有突出贡献的学者当发推达赫奎斯特(dahlquist,g.)、巴特赫尔(butcher,j.c.)及吉尔(gear,c.w.)等人。
两点边值问题及特征值问题的研究相对较为脆弱,其中凯勒尔(keller,h.b.)的工作影响很大。
基本途径结构常微分方程数值算法的基本途径存有:1、用差商替代导数。
将微分问题中未知函数及其导数分别用在某些离散点处函数值的组合与差商近似替代。
2、数值积分法。
将微分问题转变为等价的分数方程问题,用各种数值积分公式近似计算未明函数的分数。
3、待定系数法。
把欲构造的计算公式写成在离散点函数值之线性组合的待定系数形式,利用函数的泰勒展开式与对公式的精度要求,确定公式的系数。
4、平均值余量法。
根据微分方程余量极小化后的建议,确认计算公式。
基本问题常微分方程数值数学分析研究的基本问题存有:1、构造计算公式;2、研究算法的相容性、精度阶与收敛性,估算局部与整体截断误差;3、研究在计算过程中舍入误差传播与积累的规律,即方法的稳定性问题;4、算法的数值同时实现问题,力图以较小的排序工作量与可信的软件系统,在计算机上得出满足用户精度建议的计算结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab作图显示
从表和图可以看出,改进的Euler法的精度提高了 不少。
11
Euler公式的m函数程序:
function y=Euler(f,a,b,n,ya) h=(b-a)/n;y(1)=ya; for i=1:n x=a+(i-1)*h; y(i+1)=y(i)+h*feval(f,x,y(i)); End
算例3:分别用Euler公式和改进的Euler公式求解:
⎧ y′ = x 2 + x − y, 0 ≤ x ≤ 1 (1) ⎨ 精确解:y = x 2 − x + 1 - e -x y (0) = 0 ⎩
取步长 h = 0.1 ,计算y(0.5)的近似值
解:欧拉公式:
⎧ yi +1 = yi + 0.1( xi2 + xi − yi ) , i = 0, 1,", 9 ⎨ ⎩ y0 = 0
¾ 求解区间离散化 点{x k } ,使 a = x0 < x1 < ... < xn < xn+1 < ... < xN = b
] 将求解区间 [a , b]离散化,是在 [a , b 上插入一系列的分
记 hn = xn+1 − xn ( n = 0,1,..., N − 1)称为步长,一般取hn = h b−a ( n = 0 , 1 , 2 ,..., N ) x = x + nh h = (常数),节点为 n 0 N , a b 称为等步长节点 。
y′( x1 ) ≈
向后差商近似导数
y( x1 ) ≈ y0 + h f ( x1 , y ( x1 ))
y( x1 ) − y( x0 ) h
x0 x1
y n+1 = y n + h f ( xn+1 , yn+1 ) (n = 0 , ... , N −1 )
由于未知数 yn+1 同时出现在等式的两边, 不能直接得到,故称为隐式 /* implicit */ 欧拉公式,而前者称 为显式 /* explicit */ 欧拉公式。 一般先用显式计算一个初值,再迭代求解。即
注:此法亦称为预测-校正法 /* predictor-corrector method */。 可以证明该算法具有 2 阶精度,同时可以看到它是个单 步递推格式,比隐式公式的迭代求解过程简单。后面将 看到,它的稳定性高于显式欧拉法。
9
§1 Euler’s Method
例
作为比较,我们仍用Euler法中的那个例子。 2x ⎧ ′ = − y ⎪y ( 0 < x < 1) y ⎨ ⎪ xn yn ⎩ y(0) = 1 0.1 1.0959 解:改进的Euler公式为 0.2 1.1841 2 xn ⎧ ⎪ y p = yn + h( yn − y ) 0.3 1.2662 n ⎪ 0.4 1.3434 2 xn+1 ⎪ ) ⎨ yc = yn + h( y p − 0.5 1.4164 y p ⎪ 0.6 1.4860 1 ⎪ y n + 1 = ( y p + yc ) 0.7 1.5525 ⎪ 2 ⎩
如果说表格仍不够直观的话,我们用Matlab做出积分曲 线与近似值的图,如下: 5
§1 Euler’s Method
在图上似乎数值解与 曲线的偏差不是很大, 但不要忘记这只是在0到 1范围内的。通过后面用 其他方法解本题,大家 便会发现Euler方法误差 其实是很大的。
Matlab作图显示
y′ = 2( x + 1) ⎧ 例: ⎨ 其精确解为 y=(x+1)2+1 ⎩y(0) = 2 由 y(0)=2 ,过该曲线上一点 (0,2) 作曲线
第五章 常微分方程数值解
/* Numerical Methods for Ordinary Differential Equations */
考虑一阶常微分方程的初值问题 /* Initial-Value Problem */:
⎧ dy ⎪ = f ( x, y) ⎨ dx ⎪ ⎩ y(a ) = y0 x ∈ [a , b ]
h = yn + [ f ( x n, yn) + f ( x n+1 , yn+1 )] 2
( n = 0, ... , N − 1)
h [ f ( xn , yn ) + f ( xn+1 , yn + h f ( xn , yn ))] 2
y p = yn + hf ( x n , yn ) , yc = yn + hf ( x n +1 , y p ) yn+1 1 = ( y p + yc ) 2
改进的Euler公式: ⎧ yi +1 = yi + 0.1( x i2 + x i − yi ) ⎪ 0.1 2 ⎪ 2 = + + − + y y ( x x y x i = 0,1,2, " ,9 ⎨ i +1 i i i i i +1 + xi +1 − yi +1 ) 2 ⎪ y =0 ⎪ ⎩ 0
x0 x1 x2 ... xn-1 xn
2
¾ 将微分方程离散化 将微分方程离散化,通常有下述方法: (1)差商逼近法 即是用适当的差商逼近导数值。 (2)数值积分法 基本思想是先将问题转化为积分方程
y( xm ) − y( xn ) =
∫
xm xn
f ( x , y ( x )) dx
( y ( x0 ) = y0 )
(0) yn + 1 = y n + hf ( x n , y n )
( k +1) (k ) yn = y + hf ( x , y n n+1 n + 1 ) k = 0 ,1 , 2 , " +1
(k ) 如果迭代过程收敛,则某步后 yn+1就可以作为 yn+1,从而进行 下一步的计算。
7
# 梯形公式 /* trapezoid formula */
∫
本章的任务:计算出解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b
yn ≈ y( xn ) ( n = 1, ... , N ) 处的近似值 。
建立常微分方程数值方法的基本思想
) 微分方程数值解法,其实是求出方程的解 y( x在一系 列离散点上的近似值。则微分方程数值解的基本思想 是:求解区间和方程离散化。
14
¾Taylor级数
函数y (x)在展开点x0作Taylor级数展开, x是被展开点。
1 1 (n) 2 y( x) = y( x0 ) + y′( x0 )( x- x0 ) + y′( x0 )( x- x0 ) +"+ y ( x0 )( x- x0 )n +" n! 2!
§1 Euler’s Method
x1
y n + 1 = y n + h f ( x n , y n ) ( n = 0, ... , N − 1)
例. 求初值问题 2x ⎧ ⎪ y′ = y − ( 0 < x < 1) y ⎨ ⎪ ⎩ y(0) = 1 解:本题的Euler公式的具体形式为
yn+1
例如对欧拉法有ϕ ( x n , yn , h) = f ( x n , yn ), 隐式欧拉法有
ϕ 含有 y n + 1时,方法是隐式的, ϕ 不含有 y n + 1时,方法是显式的。
从 x0开始计算,如果考虑每一步产生的误差,直到 x n 则有误差 en = y( x n ) − y n ,称为该方法在 x n 的整体截断误 差,分析和求得整体截断误差是复杂的。为此,我们仅考 虑从 x n 到 x n + 1的局部情况,并假设 x n 之前的计算没有误 差,即 yn = y( x n ) ,下面在给出单步法的局部截断误差概念 前,先给出Taylor展式的概念。
Pn
xn
B
x n +1
# 两步欧拉公式 /* midpoint formula */
中心差商近似导数
y′( x1 ) ≈
y ( x ) ≈ y ( x 0 ) + 2 h f ( x1 , y ( x1 ))
y ( x 2 ) − y ( x0 ) 2h
x0 x1 x2
yn+1 = yn−1 + 2h f ( xn , yn ) n = 1, ... , N − 1
2 xn = yn + h( yn − ) yn
4
§1 Euler’s Method
取步长h=0.1。我们将计算结果与其解析解的精确值一同 y( x n ) 列在下表中,其中 x n 是节点,y n 是节点上的近似值, 是精确值,结果见下表:
xn
yn
y( xn )
xn
yn
y( xn )
0.1 0.2 0.3 0.4 0.5
的切线,其斜率: dy 切线为:
y − 2 = f ( 0, 2 ) ( x − 0 )
6
dx
= f ( 0, 2 )
x=0
由此, 可计算出 y1 , y1 = 2 + f (0, 2)*1 = 4 类似地, 可计算出 y2 , … 故欧拉法又称欧拉折线法。
§1 Euler’s Method
#
隐式欧拉法 /* implicit Euler method */
8
# 改进欧拉法 /* modified Euler’s method */