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中yield生成器的用法
Aug 05 Python
python实现log日志的示例代码
Apr 28 Python
python实现Zabbix-API监控
Sep 17 Python
PyQt5+requests实现车票查询工具
Jan 21 Python
Django model update的多种用法介绍
Mar 28 Python
python flask web服务实现更换默认端口和IP的方法
Jul 26 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
python 读取数据库并绘图的实例
Dec 03 Python
Pytorch 的损失函数Loss function使用详解
Jan 02 Python
python-for x in range的用法(注意要点、细节)
May 10 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
PHP脚本的10个技巧(8)
2006/10/09 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
理解Javascript_05_原型继承原理
2010/10/13 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
Python生成随机密码
2015/03/10 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
Python中属性和描述符的正确使用
2016/08/23 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
《假如》教学反思
2014/04/17 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
骨干教师事迹材料
2014/12/17 职场文书
三方协议书
2015/01/27 职场文书
邀请函的格式
2015/01/30 职场文书
七一活动主持词
2015/06/29 职场文书
财务管理制度范本
2015/08/04 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python