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基于twisted实现简单的web服务器
Sep 29 Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
python发送邮件实例分享
Jul 28 Python
django解决跨域请求的问题详解
Jan 20 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
May 18 Python
在keras中model.fit_generator()和model.fit()的区别说明
Jun 17 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 Python
详解Python yaml模块
Sep 23 Python
python 下划线的多种应用场景总结
May 12 Python
Python数据分析入门之数据读取与存储
May 13 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 session安全问题分析
2011/06/24 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
js常用排序实现代码
2010/12/28 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
六道php面试题附答案
2014/06/05 面试题
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
工作过失检讨书
2014/02/23 职场文书
铲车司机岗位职责
2014/03/15 职场文书
政府采购方案
2014/06/12 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
个人催款函范文
2015/06/23 职场文书
手残删除python之后的补救方法
2021/06/26 Python
对象析构函数__del__在Python中何时使用
2022/03/22 Python
Java 异步任务计算FutureTask
2022/04/28 Java/Android
Java设计模式中的命令模式
2022/04/28 Java/Android