牛顿迭代法
写这篇博客主要目的是加深牛顿迭代法的理解及熟练应用它。在优化方法中经常会用牛顿迭代法。今天这里先将使用牛顿迭代法解高次代数方程。
从举例子开始:
解方程
x
2
=
5
x^2=5
x2=5,
x
>
0
x>0
x>0,求x的值。
这个例子看起来很简单,用计算器一算就知道了,但如果是高次的,多项的就不好算了。我们先算简单的,然后推导到高次多项方程。
先把方程写成
x
2
−
5
=
0
x^2-5=0
x2−5=0,这个方程求值的意义就变成了
y
=
x
2
−
5
y=x^2-5
y=x2−5方程,在
y
=
0
y=0
y=0的这条线的相交点x值为多少,其实所有的高次多项方程我们都把它们划归到y=0时,x的求值问题,如
7
x
4
+
3
x
3
−
2
x
2
+
x
+
8
=
17
7x^4+3x^3-2x^2+x+8=17
7x4+3x3−2x2+x+8=17,我们把它改写成
7
x
4
+
3
x
3
−
2
x
2
+
x
+
8
−
17
=
0
7x^4+3x^3-2x^2+x+8-17=0
7x4+3x3−2x2+x+8−17=0,这样做是为了方便统一计算所有类似的方程。(如果写一个算法程序,就可以根据不同的多项式,求导后就算直线斜率和截距,统一计算和y=0直线相交求下一个点)
其实求高斯牛顿有好几个条件,如必须是收敛函数,后面会给出所有必备条件,此处只是稍作叙述。
上面说到求x的值其实就是求
y
=
x
2
−
5
y=x^2-5
y=x2−5曲线和
y
=
0
y=0
y=0曲线交点。
看下图
抛物线
y
=
x
2
−
5
y=x^2-5
y=x2−5与y轴的交点有两个,其中右边交点为我们要求取的值(思考,有两个,怎么知道是右边的,如果求取的是左边的怎么办,下面会给答案)。
第一步 我们取一个近点x为2,在曲线上x=2处,画出切线(在工程中使用牛顿迭代法同样需要一个接近值,为的是满足值区间的收敛性质等,近点值的条件我们最后给出来)
第二步 求出切线方程,找到曲线
y
=
x
2
−
5
y=x^2-5
y=x2−5在x=2处的导数,此处的导数就是切线的斜率。
曲线的导数方程
y
=
2
x
y=2x
y=2x,所以在x=2处,切线方程斜率k=4。
y
+
1
x
−
2
=
4
{y+1 \over x-2}=4
x−2y+1=4得到直线方程
y
=
4
x
−
9
y=4x-9
y=4x−9
第三步 求出切线方程
y
=
4
x
−
9
y=4x-9
y=4x−9和y=0的交点,交点的
x
=
9
4
x={9 \over 4}
x=49
第四步 继续重复1,2,3步骤,会发现切线的越来越接近曲线和y=0的右边交点。迭代次数越多,最终切线和y=0交点的值越接近曲线和y=0的交点。
以上就是牛顿迭代法的思想,使用高次多项的复杂函数,更能体现牛顿迭代法的便捷性。
下面我们给出使用牛顿迭代法的条件
整体就是说函数是凸函数,才能满足,看图更直接
这是满足条件的函数
下面是不满足条件的函数,发散的或震荡的
牛顿迭代法先更新到这,后续有新的应用在继续更新,感谢!