Python 实现顺序高斯消元法示例
我就废话不多说,直接上代码吧!
#coding:utf8 importnumpyasnp #设置矩阵 defgetInput(): matrix_a=np.mat([[2,3,11,5], [1,1,5,2], [2,1,3,2], [1,1,3,4]],dtype=float) matrix_b=np.mat([2,1,-3,-3]) #答案:-2011 returnmatrix_a,matrix_b defSequentialGauss(mat_a): foriinrange(0,(mat_a.shape[0])-1): ifmat_a[i,i]==0: print("终断运算:") print(mat_a) break else: forjinrange(i+1,mat_a.shape[0]): mat_a[j:j+1,:]=mat_a[j:j+1,:]-\ (mat_a[j,i]/mat_a[i,i])*mat_a[i,:] returnmat_a defrevert(new_mat): #创建矩阵存放答案初始化为0 x=np.mat(np.zeros(new_mat.shape[0],dtype=float)) number=x.shape[1]-1 #print(number) b=number+1 x[0,number]=new_mat[number,b]/new_mat[number,number] foriinrange(number-1,-1,-1): try: x[0,i]=(new_mat[i,b]-np.sum(np.multiply(new_mat[i,i+1:b],x[0,i+1:b])))/(new_mat[i,i]) except:print("错误") print(x) if__name__=="__main__": mat_a,mat_b=getInput() #合并两个矩阵 print("原矩阵") print(np.hstack((mat_a,mat_b.T))) new_mat=SequentialGauss(np.hstack((mat_a,mat_b.T))) print("三角矩阵") print(new_mat) print("方程的解") revert(new_mat)
运行结果如下
以上这篇Python实现顺序高斯消元法示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。