- 线性代数实用教程(MATLAB版)
- 孟小燕 朱铁锋 石英
- 2879字
- 2025-02-20 20:25:16
§1.5 教学实验
1.5.1 内容提要
行列式是在线性方程组的研究过程中产生的一个数学概念,现在它的理论和方法已广泛应用于数学及其他自然科学的各个领域,成为一个非常有用的数学工具.例如,线性方程组的求解,矩阵的求逆,几何上平面图形的面积与空间立体的体积的计算,密码的加密、解密与破译等,都需用到行列式.
一个n阶行列式,其中,τ(j1j2…jn)是排列j1j2…jn的逆序数,aik(i,k=1,2,…,n)是n2个数,而
表示对一切n元排列求和.换句话说,一个n阶行列式D表示一个数,这个数是D的所有不同行、不同列的n个数之积的代数和.D是一个“积和式”,共有n!项,其中一半带有正号,另一半带有负号.
从函数的角度来理解,它是一个n2元函数,行列式的值就是这个函数的值.
从几何的角度来理解,一个二阶行列式的绝对值,几何上表示由该行列式确定的两个二维向量u=(a1,b1)和v =(a2,b2)所构成的平行四边形的面积,如图1-2(a)所示,即
S=|a1b2-a2b1|. (1-11)

图1-2 行列式的几何意义
换句话说,两个二维向量u=(a1,b1)和v=(a2,b2)几何上可构成一个平行四边形,这个平行四边形的面积就是由其所构成的二阶行列式的绝对值.
同样,一个三阶行列式的绝对值在几何上表示为由该行列式确定的三个三维向量u=(a1,a1,c1),v=(a2,b2,c2)和w=(a3,b3,c3)所构成的平行六面体的体积,如图1-2(b)所示.
换句话说,三个三维向量在几何上可构成一个平行六面体,这个平行六面体的体积就是由其所构成的三阶行列式的绝对值.如果这三个向量共面,甚至共线,那么这个六面体就退化为平面或直线,体积为零,这时其所构成的三阶行列式也等于零.
在“线性代数”课程中,行列式这部分内容主要有:二、三阶行列式,n阶行列式的概念,行列式的性质,行列式的计算,克拉默(Cramer)法则.
计算行列式的主要方法是:对于二、三阶行列式,一般用对角线法则来计算;对于三阶以上的行列式,一般用化三角法,即首先熟记用定义和性质容易求出其值的典型行列式,如三角行列式、四分块三角行列式、箭形行列式、范德蒙德行列式等,其次利用行列式的性质,化行列式为易求其值的典型行列式(如三角行列式等),或者利用降阶法(即利用行列式的性质),将行列式的某一行(列)化出较多的零,再将行列式按该行展开,降阶计算.
克拉默法则不但给出了系数行列式不等于0、n个未知量、n个方程的线性方程组的解的存在性及唯一性,而且用公式把解通过系数及常数项表示出来.这在理论上有重要意义.但当n较大时,用克拉默法则求解线性方程组则是不实用的,因为计算量太大.
1.5.2 机算实验
1.实验目的
熟悉用MATLAB软件处理和解决下列问题的程序和方法:
(1)行列式的计算.
(2)应用克拉默法则求解线性方程组.
(3)验证行列式按行(列)展开定理及符号变量在行列式中的应用.
2.与实验相关的MATLAB命令或函数
(1)运算符号.表1-3给出了线性代数实验用到的MATLAB基本运算符号.
表1-3 MATLAB的基本运算符号

(2)命令(函数)和语句.表1-4给出了与本实验相关的MATLAB命令或函数,若要进一步了解和学习某个命令或函数的详细功能和用法,可参考MATLAB提供的help命令.
表1-4 与本实验相关的MATIAB命令或函数

续表

3.实验内容
例1 求下列行列式的值.



解一 用笔计算的思路和主要步骤如下:
(1)根据对角线法则可得
det(A)=10+27+2-3-30-6=0.
(2)先用行列式的运算性质化简,第一列减去第二列,第三列减去第二列的2倍,第二列提出公因子100,再用对角线法则可得
det(B)=2000.
(3)用行列式的运算性质化简该行列式为上三角行列式,可得
det(C)=9.
解二 用MATLAB软件计算如下:
(1)在MATLAB命令窗口输入:

或:

或:

结果都为:

(2)在MATLAB命令窗口,输入以下命令:

(3)在MATLAB命令窗口,输入以下命令:

例2 已知非齐次线性方程组

用克拉默法则求解该方程组.
解一 用笔计算的思路和主要步骤如下:
首先,分别求出以下行列式的值:





其次,由克拉默法则,得

解二 用MATLAB软件计算如下:
把齐次线性方程组写为矩阵形式:AX=b,则X=A-1b.根据克拉默法则可得,其中,D是方程组的系数行列式,D=det(A);Di是用常数列向量b代替系数行列式的第i列所得到的行列式.
在MATLAB命令窗口,输入以下命令:


得到以下人机对话结果:

注意: 当方程组的系数行列式等于零时,不能用克拉默法则求解方程组,即克拉默法则对这种情形的线性方程组失效.在矩阵部分,我们将介绍用初等行变换的方法求解这种情形的线性方程组的方法.
例3 解方程

解一 用笔计算的思路和主要步骤如下:
按第一行展开,得

即得递推公式
D5=(1-x)D4+xD3,
D4=(1-x)D3+xD2,
D3=(1-x)D2+xD1,
因此,得
D5=[(1-x)3+2x(1-x)]D2+[x(1-x)2+x2]D1,
其中

于是,由
D5=(1-x)(1-x+x2)(1+x+x2)=0,
解得

解二 用MATLAB软件计算如下:
在MATLAB命令窗口,输入以下命令:


运行结果如下:

向量x即为方程的解.MATLAB针对符号变量可以得出解析解.
例4 用MATLAB软件验证行列式按行(列)展开公式:

解一 用笔计算的思路和主要步骤如下:
当i=j时,n阶行列式为

当i≠j时,由行列式性质与展开定理,结合i=j时的结论,得

按第j行展开

故

解二 用MATLAB软件证明如下:
用MATLAB程序构造一个5阶随机数方阵A.首先,按第一行展开:
s=a11A11+a12A12+…+a15A15,
验证s是否与A的行列式相等.
其次,计算A的第一行元素与第三行元素对应的代数余子式乘积之和:
s=a11A31+a12A32+…+a15A35,
验算s是否为0.
在MATLAB命令窗口,输入以下命令:

输出结果如下:

在MATLAB命令窗口,输入以下命令:

输出结果如下:

例5 用化简为三角行列式的方法,求下列行列式:

解一 用笔计算的思路和主要步骤如下:
对行列式D施行初等行变换,依次把行列式D对角线下方的元素化为0,得到上三角行列式,从而求出其值.


解二 用MATLAB软件计算如下:
在MATLAB命令窗口,输入以下命令:

运行结果如下:

通过对以上例题笔算和机算两种方法的比较,可以看出机算比笔算的优越性.机算具有省时省力的快捷性,尤其在解决一些实际应用问题的过程中,应该学会运用计算机进行繁杂的数字计算,而不需要用笔算.
例6 几何图形的面积的计算.设三角形三个顶点的坐标为(x1,y1),(x2,y2),(x1,y3).
(1)试求此三角形的面积.
(2)利用此结果计算四个顶点坐标为(0,1),(3,5),(4,3),(2,0)的四边形的面积.
解一 用笔计算的思路和主要步骤如下:
(1)由于三角形面积为对应平行四边形面积的一半,因此利用行列式等于两向量所构成的平行四边形面积的关系,可求出三角形面积与顶点坐标之间的关系.
将三角形的一个顶点(x1,y1)移到原点,则其余两个顶点的坐标分别为(x2-x1,y2-y1)和(x3-x1,y3-y1).这两个顶点所对应的向量构成的平行四边形面积为
Sp=a1b2-a2b1
=(x2-x1)(y3-y1)-(x3-x1)(y2-y1). (1-12)
由于行列式是有正有负的,因此面积也可以规定正负号,通常是用第一个向量到第二个向量的转动方向来定义的,但这不符合大多数应用的习惯,而且在面积相加时,容易造成错误,所以在这里可取它的绝对值,即三角形面积为
Ss=0.5|Sp|
=0.5|(x2-x1)(y3-y1)-(x3-x1)(y2-y1)|. (1-13)
(2)据题设条件可绘制四边形,如图1-3所示.将它划分为两个三角形,按公式(1-13)分别计算其面积再相加即可.
三角形ABD的面积为
S1=0.5×|(2-0)×(5-1)-(3-0)×(0-1)|=0.5×(8+3)=5.5.
三角形CBD的面积为
S2=0.5×|(4-2)×(5-0)-(3-2)×(3-0)|=0.5×(10-3)=3.5.
此四边形的面积为
S=S1+S2=9.

图1-3 例6的四边形
解二 用MATLAB软件绘图如下:
编写绘制四边形的程序如下:

程序运行结果如图1-3所示.