matlab求零空间,有关线性代数的Matlab代码笔记(2)行空间、零空间

这篇博客介绍了线性代数中行空间和零空间的概念。通过提供的代码示例,解释了如何找到矩阵的行空间基和零空间基。行空间的基与矩阵转置的列空间相关联,而零空间的基则揭示了矩阵中构成零向量的列的线性组合。文章强调了理解这些概念的重要性,并提供了手动求解零空间的算法的简化版本。
摘要由CSDN通过智能技术生成

今天继续,尝试加入一些范例 依然是简单的内容: %%%%%%%%%%%%%%%%%%%%% 说明 %%%%%%%%%%%%%%%%%%% 行空间的基 :按行的角度来看待矩阵,更多介绍在代码说明里,简单的利用了昨天的代码。 %%%%%%%%%%%%%%%%%%%%% CODE %%%%%%%%%%%%%%%%%% function B = rowba

今天继续,尝试加入一些范例

依然是简单的内容:

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

行空间的基:按行的角度来看待矩阵,更多介绍在代码说明里,简单的利用了昨天的代码。

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

function B = rowbasis(A)

% rowbasis 行空间的基

%

% B = rowbasis(A) 返回A的行空间的一组基

% 以B的列表示

% A的行空间相当于A的转置的列空间

% rowbasis 找出A'中线性无关的

% 前r列,r代表A的秩

%

B = colbasis(A');

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

>> A=[1,1,1;1,3,2;2,3,4]

A =

1 1 1

1 3 2

2 3 4

>> rowbasis(A)

ans =

1 1 2

1 3 3

1 2 4

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

零空间的基:这个零空间的代码值得好好看看,体现了线性代数里关于列意义的基本思想。

直接看去你可能会不知道这些代码在干什么。因为一个简单的语句可能包含了很多操作。

我自己不太明白的时候是喜欢举个例子,把代码一句一句执行来看看的。这里要注意的是

零空间里的列指示了矩阵里构成零向量的列的线性组合。而代码里用到了很多构成矩阵的办法。

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

function N = nulbasis(A)

% nulbasis 零空间的基.

%

% N = nulbasis(A) 在N的列中返回A的零空间的一组基

% 包含了Ax=0的n-r个特殊解

% freecol是自由列.

%

% Example:

%

% >> A = [1 2 0 3;

% [0 0 1 4];

%

% >> N = nulbasis(A)

%

% N = [-2 -3]

% [ 1 0]

% [ 0 -4]

% [ 0 1]

%

[R, pivcol] = rref(A, sqrt(eps));%精度sqrt(eps)=1.4901e-008

[m, n] = size(A);

r = length(pivcol);

freecol = 1:n;

freecol(pivcol) = [];%主元所在列

N = zeros(n, n-r);

N(freecol, : ) = eye(n-r);%由自由列序号给零空间的行按单位矩阵赋值

N(pivcol, : ) = -R(1:r, freecol);%主元所在列赋行简化阶梯矩阵对应值相反数

%这样组合能得到零向量

%这个方法接近我们手动求零空间的算法

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值