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一键搭建Http服务器的方法
Jun 01 Python
详解flask入门模板引擎
Jul 18 Python
windows下python安装小白入门教程
Sep 18 Python
PyQt打开保存对话框的方法和使用详解
Feb 27 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
TensorFlow自定义损失函数来预测商品销售量
Feb 05 Python
解决django 向mysql中写入中文字符出错的问题
May 18 Python
使用keras实现densenet和Xception的模型融合
May 23 Python
基于pytorch中的Sequential用法说明
Jun 24 Python
如何基于python实现年会抽奖工具
Oct 20 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
详解如何用Python实现感知器算法
Jun 18 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
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
javascript 伪数组实现方法
2010/10/11 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
AngularJS的一些基本样式初窥
2015/07/27 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
pm2 部署 node的三种方法示例
2017/10/20 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
使用pandas读取csv文件的指定列方法
2018/04/21 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
基于python实现雪花算法过程详解
2019/11/16 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
python微信公众号开发简单流程实现
2020/03/09 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
审计工作个人的自我评价
2013/12/25 职场文书
网上签名寄语活动留言
2014/01/18 职场文书
西门豹教学反思
2014/02/04 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
战略合作意向书范本
2014/04/01 职场文书
倡议书格式范文
2014/04/14 职场文书
杜甫草堂导游词
2015/02/03 职场文书
为Centos安装指定版本的Docker
2022/04/01 Servers