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 30 Python
python清除字符串里非字母字符的方法
Jul 02 Python
python数据结构之图的实现方法
Jul 08 Python
Python实现带百分比的进度条
Jun 28 Python
python difflib模块示例讲解
Sep 13 Python
python里dict变成list实例方法
Jun 26 Python
pytorch打印网络结构的实例
Aug 19 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
Python创建数字列表的示例
Nov 28 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
python使用Geany编辑器配置方法
Feb 21 Python
python实现FTP文件传输的方法(服务器端和客户端)
Mar 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
十天学会php(2)
2006/10/09 PHP
一个程序下载的管理程序(一)
2006/10/09 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
获取PHP警告错误信息的解决方法
2013/06/03 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
javascript 树控件 比较好用
2009/06/11 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
解决Python传递中文参数的问题
2015/08/04 Python
利用python获取Ping结果示例代码
2017/07/06 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
python集合的新增元素方法整理
2020/12/07 Python
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
网上开店必备创业计划书
2014/01/26 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
远程研修随笔感言
2014/02/10 职场文书
《长城》教学反思
2014/02/14 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
Golang Web 框架Iris安装部署
2022/08/14 Python