利用共轭梯度算法求解n 元正定二次函数的极小点
我利用共轭梯度算法来解决n 元正定二次函数的极小点问题,并通过一个简单的函数模型来测试基于该算法的程序的正确性。通过分析该算法后,我采用MATLAB7.0中的设计语言来编写程序。MA TLAB 是集数学计算、图形处理和程序设计与以设计与一体的著名数学软件,在许多科学领域成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
一.算法条件及特点:
适合条件:无约束n 元正定二次函数f (X ) =1TX AX +B T+c 2
n 式中A为n ⨯n 对称正定阵;X,B∈E ;c 为常数。
算法特点:已知P (i ) (i =0,..., n -1) 关于A共轭,以任给X (0) 出发,依次以
P (0) , P (1) ,..., P (n -1) 为搜索方向的下述算法:
min f (X (k ) +λP (k ) ) =f (X (k ) +λk P (k ) ) λ
(k +1)(k )(k ) X ,k =0, 1,..., n -1 =X +λk P
二.算法步骤:
(1)选择初始值近似X
(2)计算
(0)(0) P =-∇f (X ) (0) ,给出允许误差ε>0,k =0。
并用X (1)=X (0)+λ0P (0)∇f (X (0) ) TP (0) (1) 和λ0=-算出X 。 (0) T(0) (P ) AP
(k ) (3)一般地