APP下载

唤起好奇,激发志趣
——在线性代数课程中融入计算思维

2022-09-06黄廷祝程光辉

大学数学 2022年4期
关键词:主元消元特征向量

李 良, 黄廷祝, 程光辉

(电子科技大学数学科学学院,成都 611731)

1 引 言

线性代数是学生进入大学最先接触到的数学基础课程之一,是其他大部分数学课程与工程类课程的基础和先修课程,其重要性毋庸置疑.但在教学实践中常存在如下几个问题:(i)学生普遍学习困难.由于线性代数的课程的体系机构与高中数学体系截然不同,具有较强的抽象性,与微积分注重计算不同,线性代数强调概念、性质的解释;(ii)知识点相对比较零散,学生们难以融会贯通.线性方程组、特征值、线性空间等,看起来是相互独立的概念,但实际上这些概念背后有着本质的联系,在实际应用中不是单独考虑的;(iii)更重要的是不知有何作用,导致学习兴趣和热情降低[1-3].

实际上,线性代数具有很强的应用背景,几乎所有的计算落实到计算机上时,都会涉及到线性代数的基本概念或方法,比如,大部分科学计算问题(计算流体、计算电磁等)最后都归结到大规模线性方程组求解或其他线性代数的问题,信息科学中广泛应用各种矩阵分解.用线性空间的观点,其原因可归结为:(i) 实际工程问题所在空间形式各异,不易用计算机表示和运算,通过坐标映射,将其变化到列向量空间;(ii) 很多问题都定义在一个很大甚至是无穷维的空间中,通过投影将其限制到一个有限维或低维空间上计算,以便更高效地计算.在文献[4]中,作者以行列式计算为例,探讨了计算思维及混合式教学.本文着重探讨线性代数对科学计算的重要性,并且举例在教学过程中如何融入科学计算思维, 从计算的角度展开研究型教学[5].

数值计算主要关心计算量、稳定性、可并行性等方面.但在大一课程中很难讲清楚稳定性和并行,因此下面主要从计算量及相应的计算技巧上,对矩阵运算、高斯消元、特征值和特征向量等内容的教学进行探讨.

2 计算思维举例

2.1 矩阵运算

矩阵运算主要涉及线性运算、矩阵乘法、转置、逆矩阵,笔者将从线性运算和矩阵乘法讨论如何融入计算思维.

2.1.1 矩阵数乘

假设A,B均为m×n的实矩阵,r,s为任意实数,对于矩阵数乘有如下性质:

r(sA)=(rs)A, (r+s)A=rA+sA,r(A+B)=rA+rB.

(1)

在数学上很容易证明(1)中各式两端相等.在教学过程如何激发学生的兴趣,让同学们认识到这些等式的意义呢?比如,可以通过设问:在实际计算或编程实现的时候,你们会采用哪个式子呢?引起同学们的思考.

式(1)中的第一个式子左端的计算量为2mn次实数乘法,右端的计算量为mn+1次实数乘法,在m,n很大的时候,右端的计算量近似为左端计算量的一半.显然,在实际应用中应采用右端的式子进行计算.第二、三个式子,左端的计算量更小,所以在实际应用时,应注意采用左端的式子进行计算.向量线性计算也可做类似讨论.

2.1.2 矩阵乘法

假设A,B分别为m×n和n×p的实矩阵,其计算量怎么估计或计算呢?若C=AB,有计算公式

(2)

每个元素的计算量为n次实数乘法,n-1次实数加法.由于矩阵C为m×p,总共需要计算mp个元素,容易得到该矩阵乘法的总计算量为:mpn次乘法,mp(n-1)次加法.若m=p=n,只考虑乘法次数,忽略掉低阶量,则矩阵乘法的计算量(或称为时间复杂度、计算复杂度)为O(n3),其中大O表示“阶”.

为同学们分析矩阵乘积的计算量后,可以设问:矩阵乘法计算算法非常简单直接,有没有办法减少计算量呢?初看起来似乎没有可能,无论怎么循环,计算量总是一样.可以告诉同学们,通过后面要学习的矩阵分块技术,有著名的Strassen算法,可将计算量降到O(n2.81).目前最快的矩阵乘法计算量已经达到O(n2.37),图1展示了三种算法的计算量随矩阵阶数的变化情况.授课过程中,不展示这些算法的细节,希望通过该例子唤起学生对算法重要性的认识,以及对高效神奇算法的向往.

2.2 高斯消元

矩阵初等变换是线性代数课程中最重要的计算技术,贯穿了线性方程组的解、行列式、特征向量、二次型等几乎所有内容.在课堂上或作业中,让同学们手工计算了多次高斯消元,但应指出高斯消元算法主要由计算机来运行,进而引出算法的概念,给出高斯消元约化矩阵为(简化)阶梯形的算法,见算法1.

算法具有确定的步骤,适合计算机运行.下面对初等变换的计算量作初步分析.假设A为m×n的实矩阵.行交换不涉及加减乘除运算,运算量几乎可以忽略.用非零数乘以一行,若不考虑0元素,其计算量为n次乘法.若把第j行的k≠0倍加到第i行(倍加运算),即Ri←Ri+kRj,计算量为2n.

算法1 高斯消元算法

输入:任意矩阵

输出:矩阵的阶梯形及简化阶梯形

Step 1 确定主元列和主元位置.矩阵最左侧的非零列为主元列,该列的顶端位置为主元位置.

Step 2 选择主元.从主元列中选择一个非零元为主元,如果需要,进行行交换,将该元变换到主元位置.

Step 3 消元.将主元所在行的适当倍数加到下面各行,把主元所在列下面的元素变为0.

Step 4 忽略主元所在行,以及所有上面的行,考虑余下的子矩阵,执行Step1-Step3,直到没有非零行剩下.至此得到矩阵的阶梯形.

Step 5 从最右端的主元开始,从下而上利用行加运算将主元所在列上面的元全部变为0.利用行的数乘,将主元变为1.从右到左,对所有主元执行往上消元运算和数乘运算.至此得到矩阵的简化阶梯形.

搞清楚了行初等变换的计算量,现假设A为n×n的可逆矩阵,让同学们尝试分析将A约化为上三角矩阵的计算量.若不考虑倍乘运算,消元过程只涉及行交换和倍加运算,而行交换不涉及浮点运算(也需要消耗一定的CPU时间),因此只考虑倍加运算带来的计算量.如下式考虑消元的第i步每消去aii下面一个元素的计算量为2(n-i+1),总共需要消去n-i个元素,所以第i步的计算量为2(n-i+1)(n-i),完成整个消元过程,需要i从1到n-1循环,那么总共的计算量为

对上式化简,去掉低阶项,可得高斯消元算法的计算量为O(n3).

2.3 特征值和特征向量

特征值、特征向量在信息科学、控制科学等方面有广泛的应用.在线性代数课程中,主要介绍了其定义、性质、计算,以及矩阵相似.相似矩阵这部分知识,由于比较抽象,学生在学习的时候往往不知道学习这些定义有什么用,导致教学效果降低.从计算的角度,可以做如下引导,能激起学生的好奇心,提高教学效果.

特征值和特征向量的计算法方式:先构造特征多项式,然后求根得到特征值,最后求解齐次线性方程组得到各个特征子空间的一组基.当矩阵阶数增大时,用这种方法会遇到很大困难.学生对此已有体会,比如,对一个三阶矩阵,就要用一整张纸才能得到答案:(i)产生特征多项式困难,计算多项式的各个系数,需要很大的计算量;(ii)求解特征值多项式困难,n阶矩阵的特征多项式是一个首项系数为1的n次多项式,众所周知,对大于4阶的多项式没有解析解,只能借助数值方法求解,但也需要大量计算,而且一般情况下高阶多项式的稳定性差.

因此,求解特征值问题的策略是,通过相似变换将一个矩阵变换为容易求解特征值问题的矩阵,比如对角矩阵或上三角矩阵.这也是学习矩阵相似的目的之一.需要注意的是,课程里面讲的是通过特征值、特征向量来作矩阵的相似变换,这是因为只有在更高阶的课程中才会介绍特征值问题的求解算法,比如,最经典的QR迭代算法.应该认识到,课程中学习的内容,是以后去解决实际问题的基础.

3 结 论

本文从计算量和简单计算技巧上讨论了如何在线性代数教学中引入科学计算思维,主要目的是希望通过这部分内容的讲解,让学生明白线性代数对科学计算的重要性,也了解到简单的数学公式背后,还有更深的东西值得去研究,从而唤起学生的好奇心,激发科研志趣.

致谢非常感谢高等学校大学数学教学研究与发展中心的支持,非常感谢相关文献对本文的启发以及审稿专家提出的宝贵意见,感谢编辑老师的帮助.

猜你喜欢

主元消元特征向量
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
“消元——解二元一次方程组”能力起航
克罗内克积的特征向量
应用主元变换法分解因式
“消元——解二元一次方程组”检测题
一类三阶矩阵特征向量的特殊求法
运用结构的齐次化,选换主元解题
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
关于含参不等式恒成立问题的几种解法
观察特点 巧妙消元