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系列之数据处理编程实例(一)
May 22 Python
python查询mysql中文乱码问题
Nov 09 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
在Python的Flask框架中构建Web表单的教程
Jun 04 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 Python
Python模块汇总(常用第三方库)
Oct 07 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
python图片指定区域替换img.paste函数的使用
Apr 09 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
Jun 15 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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 Memcache 中实现消息队列
2009/11/24 PHP
浅谈php和.net的区别
2014/09/28 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
js选项卡的实现方法
2015/02/09 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
Node.js使用Angular简单示例
2018/05/11 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
shell程序中如何注释
2012/02/17 面试题
团队精神的演讲稿
2014/05/14 职场文书
中央空调节能方案
2014/06/15 职场文书
js实现上传图片到服务器
2021/04/11 Javascript