线性方程组的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性方程组的应用
线性方程组是线性代数的主要研究对象之一,它的理论严谨、发展完善、处理问题方法独特,可应用于解决各个领域的实际问题。在代数理论中,借助于方程组可以判断向量组的线性相关,可以求矩阵的特征向量等;在几何、物理、化学、经济、生物、食品等许多方面,方程组也有着广泛的应用。
应用一.线性方程组在空间解析几何中的应用
1.1.线性方程组表示平面,判断平面的位置关系
在空间解析几何中,任一平面可以用三元一次方程01111=+++D z C y B x A 表示,下面用方程组解的判定来判别两个平面的位置关系。
设两个平面
Ⅱ1:01111=+++D z C y B x A
Ⅱ2:02222=+++D z C y B x A
则Ⅱ1,Ⅱ2间的相互关系有下面三种情形:
(1)当⎥⎦
⎤⎢⎣⎡≠⎥⎦⎤⎢⎣⎡=22221111222111D C B A D C B A R C B A C B A R ,即方程组 11112222
00A x B y C z D A x B y C z D +++=⎧⎨+++=⎩ 的系数矩阵的秩不等于其增广矩阵的秩,方程组无解,故Ⅱ1,Ⅱ2没有公共点,Ⅱ1,Ⅱ2平行且不重合。
(2)当122221*********=⎥⎦
⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡D C B A D C B A R C B A C B A R 时,方程组 11112222
00A x B y C z D A x B y C z D +++=⎧⎨+++=⎩
有无穷解,且Ⅱ1,Ⅱ2重合。
(3)当222221*********=⎥⎦
⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡D C B A D C B A R C B A C B A R 时,方程组 1111222200
A x
B y
C z
D A x B y C z D +++=⎧⎨+++=⎩ 有无穷多解,但Ⅱ1,Ⅱ2不重合,相交于一条直线。
例.1 判断平面
Ⅱ1:082=+-+z y x
Ⅱ2: 072=-++z y x
的位置关系。
解: 271128121112121=⎥⎦
⎤⎢⎣⎡--=⎥⎦⎤⎢⎣⎡-=R R 所以,平面Ⅱ1,Ⅱ2相交于一条直线L 。
1.2 三维空间应用举例
线性方程组可以应用于三维空间中,先将所考虑的问题化为一线性方程组,再
利用计算机进行求解,此种方法有进一步的推广。
例:考虑3维空间中由不等式:
⎪⎪⎪⎩⎪⎪⎪⎨⎧≤++≥++≥≥≥12
32463260
00321321
321x x x x x x x x x 决定的区域。若将不等号换成等号,它们就是空间中的5个平面。每三个平面成一组,求这三个平面的交点的坐标,可找到多少个点?对每一个点判断是否所有不等式都成立?若都成立,此点就是一个顶点,有多少个顶点?
分析问题
由于所给条件是一些不等式,对其进行求解有一些困难。我们考虑将上述不等
式中的不等号换成等号。为了统一起见,将最后一个不等式作如下等价变形:
1232412324321321-≥---⇔≤++x x x x x x
一共要求解10次方程组。当方程个数较多时,用人工方式显然效率十分低下而且准确率难以保证。由此考虑用计算机求解。
用Matlab 6.1对该问题进行求解
求解程序
A=[1,0,0;0,1,0;0,0,1;6,2,3;-4,-2,-3];%系数矩阵
B=[0;0;0;6;-12]; %常数项矩阵
General_Solution =[]; %未经判断的解矩阵
Vector_Solution =[]; %产生每组解的方程序号和解所不满足的不等式序号矩阵 None_Solution=[]; %无解方程组的方程序号矩阵
Valid_Solution=[]; %经过判断有效的解矩阵
t=1;
l=1;
Solve_equations; %方程求解
r=1;
for(s=1:t-1)
if(sum(Vector_Solution(size(A,2)+1:size(A,1),s))==0)%判断解的有效性 Valid_Solution(:,r)=General_Solution(:,s);%储存有效解
r=r+1;
end
end
General_Solution
Vector_Solution
None_Solution
Valid_Solution
其中Solve_Equations的程序如下:
for(i=1:size(A,1)-2)
for(j=i+1:size(A,1)-1)
for(k=j+1:size(A,1))
if(rank(A([i,j,k],:))==size(A,2)) %判断是否满秩
General_Solution(:,t)=inv(A([i,j,k],:))*B([i,j,k],:);%求解方程Vector_Solution(:,t)=[i;j;k;zeros(size(A,1)-size(A,2),1)];%记录方程序号
r=size(A,2)+1;
for(s=1:size(A,1))
if(s~=i&s~=j&s~=k)%寻找另外的不等式序号
if(A(s,:)*General_Solution(:,t)
Vector_Solution(r,t)=s;%记录不满足的不等式序号
r=r+1;
end
end
end
t=t+1;
else
None_Solution(:,l)=[i;j;k];%记录无解方程组的方程序号