广义逆矩阵A+的预备知识

前言

我们知道一个矩阵有15种广义逆矩阵,最常用的是A\{1 \}A^{+}!在这两种中A^{+}又是A\{1 \}的特例,我用的最多的就是A^{+}。因此,本文主要介绍广义逆矩阵A^{+}的预备矩阵知识:满秩分解

满秩分解

定义:设矩阵A\in C^{m\times n}_{r},其中下标r是A的秩数(r>0);如果存在F\in C^{m\times \color{red}{r}}_{\color{red}{r}}G\in C^{\color{red}{r}\times n}_{\color{red}{r}},使得下式成立,则称为A满秩分解

A = FG

注意:矩阵A的满秩分解不是唯一的!

定理:设A\in C^{m\times n}_{r},且A的"Hermite标准形 / 行最简形式"为H。取A的第j_1,j_2,\cdots,j_r构成的矩阵F;又取H的前r行构成矩阵G,则A = FG即为A一个满秩分解。

定理说的很明白,下面我们就根据上面的定理进行矩阵的满秩分解:

% 满秩分解: A = FG
% 其中A是m*n, 秩为r; 则F是m*r, 秩为r; G是r*n, 秩也为r
% 满秩分解不是唯一的!但是一般得用下面的这种方法

clear ; clc;

A = [1 5 1 3;1 2 -1 2;-1 -2 -2 1];
r = rank(A);         % 记录A的秩数r 
[row,col] = size(A); % 记录A的尺寸

H = rref(A);    % A的行最简形式H
G = H(1:r,:);   % 取行最简形式前面r行

col_list = [];  % 记录"行最简形式H"中各个主元1对应的列号
num = 1;        % 一个计数器
for m = 1:row
    for n = m:col
        if H(m,n) == 1
            col_list(num) = n;
            num = num + 1;
            break;
        end
    end
end
F = A(:,col_list);  % 上面记录的H中的列号所对应的"A中"的那些列

% 判断满秩分解后再重组是否和原来的一样: 1是一样, 0是不一样
isequal(A,F*G)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容