您的位置:首页 > 编程语言 > MATLAB

有关线性代数的Matlab代码笔记(4)——生成矩阵,消元矩阵

2014-02-26 09:02 609 查看
再继续:

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

生成矩阵:矩阵的一组基满足:这组基能够生成该矩阵且各向量线性无关。.若能找

到相同的一组基,那么矩阵的列空间必定相同。

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

ffunction samespan(A1, A2)

% samespan 测试两个矩阵是否有相同的列空间.

%

% samespan(A1, A2)

%如果A1 和 A2的列空间相同,函数返回其维数

%若不同,则返回零。

rankA1 = rank(A1)

rankA2 = rank(A2)

rankboth = rank([A1 A2])

if (rankA1 == rankA2) & (rankA1 == rankboth)

disp('A1和A2列空间相同.');

else

disp('A1和A2列空间不同.');

end

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

>> A=[1 2 3;2 2 5;1 1 1]

A =

1 2 3

2 2 5

1 1 1

>> B=[3 3 1;3 4 5;9 0 4]

B =

3 3 1

3 4 5

9 0 4

>> samespan(A,B)

rankA1 =

3

rankA2 =

3

rankboth =

3

A1和A2列空间相同.

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

消元矩阵:高斯消元是矩阵的基本消元法,消元的过程相当于在原矩阵的基础上乘以

一个消元矩阵。

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

function
[E, R] = elim(A)

% elim 是对E*A = R的因数分解.

%

% E = elim(A) 返回消元矩阵 E

% E*A = R.R是行简化阶梯矩阵。

% 如果A是可逆方阵,那么 E = inv(A).

%

% [E, R] = elim(A) 返回消元矩阵E

% 行简化阶梯矩阵R.

[m, n] = size(A);

I = eye(m);

%

%对增广矩阵[A I]消元得到[R E].

%

RE = rref([A I]);

R = RE(:, 1:n);

E = RE(:, (n+1):(m+n));

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

>>
A=[1 2 3;2 2 5;1 1 1]

A =

1 2 3

2 2 5

1 1 1

>>
[E,R]=elim(A)

E =

-1.0000 0.3333 1.3333

1.0000 -0.6667 0.3333

0 0.3333 -0.6667

R =

1 0 0

0 1 0

0 0 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: