张颖,张会生
(大连海事大学理学院,辽宁大连 116026)
线性代数课程是高等工科院校教学计划中的一门基础理论课,也是解决线性问题的重要数学工具。线性问题广泛存在于科学技术的各个领域,而某些非线性问题在一定条件下也可以转化为线性问题。线性代数现在已经广泛应用于计算机、计算机图形、计算机辅助设计、密码学、虚拟现实等技术中。因此学习和掌握线性代数的理论和方法是掌握现代科学技术以及从事科学研究的重要基础和手段。
然而在线性代数的学习中,学生们经常感到概念抽象、枯燥、难理解。而且由于线性代数的运算量比较大,学生对于在学习过程中的存疑问题,难以求证结果和验证分析。
Matlab 软件为数据处理提供了强大的仿真实验平台,仅用几行程序就可对上百万数据进行赋值、运算和绘图。在线性代数教学中引入Matlab实验,一方面可以通过线性代数在工程中的应用来提高学生的学习兴趣和知识应用能力,另一方面还可以引导学生进行科学探索和创新。
基于Matlab 的线性代数教学研究已经引起了许多学者的关注[1-3],面对不同的问题,开发出不同的教学实验。比如从几何变换[4-7]、信息隐藏[8]、图像处理[9]等方面进行了多方面的实践。然而这些工作大多都基于一种工程应用展开,而且往往由于缺少实验程序步骤而不利于推广和应用。
鉴于此,本文从计算机图形学、图像处理和密码学三个方面来对线性代数进行教学实验设计,并附13个Matlab实验步骤。既保证内容充实,又兼顾可操作性。本文结果可直接应用于教学实践。
建立平面直角坐标系xoy,把图形置于其中。在xoy坐标系中,图像的顶点坐标为(x1,y1),…,(xn,yn),用矩阵:
来表示平面坐标系中的一个闭合图形,矩阵的一列表示图像的一个顶点,为了使图形封闭,最后一列与第一列相同。连接各点的直线段随着被变换带动的各点一起移动。本节中介绍以下四个常见变换:
(1)矩阵加法将平面图形进行平移变换,沿x轴方向平移x0,y轴方向向平移y0,即:
图形关于直线y=ax进行对称变换T→MT。
图1 四个常见变换
实验1
建立空间直角坐标系Oxyz,把物体置于其中,坐标系的原点位于电脑屏幕的中心处,xoy平面设定为电脑平面。观察者只能看到三维空间物体图像在二维平面xoy上的投影。在Oxyz坐标系中,物体图像的顶点坐标为(x1,y1,z1),…,(xn,yn,zn),由这n个点的坐标可构成一个3 ×n坐标矩阵
P的列为n个顶点的三个坐标分量。
(1)矩阵加法将立体图形进行平移变换,沿x轴方向平移x0,y轴方向平移y0,z轴方向平移z0,即:
(2)矩阵乘法
习近平总书记强调,“凡是广大干部群众普遍关注的深层次问题,都要从历史和现实、理论和实践的结合上给出令人信服的回答”。在全国党校工作会议上,习近平总书记曾经对理论界和党校教员提出了13个重点问题,这13个重点问题都是亟待党校讲坛予以回应的好问题、真问题,这些问题应该也是社会各界高度关注、亟待厘清的新问题、深问题。也正因为这个原因,在2016年底全国行政学院评出的首届15门精品课中,重庆行政学院、江苏行政学院、湖北行政学院等单位的9个获奖专题都是习近平总书记提出需要重点回答的问题。
图2 实验6-9变换图
引导学生进行多种变换的复合,发掘新型变换,鼓励学生探究线性代数中抽象概念的几何特征,比如将变换矩阵M作相似变换和合同变换后,研究新矩阵对图形作怎样的变换,以及验证经正交变换后的几何图形不变这一重要结论等,提出这样探究性问题给学生,不仅使学生们很容易上手进行科学探究,而且极大提高学生的学习兴趣并从中获得参与感。
在Matlab软件中,图像是以矩阵的形式来表示和存储的。生活中最常见的彩色图像就是RGB 图像。RGB 图像是一个三层的数据矩阵,每一层分别表示红、绿、蓝三种颜色。在MATLAB 中读入一个彩色图像后是一个m*n*3的三层数据矩阵,矩阵中每个值定义了每一个像素的RGB颜色值。对图像进行操作,实际上是将图像看成许多个像素点,对每个像素点进行操作。
实验10
图3 实验10
本节中简单介绍了灰度图像加水印的基本方法,而且水印出现在图像的左上角。对于彩色图像如何添加水印,以及水印出现在其他位置和调整水印大小等的情形可以引导学生通过实验自行探究,从而激发学生的学习兴趣,并让他们体会这种置身科学研究的快乐。
本节介绍三种简单的图像加密方法:
图4 实验11
随机打乱像素点进行数字图像加密,加密效果比较好,但加解密密时间呈指数倍增加。
实验12
图5 实验12
对像素点的RGB值缩放进行数字图像加密,加密效果会随着缩放的倍数增加会更好,但易于破解。
实验13
图5 实验13
本节中简单介绍了三种加密方法,图像采用的是jpg 格式,但jpg 格式在读入和读出中存在误差,图片会部分失真,而利用bmp 格式的图像是无损压缩,因此不会出现这种情况。引导学生尝试利用bmp 格式图片,或提出新的加密形式,以激发学生的学习兴趣。
本文从操纵和显示图形变换,图像水印和图像加密的实验入手,将Matlab 实验引入线性代数教学中,提供的13个实验操作简单,可直接应用,使学生对线性代数深入理解的同时,对图像处理和密码学有进一步深入了解和认知。以提高学生的学习兴趣和激发学生对知识的求知欲及创新精神为目的,在线性代数教学中引入工程问题实验对增益科学智能是非常必要的。从而为培养适应我国社会主义现代化建设需要的高质量专门人才而服务。