双共轭梯度算法的基本流程如下所示,具体如下所示:

1)、初步给定 x 0双共轭梯度算法

2)、计算 r0=b-Ax 0双共轭梯度算法 ; 令 r0=r0双共轭梯度算法 ;

3)、循环体计算:

for    i=1,2,…双共轭梯度算法

if   i=1双共轭梯度算法

pi =ri -1  ;  pi =ri -1   ;双共轭梯度算法

else双共轭梯度算法

pi =ri -1+βi-1 pi-1  ;  pi =ri -1+βi-1 pi-1   ;双共轭梯度算法

end双共轭梯度算法

αi =ri -1Tri -1pi TApi 双共轭梯度算法

x i =x i -1+αi pi 双共轭梯度算法

if   x i -x i-1 x i-1 <accuracy双共轭梯度算法

break双共轭梯度算法 ;

end双共轭梯度算法

ri =ri-1-αi Api           ri =ri-1-αi ATpi   双共轭梯度算法 

βi =ri Triri -1Tri -1双共轭梯度算法

end双共轭梯度算法

        具体双共轭梯度算法的MATLAB核心代码如下所示:

     双共轭梯度算法

     双共轭梯度算法

仿真结果如下所示:

 

双共轭梯度算法

相关文章: