APP下载

基于案例式的《线性代数》课程教学实践与探讨

2020-11-28宋爱斌陆军装甲兵学院基础部

消费导刊 2020年49期
关键词:行列式线性代数整数

宋爱斌 陆军装甲兵学院基础部

《线性代数》主要以离散量为研究对象,用数学的语言表述自然科学中最为普遍的线性概念,其典型特点是内容抽象、理论性强,蕴含丰富的数学思想,侧重对抽象思维和逻辑思维能力的培养,在数学、物理学和技术科学中具有非常重要的作用,在计算机广泛应用的今天,计算机图形学、计算机辅助设计、密码学、虚拟现实等技术无不以《线性代数》为其理论和算法基础的一部分。

目前,该课程教学存在的主要矛盾问题是,第一,内容抽象,学生对内容的理解存在困难,学习难度大;第二,内容与实际应用联系不够紧密,对所学内容的作用和地位不够清楚,学生学完了不知道怎么用。针对矛盾问题,我们在教学实践中探讨案例式教学,通过知识点的典型应用及MATLAB软件的引入能够很好的帮助学员掌握所学知识和应用技巧。下面以逆矩阵为例进行说明。

一、案例引入

密码术伴随着人类书写文明产生,而编码和解码这场持续了三千多年的攻防战至今仍是方兴未艾。编码者努力地建立更强更安全的密码系统来防卫通讯,而解码者则力争找到极具威慑力的方法来破解密码。二者的斗志斗勇产生了很多种密码。[1]有一种通用的传递信息方法,是将每个字母与一个整数对应(通常A对应1,B对应2,…,Z对应26,0对应空格),然后传输一串整数。例如,信息SEND MONEY,可以编码为:

5,8,10,21,7,2,10,8,3

其中S表示5,E表示为8,等等.但是,这种编码很容易破译.在一段较长的信息中,我们可以根据数字出现的相对频率猜测每一数学表示的字母.例如,若8为编码信息中最常出现的数学,则它最有可能表示字母E,即英文中最常出现的字母。

我们可以用矩阵乘法对信息进行进一步的伪装.设矩阵A是所有元素均为整数的矩阵(A称为密钥矩阵),且其行列式为±1(后面解释行列式为什么为±1?)。我们可以用这个矩阵对信息进行变换.变换后的信息将很难破译.为演示这个技术,令:

需要编码的信息放置在三行矩阵B(B称为明文矩阵)的各个列上。

乘积C(C称为暗文矩阵)为:

给出了用于传输的编码信息:

31,80,54,37,83,67,29,69,50

接收到信息的人可通过乘以矩阵A的逆矩阵A-1进行译码,即A-1C=A-1AB=B。那么什么是逆矩阵,怎样求逆矩阵?这就是我们接下来要讲的内容。

二、案例求解

(一)逆矩阵

在数的乘法中,对不等于零的数a 总存在惟一的数b,使得ab=ba=1,此数b 即是a 的倒数,即.利用倒数,数的除法可转化为乘积的形式:,这里a≠0.把这一思想应用到矩阵的运算中,并注意到单位矩阵E 在矩阵的乘法中的作用与数1类似,由此我们引入逆矩阵的定义[1]。对于n 阶矩阵A ,如果有一个n 阶矩阵B,使:

AB=BA=E,

则称矩阵是可逆的,并把矩阵B称为A的逆矩阵,记作A-1.如何求一个可逆矩阵的逆矩阵?由于矩阵A的伴随矩阵A*满足:

(二)案例求解

为了信息传递的安全性,已知信息和接收到的信息分别是密钥矩阵A和暗文矩阵C ,这里要求密钥矩阵A所有元素均为整数,且其行列式为±1,是为了保证逆矩阵A-1的所有元素均为整数。根据逆矩阵求法,求得:

明文矩阵B为:

按照字母与整数的对应关系可以知道传递的信息是:SEND MONEY。

三、案例应用

这个应用案例引起学生极大的兴趣,课后给学生布置一个任务,让每位学生用密钥矩阵和暗文矩阵给老师传递一个信息,字母与整数的对应关系是字母A对应数字1,字母B对应数字2,…,字母Z对应数字26,0对应空格。这个任务有一个难点,就是密钥矩阵的构造,学生要通过行列式的性质构造一个其行列式的值为±1的方阵.学生传递的信息各种各样,充分说明了学生对这项任务非常感兴趣.每名学生传递一个信息,每条信息翻译成明文都需求解一个逆矩阵并进行矩阵的乘法,计算量非常大.因此,借助MATLAB这个数学软件编写一个简单的程序进行计算就解决这个问题了,借此还可以教学生掌握MATLAB软件的使用.下面举几个学生传递的信息,通过MATLAB编程翻译成明文。

学生1传递信息:

A=[1 2 3 4 5;0 1 2 3 4;0 0 1 2 3;0 1 2 4 6;1 2 3 4 6];

C=[136 245 169 191 191; 95 179 115 123 138; 63 118 79 74 93; 126 236 158 163 187; 147 266 188 211 210];

An=inv(A);

Bm=An*C

运行结果:

答案:I like your lesson thinks.

学生2传递的信息:

A=[1 0 0 0;0 1 0 0;0 0 1 0;1 0 0 1];

C=[13 1 22 5;7 1 0 7;15 15 4 0;4 1 25 0 ];

An=inv(A)

Bm=C*An

四、结论

通过案例式教学,虽然课上加了MATLAB的使用和应用实例的讲解,课后加了应用的作业,同样的时间内需要学习的知识多了,但提起了学生的学习兴趣,激发了学生的学习动力(比如编码问题)。从考核成绩可以看出,学生的学习效果有明显提高。

猜你喜欢

行列式线性代数整数
行列式解法的探讨
一类整数递推数列的周期性
n阶行列式算法研究
翻转课堂在独立院校线性代数教学中的应用研究
利用线性方程组直观理解线性代数的基本概念
提高线性代数教学质量的探索与实践
一类矩阵行列式的构造计算方法
答案
求整数解的策略