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


Posted in Python onDecember 09, 2019

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

# 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 实现顺序高斯消元法示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现图片变亮或者变暗的方法
Jun 01 Python
浅谈Python中用datetime包进行对时间的一些操作
Jun 23 Python
利用python画一颗心的方法示例
Jan 31 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
python实现媒体播放器功能
Feb 11 Python
python对于requests的封装方法详解
Jan 03 Python
Python使用python-docx读写word文档
Aug 26 Python
python读取与处理netcdf数据方式
Feb 14 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
python3.8动态人脸识别的实现示例
Sep 21 Python
Python jieba库分词模式实例用法
Jan 13 Python
python代码实现备忘录案例讲解
Jul 26 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 #Python
在python中做正态性检验示例
Dec 09 #Python
python实现高斯判别分析算法的例子
Dec 09 #Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 #Python
使用 Python 写一个简易的抽奖程序
Dec 08 #Python
布隆过滤器的概述及Python实现方法
Dec 08 #Python
Python+Redis实现布隆过滤器
Dec 08 #Python
You might like
PHP如何透过ODBC来存取数据库
2006/10/09 PHP
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
基于pear auth实现登录验证
2010/02/26 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
Ajax 数据请求的简单分析
2011/04/05 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
js调用css属性写法
2013/09/21 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python中遍历文件的3个方法
2014/09/02 Python
回调函数的意义以及python实现实例
2017/06/20 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
Python如何定义有默认参数的函数
2020/08/10 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
进程的查看和调度分别使用什么命令
2013/12/14 面试题
青岛海底世界导游词
2015/02/11 职场文书
校园开放日新闻稿
2015/07/17 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python