非奇异矩阵求逆

import torch
x = torch.FloatTensor([[[1.0, 2.0],[1.0, 4.0]],[[1.0, 2.0],[1.0, 3.0]]])
y=torch.inverse(x)
print(y)

输出结果为

tensor([[[ 2.0000, -1.0000],[-0.5000,  0.5000]],[[ 3.0000, -2.0000],[-1.0000,  1.0000]]])

或者用

y=torch.linalg.inv(x)

也可以得到相同的结果

奇异矩阵求逆

import torch
x = torch.FloatTensor([[[1.0, 2.0],[1.0, 2.0]],[[1.0, 2.0],[1.0, 3.0]]])
y=torch.inverse(x)
print(y)

报错:

RuntimeError: inverse_cpu: The diagonal element 2 is zero, the inversion could not be completed because the input matrix is singular.

法1:计算矩阵行列式,计算abs(det)>0的矩阵的逆,删除奇异矩阵。缺点是改变了张量维度。

import torch
from torch.linalg import det
x = torch.FloatTensor([[[1.0, 2.0],[1.0, 2.0]],[[1.0, 2.0],[1.0, 3.0]]])
determinants = torch.det(x)
y =torch.inverse(x[determinants.abs()>0.])
print(y)

输出结果为

tensor([[[ 3., -2.],[-1.,  1.]]])

法2:用torch.linalg.pinv()得到奇异矩阵的伪逆矩阵

import torch
x = torch.FloatTensor([[[1.0, 2.0],[1.0, 2.0]],[[1.0, 2.0],[1.0, 3.0]]])
y=torch.linalg.pinv(x)
print(y)

输出结果为

tensor([[[ 0.1000,  0.1000],[ 0.2000,  0.2000]],[[ 3.0000, -2.0000],[-1.0000,  1.0000]]])

自定义求逆函数,仅针对非奇异矩阵

import torch
import numpy as np
from torch.linalg import detdef cof1(M,index):zs = M[:index[0]-1,:index[1]-1]ys = M[:index[0]-1,index[1]:]zx = M[index[0]:,:index[1]-1]yx = M[index[0]:,index[1]:]s = torch.cat((zs,ys),axis=1)x = torch.cat((zx,yx),axis=1)return det(torch.cat((s,x),axis=0))def alcof(M,index):return pow(-1,index[0]+index[1])*cof1(M,index)def adj(M):result = torch.zeros((M.shape[0],M.shape[1]))for i in range(1,M.shape[0]+1):for j in range(1,M.shape[1]+1):result[j-1][i-1] = alcof(M,[i,j])return resultdef invmat(M):return 1.0/det(M)*adj(M)x = torch.FloatTensor([[1.0, 2.0],[1.0, 4.0]])
print(invmat(x))

输出结果:

tensor([[ 2.0000, -1.0000],[-0.5000,  0.5000]])

pytorch对矩阵(奇异和非奇异)求逆相关推荐

  1. php随机数字不重复使等式成立_Schur补与矩阵打洞,SMW求逆公式,分块矩阵与行列式(不)等式...

    矩阵论记号约定​zhuanlan.zhihu.com Schur补与矩阵打洞 考虑正态随机向量 ,求 条件分布的一个类似于线性回归的常用技巧是--寻找常值矩阵 适合 :对于正态变量而言独立等价于不相关 ...

  2. 线性代数 --- 如何判断矩阵是否可逆(奇异与非奇异)?

    如何判断矩阵是否可逆? 一般情况而言,判断矩阵是否可逆大多数人都会选择计算矩阵的行列式(determinant)?如果矩阵的行列式为0,则判断该矩阵为奇异矩阵(singular matrix),即不可 ...

  3. matlab矩阵非方阵求逆,python – 从numpy或matlab中的满秩非矩形矩阵中获取可逆方阵...

    假设您具有满秩的NxM矩阵A,其中M> N.如果我们用C_i表示列(尺寸为Nx1),那么我们可以将矩阵写为 A = [C_1, C_2, ..., C_M] 如何获得原始矩阵A的第一个线性独立列 ...

  4. 矩阵的基本运算(相乘、相加、求逆、转置)

    python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包. from numpy import * ; #导入numpy的库函数 import numpy a ...

  5. MATLAB转置矩阵乘,【MATLAB】线性代数矩阵基本运算(转置,乘法,求逆)

    文章目录 创建矩阵 向量转置 矩阵乘法 单位矩阵 矩阵求逆 创建矩阵 MATLAB 提供了许多函数,用于创建各种类型的矩阵.例如,您可以使用基于帕斯卡三角形的项创建一个对称矩阵: A = pascal ...

  6. 【MATLAB】线性代数矩阵基本运算(转置,乘法,求逆)

    文章目录 创建矩阵 向量转置 矩阵乘法 单位矩阵 矩阵求逆 创建矩阵 MATLAB 提供了许多函数,用于创建各种类型的矩阵.例如,您可以使用基于帕斯卡三角形的项创建一个对称矩阵: A = pascal ...

  7. 基于Spark的巨型矩阵分布式LU计算求逆【第一篇】

    概述 本文将介绍如何利用Spark解决巨型矩阵分布式的LU法求逆的问题.本篇则将对LU求逆的前半部分--分布式LU分解做介绍. [后半部分再我的队友整理完后,会以链接的形式补在这里] 正文 首先,我们 ...

  8. Matlab 小笔纪之求逆和取余

    笔记一: 求逆: 写在前:奇异方阵VS非奇异方阵 若方阵:,为非奇异方阵,满足,反之为奇异方阵. Matlab求逆方式如下:   ,A是mxm方阵,b是mx1列向量 ,针对非奇异方阵求逆 ,可用于一切 ...

  9. matlab 奇异值求逆,你好,请问matlab对奇异矩阵求逆你有好的方法吗?

    摘要: 奇异矩阵求逆问题!!!X奇异C有无穷多解.找基础解系对不起,最小二乘都快忘光了,线性代数还行..希望下面的东西能帮到你(你试试看):对A进行QR分解(A=QR),其中Q是nxk正交... 奇异 ...

最新文章

  1. js监听audio播放完毕
  2. Bootstrap中模态框多层嵌套时滚动条问题
  3. C++用FindFirstFile、FindNext递归遍历硬盘的文件
  4. go 打印bool_Golang语言基础教程:键盘输入和打印输出
  5. date(w) 输出后对应的周几不对的问题
  6. 服务器php只显示文本,服务器上的php echos文件是文本而不是二进制文件
  7. 一个程序员的感慨的《虚拟光驱》
  8. 腾讯开源物联网操作系统 TencentOS tiny,最小体积 1.8KB!
  9. Effective Use of Word Order for Text Categorization with Convolutional Neural Networks
  10. MVC应用程序结构与规划
  11. VS选中cpp文件后定位其在解决方案管理器中属于哪个项目
  12. VIM 第五节:文件信息、跳转、定位括号和缩进 https://fishc.com.cn/thread-65856-1-1.html
  13. python3 tkinter教程
  14. 判断输入的字符与已知字符相等_你会输入带圈字符吗?
  15. Word:表格中绘制斜线表头
  16. 淘宝天猫页面详情采集API调用展示(APP端商品详情)
  17. Spring(二)控制层梳理
  18. Java8中关于LocalDateTime转换方法总结
  19. MacOS系统通过命令行启动Chrome浏览器并添加启动参数
  20. Covetrus宣布首席执行官和董事长过渡

热门文章

  1. 基于Linux操作系统的 智能家居的设计
  2. 递归解决不含连续的1的位串个数的问题
  3. 最长不含重复字符的子字符串(C++)
  4. Java加上Xtend,满足你对C#语法的所有想象
  5. PDF编辑器:Adobe Acrobat XI Pro
  6. poj1144 - tarjan求割点
  7. 智能手机照片被误删如何恢复
  8. 12306之梆梆加固libsecexe.so的脱壳及修复
  9. Canvas实用库收藏
  10. 无线射频专题《射频合规,2.4GHz WIFI频谱模板》