文档介绍:数值代数实验报告
一、实验名称:用共钝梯度法解线性方程组。
二、实验目的:进一步熟悉理解掌握共钝梯度法解法思路,提高 matlab编程能力
三、实验要求:已知线性方程矩阵,应用共钝梯度法在相关软件编程求解线性方程
组的解。
四、实验原理:
:
考虑线性方程组
Ax = b
的求解问题,其中A是给定的n阶对称正定矩阵,b是给定的n维向量,x是待求解 ,定义二次泛函
x) = xT Ax - 2bTx.
定理1设A对称正定,求方程组Ax = b的解,等价于求二次泛函 中(x)的极小值点.
定理1表明,求解线性方程组问题就转化为求二次泛函 中(x)的极小值点问题. 求解二次函数极小值问题,通常好像盲人下山那样,先给定一个初始向量 xo ,确定 一个下山方向P0 ,沿着经过点x0而方向为P0的直线x = x0+a P0找一个点
= x0 + 仪 0 P0 , 使得对所有实数a有
♦(x。+%p° -x P0 ),
即在这条直线上xi使9(x),再确定一个下山的方向Pi ,沿着 直
线x =x1 +a P1再跨出一步,即找到%使得邛(乂)在x2 =xi +%Pi达到极小:
- x : iPi xi . :・ R .
重复此步骤,得到一审
%,%42,愕和 P0,Pi,P2,IM, 称Pk为搜索方向,,先在 xk点找下山方向Pk,再在直线 x = xk +a Pk上确定步长叫使
,xk .二. k Pk ": xk : Pk ,
最后求出xk+ = xk+%,得到各种不同的算法 .
由此,先考虑如何确定0(,
f 二二xk 二 Pk
T T
三 !:Xk+二 Pk AXk+二 Pk -2b XkX(Pk
= a2PTAPk —2口4 Pk+中(5 ),
其中rk =b -
f : =21 PTAPk-2r:Pk =0
所确定的a即为所求步长队 ,即
步长确定后,即可算出
PT APk .
xk 1 = xk 、、'-k Pk .
此时,只要rj Pk #0 ,就有
;:Xk .1 - : Xk = Xk ' k Pk - ;: Xk T 2
2 T T rk Pk
”kPk APk -2: jk Pk = 一 :二 0
Pk APk
即 Xk i :二;Xk .
叫X)减小最快的方向,但简单分
析就会发现负梯度方向只是局部最佳的下山方向, 的方法寻求更好的下山方向—— 共腕梯度法. 下面给出共腕梯度法的具体计算过程:
给定初始向量Xo,第一步仍选用负梯度方向为下山方向,即 Po = ro,于是有
T
ro ro - 0 T ,X1 =Xo - obi =b-AXo.
对以后各步,例如第k+1步(k梦1白访下山方向不再取醍,而是在过点由向量4和Pk」
所张成的二维平面
二2 二{x|x 二4 , 4 Pk」,,R}
内找出使函数中下降最快的方向作为新的下山方向 :
1'