APP下载

线性方程组的解法探讨及MAPLE实现

2018-01-02

淮南职业技术学院学报 2017年6期
关键词:行列式线性方程组方程组

夏 磊

(江苏联合职业技术学院无锡机电分院, 江苏 无锡 214000)

线性方程组的解法探讨及MAPLE实现

夏 磊

(江苏联合职业技术学院无锡机电分院, 江苏 无锡 214000)

“线性代数”是高等学校理工科专业学生必须要学习的一门重要的理论基础课,大多数的线性代数教材主要由行列式、矩阵、线性变化、线性方程组、向量空间及二次型组成,它们都是把矩阵作为研究的重要工具,然而事实上,线性方程组也是研究线性代数的一个重要的研究工具;通过将线性方程组的分类,总结线性方程组的几种常用的解法,针对非齐次线性方程组解的情形,结合MAPLE软件强大的符号计算、数值计算及直观性,给出MAPLE软件求解线性方程组的方法。

线性方程组; 解法; MAPLE

一、线性方程组的定义及分类

一般线性方程组的形式为:

其中x1,xn,…,xn是n个未知量(也称为“元”),aij(i=1,2,…,m;j=1,2,…,n)称为方程组的系数,b1,b2,…,bm称为常数项。若记

称A为方程组的系数矩阵,则方程组(1)的矩阵形式为

若b的元素不全为零,则称方程组(1)为非齐次线性方程组;若b的元素全为零,即b1=b2=…=bm=0,则称方程组(1)为其次线性方程组。

定义1.1 由A和b组成的m×(n+1)矩阵

二、线性方程组的解法

(一) 克莱姆(Gramer)法则

定理(Gramer法则):设线性方程组

的系数行列式

则方程(1)有唯一解

其中Dj是D中第j列元素依次用常数项b1,b2,…,bn代替后得到的n阶行列式,即

克莱姆(Gramer)法则仅适用于求解系数行列式D不为零的适定方程组,并且对于未知数个数多于4个的适定方程组,计算工作量较大,解题效率较低。

(二) 逆矩阵乘积法

把线性方程组(2)记成矩阵形式AX=b后,若系数矩阵A可逆,则X=A-1b。逆矩阵求解线性方程组的关键是求解系数矩阵A的逆矩阵A-1。

逆矩阵求解线性方程组仅适用于系数矩阵A可逆的适定方程组,对于系数行列式为零的适定方程组和欠定方程组、超定方程组则不适用。

(三) 高斯消元法

对于一般的线性方程组(1),用高斯消元法解方程组的主要步骤是把增广矩阵(A,b)化为阶梯型矩阵

当R(A)=R=n时,线性方程组AX=b有唯一解;当R(A)=R=r

三、用MAPLE软件求解线性方程组

Maple软件是功能强大的符号处理和数值分析工具,主要应用于符号数学运算。Maple软件是1980年由加拿大教授Keith Geddes和Gaston Gnnot在Waterloo大学开发,后来由Waterloo Maple公司开发用于商业目的,它内置5000多个数学函数,其中涉及线性代数、微积分、组合优化、统计学、微分方程、数值分析和离散数学等。在线性代数方面,用Maple软件可以进行线性代数的各种运算,包括矩阵预算、行列式运算、求解线性方程组、方阵的特征值及特征向量,求二次型的标准型等问题;此外还可以通过Maple软件的绘图及程序设计命令,对线性代数中的若干概念的几何意义进行分析和讨论,使学生能够更好的理解线性代数的抽象概念,下面针对上面提出的线性方程组的三类解法,通过例题给出Maple求解的方法及求解过程。

例1 判断下列的非齐次线性方程组是否有解,若有解,求其解。

方法一:

首先在Maple软件中调用线性代数函数包,在交互界面中输入一下命令

>with(linearAlgebra) :

>sys:=[x1+x2-2x3=0,x1-2x2+x3=3,-2x1+x2+x3=3];

sys:=[x1+x2-2x3=0,x1-2x2+x3=3,-2x1+x2+x3=3]

>var:=[x1,x2,x3];

var:=[x1,x2,x3];

计算线性方程组的增广矩阵(A,b)

>A,b:=GenerateMatrix(sys,var)

求解线性方程组

>LinearSolve(A,b);

Error, (inLinearAlgebra:-LinearSolve)inconsistentsystem

错误信息说明:此方程组不相容的,没有解。

方法二:

首先在Maple软件中调用线性代数函数包,在交互界面中输入一下命令

>with(LinearAlgebra):

计算线性方程组的增广矩阵(A,b)

>M:=GenerateMatrix(sys,var,augmented=true);

化增广矩阵为行最简型矩阵

>ReduceRowEchelonForm(M);

由上述矩阵可看出,增广矩阵的秩R(A,b)=3,系数矩阵A的秩R(A)=2,R(A,b)≠R(A),此方程组无解。

例2 求解线性方程组

解:首先判断方程组增广矩阵与系数矩阵的秩是否相等。

>with(LinearAlgebra):

>sys:=[x1+x2+2x3+3x4=1,x1+2x2+3x3-x4=-4,3x1-x2-x3-2x4=-4,2x1+3x2-x3-x4=-6]:

>var:=[x1,x2,x3,x4]:

>M:=GenerateMatrix(sys,var,augmented=true) :

>ReducedRowEchelonForm(M) ;

由上可知,R(A,b)=R(A)=4,方程组有唯一解。

解法一:克莱姆(Gramer)法则:

计算系数行列式D及Dj:

>D:=Matrix([1,1,2,3],[1,2,3,-1],[3,-1,-1,-2],[2,3,-1,-1]);

Error,attemptingtoassignto'D'whichisprotected.Trydeclaring'localD';see?protectfordetails.

由于D是Maple受保护的变量名,所以在计算过程中尽量回避使用该变量名。

>B:=Matrix([[1,1,2,3],[1,2,3,-1],[3,-1,-1,-2],[2,3,-1,-1]]);

>LinearAlgebra[Determinant](B);

-153

用相同的计算行列式命令可求出B1=153,B2=153,B3=0,B4=-153

由克莱姆法则得x1=-1,x2=-1,x3=0,x4=1

解法二:逆矩阵乘积法:

线性方程组记成矩阵形式AX=b后,若系数矩阵A可逆,则X=A-1b,故我们首先需要求解系数矩阵A的逆矩阵A-1

>A:=Matrix([[1,1,2,3],[1,,2,3-1],[3,-1,-1,-2],[2,3,-1,-1]]):

>C:=LinearAlgebra:-MatrixInverse(A);

则X=A-1b,在Maple交互界面中输入以下命令:

> >B:=Matrix([[1],[-4],[-4],[-6]]):

>C,B;

得:x1=-1,x2=-1,x3=0,x4=1

解法三:高斯消元法

在Maple交互对话框输入以下命令调用“高斯消去法”对话框(图1)。

Student[LinearAlgebra][GaussianEliminationTutor]();

图1

图2

在矩阵位置按ENTER调取矩阵编辑模式,并输入所需要的方程组基本信息(图2),输入完毕后,点击CLOSE键回到“高斯消去法”对话框,点击All Steps,把增广矩阵化为行最简形矩阵(图3),点击Solve System进入求解界面,依次点击右侧Equations、Solve x[4]、Solve x[3]、Solve x[2]、Solve x[1],即可求出方程组的解。

得出x1=-1,x2=-1,x3=0,x4=1

图3

图4

例3:判断非齐次线性方程组

是否有解,若有解,求其解。

解:首先判断系数矩阵的秩与增广矩阵的秩是否相等。

>A:=Matrix([[1,,-2,3-4,4],0,1,-1,1-3],[1,3,0,-3,1],[0,-7,3,1,-3]]):

>LinearAlgebra[Rank](A);

3

得出系数矩阵的秩R(A)=R(A,b)=3<4,所以方程组有无穷多解。

>with(LinearAlgebra):

>sys:=[x[1]-2x[2]+3x[3]-4x[4]=4,x[2]-x[3]+x[4]=-3,x[1]+3x[2]-3x[4]=1,-7x[2]+3x[3]+x[4]=-3];

>sys:=[x1-2x2+3x3-4x4=4,x2-x3+x4=-3,x1+3x2-3x4=1,-7x2+3x3+x4=-3]

>var:=[x[1],x[2],x[3],x[4]];

var:=[x1,x2,x3,x4]

>solve(sys,var);

[[x1=-8,x2=x2,x3=2x2,x4=-3+x2]]

从而可知η*=(-8,3,6,0)T为原方程组的一个特解。求对应齐次方程组的基础解系,在Maple中做如下运算:

>(A,b) :=GenerateMatrix(sys,var);

>NullSpace(A);

因此原方程组所对应的其次方程组的一组基础解向量为:ξ1=(0,1,2,1)T

>sys :[lambda·x[1]-x[2]-x[3]=1,-x[1]+lambda·x[2]-x[3]=-1·lambda,-x[1]-x[2]+lambda·x[3]=λ2];

sys :=[λx1-x2-x3=1,-x1=λx2-x3=-λ,-x1-x2+λx3=λ2]

>var :=[x[1],x[2],x[3]];

var :=[x1,x2,x3]

>solve(sys,var);

>solve(sys,var,'parametric'=full);

四、结语

综上,通过对几个典型例题的讲述与演示,探讨了Maple软件在线性方程组求解过程中的一些基本解法,分类给出了部分算法。它的一个重大突破是计算机辅助教学不仅仅是将信息技术的应用定位于教师的授课过程中,而是利用软件强大的可视化交互功能,帮助学生建立自主学习的新模式,激发学生学习线性代数的兴趣和热情,更好的培养学生的认知、创新和应用数学知识解决问题的能力,让古老的数学焕发新的青春活力。

[1] 袁德正.线性代数[M].北京:科学出版社,2014.

[2] 吴珞,徐俊林.用Maple学大学数学[M].北京:机械工业出版社,2014.

[3] 童小红,秦新强.线性方程组的解法探讨及MATLAB实现[J].数学学习与研究,2013(13):86-88.

O241.6

A

1671-4733(2017)06-0074-04

2017-05-12

夏磊(1982-),男,硕士,讲师,研究方向为数学教学与数学软件。

猜你喜欢

行列式线性方程组方程组
一类整系数齐次线性方程组的整数解存在性问题
深入学习“二元一次方程组”
求解非线性方程组的Newton迭代与Newton-Kazcmarz迭代的吸引域
范德蒙德行列式在行列式计算中的应用
H-矩阵线性方程组的一类预条件并行多分裂SOR迭代法
行列式解法的探讨
《二元一次方程组》巩固练习
一类次临界Bose-Einstein凝聚型方程组的渐近收敛行为和相位分离
三阶行列式计算的新方法
加项行列式的计算技巧