数学实验教程_实验11(线性方程组及向量组的线性相关性)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验11 线性方程组及向量组的线性相关性

实验目的

1.掌握齐次线性方程组的通解的求解方法

2.掌握非齐次线性方程组的特解和通解的求解方法

3.利用向量组线性相关与无关的几何演示,加深理解线性相关与线性无关的概念4.掌握向量组的秩和最大线性无关组的计算方法

5.理解线性方程组的解的结构的几何意义

实验准备

1.复习线性方程组的解法及其表示;

2.复习向量的基本运算、向量的线性组合及线性表示

3.复习向量组的线性相关(无关)、向量组的秩和最大线性无关组的求法等

4.复习向量空间的基及维数

实验内容

1.线性方程组的解法

2.向量的基本运算及线性组合

3.向量组的线性相关性的判别

4.向量组的秩和最大线性无关组的求法

5.线性方程组的解的结构

软件命令

表11-1 Matlab向量操作命令

实验示例

- 66 - 第一章 基础实验

【例11.1】 线性方程组的解法

求下列线性方程组的通解

1.23045607890x y z x y z x y z ++=⎧⎪++=⎨⎪++=⎩; 2.23024603690x y z x y z x y z ++=⎧⎪++=⎨⎪++=⎩;3.2314254240x y z x y z x y z -+=⎧⎪

-+=⎨⎪-+=⎩

4.2312264257x y z x z x y z -+=⎧⎪+=⎨⎪++=⎩; 5.26767971411725979361625225

x y z w x y z w x y z w x y z w +++=⎧⎪+++=⎪

⎨+++=⎪⎪+++=⎩。

【原理】线性方程组Ax b =的求解可以分为两类:一类是齐次线性方程组;另一类是非齐次线性方程组。无论哪一种类型,都需要先判断出该方程组的解的分布情况:唯一解?无解?无穷多解?,然后在进行求解。具体如下(n 为未知量的个数):

【判别原理】:(1)若()(,)R A R A b n ==,则方程组Ax b =有唯一解;

(2)若()(,)R A R A b n =<,则方程组Ax b =有无穷多解; (3)若()(,)R A R A b ≠,则方程组Ax b =无解。 Matlab 命令:rank(A),rref(A,b)。

【求解方法】原理:高斯消元法。将增广矩阵化成行最简形,然后求解。 【步骤】:Step1:当Ax b =有唯一解时,可采用如下两种方法之一

● 利用命令:x=A\b ;

● 利用命令:x=linsolve(A,b);

● 利用LU 、QR 、Cholesky 分解命令:x=U\(L\b);x=Q\(R\b);x=R\(R'\b) Step2: 当Ax b =有无穷多解时,可以采用下述方法

● 利用命令:null(A,'r');

● 第一步,利用z=null(A,'r')求出0Ax =的基础解系;

第二步,利用A\b 或者rref([A,b])或者linsolve(A,b)求出Ax b =的一个特解;

第三步,利用Ax b =的解的结构理论构造处通解。

Step3:(3)当Ax b =有无解时,可以采用下述方法求出最小二乘解

● 命令:x=(A'*A)\(A'*b); ● 命令:x=linsolve(A,B,opt)

实验11 线性方程组及向量组的线性相关性 - 67 -

【程序】:

【程序1】:LinearSysYesorNo.m

% 调用方式: str=LinearSysYesorNo(A,B)

% 判断线性方程组 Ax=b 是否有解 % 输入:系数矩阵 A ,右端矩阵 B

% 输出:解的判别的三种情况:唯一解、无解、无穷多解 中的一种。 【程序2】:SolveLinearSys.m

% 调用方式: x=SolveLinearSys(A,b)

% 求解线性方程组 Ax=b % 输入:A , b % 输出:x

% 说明:利用高斯消元法求解线性方程组 Ax=b 【程序3】:Exm12Demo02.m

% 调用前面的函数,具体求解 。

【例11.2】参数方程求解

试就参数λ的各种情况,讨论下述线性方程组的解的情况:

21

x y z x y z x y z λλλλλ⎧++=⎪

++=⎨⎪++=⎩

。 【方法一】:根据方程组的特殊性:m=n ,先利用Cramer 法则确定唯一解;然后分别讨论无解和无穷多解的情况。

syms a;

A=[a 1 1;1 a 1;1 1 a]; B=[1;a;a^2]; det(A)

factor(det(A)) solve(det(A))

因此,由Cramer 法则,当2

(2)(1)0λλ+-≠,即2,1λλ≠-≠时,有唯一解;

下面讨论其否定情况,即21λλ=-=或时原方程组的解的情况:

当2λ=-时,将2λ=-代入上面A 和B 中的a ,利用【例12.1】中的函数计算:

A=[-2 1 1;1 -2 1;1 1 -2]; B=[1;-2;4];

LinearSysYesorNo(A,B) SolveLinearSys(A,B)

可得此时,方程组无解,最小二乘解为[1;2;0];

当1λ=时,将1λ=代入上面A 和B 中的a ,利用【例12.1】中的函数计算:

A=[1 1 1;1 1 1;1 1 1];

- 68 - 第一章 基础实验

B=[1;1;1];

LinearSysYesorNo(A,B) SolveLinearSys(A,B)

可得此时,方程组无穷多解,解为[1-c1-c2;c1;c2]。 【方法二】:直接对增广矩阵做初等行变换,变成类似行阶梯型矩阵,然后根据秩讨论。(这里需要调用三个小程序:swaprow(A,r,s),scalerow(A,r,t),replacerow(A,r,s,t)): 【主程序】:Exm12Demo02.m

【子程序】:swaprow.m ;scalerow.m ;replacerow.m

% 调用方式: Y=swaprow(A,r,s)

% 交换矩阵 A 的第 r 行和第 s 行 % 输入:矩阵 A ;行号:r ,s % 输出:交换后的矩阵 Y

% 调用方式: Y=scalerow(A,r,t) % 比例行

% 输入:矩阵 A ;非零数 t ; % 输出:矩阵 Y

% 调用方式: Y=replacerow(A,r,s,t)

% 替换行:A 的第 s 行乘以数 t 加到第 r 行上 % 输入:矩阵 A ;行号 r 和 s ,数量 t % 输出:Y

【注意】:含有参数情况的线性方程组的解的情况讨论,不能直接使用Matlab 中的函数:rank,rref,因为Matlab 会默认这些参数及其表达式不等于零。因此,应该编写独立的过程加以讨论。

【例11.3】向量组的线性相关性的判别法、秩和最大线性无关组的求法

判断下列向量组的线性相关性,并求其秩和一个最大线性无关组。 1.1234(1,2,1,3),(4,1,5,6),(1,3,4,7),(1,2,1,1)αααα==-=--=;

2.123451202125111,,,,0334236073ααααα⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥

---⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=====⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦⎣⎦

【原理】:向量组的秩与向量组中向量的个数之间的关系: 若两者相等,则线性无关;否则线性相关。

【最大无关组】:列向量组构成的矩阵的主元列。 【主程序】:Exm12Demo03.m

% Exm12Demo03.m : 判断向量组的线性相关性

% 第一个向量组

A=[1 2 1 3;4 -1 5 6;1 -3 -4 7;1 2 1 1]';

相关文档
最新文档