1.
%求齐次线性方程组的通解
clear
A=[2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19]; %输入系数矩阵A
b=[-2;7;-23;43]; %输入常数列向量b
[R,s]=rref([A,b]); %把增广矩阵的最简行阶梯矩阵赋给R
[m,n]=size(A);
x0=zeros(n,1); %将特解x0初始化为n维零列向量
r=length(s); %将矩阵A的秩赋给变量r
x0(s,:)=R(1:r,end); %将矩阵R的最后一列按基准元素的位置给特解x0赋值
disp('非齐次线性方程组的特解为:')
x0 %显示特解x0
disp('对应齐次线性方程组的基础解系为:')
x=null(A,'r') %得到齐次方程组的基础解系x
2.
%找向量组的最大无关组,并用它线性表示其他向量
clear
a1=[1;1;0;2;2]; %输入5个列向量
a2=[3;4;0;8;3];
a3=[2;3;0;6;1];
a4=[9;3;2;1;2];
a5=[6;-2;2;-9;2];
A=[a1,a2,a3,a4,a5];
[R,s]=rref(A);
r=length(s);
fprintf('最大线性无关组为:')
for i=1:r
fprintf('a%d',s(i));
end
for i=1:r
A0(:,i)=A(:,s(i)); %显示最大无关组矩阵A0
end
A0
s0=[1,2,3,4,5];
for i=1:r
s0(s(i))=0;
end %若s0的某元素不为0,表示该元素为矩阵A中除最大无关组以外其他列向量的序号
s0=find(s0); %删除s0中的零元素,此时s0中元素为其他向量的序号
for i=1:5-r
fprintf('a%d=',s0(i))
for j=1:r
fprintf('%3d*a%d+',R(j,s0(i)),s(j));
end
fprintf('\b\b \n'); %去掉最后一个“+”
end