system: [SYSTEM]

user: 3. MATLAB在线性代数教学中的应用 下面举例说明MATLAB在线性代数教学中的应用。 3.1. 借助MATLAB软件理解定理，激发学生学习兴趣 线性方程组的解有以下定理 [ 2 ] ： 对于n元线性方程组 Ax = b ； 1) 无解的充分必要条件是 R ( A ) < R ( A ， b ) ； 2) 有唯一解的充分必要条件是 R ( A ) = R ( A ， b ) = n ； 3) 有无限多解的充分必要条件是 R ( A ) = R ( A ， b ) < n 。 学习过程中，很多学生不理解线性方程组的不同情况解的意义，感觉定理内容比较抽象，不好理解。由于二元、三元线性方程分别表示直线和平面，可以借助Matlab绘图帮助学生理解线性方程组解的含义。例如，求包含两个变量的两个线性方程组成的方程组的解，等价于求两条直线的交点问题。 针对以下方程组 a) { x − 1 2 x 2 = − 1 − x + 1 3 x 2 = 3 ，b) { x − 1 2 x 2 = − 1 − x + 1 2 x 2 = 3 ，c) { x − 1 2 x 2 = − 1 − x + 1 2 x 2 = 1 根据解的判定定理，三个方程组解的情况，分别是有唯一解，无解，无穷多解。 三个方程组对应的图形见图1，通过图形可以直观的看到方程组的解的几何含义，方程组有唯一解、无解、无穷多解分别对应于两直线相交、平行、共线。借助Matlab数学软件，对低维问题有了直观的几何形象感知之后，可以把这个结论推广到高维的情形，实现由具体到抽象的思维的培养。 图1. 方程组的几何图形 3.2. 借助MATLAB软件化抽象为具体，增加问题的直观性 关于二次型有下面的定理 [ 3 ] 定理1. 任给二次型 f = ∑ i ， j = 1 n a i j x i x j ，总有正交变换 x = P y ，使f化为标准形 f = λ 1 y 1 2 + λ 2 y 2 2 + ⋯ + λ n y n 2 其中， λ 1 ， λ 2 ， ⋯ ， λ n 是f的矩阵 A = ( a i j ) 的特征值。 定理2. 任给二次型 f = ∑ i ， j = 1 n a i j x i x j ，总有可逆变换 x = P y ，使f化为标准形 f = λ 1 y 1 2 + λ 2 y 2 2 + ⋯ + λ n y n 2 其中， λ 1 ， λ 2 ， ⋯ ， λ n 不一定是f的矩阵 A = ( a i j ) 的特征值。 在学习时，有些学生不清楚将一个二次型化为标准形的意义，不清楚利用正交变换和可逆变换的区别在哪里，可以结合具体的例子：化 f = − 2 x 1 x 2 + 2 x 1 x 3 + 2 x 2 x 3 为标准形。在给出具体的解题过程后，利用MATLAB编写程序，分别画出方程 − 2 x y + 2 x z + 2 y z = 50 、正交变换下得到的方程 − 2 x 2 + y 2 + z 2 = 50 、可逆变换下得到的方程 x 2 + 2 y 2 + z 2 = 50 的图形，见图2。 通过借助MATLAB画图，学生可以直观感受到，通过正交变换，图形的形状没有发生变化，但是图形在坐标系中的位置发生了变化，它的方程可以用只含平方项的方程来表示，是学生熟悉的单叶双曲面的方程。当采用的是可逆变换时，该变换不会改变图形所属的类，但是会改变图形的形状，可以看到图形沿着y轴方向进行了压缩。在课堂演示时，还可以直接运行MATLAB软件，转动图形，引导学生从360度观察图形的形状，借助图形，增加可视性，易于学生理解，吸引学生注意，从直观上加深学生对这一部分内容的理解 [ 4 ]。 图2. 二次型的几何图形 3.3. 借助MATLAB软件解决实际问题，增强了内容的实用性 很多实际应用问题的数学模型，都可以转化为线性问题来求解。然而，庞大的数据处理和复杂的计算步骤，使得这门课程的应用受到很大的限制。比如，下图给出了某城市单行街道的交通流量(每小时通过的车辆数)，见图3。 假定上述问题满足下列两个基本假设： 1) 全部流入网络的流量等于全部流出网络的流量； 2) 全部流入一个节点的流量等于流出此节点的流量。 图3. 交通流量图 根据上图及上述两个基本流量假设，可知所给问题满足如下线性方程组： { x 2 − x 3 + x 4 = 300 x 4 + x 5 = 500 − x 6 + x 7 = 200 x 1 + x 2 = 800 x 1 + x 5 = 800 x 7 + x 8 = 1000 x 9 = 400 − x 9 + x 10 = 200 x 10 = 600 x 3 + x 6 + x 8 = 1000 解线性方程组的问题，都要用到初等变换的方法，将増广矩阵化为行最简形矩阵，这个过程只涉及到换行、倍乘和倍乘相加三种简单的运算，依次利用主对角线上的元素将所在列的其他元素化为0，即使对于一些变量较少的实际问题，虽然手算可以得到结果，但是既费时间又容易出错，枯燥的计算过程使学生产生厌倦情绪。 若将上述矩阵方程记为 A X = b ，则问题就转化为求 A X = b 的全部解。 下面利用MATLAB软件对上述方程进行求解，步骤如下 1) 输入系数矩阵A，并求A的秩，判断方程组解的情况 A = [ 0 ， 1 ， − 1 ， 1 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ; 0 ， 0 ， 0 ， 1 ， 1 ， 0 ， 0 ， 0 ， 0 ， 0 ; 0 ， 0 ， 0 ， 0 ， 0 ， − 1 ， 1 ， 0 ， 0 ， 0 ;     1 ， 1 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ; 1 ， 0 ， 0 ， 0 ， 1 ， 0 ， 0 ， 0 ， 0 ， 0 ; 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 1 ， 1 ， 0 ， 0 ;     0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 1 ， 0 ; 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， − 1 ， 1 ; 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 0 ， 1 ;     0 ， 0 ， 1 ， 0 ， 0 ， 1 ， 0 ， 1 ， 0 ， 0 ] ; %线性方程组的系数矩阵 rank (A)；%求A的秩 2) 求增广矩阵的秩 b = [ 3 00 ， 5 00 ， 2 00 ， 8 00 ， 8 00 ， 1 000 ， 4 00 ， 2 00 ， 6 00 ， 1 000 ] ; %常数b rank ([A， b])%增广矩阵的秩。 由上可知系数矩阵的秩等于增广矩阵的秩，都为8，并且小于未知量的个数10，所以方程有无穷多个解。 3) 求非齐次线性方程组 A X = b 的一个特解 取x 1 和x 6 为自由未知数，值分别为700和0，可得原方程组的一个特解为 ξ * = ( 700 ， 100 ， 200 ， 400 ， 100 ， 0 ， 200 ， 800 ， 400 ， 600 ) 。 4) 用null命令求出齐次线性方程组 A X = 0 的基础解系。 x0 = null(A，’r’); x0 = −1 0 1 0 0 0 −1 0 1 0 0 −1 0 −1 0 1 00 0 0 由此得到所求齐次线性方程组的基础解系为 ξ 1 = ( − 1 1 0 − 1 1 0 0 0 0 0 ) ，     ξ 2 = ( 0 0 0 0 0 − 1 − 1 1 0 0 ) 综上所述，得到非齐次线性方程组 A X = b 的通解为 x = η ¯ + ξ * = c 1 ξ 1 + c 2 ξ 2 + ξ * = c 1 ( − 1 1 0 − 1 1 0 0 0 0 0 ) + c 2 ( 0 0 0 0 0 − 1 − 1 1 0 0 ) + ( 700 100 200 400 100 0 200 800 400 600 ) ， c 1 、c 2 为任意常数。 在解的表示式中x的每一个分量即为交通网络中未知部分的具体流量，该问题有无穷多个解。Matlab的引入为用线性代数解决实际问题提供了有力的工具，学生在利用Matlab修改、分析数学模型的过程中，能加深对所学知识的理解，在探索的过程中体验到发现的愉悦。