111-112. 龙格库塔法
第9分钟开始。
应用最多得,且精度高。
Tylor展开法 可以构造出高阶数值方法,但是要涉及到计算
f(x,y)
的高阶导数,不方便。
龙格库塔法就是避免求高阶导数,的高阶数值方法。
基本思想:
转化为积分问题,而定积分使用待定的m点插值型求积公式构造,进而展开处理。
构造原理:
∫xk+1xky′(x)dx=y(xk+1)−y(xk)=∫xk+1xkf(x,y(x))dx
1.定积分使用
待定的m点插值型求积公式:
y(xk+1)=y(xk)+∫xk+1xkf(x,y(x))dx≈y(xk)+h∑i=1mcif(ξi,y(ξi)),ξi∈[xi,xi+1]
2.做 符号 和 近似 变化:
yk+1=yk+h∑i=1mciKiK1=f(xk,yk)K2=f(xk+a2h,yk+hb21K1)K3=f(xk+a3h,yk+h(b31K1+b32K2))K4=f(xk+aih,yk+h∑j=1i−1bijKj)(1)
- 其中,
ai,bij,ci
是待确定的参数,确定他们的原则就是:
使近似公式(1)在
(xk,yk)
处的Tylor展开式 与
y(x)
在
xk
处的Tylor展开式前面的项尽可能多地重合。
推导过程就是,对比两个展开式前面的系数,求解相应的参数。
已经证明,m=2,只能得到二阶公式,不论如何选取参数。
我们用到的四阶龙格库塔公式(m=4):
yk+1=yk+h6(K1+2K2+2K3+K4)K1=f(xk,yk)K2=f(xk+h2,yk+h2K1)K3=f(xk+h2,yk+h2K2)K4=f(xk+h,yk+hK3)
105-106. 常微分方程初值问题 数值解法
1. 常微分方程的初值问题
微分方程(Differential equation,DE)是一种数学方程,用来描述某一类函数与其导数之间的关系。微分方程的解是一个符合方程的函数。
因此,解析方法求解的目的是 求函数
y(x)
。
F(x,y,y′,y′′,⋯)=0F(x,y,y′)=0
考虑简单一些且有代表性的一类微分方程
y′(x)=f(x,y(x))
【注】:
x
是
y
的自变量;特殊的一类自变量是时间
t
。
解析方法的思路是先求通解,再求特解;
数值方法的思路是直接求
特解。
常用方法:
欧拉法、龙格库塔法、线性多步法。
举例:(单摆)振动问题
θ¨+gtsinθ=0θ(0)=30∘,θ˙(0)=0
给定了如上的微分方程,又给出了初值,来求其解的问题,叫微分方程的初值问题。
微分方程的初值问题的数值解法,是求
y(x)
的一些点上的值,之后再应用前边拟合的方法,找到
y(x)
的近似函数。
2. 建立数值解法的思路与方法
1.首先,进行离散化,化为差分方程。(微分方程本身是连续的)
方法是:再自变量区间
[a,b]
上插入一些点
xi
,就离散化了。
步长:
h=xk+1−xk
单步法:用到前面一个点,
y0−>y1−>⋯−>yk
;
多步法:用到前面多个点;
求解下一个点,分为显格式、隐格式(需要通过方程求解)。
故有:单步-显;单步-隐;多步-显;多步-隐
数值积分法、数值微分法、Tylor展开法可以把导数去掉。
2.解差分方程,做 符号 和 近似 变化,得到
yk
数值微分法:
1.可以替代导数得微分形式
y′(xk)=f(xk,y(xk))≈y(xk+1)−y(xk)xk+1−xk
2.做 符号 和 近似 变化:
yk+1−ykh=f(xk,yk)
即,得欧拉公式:(且为显式单步法)
yk+1=yk+hf(xk,yk)
数值积分法:
1.取积分,且用数值积分(最简单得梯形公式)代替积分
∫xk+1xky′(x)dx=∫xk+1xkf(x,y(x))dx=y(xk+1)−y(xk)≈h2[f(xk,y(xk))+f(xk+1,y(xk+1))]
2.做 符号 和 近似 变化:
yk+1−yk=h2[f(xk,yk)+f(xk+1,yk+1)]
即得梯形公式(且为隐式单步法)
yk+1=yk+h2[f(xk,yk)+f(xk+1,yk+1)]
往往最简单得东西最好用。
Tylor展开法:
y(xk+1)=y(xk+h)=y(xk)+hy′(xk)+h22!y′′(xk)+⋯=y(xk)+hf(xk,y(xk))+h22!ddx[f(x,y(x))]|x=xk+⋯
如果右端取一阶近似:就得到欧拉公式
yk+1=yk+hf(xk,yk)
3.数值解法得误差、阶、绝对稳定性
(补107-108-109)
以欧拉方法、改进得欧拉方法为例分析(110-111)