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';
相关推荐
IT古董3 分钟前
【机器学习】机器学习中用到的高等数学知识-1.线性代数 (Linear Algebra)
人工智能·python·线性代数·机器学习
远望清一色6 分钟前
基于MATLAB身份证号码识别
开发语言·图像处理·算法·matlab
生信与遗传解读7 分钟前
基于python的线性代数相关计算
python·线性代数·机器学习
醉颜凉1 小时前
【NOIP提高组】潜伏者
java·c语言·开发语言·c++·算法
lapiii3581 小时前
图论-代码随想录刷题记录[JAVA]
java·数据结构·算法·图论
取个名字真难呐1 小时前
矩阵乘法实现获取第i行,第j列值,矩阵大小不变
python·线性代数·矩阵·numpy
Dontla3 小时前
Rust泛型系统类型推导原理(Rust类型推导、泛型类型推导、泛型推导)为什么在某些情况必须手动添加泛型特征约束?(泛型trait约束)
开发语言·算法·rust
Ttang233 小时前
Leetcode:118. 杨辉三角——Java数学法求解
算法·leetcode
喜欢打篮球的普通人3 小时前
rust模式和匹配
java·算法·rust