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中的浅复制与深复制
Jul 02 Python
python常见排序算法基础教程
Apr 13 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
python实现图书管理系统
Mar 12 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
Apr 27 Python
python人民币小写转大写辅助工具
Jun 20 Python
python将秒数转化为时间格式的实例
Sep 16 Python
python实现AES加密解密
Mar 28 Python
详解Python 函数如何重载?
Apr 23 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
python脚本框架webpy模板赋值实现
Nov 20 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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
Python中正则表达式的用法实例汇总
2014/08/18 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
python 异或加密字符串的实例
2018/10/14 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
Linux的文件类型
2016/07/05 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
签约仪式致辞
2015/07/30 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript