牛顿拉弗森迭代法

牛顿拉弗森迭代法

  1. 原始数学问题

    ​ 在以前的数学家研究函数的根点的时候,牛顿和拉弗森分别都发现了一种使用作图来求解根点的方法。根点 --- 方程的 0 点

    如下图的 f ( x ) = x 2 f(x) = x ^ 2 f(x)=x2

如果我们随机在定义域里面取一个值作为我们的始点 x n x_n xn 并且我们做一条经过 ( x n , f ( x n ) ) (x_n,f(x_n)) (xn,f(xn)) 的切线如下图

而该切线的方程我们可以知道是: f ( x n ) − 0 = f ′ ( x n ) ( x n − X ) f(x_n) - 0 = f^{'}(x_n)(x_n -X) f(xn)0=f(xn)(xnX) ,接着我们可以导出这条切线的根点也就是

X = x n − f ( x n ) f ′ ( x n ) X = x_n - \frac{f(x_n)}{f^{'}(x_n)} X=xnf(xn)f(xn)

我们可以发现上面公司导出的 X X X 是接近我们的 0点的因此我们可以选择使用 这个 X X X 来作为我们的新的 x n + 1 x_{n+1} xn+1

使用这个新的数字作为所及的一个点,然后在 $ (x_{n+1},f(x_{n+1})) $的新的切线然后再求一个新的 x n + 2 x_{n+2} xn+2

如此迭代我们就能求到一个逼近的根点。

但是这个办法也不是在所有的函数都适用,我们发现上面的公司里面有出现 f ′ ( x n ) f^{'}(x_{n}) f(xn) 作为分母,因此我们在$f^{’}(x_{n}) == 0 $ 的时候是不能使用这种办法的。

使用牛顿拉弗森法求开平方

求解平方的问题,其实可以转化成为 $f(x) = x^2 - n = 0 $ 因此我们直接使用上面的公司进行迭代就行了。

int sqrt(int n){
 	int t= n / 2;
  while(t*t>n){
    t = (t + n / t)/2;
  }
  return t;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值