高斯消去法
上学期计算方法就学了,一直没有尝试编码实现,今天也算弥补遗憾了
部分选主元
消去时针对每一列找出系数绝对值最大者作为主元,这样能保证消去系数不大于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 //消去
网友评论