matlab求子空间的基,有关线性代数的Matlab代码笔记(5)——四个基本子空间

今天只写一段:

%%%%%%%%%%%%%%%%%%%%%说明 %%%%%%%%%%%%%%%%%%%

四个基本子空间:前面已经分别给出了四个基本子空间的基的代码,他们的确

算得上是对矩阵的一些基本认识。通过他们可以对一个矩阵的空间意义做出

简单的想象。当然他们也是后续求解矩阵方程、投影、正交的基础。现在我们

用一段代码一次求出四个基本子空间。

%%%%%%%%%%%%%%%%%%%%%CODE %%%%%%%%%%%%%%%%%%

function [ROW, N, COL, LN] = fourbase(A)

% fourbase  四个基本子空间的四组基。

%

% [ROW, N, COL, LN] = fourbase(A) 结果的各矩阵的列

%分别表示矩阵A的行空间、零空间、列空间、左零空间的一组

%基

%

% 四个子空间的基都来自于 E*A = R.

% 矩阵ROW产生于R中主元所在列.

% 矩阵N产生于n-r个特解.

% 矩阵COL包含了A的r个主元所在列.

% 矩阵LN 包含了E的最后m-r行.

% 那m-r行乘以A 就得到了R中的m-r个零行.

% 注意A = COL * ROW' .

[m, n] = size(A);

r = rank(A);

E = elim(A);%E是A的消元矩阵,之前编写过。

[R, pivcol] = rref(A);

ROW = R(1:r, :)';

N = nulbasis(R);

COL = A(:, pivcol);

LN = E((r+1):m, :)';

%这里LN能这么求是因为E对应着R的零行,给出了得到零行的组合。

%%%%%%%%%%%%%%%%%%%%%范例 %%%%%%%%%%%%%%%%%%

>> A=[1 1 2 3;1 2 5 4;2 3 7 7;2 2 4 6]

A =

1     1     2     3

1     2     5     4

2     3     7     7

2     2     4     6

>> [Row,N,Col,Ln]=fourbase(A)

Row =

1     0

0     1

-1     3

2     1

N =

1    -2

-3    -1

1     0

0     1

Col =

1     1

1     2

2     3

2     2

Ln =

1.0000         0

0    1.0000

0   -1.0000

-0.5000    0.5000

稍微说明一下:构造的矩阵A第三列是前两列之和,第四列是第一列的两倍,

故矩阵的秩是2. 可以得到行空间和列空间的秩都是2。零空间的秩是m-r=2;

左零空间的秩是n-r=2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值