牛顿迭代公式(详细)

您所在的位置:网站首页 切线方程的书写形式是什么 牛顿迭代公式(详细)

牛顿迭代公式(详细)

2024-01-17 08:34| 来源: 网络整理| 查看: 265

牛顿迭代公式 X n + 1 = X n − f ( x ) f ′ ( x ) X_{n+1} = X_n -\frac{f(x)}{f'(x)} Xn+1​=Xn​−f′(x)f(x)​

上网搜了很久,搞懂了一点,简单记录一下

其实弄懂了一点后会发现它并不是很高大上😅

.

先来一段代码

求9的平方根,java实现 public static void main(String[] args) { double t = 9; while (Math.abs(t-9.0/t)>.001)//牛顿迭代公式 ↓ t = (9.0/t + t) /2.0; // (a/xn + xn) / 2.0 System.out.println(t); } //

运行结果 3.00009155413138

牛顿迭代公式求平方根并不能算出准确的值,只能无限接近. 这里精确度还不是很高,一般情况下是够用了,如果需要更精确,改一下while条件即可. 下面来说一下牛顿迭代公式的原理

牛顿法最初由艾萨克·牛顿在《流数法》(Method of Fluxions,1671年完成,在牛顿去世后于1736年公开发表)中提出。约瑟夫·鲍易也曾于1690年在Analysis Aequationum中提出此方法。

11

求导

首先,我们知道要对哪个数开方,比如现在我们要求出 9 2 \sqrt[2 ]{9 } 29 ​,那么可以写出 x 2 − 9 = 0 x^2-9=0 x2−9=0,这一步我想应该没有人看不懂.

. . . . . . . . . . . . f ( x ) = x 2 − 9 f(x) = x^2-9 f(x)=x2−9 . . . . . . . 切线 然后画出它的二维图形,并作出点 ( 9 , f ( 9 ) ) (9,f(9)) (9,f(9))处的切线,切线方程可以表示为 . . . . . . . . . . . . . y − f ( 9 ) = f ′ ( 9 ) ∗ ( x − 9 ) y-f(9)=f'(9)*(x-9) y−f(9)=f′(9)∗(x−9) . . . . . 切线方程. . . . . . . . . . . . x = y − f ( 9 ) f ′ ( 9 ) + 9 x= \frac{y-f(9)}{f'(9)}+9 x=f′(9)y−f(9)​+9 . . . . . . . . . . . . 当 y = 0 y=0 y=0时,. . . . . . 我们求到了 x = 5 x=5 x=5 这样就朝着结果近了一步 我们的目标 9 \sqrt{9} 9 ​的解为3,切线与x轴的交点为5,显然不是答案,我们还得继续做点 ( 5 , f ( 5 ) ) (5,f(5)) (5,f(5))的切线 再切

又近了一步耶

. . . . . . . . . . . . y − f ( 5 ) = f ′ ( 5 ) ∗ ( x − 5 ) y-f(5)=f'(5)*(x-5) y−f(5)=f′(5)∗(x−5) . . . . . .切线方程. . . . . . . . . . . . x = y − f ( 5 ) f ′ ( 5 ) + 5 x=\frac{y-f(5)}{f'(5)}+5 x=f′(5)y−f(5)​+5. . . . . . . . . . . . 同样,当 y = 0 y=0 y=0 时, x = 3. ∗ x=3.* x=3.∗, . . . . . .还得继续… 继续切

1

已经很接近了.,就不继续切线了,

1

回顾一下,

f ( x ) = x 2 − a f(x) = x^2 - a f(x)=x2−a f ′ ( x ) = 2 x f'(x) = 2x f′(x)=2x x n + 1 = y − f ( x n ) f ′ ( x n ) + x n x_{n+1} = \frac{y-f(x_n)}{f'(x_n)}+x_n xn+1​=f′(xn​)y−f(xn​)​+xn​ ,

当 y = 0 y = 0 y=0 时,

X n + 1 = − f ( x ) f ′ ( x ) + x n X_{n+1} =-\frac{f(x)}{f'(x)} +x_n Xn+1​=−f′(x)f(x)​+xn​ . . . . . . . . . . . . . . . .牛顿迭代公式

化简一下 X n + 1 = − x n 2 − a 2 x n + x n X_{n+1}=-\frac{x_n^2-a}{2x_n}+x_n Xn+1​=−2xn​xn2​−a​+xn​

最后得到 X n + 1 = ( a x n + x n ) ∗ 1 2 X_{n+1}=(\frac{a}{x_n}+x_n)*\frac{1}{2} Xn+1​=(xn​a​+xn​)∗21​

以上就是牛顿迭代求平方根的过程了😅

写成java代码上面的样子 //

//

//

.总结一下: f ( x ) f(x) f(x)求导,作 k = f ′ ( x ) k=f'(x) k=f′(x)切线,求出 y = 0 y=0 y=0时的 x x x的值, 赋值 x 1 x_1 x1​作 k = f ′ ( x 1 ) k=f'(x_1) k=f′(x1​)切线求出 y = 0 y=0 y=0时的 x 1 x_1 x1​的值,赋值 x 2 x_2 x2​作 k = f ′ ( x 2 ) k=f'(x_2) k=f′(x2​)切线…

.

参考: 这个动态图易懂 维基百科-牛顿法

. . . .



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3