牛顿法 防混淆 总结

wuchangjian2021-11-03 19:23:45编程学习

1) 牛顿法(最初,求的是根)
目的: 求 f(x)=0 的根

途径:
一元非线性方程 f(x)=0 为例,
对函数 f(x) 在 x0 处进行Taylor级数展开

f(x) = f(x0)+f'(x0)(x-x0)+o(x) ----(忽略o(x) 高次项 )

所以方程可写成

 f(x0)+f'(x0)(x-x0) = 0    => x = x0 - f(x0) / f'(x0)
 令x1=x.     

是相比之前的x0更靠近真实解了. Why? 见下图。
用过两点 (x0,f(x0), (x1,0) 的直线代替f(x). 图上可见
x1,比x0 更加接近x*(最佳值)。

在这里插入图片描述
因此可以多重复几次上述过程,从而使得到的解非常接近准确值。所以,对于一元非线性方程,牛顿法的迭代公式为:
x(k+1) = x(k) - f(x(k)) / f’(x(k))
(代码实现,网上太多,。。。)

2) 牛顿法(一般,求的是最小值)
目的: 求 f(x)=0 的根
途径:
一元非线性方程 f(x)=0 为例,
对函数 f(x) 在 x0 处进行Taylor级数展开

f(x) = f(x0)+f'(x0)(x-x0)+1/2*f''(x0)(x-x0)^2+o(x) ----(忽略o(x) 高次项 )

求f(x)有:

f'(x)=0+f'(x0)+f"(x0)(x-x0)
而:f'(x)=0
所以:x-x0=-f'(x0)/f"(x0)  =>x=x0--f'(x0)/f"(x0)
令x=x1.
所以 x(k+1) = x(k) - f'(x(k)) / f''(x(k)) 

对于多元:可以写成:

 x(k+1) = x(k) - ∇f / ∇² f

在这里插入图片描述
3) 高斯牛顿法(一般,∇² f 不好求,所以用高斯牛顿法)

对于一个非线性最小二乘问题:

min1/2||f(x||

高斯牛顿的思想是把 [公式] 利用泰勒展开,取一阶线性项近似。

[公式]

带入到(1)式:

在这里插入图片描述

对上式求导,令导数为0。

在这里插入图片描述

H=JTJ   即为
有:

在这里插入图片描述

在这里插入图片描述

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。