牛顿迭代法

牛顿迭代法

介绍

牛顿法是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。牛顿法常用来求解非线程方程近似根。牛顿法通过迭代的方式去逼近方程的解。

原理

如图所示,牛顿法通过迭代的方式去逼近方程的解,通过利用初始点的斜率去逼近方程的根。而点的斜率公式又可以通过方程的导数得出。我们在(x0,f(x0))斜率做斜线f'(x0),求出与X轴的交点x1,重复以上过程直到f(xn)无限接近于0即可。

请添加图片描述

​ 设有一非线性方程f(x),为了求该方程的根,可以设一个初始值x0,设该点的斜率方程为f'(x0),那么f'(x0)和X轴有交点x1。那么,可以得出x1=x0-f(x0)/f'(x0)。求出x1后就继续求x2x3。直至f(xn)接近于0,当然也可以用两个点xnxn-1之间的差接近于0来代表迭代的结束;于是有以下公式:
x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1}=x_{n}-\frac{f\left(x_{n}\right)}{f^{\prime}\left(x_{n}\right)} xn+1=xnf(xn)f(xn)

例题

leetcode第69题.x的平方根

69. x 的平方根 - 力扣(LeetCode)

如题:

请添加图片描述

解题思路:

x 的平方根 - x 的平方根 - 力扣(LeetCode)

注意题目不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 ,去求要求的数的平方根

在解题中设待求平方根的数为C,那么求平方根的公式为
f ( x ) = x 2 − C f(x)=x^{2}-C f(x)=x2C
然后根据上面的牛顿迭代公式:
x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1}=x_{n}-\frac{f\left(x_{n}\right)}{f^{\prime}\left(x_{n}\right)} xn+1=xnf(xn)f(xn)
可以得出:
x i + 1 = 1 2 ( x i + C x i ) x_{i+1}=\frac{1}{2}\left(x_{i}+\frac{C}{x_{i}}\right) xi+1=21(xi+xiC)
然后题目设x0=C为初始值
x 0 = C x_{0}=C x0=C
通过迭代去逼近方程中的其中的一个解,即是C的平方根
x = C x=\sqrt{C} x=C

posted @   鸭梨的药丸哥  阅读(367)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示