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网络爬虫采集联想词示例
Feb 11 Python
python里大整数相乘相关技巧指南
Sep 12 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
Nov 11 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python Pandas找到缺失值的位置方法
Apr 12 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
详解python3中zipfile模块用法
Jun 18 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
pytorch SENet实现案例
Jun 24 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
PyTorch 如何设置随机数种子使结果可复现
May 12 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
Python字符串和字典相关操作的实例详解
2017/09/23 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
Django中提示消息messages的设置方式
2019/11/15 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
python实现微信打飞机游戏
2020/03/24 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
员工考核管理制度
2014/02/02 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
促销活动总结范文
2014/04/30 职场文书
党委班子剖析材料
2014/08/21 职场文书
技术入股合作协议书
2014/10/07 职场文书
2014年内勤工作总结
2014/11/24 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
redis 查看所有的key方式
2021/05/07 Redis
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers