基于MATLAB的线性代数实验教学设计

2024-06-24 15:36熊梅张大林
科技风 2024年6期
关键词:特征值实验教学

熊梅 张大林

摘  要: 在线性代数教学过程中,矩阵的逆及矩阵的特征值和特征向量是学生比较难以掌握的两个重要知识点,本文借助MATLAB软件,结合基本概念和求法解析,通过实验项目的设计,在实验教学过程中让学生加深对逆矩阵及矩阵的特征值和特征向量的理解和掌握,并在实际学习过程中加以应用.

关键词: 逆矩阵;特征值;实验教学;MATLAB

MSC(2010)主题分类  15A99

中图分类号:O151.2

Experimental Teaching Design of Linear Algebra Based on MATLAB

-- Take the Inverse of Matrix, Eigenvalues and Eigenvectors as an Example

Xiong Mei  Zhang Dalin

School of Mathematics and Statistics of Qiannan Normal University for Nationalities  GuizhouDuyun  558000

Abstract:In the process of linear algebra teaching, the inverse of matrix and the eigenvalue with eigenvector of matrix are two important points.It is difficult for students to understand. In this paper, with the help of MATLAB software, combined with basic concepts and solving analysis, through the design of experimental projects, let students to deepen their understanding and mastery of the inverse matrix and its eigenvalue and eigenvector in the process of experimental teaching. And apply it in the actual learning process.

Key words:inverse matrix;eigenvalue;experimental teaching;MATLAB

MR(2010)Subject Classificatio 15A99

Chinese Library Classificatio O151.2

1 概述

线性代数是高等院校计算机科学与技术、物理学、电子信息工程等理工类专业以及经济管理、市场营销、财务管理等财经类专业必修的一门重要的数学类公共基础课.[1] 主要包括行列式、矩阵、向量、线性方程组、特征值与特征向量、二次型等内容。是学生学习诸多后续课程的重要理论基础,对培养学生的思维能力非常重要.在实际教学过程中,许多学生都认为该课程比较抽象,计算量大,计算时容易出错.尤其是逆矩阵和矩阵的特征值和特征向量概念的掌握和计算. 为此,我们将数学实验引入线性代数教学中,提高学生的学习参与度,让学生更深入地理解和巩固线性代数的基本概念和原理.

2 逆矩阵的概念

定义1 对于n阶矩阵A,如果有一个n阶矩阵B,使AB=BA=E, 则称矩阵A是可逆的,并称矩阵B为A的逆矩阵,A的逆矩阵记为,即.[2]

记,设,,则由行列式的依行依列展开公式,有

从而,E,同理E,由逆矩阵的定义得,由此可得出求逆矩阵.

3  矩阵特征值及特征向量

定义2 设是阶矩阵,如果数和维非零向量,使关系式成立,则称数为矩阵的特征值,非零向量称为的对应于特征值的特征向量(可以是复数,的元素与的分量也可以是复数).[2]

由得,即得个未知数个方程的齐次线形方程组. 其有非零解的充分必要条件是系数行列式. 方程是以为未知数的一元次方程,称为矩阵的特征方程. 是的次多项式,记作, 称为矩阵的特征多项式. 显然,的特征值就是特征方程的解. 特征方程在复数范围内恒有解,其个数为方程的次数(重根按重数计算). 因此,矩阵在复数范围内有个特征值.

4  实验项目设计

4.1  MATLAB软件的句子操作命令

(1)det(A)          %求方阵A的行列式

(2)rank(A)         %求矩阵A的秩

(3)trace(A)        %求矩阵A的迹

(4)inv(A)          %求矩阵A的逆

(5)norm(A)        %矩阵A的2-范数

(6)eig(A)           %计算矩阵A的特征值

(7)[V, D]=eig(A)      %计算矩阵A的特征向量及特征值,用特征值做对角元生成相应阶数的对角矩阵D,相应的特征向量生成矩阵V,满足AV=VD.[3]

4.2  实验要求

(1)给出矩阵A,判断矩阵A是否可逆;(2)利用公式,求;(3)利用矩阵的初等行变换求;(4)利用整数逆矩阵加密方法进行加密解密练习;(5)求矩阵的特征值及特征向量。

4.3  实验内容

(1)给出矩阵。

判断A是否可逆.[3]

在MATLAB中输入命令

hls=det(A)   %求方阵的行列式

hls =-33    %行列式不为0

由矩阵A的行列式不等于0可知,矩阵A可逆。

(2)利用公式,求。

在实际教学过程中,对于用定义来求逆矩阵,学生在计算时容易发生几个方面的失误:一是计算代数余子式是忘记乘,二是计算伴随矩阵时没有转置,直接将替换矩阵A的元素后的新矩阵作为伴随矩阵,三是对定于掌握不透,直接用来计算。通过实验能够强化学生对计算步骤中每个细节的掌握,从而减少笔算的错误。实现代码如下:

A=[1 -1 2 -1; -1 1 3 -2; 2 3 1 0;-1 -2 0 1];

for i=1:4;

for j=1:4;

C=A;

C(:, [i])=[]; %删除第i行

C([j], :)=[]; %删除第j列

A1(i,j)=(-1)^(i+j)*det(C);

end

end

Astar=(A1)'

invA=Astar/det(A)

运行得

Astar =

-12.0000    9.0000   -3.0000    6.0000

9.0000   -4.0000   -6.0000    1.0000

-3.0000   -6.0000   -9.0000  -15.0000

6.0000    1.0000  -15.0000  -25.0000

invA =

0.3636   -0.2727    0.0909   -0.1818

-0.2727    0.1212    0.1818   -0.0303

0.0909    0.1818    0.2727    0.4545

-0.1818   -0.0303    0.4545    0.7576

上述方法与直接应用命名inv(A)所求结果一致。在MATLAB中直接输入命令inv(A)得

ans =

0.3636   -0.2727    0.0909   -0.1818

-0.2727    0.1212    0.1818   -0.0303

0.0909    0.1818    0.2727    0.4545

-0.1818   -0.0303    0.4545    0.7576

(3)用初等变换求。

初等行变换方法 利用计算逆矩阵. 先生成矩阵,再利用命令可得,求出. 同时可要求学生通过笔算步骤编程,求出并于前面的结果比较,加强学生对初等变换求逆矩阵计算的掌握。以下是两种方式计算的结果:

A=[1 -1 2 -1; -1 1 3 -2; 2 3 1 0;-1 -2 0 1];

E=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1];

AE=[A E];

rref(AE)

ans =

1.0000         0         0         0    0.3636   -0.2727    0.0909   -0.1818

0    1.0000         0         0   -0.2727    0.1212    0.1818   -0.0303

0         0    1.0000         0    0.0909    0.1818    0.2727    0.4545

0         0         0    1.0000   -0.1818   -0.0303    0.4545    0.7576

笔算步骤编码:

A=[1 -1 2 -1; -1 1 3 -2; 2 3 1 0;-1 -2 0 1];

E=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1];

AE=[A E];

AE =

1    -1     2    -1     1     0     0     0

-1     1     3    -2     0     1     0     0

2     3     1     0     0     0     1     0

-1    -2     0     1     0     0     0     1

AE(2,:)=AE(2,:)-AE(1,:)*(AE(2,1)/AE(1,1));

AE(3,:)=AE(3,:)-AE(1,:)*(AE(3,1)/AE(1,1));

AE(4,:)=AE(4,:)-AE(1,:)*(AE(4,1)/AE(1,1));

AE([2,4],:)=AE([4,2],:);

AE(3,:)=AE(3,:)-AE(2,:)*(AE(3,2)/AE(2,2));

AE(4,:)=AE(4,:)-AE(3,:)*(AE(4,3)/AE(3,3));

AE(3,:)=AE(3,:)-AE(4,:)*(AE(3,4)/AE(4,4));

AE(1,:)=AE(1,:)-AE(4,:)*(AE(1,4)/AE(4,4));

AE(2,:)=AE(2,:)-AE(3,:)*(AE(2,3)/AE(3,3));

AE(1,:)=AE(1,:)-AE(3,:)*(AE(1,3)/AE(3,3));

AE(1,:)=AE(1,:)-AE(2,:)*(AE(1,2)/AE(2,2));

AE(2,:)=AE(2,:)/AE(2,2);

AE(3,:)=AE(3,:)/AE(3,3);

AE(4,:)=AE(4,:)/AE(4,4)

AE =

1.0000    0         0         0    0.3636   -0.2727    0.0909   -0.1818

0    1.0000         0         0   -0.2727    0.1212    0.1818   -0.0303

0         0    1.0000         0    0.0909    0.1818    0.2727    0.4545

0         0         0    1.0000   -0.1818   -0.0303    0.4545    0.7576

与直接命令和初等变换命令的计算结果一致。在MATLAB中,若去除每一行的分号,则显示每一步的结果。此代码便于学生在笔算过程中判断每一步的是否正确,从而强化了初等变换计算逆矩阵的理解和掌握。最后求得

(4)利用整数加密方法对信息链“QIANNAN NORMAL UNIVERSITY”做加密解密练习。

“加密锁”及“解密钥匙”的生成 从一个单位矩阵E出发,对该单位矩阵进行多次的初等(r1)行变换和初等(r3)行变换(k取整数),将单位矩阵变为Q(加密锁)。由单位矩阵初等变换可知,矩阵Q行列式等于1或-1. 再根据初等变换的性质,矩阵Q逆矩阵(解密钥匙)必是整数矩阵。

实验过程:选用各个英文字母的ASCII码代替英文字母,将信息链“QIANNAN NORMAL UNIVERSITY”用一组数字表示,空格也用其ASCII码代替,存入一个向量

W=[81,73,65,78,78,65,78,32,78,79,82,77,65,76,32,85,78,73,86,69,82,83,73,84,89]

按列优先的规则,将信息链排成一个5×5阶矩阵,执行命令

W=[81,73,65,78,78,65,78,32,78,79,82,77,65,76,32,85,78,73,86,69,82,83,73,84,89];

A=reshape(W,5,5)

A =

81    65    82    85    82

73    78    77    78    83

65    32    65    73    73

78    78    76    86    84

78    79    32    69    89

对一个5×5阶的单位矩阵E, 做若干次(r1)和(r3)行变换后化为整数矩阵

Q =

360   120    30     6     1

416   139    35     7     1

453   151    38     8     1

348   116    29     6     1

300   100    25     5     1

因为det(Q)=1,所以Q可逆,且

inv(Q) =

1.0000   -1.0000    1.0000   -2.0000    1.0000

-2.0000    3.0000   -4.0000    8.0000   -5.0000

-3.0000    0.0000    4.0000   -9.0000    8.0000

-4.0000    0.0000   -0.0000    5.0000   -1.0000

-5.0000    0.0000   -0.0000    0.0000    6.0000

显然矩阵Q的逆矩阵为整数矩阵,选Q为加密锁,inv(Q)为解密钥匙,将此加密锁加载到原信息链上就变成了加密信息链B. 下面的程序为加密过程。

W=[81, 73, 65, 78, 78, 65, 78, 32, 78, 79, 82, 77, 65, 76, 32, 85, 78, 73, 86, 69, 82, 83, 73, 84, 89];

A=reshape(W, 5, 5);

Q=[360,120,30,6,1;416,139,35,7,1;453,151,38,8,1;348,116,29,6,1;300,100,25,5,1];

B=Q*A

得到加密信息链为

B =

40416       34267       41198       42735       42263

46742       39627       47654       49428       48881

50888       43142       51883       53814       53214

39087       33143       39841       41330       40874

33693       28569       34337       35624       35234

解密过程为inv(Q)*B=inv(Q)*Q*A=E*A=A,即加密信息链B左乘将信息链B解锁回到信息链A. 执行命令inv(Q)*B即可得到原信息链.

inv(Q)*B

ans =

81.0000   65.0000   82.0000   85.0000   82.0000

73.0000   78.0000   77.0000   78.0000   83.0000

65.0000   32.0000   65.0000   73.0000   73.0000

78.0000   78.0000   76.0000   86.0000   84.0000

78.0000   79.0000   32.0000   69.0000   89.0000

(5)给出矩阵A,求A的特征值及特征向量。

对于矩阵A的特征值及特征向量的概念,最主要是要掌握其定义,为什么成为特征值,具体的含义是什么?由前面的定义可知,也即是矩阵A作用于向量的效果和作用的效果一致,所以才乘为矩阵A特征值.下面通过实验项目验证特征值及特征向量的求法.

在MATLAB随机生成矩阵A:

A=rand(4) %  随机生产4阶方阵

A=

0.8147    0.6324    0.9575    0.9572

0.9058    0.0975    0.9649    0.4854

0.1270    0.2785    0.1576    0.8003

0.9134    0.5469    0.9706    0.1419

hls=det(A) %求方阵的行列式

hls =-0.0261 %行列式不为0

njz=inv(A) %矩阵可逆,求逆矩阵

njz =

-15.2997    3.0761   14.7235    9.6445

-0.2088   -1.8442    1.0366    1.8711

14.5694   -1.9337  -14.6497   -9.0413

-0.3690    0.5345    1.4378   -0.4008

E=njz*A %验证逆矩阵的正确性

E =

1.0000    0.0000   -0.0000   -0.0000

-0.0000    1.0000    0.0000   -0.0000

0.0000    0.0000    1.0000    0.0000

-0.0000   -0.0000   -0.0000    1.0000

[tzxl, tzz]=eig(A) %求矩阵特征向量及特征值

tzxl =

-0.6621   -0.7149    0.1745    0.1821

-0.4819   -0.0292   -0.6291   -0.9288

-0.2766    0.6972    0.5995    0.3178

-0.5029   -0.0438   -0.4630    0.0570

tzz =

2.4021         0         0         0

0   -0.0346         0         0

0         0   -0.7158         0

0         0         0   -0.4400

验证?命令如下:

A=[0.8147,0.6324,0.9575,0.9572;0.9058,0.0975,0.9649,0.4854;0.1270,0.2785,0.1576,0.8003;0.9134,0.5469,   0.9706,0.1419];

Lambda=2.4021;

X=[-0.6621,-0.4819,-0.2766,-0.5029]';

A*X

ans =[-1.5904,-1.1577,-0.6644,-1.2081]'

Lambda*X

ans =[-1.5904,-1.1576,-0.6644,-1.2080]'

考虑计算机精度问题,可知 成立.

结语

在线性代数教学过程中引入实验项目的教学内容,可以让学生更好的理解所学的概念和计算的过程,并让学生学会通过数学软件解决计算量大的实际问题,补充了课堂教学所不能展开的演算过程和结果验证,丰富了线性代数的教学活动,提高教学效果。

参考文献:

  • 刘蒙. MATLAB 软件在线性代数教学中的应用[J].淮阴师范学院学报(自然科学版),2017,3.
  • 同济大学数学系. 线性代数(第六版)[M]. 高等教育出版社, 2017.
  • 李继成. 数学实验(第二版)[M]. 北京: 高等教育出版社, 2014.

基金项目:黔南州科技局数学一流学科项目(2020XK03ST),黔南民族师范学院高层次人才专项(qnsyrc202204)

作者简介:熊梅(1979—  ),女,贵州安龙人,学士,高级实验师,研究方向:数学实验教学与管理。

*通讯作者:张大林(1981—  ),男,贵州普定人,博士,副教授,研究方向:最优化理论及应用、普惠金融。

猜你喜欢
特征值实验教学
关于基础教育阶段实验教学的几点看法
一类带强制位势的p-Laplace特征值问题
单圈图关联矩阵的特征值
小议初中化学演示实验教学
电容器的实验教学
对初中化学实验教学的认识和体会
H型群上一类散度形算子的特征值估计
几何体在高中数学实验教学中的应用
基于云计算的计算机实验教学探讨
基于商奇异值分解的一类二次特征值反问题