常微分方程初值问题的数值解法
- 格式:doc
- 大小:80.96 KB
- 文档页数:7
常微分方程初值问题数值解法
初值问题:即满足初值条件的常微分方程的解
y′=f(x,y),x∈[x0,b]
y(x0)=y0.
首先,常微分方程得有解---有解条件----利普希茨条件---
定理1 (利普希茨条件)若存在正数L,使得对任意 ,y1,y2 ,有
|f(x,y1)−f(x,y2)|≤L|(y1−y2)|
定理2 (解存在性) ①若函数 f 在方区域 x∈[a,b],y∈R 连续,②函数 f 关于y满足利普希茨条件,
则对任意 x∈[a,b] ,常微分方程存在唯一的连续可微数值解.
由于原函数是无法精确求解出来的,我们只需要求解在某点的值就好
两类问题:
①单步法 ---计算下一个点的值 yn+1 只需要用到前面一个点的值 yn
②多步法---计算下一个点的值 yn+1 需要用到前面 l 个点的值 yl
1、欧拉法---下一个点的计算值等于前一个点的计算值加上步长乘以前一个点的函数值
①初值条件:给出因变量在某个点上的值
• 具体过程
第一步:将初值条件带入微分方程,得到在该点的导数值
第二步:在该点,用taylor进行展开,舍去二次项,将一次函数近似函数y
第三:计算第二个点在直线上的值,用这个值近似函数 y(x)
的在第二个点的值,依此类推,直到迭代完成
一些批注:显式欧拉方程指下一步要计算的值,不在迭代方程中;隐式欧拉方程指下一步要计算的值,在迭代方程中。
怎么计算隐式欧拉方程----要借助显示欧拉迭代计算---一般用迭代法
-----迭代---将微分方程在区间 [xn,xn+1] 进行积分,然后函数f进行近似,即可得到迭代方程-----迭代方程收敛性?由函数关于y满足利普希茨条件,可以推出迭代公式收敛。
• 局部截断误差:假设前n步误差为0,我们计算第n+1步的误差,将次误差称为局部截断误差,且局部误差为 O(hp+1)
• p阶精度:由理论证明:若局部误差阶的时间复杂度为 O(hp+1)
,则整体误差阶为 O(hp) 我们称公式精度为p。
• 显示欧拉法与隐式欧拉法
评价:
① 精度为1(整体)
②误差阶为2(局部)
• 梯形方法----将显式欧拉迭代方程与隐式欧拉迭代方程做一下加权平均,构造的计算公式.
• 改进的欧拉方法---
思想:因为梯形公式是隐式公式,将显式欧拉公式对下一步的计算值进行预估,用梯形公式对下一步的计算值进行校正.
评价:
① 精度为2(整体) ②误差阶为3(局部)
2、龙格-库塔方法 思想:根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以前一个点的斜率;而这个斜率用该区间上的多个点的斜率的算数平均来逼近。
注意:怎么计算任意斜率 Ki ?第 i 个点的斜率 Ki 有微分方程可以算出 f′=f(xn,yn)
所以要算的 f(xn,yn) 值,由欧拉法即可算出, yn+1=yn+hf′
• 2阶-龙格-库塔方法----类似改进的欧拉法
根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以斜率;而这个斜率用区间上的端点和中点的斜率的算数平均来逼近。
yn+1=yn+hK,K=c1K1+c2K2
其中, K1=f(xn,yn),K2=f(xn+0.5h,yn+0.5K1).
2阶龙格-库塔方法--局部误差为 O(h3) (误差阶为3);整体误差 O(h2) (精度为2)
• 4阶-龙格-库塔方法
k1为区间左端点的斜率;
k2为区间中点的斜率,通过欧拉法,用斜率k1确定函数f在中点上的斜率k2
k3也是区间中点的斜率,通过欧拉法,用斜率k2确定函数f在中点上的斜率k3
k4是区间右端点的斜率,通过欧拉法,用斜率k3确定函数f在端点上的斜率k4
4阶-龙格-库塔方法----局部误差 O(h5) ; 整体误差为 O(h4)
2.1 单步法收敛性与稳定性
• 收敛性: 对任意固定的点,函数y在该点的真实值,随着迭代步数增加,所用公式的计算值都会趋于所产生的近似值都趋于真实值,称该方法收敛
公式收敛性判别:函数 f 对y满足利普希茨条件(充分条件),则数值微分求解公式是收敛的、
相容:欧拉法的增量函数与函数 f 相等,则称
欧拉法与初值问题是相容的
• 稳定性:微分方程数值法在某点的计算值发生细微的扰动 δ ,之后的计算值所产生的误差不超过 δ ,则称该方法稳定。
绝对稳定:在稳定的微分数值解法中,当某一步计算值有误差时,以后计算值的误差不会扩大,则称这种稳定是绝对稳定。
绝对稳定域:就是小区间的步长,使得微分数值公式是绝对稳定,而这些步长构成的区间称为绝对稳定域.
3、线性多步法 思想:下一次的计算值等于前 l 个的计算值的算法平均加上步长乘以多个斜率的算数平均
• 阿当姆斯外插法
思想:下一次的计算值等于前一次的计算值加上过前 l
个的计算值的插值函数在区间 [xn,xn+1] 上的积分
yn+1=yn+∫xnxn+1f(xn,yn)dx
• 阿当姆斯内插法
思想:下一次的计算值等于前一次的计算值加上过前 l 个的计算值的插值函数在区间上的积分