求解方程数值近似解

Overview

Solve x \sqrt{x} x 12

Babylonian:巴比伦算法/牛顿法 23

// 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 x0=1 泰勒展开

x ≅ 1 + 1 2 ( x − 1 ) − 1 4 ( x − 1 ) 2 2 ! + 3 8 ( x − 1 ) 3 3 ! − 15 16 ( x − 1 ) 4 4 ! + ⋯ \sqrt{x} \cong 1+\frac{1}{2}(x-1)-\frac{1}{4} \frac{(x-1)^{2}}{2 !}+\frac{3}{8} \frac{(x-1)^{3}}{3 !}-\frac{15}{16} \frac{(x-1)^{4}}{4 !}+\cdots x 1+21(x1)412!(x1)2+833!(x1)316154!(x1)4+

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

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


  1. Methods of computing square roots ↩︎

  2. 常用的平方根算法详解与实现 ↩︎ ↩︎ ↩︎

  3. 平方根-泰勒展开式求法 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨光ABC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值