有关线性代数的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
%%%%%%%%%%%%%%%%%%%%%说明 %%%%%%%%%%%%%%%%%%%
生成矩阵:矩阵的一组基满足:这组基能够生成该矩阵且各向量线性无关。.若能找
到相同的一组基,那么矩阵的列空间必定相同。
%%%%%%%%%%%%%%%%%%%%%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
相关文章推荐
- matlab实现梯度下降
- TIMIT语料库音频格式转换
- 随机森林调用matlab代码做回归
- matlab 使用大全,随机,文件,运算(二)
- matlab调用C代码
- Xfig+Matlab+LaTeX超级组合——图像、计算、排版的高效组合——Xfig基本介绍
- 2014年2月24日 查看Matlab函数源代码
- Matlab中fread函数用法
- matlab2012a vs2012混合编程
- Matlab plot 参数设置
- Matlab 快捷键 设置
- MATLAB中inputdlg的使用
- Matlab 文件操作
- matlab小段代码学习
- Matlab与VC混合
- Emacs调用Matlab编译器-快速配置
- Emacs+Matlab快速配置
- Matlab---size,length和numel函数
- matlab 字符串处理函数
- 2.23学习心得 Matlab graythresh函数 形态学开闭操作,腐蚀膨胀的作用