Python高斯消除矩阵
高斯消除矩阵
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#
defpprint(A):
foriinA:
print(i)
print("")
data=[
[1,2,1,2],
[3,8,1,12],
[0,4,1,2]
]
n=len(data)
print("输入数据")
pprint(data)
foriinrange(n):
print("第{}次操作".format(i))
maxE=abs(data[i][i])
#最大值在第几行
maxRow=i
forkinrange(i+1,n):
ifabs(data[k][i]>maxE):
maxE=abs(data[k][i])
maxRow=k
#当前行交换最大的行
forkinrange(i,n+1):
data[maxRow][k],data[i][k]=data[i][k],data[maxRow][k]
print("当前行交换最大的行交换结果")
pprint(data)
#改0
forkinrange(i+1,n):
c=-data[k][i]/data[i][i]
print(-data[k][i],"/",data[i][i])
forjinrange(i,n+1):
ifi==j:
data[k][j]=0
else:
data[k][j]+=c*data[i][j]
print("改0结果")
pprint(data)
#化简后结果
print("化简结果")
pprint(data)
#结果计算
result=[0foriinrange(n)]
foriinrange(n-1,-1,-1):
result[i]=data[i][n]/data[i][i]
forkinrange(i-1,-1,-1):
data[k][n]-=data[k][i]*result[i]
print(result)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接
