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解析xml中dom元素的方法
Mar 12 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
最近Python有点火? 给你7个学习它的理由!
Jun 26 Python
Python使用wxPython实现计算器
Jan 30 Python
python线程池threadpool使用篇
Apr 27 Python
java中两个byte数组实现合并的示例
May 09 Python
Python绘制正余弦函数图像的方法
Aug 28 Python
wxPython实现列表增删改查功能
Nov 19 Python
python 读取更新中的log 或其它文本方式
Dec 24 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
Python语言中的数据类型-序列
Feb 24 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用身份证号获取星座和生肖的方法
2013/11/07 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
laravel model 两表联查示例
2019/10/24 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
JScript中的undefined和"undefined"的区别
2007/03/08 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
巧用canvas
2017/01/21 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
跟老齐学Python之Import 模块
2014/10/13 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
python读取Excel实例详解
2018/08/17 Python
Python中按键来获取指定的值
2019/03/02 Python
python使用thrift教程的方法示例
2019/03/21 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
2020/02/25 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
车贷收入证明范本
2014/01/09 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
测量JavaScript函数的性能各种方式对比
2021/04/27 Javascript
教你怎么用Python操作MySql数据库
2021/05/31 Python