選定
初始點x
0,令下
標變數k
=0,然
後按照某
種規則把
xk對映
為後繼點
xk+1
,從而形
成乙個迭
代序列,
這種規則
稱為迭代
演算法。如
果某個函
數f(x
),迭代
序列恆滿
足f(x
k+1)
xk),
則稱此迭
代演算法為
下降迭代
演算法,簡
稱下降算
法。
記δxk
=xk+
1−xk
,令δx
k=tk
⋅pk,
得xk+
1=xk
+δxk
=xk+
tkpk
,其中,
pk為與
δxk同
方向的向
量,稱為
搜尋方向
,tk稱
為步長因
子(tk
>0)
利用下降迭代算
法求乙個
越蘇優化
問題的極
小值,則
每一次迭
代都應根
據目標函
數,約束
函式在改
點的某些
資訊,確
定本次迭
代的乙個
搜尋方向
pk和適
當的步長
tk,使
新的迭代
點在約束
可行域內
,級∈d
(k=0
,1,2
,...
.).下
降迭代算
法的關鍵
在於構造
每一步的
搜尋向量
和確定步
長因子,
ui單p
k的構造
方法和t
k的選取
方法確定
,這就確
定了一種
迭代方法
。多數算
法中,步
長的確定
方法採用
tk:mintf(
xk+t
pk)
下降迭代演算法的一般步驟為: st
ep1.選
定初始點
x0,令
k=0
step
2.依照一
定的規則
搜尋向量
,取f(
x)在點
xk的下
降方向作
為搜尋向
量pk。
step3.從x
k出發,
沿搜尋方
向pk確
定步長t
k,使得
xk+t
kpk∈
d,且
f(xk
+tkp
k)xk)
step
4.得到新
的迭代點
xk+1
=xk+
tkpk
step5.檢查
終止條件
,判定x
k+1是
否為極小
點或近似
極小點,
若是,停
止迭代,
輸出xk
作為最優
解,否則
,k=k
+1,轉
到ste
p2 實
現向x∗
逼近的搜
索,其關
鍵是確立
尋找p(
k)的各
種有效辦
法,這正
是各種迭
代法的主
要區別所
在。為了
計算方便
,有時取
p(k)
為單位向
量,稱為
規格化方
向,有時
取tk為
常數,稱
為定步長
。 下面給出乙個有關結論: 設f
(x)一
節連續可
微,xk
+1按如
下規則獲
得: ⎧
⎩⎨tk
:mintf
(xk+
tpk)
xk+1
=xk+
tkpk
則有δf
(xk+
1)pk
=0. 證
明:設ϕ
(t)=
f(xk
+tpk
),令ϕ
′(t)
=0,即
df(xk+t
pk)d
t=0⇒
δf(x
k+tp
k)tp
k=0
可求出t
k⇒δf
(xk+
tkpk
)tpk
=0⇒δ
f(xk
+1)t
pk=0
該結論說明,從
某一點x
k出發沿
搜尋方向
pk對目
標函式f
(x)進
行搜尋求
解,所得
極小點(
即新的迭
代點)為
xk+1
,且改點
的梯度δ
f(xk
+1)與
搜尋方向
pk正交
。此外,
由於過點
xk+1
的目標函
數的等值
面f(x
)=f(
xk+1
)與該點
的梯度δ
f(xk
+1)正
交,則這
個等值面
與搜尋方
向pk在
點xk+
1相切。
下面這張
圖說明原
理:
迭代器的基本使用 遍歷
迭代器提供一些基本操作符 這些操作和c c 操作array元素 時的指標介面一致。不同之處在於,迭代器是個所謂的複雜的指標,具有遍歷複雜資料結構的能力。其下層執行機制取決於其所遍歷的資料結構。因此,每一種容器型都必須提供自己的迭代器。事實上每一種容器都將其迭代器以巢狀的方式定義於內部。接下來我簡單的...
map迭代器的基本用法
stl官方描述太過複雜,總結有以下幾種用法 begin 返回指向map頭部的迭代器 clear 刪除所有元素 count 返回指定元素出現的次數 empty 如果map為空則返回true end 返回指向map末尾的迭代器 equal range 返回特殊條目的迭代器對 erase 刪除乙個元素 f...
關於開方的迭代演算法
去年某司有一道面試題是不用 開根號計算開方,當時第一反應就是迭代逼近,但是對方還要求能不能把速度加快,先稍作總結。迭代逼近意思就是 我先隨便取乙個數,如果平方大於給定 n,那麼就取乙個小一點的 如果小了,那就取個大一點,最後達到精度要求即可。實現 class solution else x x 快速...