Processing math: 80%

求方程数值解

本文将针对求解方程数值解的方法进行总结。

牛顿法

原理

图片名称

选择一个接近函数f(x)零点的x0,计算相应的f(x0)和切线斜率f(x0)。然后我们计算穿过点(x0,f(x0))且斜率为f(x0)的直线和x轴交点的x坐标,也就是求如下方程解:

0=(xx0)f(x0)+f(x0)

然后开始下列迭代公式进行迭代,求解f(x)=0的解:

xn+1=xnf(xn)f(xn)

二次收敛条件

  1. f(x)0
  2. f连续
  3. x_0足够接近解

应用

使用牛顿法求解开普勒方程f(E)=E-M-e\sin E=0

1
2
3
4
5
6
7
8
9
10
11
E = M;
i = 0;

while ( abs(E-E_ref)> 1e-10 )
i = i+1;
E = E - (E-e*sin(E)-M)/(1-e*cos(E));
fprintf('%3d ', i);
fprintf('%16.11f ', E);
fprintf('%11.2e ', abs(E-E_ref));
fprintf('%6d \n', 2*i);
end

Reference

0%