PseudoInverse

PseudoInverse[m]

求一个矩阵的伪逆矩阵.

更多信息和选项

范例

打开所有单元关闭所有单元

基本范例  (5)

求可逆矩阵的伪逆矩阵:

该伪逆矩阵仅为逆矩阵:

求奇异矩阵的伪逆矩阵:

的行列式为零,因此它没有真正的逆矩阵:

对于伪逆矩阵, 都成立:

但是,在这种特殊情况下, nor 都不是单位矩阵:

求矩形矩阵的伪逆矩阵:

在这种特殊情况下, 为单位矩阵:

然而, 不是:

求行矩阵的伪逆矩阵:

求零矩阵的伪逆矩阵:

范围  (10)

基本用法  (6)

求机器精度矩阵的伪逆矩阵:

求复矩阵的伪逆矩阵:

求精确矩阵的伪逆矩阵:

求任意精度矩阵的伪逆矩阵:

计算符号伪逆矩阵:

可高效计算大型机器精度矩阵的伪逆矩阵:

特殊矩阵  (4)

以正常矩阵的形式返回稀疏矩阵的伪逆矩阵:

格式化结果:

可能的情况下,以结构化矩阵的形式返回结构化矩阵的伪逆矩阵:

但这不总是可行:

IdentityMatrix[n] 的伪逆矩阵是其自身:

IdentityMatrix[{m,n}] 的伪逆矩阵是它的转置矩阵:

计算 HilbertMatrix 的伪逆矩阵:

选项  (1)

Tolerance  (1)

m 是一个 16×16 Hilbert 矩阵:

某些奇异值小于机器精度的缺省公差:

计算缺省公差的伪逆:

当某些奇异值被认为是有效的零时,它不是一个真正的逆:

计算无公差的伪逆:

尽管没有奇异值被认为是零,但存在数值错误:

应用  (8)

求解方程  (4)

使用 PseudoInverse 求解一下方程组:

以矩阵形式重写方程组:

对于任意向量 ,通解由 给出:

由于丢弃 TemplateBox[{i}, CTraditional],方程组有唯一解且可以使用 SolveValues 验证:

求下列方程组的所有解:

首先,写出系数矩阵 、向量变量 和常数向量

验证上述重写:

对于任意向量 ,通解由 给出:

验证该解:

尽管有三个参数,但该解表示一条直线:

这是因为 的零空间是一维的:

因此,可以重新参数化以消去其中两个参数:

此参数化以与 SolveValues 相同的形式给出答案:

的最小 Frobenius 范数解,其中 如下:

最小范数解为

计算 的 Frobenius 范数:

与向量情况一样,通解由 给出,其中 现在是任意矩阵:

最小值出现在所有 TemplateBox[{TemplateBox[{i, j}, RowDefault]}, CTraditional] 为零时,确认 是最小范数解:

在这种情况下, 无解:

使 的范数最小化的近似解由 给出:

与一般最小化比较:

通解由 给出:

所有这些向量最小化 TemplateBox[{{{m, ., x}, -, b}}, Norm]

尽管 中有三个参数,其表示一条直线:

原因是 的零空间为一维:

最小二乘和曲线拟合  (4)

对于后面的矩阵 和向量 ,求一个使 TemplateBox[{{{m, ., x}, -, b}}, Norm] 最小化的向量

仅在这种情况下, 给出一个解:

使用 LeastSquares[m,b] 也可以得到这个结果:

使用 Minimize 确认答案:

对于后面的矩阵 ,求一个使 TemplateBox[{{{m, ., x}, -, b}}, Norm]_F 最小化的矩阵

仅在这种情况下, 给出一个解:

使用 LeastSquares[m,b] 也可以得到这个结果:

使用 Minimize 确认该答案:

PseudoInverse 可用于找到数据的最佳拟合曲线. 考虑如下数据:

从数据中提取 坐标:

构造一个列为 的设计矩阵用于拟合直线

获取线性最小二乘拟合的系数

使用 Fit 验证系数:

绘制最佳拟合曲线和数据:

找到数据的最佳拟合抛物线:

从数据中提取 坐标:

构造一个列为 的设计矩阵用于拟合直线

获取最小二乘拟合的系数

使用 Fit 验证系数:

绘制最佳拟合曲线和数据:

属性和关系  (14)

对于一个非奇异矩阵,伪逆和逆相同:

PseudoInverse 是对合的,即

PseudoInverseTranspose 对易,即 (TemplateBox[{m}, Transpose])^((-1))=TemplateBox[{{(, {m, ^, {(, {(, {-, 1}, )}, )}}, )}}, Transpose]

也与 Conjugate 对易,即 (TemplateBox[{m}, Conjugate])^((-1))=TemplateBox[{{(, {m, ^, {(, {(, {-, 1}, )}, )}}, )}}, Conjugate]

因此其与 ConjugateTranspose 对易,即 (TemplateBox[{m}, ConjugateTranspose])^((-1))=TemplateBox[{{(, {m, ^, {(, {(, {-, 1}, )}, )}}, )}}, ConjugateTranspose]

PseudoInverse 满足 MoorePenrose 方程 [更多信息]:

MatrixRank[m] 等于 的列数,则 m^((-1))=TemplateBox[{{(, {TemplateBox[{m}, ConjugateTranspose, SyntaxForm -> SuperscriptBox], ., m}, )}}, Inverse].TemplateBox[{m}, ConjugateTranspose]

特别是,PseudoInverse[m]m 的左逆:

如果 MatrixRank[m] 等于 的行数,则 m^((-1))=TemplateBox[{m}, ConjugateTranspose].TemplateBox[{{(, {m, ., TemplateBox[{m}, ConjugateTranspose]}, )}}, Inverse]

特别是,PseudoInverse[m]m 的右逆:

对于对角矩阵 dPseudoInverse[d] 是非零元素倒置的转置:

有奇异值分解 m=u.sigma.TemplateBox[{v}, ConjugateTranspose],则 m^((-1))=v.sigma^((-1)).TemplateBox[{u}, ConjugateTranspose]

a 为一个 矩阵且 MatrixRank[a]==mQRDecomposition 会给出伪逆矩阵:

特别是 a^((-1))=TemplateBox[{r}, Inverse].q

一个正规矩阵 与其伪逆矩阵对易:

PseudoInverse[m] 可以 TemplateBox[{{{TemplateBox[{{(, m}}, ConjugateTranspose], ., m}, )}, D}, Superscript].TemplateBox[{m}, ConjugateTranspose] 形式进行计算,其中 表示 DrazinInverse

LeastSquaresPseudoInverse 都可用于求解最小二乘问题:

给出可最小化残差 的最小范数

验证 将留数最小化:

NullSpace 中的任何向量添加到 不会改变残差:

最小范数 TemplateBox[{y}, Norm] 时出现,即当 时:

对于向量 和零空间为空的矩阵 等于 ArgMin[Norm[m.x-b],x]

Wolfram Research (1988),PseudoInverse,Wolfram 语言函数,https://reference.wolfram.com/language/ref/PseudoInverse.html (更新于 2003 年).

文本

Wolfram Research (1988),PseudoInverse,Wolfram 语言函数,https://reference.wolfram.com/language/ref/PseudoInverse.html (更新于 2003 年).

CMS

Wolfram 语言. 1988. "PseudoInverse." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2003. https://reference.wolfram.com/language/ref/PseudoInverse.html.

APA

Wolfram 语言. (1988). PseudoInverse. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/PseudoInverse.html 年

BibTeX

@misc{reference.wolfram_2024_pseudoinverse, author="Wolfram Research", title="{PseudoInverse}", year="2003", howpublished="\url{https://reference.wolfram.com/language/ref/PseudoInverse.html}", note=[Accessed: 24-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_pseudoinverse, organization={Wolfram Research}, title={PseudoInverse}, year={2003}, url={https://reference.wolfram.com/language/ref/PseudoInverse.html}, note=[Accessed: 24-November-2024 ]}