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中变量赋值的问题
Jan 12 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
Pyinstaller将py打包成exe的实例
Mar 31 Python
关于python2 csv写入空白行的问题
Jun 22 Python
python try except 捕获所有异常的实例
Oct 18 Python
python读写csv文件的方法
Aug 13 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
Python 元组拆包示例(Tuple Unpacking)
Dec 24 Python
Pycharm修改python路径过程图解
May 22 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
关于tensorflow softmax函数用法解析
Jun 30 Python
Python timeit模块原理及使用方法
Oct 10 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
探讨php中遍历二维数组的几种方法详解
2013/06/08 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
理解Javascript_13_执行模型详解
2010/10/20 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
Python闭包实现计数器的方法
2015/05/05 Python
python日志记录模块实例及改进
2017/02/12 Python
在centos7中分布式部署pyspider
2017/05/03 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
python事件驱动event实现详解
2018/11/21 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
python实现弹窗祝福效果
2019/04/07 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
python定时任务 sched模块用法实例
2019/11/04 Python
顺丰快递Java软件工程师面试题
2015/07/31 面试题
计算机大学生的自我评价
2013/10/15 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
团干部培训方案
2014/06/03 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
2015年度女工工作总结
2015/10/22 职场文书