📅  最后修改于: 2020-11-25 04:56:00             🧑  作者: Mango
该方法也称为梯度法或柯西法。此方法涉及以下术语-
$$ x_ {k + 1} = x_k + \ alpha_kd_k $$
$ d_k =-\ bigtriangledown f \ left(x_k \ right)$或$ d_k =-\ frac {\ bigtriangledown f \ left(x_k \ right)} {\ left \ | \ bigtriangledown f \ left(x_k \ right)\ right \ |} $
设$ \ phi \ left(\ alpha \ right)= f \ left(x_k + \ alpha d_k \ right)$
通过微分$ \ phi $并将其等于零,我们可以获得$ \ alpha $。
所以算法如下-
初始化$ x_0 $,$ \ varepsilon_1 $,$ \ varepsilon_2 $并设置$ k = 0 $。
设置$ d_k =-\ bigtriangledown f \ left(x_k \ right)$或$ d_k =-\ frac {\ bigtriangledown f \ left(x_k \ right)} {\ left \ | \ bigtriangledown f \ left(x_k \ right) \ right \ |} $。
找到$ \ alpha_k $使其最小化$ \ phi \ left(\ alpha \ right)= f \ left(x_k + \ alpha d_k \ right)$。
设置$ x_ {k + 1} = x_k + \ alpha_kd_k $。
如果$ \ left \ | x_ {k + 1-x_k} \ right \ |
最佳解决方案是$ \ hat {x} = x_ {k + 1} $。
牛顿法基于以下原理-
$ f \ left(x \ right)= y \ left(x \ right)= f \ left(x_k \ right)+ \ left(x-x_k \ right)^ T \ bigtriangledown f \ left(x_k \ right)+ \ frac {1} {2} \ left(x-x_k \ right)^ TH \ left(x_k \ right)\ left(x-x_k \ right)$
$ \ bigtriangledown y \ left(x \ right)= \ bigtriangledown f \ left(x_k \ right)+ H \ left(x_k \ right)\ left(x-x_k \ right)$
在$ x_ {k + 1}处,\ bigtriangledown y \ left(x_ {k + 1} \ right)= \ bigtriangledown f \ left(x_k \ right)+ H \ left(x_k \ right)\ left(x_ {k +1} -x_k \ right)$
对于$ x_ {k + 1} $是最优解$ \ bigtriangledown y \ left(x_k + 1 \ right)= 0 $
因此,$ x_ {k + 1} = x_k-H \ left(x_k \ right)^ {-1} \ bigtriangledown f \ left(x_k \ right)$
这里$ H \ left(x_k \ right)$应该是非奇数。
因此算法如下:
步骤1-初始化$ x_0,\ varepsilon $并设置$ k = 0 $。
第2步-找到$ H \ left(x_k \ right)\ bigtriangledown f \ left(x_k \ right)$。
步骤3-求解线性系统$ H \ left(x_k \ right)h \ left(x_k \ right)= \ bigtriangledown f \ left(x_k \ right)$为$ h \ left(x_k \ right)$。
步骤4-找到$ x_ {k + 1} = x_k-h \ left(x_k \ right)$。
步骤5-如果$ \ left \ | x_ {k + 1} -x_k \ right \ | <\ varepsilon $或$ \ left \ | \ bigtriangledown f \左(x_k \ right)\右\ | \ leq \ varepsilon $然后转到步骤6,否则设置$ k = k + 1 $转到步骤2。
步骤6-最佳解决方案是$ \ hat {x} = x_ {k + 1} $。
此方法用于解决以下类型的问题-
$ min f \ left(x \ right)= \ frac {1} {2} x ^ T Qx-bx $
其中Q是一个正定nXn矩阵,b是常数。
给定$ x_0,\ varepsilon,$计算$ g_0 = Qx_0-b $
为$ k = 0,1,2,…,$设置$ d_0 = -g_0 $
设置$ \ alpha_k = \ frac {g_ {k} ^ {T} g_k} {d_ {k} ^ {T} Q d_k} $
计算$ x_ {k + 1} = x_k + \ alpha_kd_k $
设置$ g_ {k + 1} = g_k + \ alpha_kd_k $
计算$ \ beta_k = \ frac {g_ {k} ^ {T} g_k} {d_ {k} ^ {T} Qd_k} $
计算$ x_ {k + 1} = x_k + \ alpha_kd_k $
设置$ g_ {k + 1} = x_k + \ alpha_kQd_k $
计算$ \ beta_k = \ frac {g_ {k + 1} ^ {T} g_ {k + 1}} {g_ {k} ^ {T} gk} $
设置$ d_ {k + 1} =-g_ {k + 1} + \ beta_kd_k $。