一、基本共轭方向算法
对于n维二次型函数的最小化问题:
其中,Q=QT>0,x∈Rn。因为Q>0,所以函数f有一个全局极小点,可以通过求解
基本共轭方向算法 给定初始点x(0)和一组关于Q共轭的方向d(0),d(1),…,d(n−1),迭代公式为(k≥0表示迭代次数):
g(k)=∇f(x(k))=Qx(k)−bak=−g(k)Td(k)d(k)TQd(k)x(k+1)=x(k)+akd(k)
二、定理及其证明
对于任意初始点x(0),基本共轭方向算法都能在n次迭代之内收敛到唯一全局极小点
证明:由于方向d(i),i=0,1,…,n−1线性无关,因此,x∗−x(0)∈Rn可以由它们线性表出,即:
x∗−x(0)=β0d(0)+β1x(1)+⋯+βn−1d(n−1)
其中, βi,i=0,1,…,n−1为常数。
上式同时左乘 d(k)TQ,
d(k)TQ(x∗−x(0))=βkd(k)TQd(k)
整理下,可得:
βk=−d(k)TQ(x∗−x(0))d(k)TQd(k)
迭代点 x(k)可以写为:
x(k)=x(0)+a0d(0)+a1x(1)+⋯+ak−1d(k−1)
则:
x(k)−x(0)=a0d(0)+a1x(1)+⋯+ak−1d(k−1)
上式同时左乘 d(k)TQ,因为 g(k)=Qx(k)−b,Qx∗=b,可得:
d(k)TQ(x∗−x(0))=d(k)TQ(x∗−x(k))=−g(k)Td(k)
所以:
βk=−g(k)Td(k)d(k)TQd(k)=ak
这说明 x(n)=x∗.
证毕。