Python Gauss-Jordan求逆源码

import numpy as npn = 5
a = np.random.rand(n,n)*10-5 + np.eye(n)*10
I = np.eye(n)A = a.copy()for i in range(n):if A[i][i] == 0.0:sys.exit('Divide by zero detected!')for j in range(n):if i != j:ratio = A[j][i]/A[i][i]for k in range(n):A[j][k] = A[j][k] - ratio * A[i][k]I[j][k] = I[j][k] - ratio * I[i][k]for i in range(n):divisor = A[i][i]for j in range(n):A[i][j] = A[i][j]/divisorI[i][j] = I[i][j]/divisorprint('原矩阵:\r\n',a)
print('\r\n')print('变换后的矩阵 A:\r\n',A)
print('\r\n')print('逆矩阵 I:\r\n',I)
print('\r\n')print('验证 a 与变换后的 I 互为逆矩阵')
print(a @ I)

运行结果:

原矩阵:[[11.06620341  4.02653051 -3.81266039 -1.77969821  1.56564016][-4.47705901 13.4555903  -3.43722209  1.87754608 -4.97826586][ 0.82454741 -2.50899308  5.44661861 -1.26801133 -3.07717828][ 3.71653898 -1.33820684 -1.68941373  6.72406738  3.88257595][ 0.56430171  3.53763796 -0.97550277  4.17050773 11.3646953 ]]变换后的矩阵 A:[[ 1.00000000e+00  0.00000000e+00  4.06392813e-17  0.00000000e+000.00000000e+00][ 0.00000000e+00  1.00000000e+00 -2.69147293e-18  0.00000000e+000.00000000e+00][ 0.00000000e+00  0.00000000e+00  1.00000000e+00  0.00000000e+000.00000000e+00][ 0.00000000e+00  0.00000000e+00  9.80494989e-19  1.00000000e+003.05013513e-17][ 0.00000000e+00  0.00000000e+00 -4.75588575e-18  0.00000000e+001.00000000e+00]]逆矩阵 I:[[ 0.07219712 -0.00483262  0.05730815  0.03695309 -0.00917038][ 0.02769365  0.06116294  0.05769089 -0.02894162  0.04848527][-0.00629893  0.02022926  0.20051313 -0.01168842  0.06801452][-0.03631011  0.03778475  0.04093239  0.14723274 -0.01766303][ 0.00057863 -0.03092852 -0.01861346 -0.04785919  0.08567442]]验证 a 与变换后的 I 互为逆矩阵
[[ 1.00000000e+00  6.75978849e-17  2.04597238e-16  1.22516624e-176.28858572e-17][-3.91192620e-17  1.00000000e+00  2.20470876e-16  1.12105900e-169.66403786e-17][ 1.57751789e-17 -3.58731145e-17  1.00000000e+00 -5.18151179e-175.50296991e-17][ 9.09477972e-18 -4.24848092e-17  1.09681971e-16  1.00000000e+002.58718941e-17][ 6.19235889e-18  5.40502791e-17  1.44604666e-16  1.18687378e-161.00000000e+00]]

用Python实现Gauss-Jordan求逆矩阵相关推荐

  1. python C++ 求逆矩阵库

    python求逆矩阵库 https://numpy.org/ C++求逆矩阵库 http://eigen.tuxfamily.org/index.php?title=Main_Page

  2. 用列主元高斯(Gauss)消元法求n阶线性方程组的解(python)

    (一)目的 通过设计.编制.调试2~3个求n阶线性方程组数值解的程序,加深对其数值计算方法及有关的基础理论知识的理解. (二)要求 用编程语言实现用高斯(Gauss)消元法求n阶线性方程组的解.用列主 ...

  3. python 高斯约当消元法求逆矩阵

    judge函数判断该矩阵该矩阵是否有逆矩阵 calculate计算逆矩阵 import sysclass MatrixInverse:""""求逆矩阵" ...

  4. numpy求逆矩阵_线性代数精华2——逆矩阵的推导过程

    点击上方蓝字,和我一起学技术. 上一讲当中我们复习了行列式的内容,行列式只是开胃小菜,线性代数的大头还是矩阵. 矩阵的定义很简单,就是若干个数按照顺序排列在一起的数表.比如m * n个数,排成一个m ...

  5. python实现简单的求矩阵的逆

    简单记录一下,后续改进 python代码 #模26运算下,求矩阵的逆. #使用伴随矩阵求逆矩阵法. #整个精度保持在整数位(方便求模运算).import numpy as np #扩展欧几里得算法求最 ...

  6. 3.3 伴随矩阵法求逆矩阵

    文章目录 逆矩阵定义 伴随矩阵 python实现 逆矩阵定义   逆矩阵指的是另一个矩阵和自己相乘会变成单位矩阵,符号是右上角一个 − 1 -1 −1,就是: A A − 1 = A − 1 A = ...

  7. python中Scipy模块求取积分

    python中Scipy模块求取积分的方法: SciPy下实现求函数的积分的函数的基本使用,积分,高等数学里有大量的讲述,基本意思就是求曲线下面积之和. 其中rn可认为是偏差,一般可以忽略不计,wi可 ...

  8. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离

    Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...

  9. python高阶函数求导_Python---高阶函数

    # 高阶函数 # 变量可以指向函数 # 以Python内置的求绝对值的函数abs()为例,调用该函数用以下代码 print(abs(-10)) # 只写abs # 输出为: print(abs) #  ...

  10. 变换例题_用初等变换求逆矩阵的小小解释

    在我们学习逆矩阵的过程中,肯定会遇到这样一种求逆矩阵的方法: 若A是一个n阶可逆矩阵, (虚竖线打不出,凑合着看吧!)这一过程中经历了一系列初等行变换,并且我们下结论说: 中的 就是A的逆矩阵! 按逻 ...

最新文章

  1. 3D 可视化,卷积、池化清清楚楚!网友:终于能看懂神经网络到底在干啥了......
  2. 这本书让我摆脱了被数学支配的恐惧!
  3. redispython源文件_Redis与Python在项目中的交互
  4. 跳出误区:Java程序员进阶架构师真的没你想象的那么简单......
  5. 区块链及比特币入门指南
  6. formal method第10课
  7. 关于信贷业务中常用的模型说明
  8. EXCEL 求解线性规划问题
  9. 【日常】关于爬虫中iframe节点处理小结(以超星课件下载为例)
  10. video.js插件的使用
  11. 2022年六一儿童节
  12. PKU2506Tiling
  13. win10 輸入法怎麽切換繁體
  14. VUE 开发一套自己的时间轴
  15. redis分布式代理工具选型与功能验证
  16. big5转utf-8乱码解决方案
  17. 佛山 新型智慧城市建设实打实
  18. 考研院校选择的一些看法
  19. OpenCV C++ imread填写路径下有图片却读不出 求助!!!!!!
  20. 增值税合理税筹,享受政策税收奖励返还,高达85%!

热门文章

  1. mysql isolation level_MySQL数据库事务隔离级别(Transaction Isolation Level)
  2. 切客软件诞生,给切客全新的购物消费体验
  3. SpringBoot注册Servlet、Filter、Listener
  4. java编码-多重(乱码)
  5. cmake简明使用指南
  6. 11:数值的整数次方
  7. |Vijos|树状数组|P1512 SuperBrother打鼹鼠
  8. 信息安全系统设计基础第六周学习总结—20135227黄晓妍
  9. WIN7电脑文件莫名其妙被删除后的恢复
  10. ginkgo php,【行业资讯】PHP 开发框架 ginkgo v0.1.2 发布