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实现linux服务器批量修改密码并生成execl
Apr 22 Python
python socket 超时设置 errno 10054
Jul 01 Python
Python2中的raw_input() 与 input()
Jun 12 Python
用Python的Django框架来制作一个RSS阅读器
Jul 22 Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
在python中只选取列表中某一纵列的方法
Nov 28 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
python提取xml里面的链接源码详解
Oct 15 Python
python 等差数列末项计算方式
May 03 Python
python 5个实用的技巧
Sep 27 Python
Django路由层如何获取正确的url
Jul 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自动生成月历代码
2006/10/09 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
Chrome Web App开发小结
2014/09/04 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
JavaScript 调试器简介
2009/02/21 Javascript
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
Python去除字符串两端空格的方法
2015/05/21 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
python可视化text()函数使用详解
2020/02/11 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
医学生自我评价
2014/01/27 职场文书
会计学自我鉴定
2014/02/06 职场文书
春节联欢会策划方案
2014/05/16 职场文书
教师工作表现评语
2014/12/31 职场文书
团员自我评价范文
2015/03/10 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python