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之关于类的初步认识
Oct 11 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python统计单词出现的次数
Apr 04 Python
Selenium的使用详解
Oct 19 Python
python中for循环输出列表索引与对应的值方法
Nov 07 Python
详解python中的线程与线程池
May 10 Python
Python内置random模块生成随机数的方法
May 31 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
torch 中各种图像格式转换的实现方法
Dec 26 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
Pyinstaller加密打包应用的示例代码
Jun 11 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&mysql(三)
2006/10/09 PHP
php存储过程调用实例代码
2013/02/03 PHP
解析php addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
php简单实现快速排序的方法
2015/04/04 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
javascript中attribute和property的区别详解
2014/06/05 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
python如何调用字典的key
2020/05/25 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
Lands’ End官网:经典的美国生活方式品牌
2016/08/14 全球购物
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
药剂专业毕业生求职信
2014/06/24 职场文书
运动会广播稿300字
2015/08/19 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL