牛顿法

公式:
f(x)是代价函数(二次可微实函数),展开成泰勒级数。

f(x)ϕ(x)=f(x(k))+f(x(k))x(k)(xx(k))+12(xx(k))T2f(x(k))x(k)(xx(k))

为了求 ϕ(x)x 的平稳点,令:
ϕ(x)x=0

即:
f(x(k))x(k)+2f(x(k))x(k)(xx(k))=0

2f(x(k))x(k) 可逆,得到牛顿迭代公式:
xk+1=xk(2f(x(k))x(k))1f(x(k))x(k)

例子与matlab代码:

min(x11)4+x22

x_old = [0;0];
x_new = [0;0];
for i = 1:100
    x_old = x_new;
    fx1 = [4*(x_old(1)-1).^3; 2*x_old(2)];
    fx2 = [1/(12*(x_old(1)-1).^2) ,0 ; 0, 1/2];
    x_new = x_old - fx2*fx1;
end
x_new

结果:

xnew=[1;0]

特别对于二次凸函数,用牛顿法求解,经1次迭代就可以达到极小值:
设有二次凸函数

f(x)=12xTAx+bTx+c

其中A是正定对称矩阵。
利用极值条件求解:
f(x)=Ax+b=0

得到最优解为:
x=A1b

利用牛顿法求解
x2=x1A1(Ax1+b)=A1b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值