求解方程数值近似解

Last updated on November 26, 2023 pm

Solve $\sqrt{x}$ [1][2]

Babylonian:巴比伦算法/牛顿法 [2][3]

1
2
3
4
5
6
// c++ code
double ans=1, pre=0;
while(abs(ans-pre)>1e-6){
pre=ans;
ans=(ans+x/ans)/2;
}

基于泰勒公式的级数逼近 [2]

在 线性化点 $x_0=1$ 泰勒展开

根据该公式我们可以在一定精度内逼近真实值,不过这个公式仍然存在一个问题,即是公式的收敛问题。

在泰勒级数展开中,平方根函数的公式当且仅当参数值位于一个有效范围内时才有效,在该范围内计算趋于收敛。该范围即是收敛半径,当我们对平方根函数用 $x_0=1$ 进行计算时,泰勒级数公式希望x处于范围: $0<x<2$ 之间。如果x在收敛半径之外,则展开式中的项会越来越大,泰勒级数离答案也就越来越远。为了解决该问题,我们可以考虑当待开平方数大于4时以4去除它,最后将得到的数乘以相同次数的2即可。

Code with Online Compiler

Reference


求解方程数值近似解
https://cgabc.xyz/posts/52064f73/
Author
Gavin Gao
Posted on
May 1, 2022
Licensed under