Python 实现顺序高斯消元法示例

 更新时间:2019年12月09日 09:28:19   作者:倚楼灬风细  
今天小编就为大家分享一篇Python 实现顺序高斯消元法示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我就废话不多说,直接上代码吧!

# coding: utf8
import numpy as np


# 设置矩阵
def getInput():
 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])
 #答案:-2 0 1 1
 return matrix_a, matrix_b

def SequentialGauss(mat_a):
 for i in range(0, (mat_a.shape[0])-1):
  if mat_a[i, i] == 0:
   print("终断运算:")
   print(mat_a)
   break
  else:
   for j in range(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, :]
 return mat_a


def revert(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]
 for i in range(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 实现顺序高斯消元法示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python OpenCV的imread不能读取中文路径问题及解决

    python OpenCV的imread不能读取中文路径问题及解决

    这篇文章主要介绍了python OpenCV的imread不能读取中文路径问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Python实现学校管理系统

    Python实现学校管理系统

    这篇文章主要为大家详细介绍了Python实现学校管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • python对文件目录的操作方法实例总结

    python对文件目录的操作方法实例总结

    这篇文章主要介绍了python对文件目录的操作方法,结合实例形式总结分析了Python针对文件目录相关的遍历、删除、移动、查找等操作技巧,需要的朋友可以参考下
    2019-06-06
  • PyQt5图形界面播放音乐的实例

    PyQt5图形界面播放音乐的实例

    今天小编就为大家分享一篇PyQt5图形界面播放音乐的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python运行DLL文件的方法

    Python运行DLL文件的方法

    这篇文章主要介绍了Python运行DLL文件的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • python 视频逐帧保存为图片的完整实例

    python 视频逐帧保存为图片的完整实例

    今天小编就为大家分享一篇python 视频逐帧保存为图片的完整实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python中的*与**用法示例详解

    python中的*与**用法示例详解

    这篇文章主要介绍了python中*与**用法的相关资料,Python中的*和**用于数值计算、序列解包、函数定义和调用,*用于乘法和解包序列,**用于乘方、解包字典和扩展字典,需要的朋友可以参考下
    2025-01-01
  • Python seek()和tell()函数的具体使用

    Python seek()和tell()函数的具体使用

    本文主要介绍了Python seek()和tell()函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python反转序列的方法实例分析

    Python反转序列的方法实例分析

    这篇文章主要介绍了Python反转序列的方法,结合实例形式分析了列表、元组及字符串反转的具体实现技巧,需要的朋友可以参考下
    2018-03-03
  • Python语言中的重要函数对象用法小结

    Python语言中的重要函数对象用法小结

    Python作为一种强大的编程语言,提供了多种高级函数对象,如lambda匿名函数、map()、reduce()函数,以及迭代器和生成器的使用,本文给大家介绍Python语言中的重要函数对象用法,感兴趣的朋友跟随小编一起看看吧
    2024-09-09

最新评论