学习欧拉法/龙格-库塔法心得

时间:2024-04-11 13:12:25

泰勒公式

若 f(x) 在 x = 0 点直到 n + 1 阶连续导数,则
学习欧拉法/龙格-库塔法心得
学习欧拉法/龙格-库塔法心得
称为 f(x) 在 x = 0 点关于 x 的幂函数展开式,又称为 Taylor 公式,式中Rn(x)叫做 Lagrange 余项。

欧拉方法

考虑一阶常微分方程的初值问题
学习欧拉法/龙格-库塔法心得

前向欧拉公式

学习欧拉法/龙格-库塔法心得

跟泰勒展开相比,是只取前两项,舍去高次项,f(xn,yn) 表示 f 在 (xn,yn) 处的一阶导数,所以yn估计的误差是h2的无穷小。

还有后向欧拉算法、梯形公式、改进的欧拉算法,后向欧拉算法和梯形公式是隐式算法,前向欧拉算法和改进的欧拉算法是显式算法。欧拉算法计算容易,但是精度低,梯形公式精度高,但是是隐式形式,不易求解。将两式结合,则可以得到改进的欧拉公式。先用欧拉公式求出yn+1的一个粗糙的估计值,再用梯形方法进行精确化,称为校正值。

因为龙格-库塔算法是从前向欧拉算法中推出来的,所以不详细说明了。

龙格-库塔算法

在欧拉方法的基础上,改进其精度,考虑在yn和yn+1之间架个桥,先按照欧拉方法算一下到终点要在原来的yn上累加的近似值:
学习欧拉法/龙格-库塔法心得
于是中间那个点的坐标值可以大概估计一下为

学习欧拉法/龙格-库塔法心得
在这个点的导数为
学习欧拉法/龙格-库塔法心得
  以中间值的导数为为跳板,根据欧拉方法,从起点yn到达终点yn+1需要在中点累加的值:
  学习欧拉法/龙格-库塔法心得
  即
  学习欧拉法/龙格-库塔法心得
  这种方法通过逐阶逐阶迭代消除了误差项,因此在二阶R-K时误差已经是 hh 的三阶无穷小了。
  学习欧拉法/龙格-库塔法心得
  那么经典的4阶定长R-K算法也差不多,同理,先计算起点到终点的需要累加的近似值,然后获取近似中点1位置坐标,求该点导数,以这个导数为跳板,再次计算起点到终点的需要累加的近似值,接着再求这个近似值的近似中点2的坐标,求导数,最后以这个导数为跳板,计算从起点到终点的近似累加值。最后得到估计的yn+1。
  学习欧拉法/龙格-库塔法心得
  以上 k1、k2、k3、k4都是从起点ynyn到达终点yn+1需要在中点累加的值的估计,因此对 k1、k2、k3、k4加权平均,得到(由于在此是为了使用,仅获得基本的理解,因此没有详细的推导最后加权是如何计算出来的了):
疑问一:为什么第一点和第二点的横坐标相同?希望我编完程就懂了。

学习欧拉法/龙格-库塔法心得
参考:

  1. https://blog.csdn.net/qq_29080067/article/details/80157857
  2. https://blog.csdn.net/susanliuliu28/article/details/78804759
  3. https://wenku.baidu.com/view/bc71a037bf1e650e52ea551810a6f524ccbfcbba.html