高斯消去法

高斯消去法

上学期计算方法就学了,一直没有尝试编码实现,今天也算弥补遗憾了

部分选主元

消去时针对每一列找出系数绝对值最大者作为主元,这样能保证消去系数不大于1

伪代码

BetterForwardElimination(A[1n,1n],B[1,n])
//使用部分选主元法实现的高斯消去法
//输入:矩阵A[1n,1n]和列向量B[1~n]
//输出:代替A的上三角形等价矩阵图,相应的右边的值位于第(n+1)列中

for i <- 1 to n do A[i,n+1]=B[i]//拓展矩阵
for i<-1 to n-1 do //n个方程需要n-1次消去
  pivotrow <-i //初始主元
  for k <- i+1 to n do
     if A[i,i]< A[k.i]  pivotrow <- k //找最大主元
  for k <- i to n+1 do
      swap(A[i,k],A[pivotrow,k])//交换主元到最上方
  for j <- i+1 to n
          temp=A[j,i] / A[i,i] //求比例系数
          for k <-  i+1 to n do
              A[j,k] <- A[j,k]-A[i,k]*temp //消去

推荐阅读更多精彩内容