Euler法
欧拉法为一阶泰勒展开逼近局部函数(隐式方程),通过调整步长不断靠近零点
使用\(f(x_i,y_i)\)线性组合得到\(y(x_{i+1})\)的近似值\(y_{i+1}\)
- 欧拉法:每步计算1次\(f(x_i,y_i)\),为一阶方法,误差为\(O(h^2)\)
- 改进欧拉法:每步计算2次\(f(x_i,y_i)\),为二阶方法,误差为\(O(h^3)\)
Runge-Kutta法
Runge-Kutta法要求解析解具有较好的光滑性
一阶Runge-Kutta法:
- 利用一阶欧拉法思想,每步计算区间\(【x_i,x_{i+1}】\)内多个点的斜率值,然后将其加权平均作为平均斜率,也不必计算更高阶的泰勒项
二阶Runge-Kutta法:
- 对改进欧拉法的进一步改进,满足一定条件的计算格式簇统称为二阶龙格-库塔格式,其包含改进欧拉法
四阶经典龙格-库塔格式
应用实例,定步长
\(\left\{\begin{matrix} \frac {d^y}{dx} =2xy, &0<x<1\\y(0)=1 &\end{matrix}\right.\)
显然解析解:\(y=e^{x^2}\)
令斜率\(y'=f(x,y)=2xy\),\(x_0=0,y_0=1,h=0.2\)
\(k_1=f(x_0,y_0)=0\)
\(k_2=f((x_0+h)/2,y_0+hk_1/2)=f(0.1,1)=0.2\)
\(k_3=f((x_0+h)/2,y_0+hk_2/2)=f(0.1,1.02)=0.204\)
\(k_4=f(x_0+h,y_0+hk_3)=f(0.2,1.0408)=0.41632\)
\(x_1=x_0+h=0+0.2=0.2\)
\(y_1=y_0+(k_1+2k_2+2k_3+k_4)*0.2/6=1.040811\)
\(e^{0.2^2}=1.04081077419\)
Adams 亚当姆斯法
将已知节点值加权平均
标签:Kutta,0.2,一阶,Euler,Runge,欧拉 From: https://www.cnblogs.com/invo/p/18594565