matlab求矩阵的伪逆或者负二分之一次方

如果X不是满秩矩阵的时候,那么不能使用inv()函数来求X的逆,因为X此时不存在逆,但是我们可以求X的伪逆。

(1)有以下两种方法求X的伪逆 :

假设 X=[1 2 1;1 2 1;2 3 4];

1, pinvX=pinv(X);

2,

matlab 复制代码
[U,D,P]=svd(X);
r=rank(X);
Dnew=zeros(size(D));
Dnew(1:r,1:r)=diag(diag(D(1:r,1:r)).^(-1));
eigX=P*Dnew*U';

二者是等价的。

(2)求X的负二分之一次方只可以用:

matlab 复制代码
pinvX=pinv(X)
pinvX=sqrtm(pinvX);

这样却不可以

matlab 复制代码
[U,D,P]=svd(X);
r=rank(X);
Dnew=zeros(size(D));
Dnew(1:r,1:r)=diag(diag(D(1:r,1:r)).^(-1/2));
eigX=P*Dnew*U';
相关推荐
JustNow_Man4 分钟前
【Harness】本地文本向量化搜索解决方案--qmd
git·python·算法
敲代码的苦1320 分钟前
头歌 数据结构—消防资源调度
数据结构·算法
布莱克60527 分钟前
C++ 中 set 与 map 的区别详解
开发语言·c++·算法·哈希
lisw0534 分钟前
算法与软件的本质区别
驱动开发·算法·数学建模
我不会插花弄玉36 分钟前
5.Hash 【由浅入深-redis】
redis·算法·哈希算法
Nuanyt40 分钟前
LeetCode Hot 100 · 双指针 3 题 Java
java·笔记·算法·leetcode·双指针
志起计算机编程2 小时前
Clickhouse的几个关键优势
算法
重生之小比特2 小时前
【算法拾光 7】双指针|两数之和 II - 输入有序数组 + 三数之和
算法
茉莉玫瑰花茶2 小时前
线性代数 [ 矩阵与线性变化 ]
线性代数·math·1024程序员节
Navigator_Z2 小时前
LeetCode //C - 1304. Find N Unique Integers Sum up to Zero
c语言·算法·leetcode