您好, 访客   登录/注册

MATLAB软件在线性代数教学中的应用

来源:用户上传      作者:

  摘  要:MATLAB是国际上流行的科学与工程计算软件,线性代数课程是大学教育的一门重要基础课。将MATLAB软件与线性代数教学结合起来,能够大大简化计算的过程和步骤,提高计算效率,激发学生的学习兴趣。文章根据作者自身的教学经验,就MATLAB在线性代数教学中的应用作了详细的阐述。
  关键词:MATLAB;线性代数;教学
  中图分类号:O1-4         文献标志码:A         文章编号:2095-2945(2019)34-0156-03
  Abstract: MATLAB is a popular scientific and engineering calculation software in the world. The course of linear algebra is an important basic course in university education. The combination of MATLAB software and linear algebra teaching can greatly simplify the process and steps of calculation, improve the efficiency of calculation and stimulate students' interest in learning. According to the author's own teaching experience, this paper expounds in detail the application of MATLAB in the teaching of linear algebra.
  Keywords: MATLAB; linear algebra; teaching
  線性代数作为大学教育的一门重要基础课,是学生入校后最早学习的课程之一,关系到学生后继专业课程的学习,是非常重要的一门学科。在计算机迅猛发展的今天,将计算机软件与线性代数教学相结合,已成为教学改革的热点。而计算机软件的不断升级换代为大学数学的教学提供了优越的条件,MATLAB软件作为众多软件的佼佼者,目前已经成为国际科学界最具影响力、最有活力的科学计算软件。应用MATLAB软件辅助线性代数的教学,将会在很大程度上降低教与学的难度,缩小数学理论与数学应用之间的距离,并能很好的培养学生的数学应用能力和创新能力,提高学生学习数学的兴趣[1]。本文就MATLAB在线性代数教学中的应用进行了探讨。
  1 矩阵与行列式
  矩阵与行列式是线性代数中两个最基本的内容,线性代数的后续内容都是以矩阵与行列式为基础展开的。在MATLAB中矩阵的输入方法是:将矩阵的所有元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。例如输入命令:
  >> A=[1 2 3 4;5 6 7 8;9 10 11 12]
  则生成的矩阵A为:
  A =
  1     2     3     4
  5     6     7     8
  9    10    11    12
  行列式的结果是一个数,只有行和列相等的矩阵才存在行列式。行列式的输入方法为:det(A),其中det为行列式英文单词determinant的缩写,A为行和列相等的矩阵,输出的结果是一个数。例如输入命令:
  >> A=[1 2 3;4 5 6;7 8 10];
  >> det(A)
  ans =
  -3.0000
  2 求向量组的极大无关组及将矩阵化为最简形[2]
  判断向量组的线性相关性及求向量组的极大无关组在MATLAB中均可以很容易的实现,当我们将矩阵的每一列看成一个向量,根据线性代数的知识[3],当向量组构成的矩阵的秩<向量的个数,则向量组是线性相关的,当矩阵的秩=向量的个数时,则向量组是线性无关的,故我们可以由矩阵的秩与向量个数的关系判断出向量组的线性相关与线性无关性。求矩阵A的秩R(A)的命令为:rank(A)。
  例 判断向量组?琢1(3,1,1)T,2(1,-1,3)T,3(0,2,-4)T,4(2,-1,4)T的线性相关性。
  >> A=[3 1 0 2;1 -1 2 -1;1 3 -4 4]
  A =
  3     1     0     2
  1    -1     2    -1
  1     3    -4     4
  >> rank(A)
  ans =
  2
  因为向量组构成的矩阵A的秩R(A)=2<向量的个数4,故向量组是线性相关的。
   而求向量组的极大无关组可通过命令reef(A)进行。命令reef(A)可以将矩阵A化为最简形矩阵。进一步可判断出向量组的极大无关组及将极大无关组外的向量用极大无关组线性表示出来。如上例,再进一步求向量组(?琢1,?琢2,?琢3,?琢4)的一个极大无关组,并将其余向量用极大无关组表示。在MATLAB窗口输入命令如下:   >> rref(A)
  ans =
  1.0000         0    0.5000    0.2500
   0    1.0000   -1.5000    1.2500
   0        0        0         0
  通过将矩阵A化为最简形矩阵以后,根据线性代数知识[3],容易看出向量组?琢1,?琢2即是向量组的一个极大无关组,?琢3,?琢4可以用?琢1,?琢2线性表示,系数即是A化为最简形以后?琢3,?琢4对应的系数,即:?琢3=0.5?琢1-1.5?琢2,?琢4=0.25?琢3+1.25?琢4。
  3 线性方程组的求解[2]
  线性方程组的求解是线性代数的一个重要内容,对于齐次线性方程组AX=0,其解有两种情况[3]:(1)R(A)=n(未知量的个数),方程组只有零解;(2)R(A)<n,方程组有非零解。当方程组有非零解时,其通解可用基础解系的形式表示。MATLAB中计算齐次线性方程组AX=0基础解系的命令为:null(A,'r')。例如:求下面齐次线性方程组的解:
  在MATLAB命令窗口中输入下面命令:
  >> A=[2 4 -1 4 16;-3 -6 2 -6 -23;3 6 -4 6 19;1 2 5 2 19];
  >> rank(A)
  ans =
  2
  系数矩阵A的秩R(A)=2<5(未知量个数),方程有非零解,再求方程组的基础解系。
  >> null(A,'r')
  ans =
   -2    - 2    -9
  1     0     0
  0     0    -2
  0     1     0
  0     0     1
  得到方程组的通解为x=k1(-2,1,0,0,0)T+k2(-2,0,0,1,0)T+k3(-9,0,-2,0,1)T。
  而对于非齐次线性方程组AX=b(b≠0),由线性代数的知识可知[3],其解有三种情况:(1)R(A)<R(A,b),方程组无解;(2)R(A)=R(A,b)=n,方程组有唯一解;(3)R(A)=R(A,b)<n,方程组有无穷多解。对于前两种情况,当我们将方程组的增广矩阵(A,b)通过命令rref(A,b)化为最简形矩阵时可以判断出来并求出其解,而对于第三种情况,此时方程组AX=b的通解=齐次方程组AX=0的通解+AX=b的一个特解[3]。而AX=b的一个特解可以通过MATLAB命令A\b得到。例如求以下的非齐次线性方程组的解:
   在MATLAB命令窗口中输入下面命令:
  >> A=[2 4 -1 4 16;-3 -6 2 -6 -23;3 6 -4 6 19;1 2 5 2 19];
  >> b=[-2 7 -23 43]';
  >> B=[A,b];
  >> rref(B)
  ans =
  1     2     0     2     9     3
  0     0     1     0     2     8
  0     0     0     0     0     0
  0     0     0     0     0     0
  通過增广矩阵的最简形B可以看出,R(A)=R(A,b)=2<n=5,方程组有无穷多解,再求对应的AX=0基础解系和原方程组的一个特解。
  >> null(A,'r')
  ans =
   -2    -2    -9
  1     0     0
  0     0    -2
  0     1     0
  0     0     1   >> x0=A\b
  x0 =
  0
  0
   22/3
  0
  1/3
  得到方程组的通解为:
  x=k1(-2,1,0,0,0)T+k2(-2,0,0,1,0)T+k3(-9,0,-2,0,1)T+0,0,,0,
  4 求矩阵的特征值与特征向量
  在线性代数中求方阵A的特征值与特征向量是一个难点,计算量很大,学生不易掌握且容易算错。而在MATLAB中求方阵A的特征值与特征向量则非常简单,其命令为:[V,D]=eig(A)。其中V、D均为与矩阵A同阶的矩阵,矩阵D的主对角线元素为A的特征值,矩阵V的列为矩阵A的单位特征向量,它与D中的特征值一一对应。例如,求下面矩阵A的特征值与特征向量。
  
  在MATLAB命令窗口中输入下面命令:
  >> A=[1 2 3;2 1 3;1 1 2];
  >> [V,D]=eig(A)
  V =
   0.6396    0.7071   -0.5774
   0.6396   -0.7071   -0.5774
   0.4264   -0.0000    0.5774
  D =
   5.0000         0        0
  0   -1.0000        0
  0         0   0.0000
  从矩阵D可以看出,矩阵A有三个不同的特征值5、-1、0,特征值5对应的单位特征向量为矩阵V的第一列(0.6396,0.6396,0.4264)T,特征值-1对应的單位特征向量为矩阵V的第二列(0.7071,-0.7071,0)T,特征值0对应的单位特征向量为矩阵V的第三列(-0.5774,-0.5774,0.5774)T。
  5 结束语
   线性代数中的计算与化简步骤多,过程繁琐,学生容易出错。而利用MATLAB软件计算线性代数中的许多问题,命令简洁、操作简单,大大简化了计算过程,可以直接得到答案。因此将MATLAB软件与线性代数教学相结合,能够大大提高学生学习的积极性和能动性,调动学生的学习兴趣。但是,需要指出的是,教师教学时还是要以课本知识为主,MATLAB软件只是起到一个辅助的作用,教学要把握好这个度。
  参考文献:
  [1]平怡.MATLAB在大学数学教学中的应用研究[J].湖北广播电视大学学报,2008,12(11):135-136.
  [2]杨威,高淑萍.线性代数计算与应用指导(MATLAB版)[M].西安:西安电子科技大学出版社,2013.
  [3]同济大学数学系.线性代数第五版[M].北京:高等教育出版社,2010.
转载注明来源:https://www.xzbu.com/1/view-15073206.htm