第十二课 共轭梯度法解方程
运行上一篇的程序得到的结果表明,最陡下降法与迄今为止所其它迭代方法比较,在迭代次数上没有竞争力。然而,如果从根本上改进与[A]相互“共轭”的下降向量。于是,引入了满足以下关系的“下降向量”
按照我的个人理解,共轭梯度法不仅在试解上做修正,还在误差值上做改进,这样做的目的是为了提高迭代效率
最陡下降法将被改进为,
算例依然采用高斯赛德尔的例子
程序代码如下:分别为一个主程序和一个检查收敛的子程序checkit
主程序
#线性联立方程的共轭梯度法
import numpy as np
import math
import B
n=3
converged=np.array([False])
p=np.zeros((n,1))
r=np.zeros((n,1))
u=np.zeros((n,1))
xnew=np.zeros((n,1))
a=np.array([[16,4,8],[4,5,-4