牛顿迭代公式(详细) |
您所在的位置:网站首页 › 切线方程的书写形式是什么 › 牛顿迭代公式(详细) |
牛顿迭代公式
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中提出此方法。 首先,我们知道要对哪个数开方,比如现在我们要求出 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![]() 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=−2xnxn2−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=(xna+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 |