matlab中最大无关组,matlab如何求极大线性无关组

匿名用户

3级

2013-04-05 回答

调出实验中的矩阵A、B

1.作出A的行向量组:a1、a2、a3、a4、a5、a6;

2.作出B的列向量组:b1、b2、b3、b4、b5、b6;

3.由A的一、三、五行,二、三、四列交叉点上的元素作出子矩阵A3;

4.做一个10阶矩阵A4,其分块形式为A4 ;

5.由索引向量L产生取A的第2.、4、5行所成的子矩阵A5;

6.将A 对应的行向量组正交规范为正交向量组A6,并验证所得的结果;

7.求a1与a2的内积A7;

8.完成以下初等变换:将A 的一、四行互换,再将其第三列乘以,6再将其第一行的10倍加至第五行;

9.求B的列向量组的一个极大线性无关向量组A9,并将其余向量用极大线性无关向量组线性表示

给一个例子:

clc; clear all;

%% 矩阵预处理

A = randint(4, 5, [10 100]);

r = rank(A);

s1 = size(A);

c = 1 : min(size(A));

combos = combntns(c,r);

s2 = size(combos);

%% 求出极大线性无关组

if s1(1) <= s1(2)

for i = 1 : s2(1)

B(:, :, i) = A(combos(i, 1:r), 1:s1(2));

if rank(B(:, :, i)) == r

C = B(:, :, i);

end

end

else

for i = 1 : s2(1)

B(:, :, i) = A(1 : s1(1), combos(i, 1:r));

if rank(B(:, :, i)) == r

C = B(:, :, i);

end

end

end

%% 正规化

for i = 1 : size(C, 1)

a1 = max(C(i, :));

for j = 1 : size(C, 2)

a1 = gcd(a1, C(i, j));

end

C(i, :) = C(i, :) / a1;

end

%% 打印

fprintf('\n矩阵: \n')

disp(A);

fprintf('基向量为: \n\n');

for i = 1 : size(C, 1)

if i > 1 & i <= size(C, 1)

fprintf(' + \n');

end

str = sprintf('k%d*[', i);

fprintf(str);

for j = 1 : size(C, 2)-1

fprintf('%.3f, ', C(i, j));

end

fprintf('%.3f ]', C(i, j+1));

end

fprintf('\n其中,ki为任意实数 \n');

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值