收藏 分销(赏)

线性代数可视化教学的若干实践_张颖.pdf

上传人:自信****多点 文档编号:602044 上传时间:2024-01-11 格式:PDF 页数:4 大小:2.26MB
下载 相关 举报
线性代数可视化教学的若干实践_张颖.pdf_第1页
第1页 / 共4页
线性代数可视化教学的若干实践_张颖.pdf_第2页
第2页 / 共4页
线性代数可视化教学的若干实践_张颖.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、交叉与综合Computer Knowledge and Technology电脑知识与技术第19卷第18期(2023年6月)第19卷第18期(2023年6月)本栏目责任编辑:李雅琪线性代数可视化教学的若干实践张颖,张会生(大连海事大学 理学院,辽宁 大连 116026)摘要:线性代数课程是工科专业的数学基础课程,但其概念和运算较为抽象,不利于学生理解和应用。文章以线性代数在计算机图形学、图像处理和密码学中的应用为载体,发挥MATLAB 数据处理的可视化优势,设计线性代数的工程应用实验。通过这些实验可以形象直观地展示线性代数的基本概念和运算,从而帮助学生提高学习兴趣并从中获得科研体验。关键词:线

2、性代数;计算机图形学;数字图像水印;加密;MATLAB实验中图分类号:O151.2-4;G642TP311 文献标识码:A文章编号:1009-3044(2023)18-0106-04开放科学(资源服务)标识码(OSID):0 引言线性代数课程是高等工科院校教学计划中的一门基础理论课,也是解决线性问题的重要数学工具。线性问题广泛存在于科学技术的各个领域,而某些非线性问题在一定条件下也可以转化为线性问题。线性代数现在已经广泛应用于计算机、计算机图形、计算机辅助设计、密码学、虚拟现实等技术中。因此学习和掌握线性代数的理论和方法是掌握现代科学技术以及从事科学研究的重要基础和手段。然而在线性代数的学习中

3、,学生们经常感到概念抽象、枯燥、难理解。而且由于线性代数的运算量比较大,学生对于在学习过程中的存疑问题,难以求证结果和验证分析。Matlab软件为数据处理提供了强大的仿真实验平台,仅用几行程序就可对上百万数据进行赋值、运算和绘图。在线性代数教学中引入Matlab实验,一方面可以通过线性代数在工程中的应用来提高学生的学习兴趣和知识应用能力,另一方面还可以引导学生进行科学探索和创新。基于Matlab的线性代数教学研究已经引起了许多学者的关注1-3,面对不同的问题,开发出不同的教学实验。比如从几何变换4-7、信息隐藏 8、图像处理9等方面进行了多方面的实践。然而这些工作大多都基于一种工程应用展开,而

4、且往往由于缺少实验程序步骤而不利于推广和应用。鉴于此,本文从计算机图形学、图像处理和密码学三个方面来对线性代数进行教学实验设计,并附13个Matlab实验步骤。既保证内容充实,又兼顾可操作性。本文结果可直接应用于教学实践。1 在计算机图形学中的应用1.1 平面图形建立平面直角坐标系xoy,把图形置于其中。在xoy坐标系中,图像的顶点坐标为(x1,y1),(xn,yn),用矩阵:T=()x1xnx1y1yny1来表示平面坐标系中的一个闭合图形,矩阵的一列表示图像的一个顶点,为了使图形封闭,最后一列与第一列相同。连接各点的直线段随着被变换带动的各点一起移动。本节中介绍以下四个常见变换:(1)矩阵加

5、法 将平面图形进行平移变换,沿x轴方向平移x0,y轴方向向平移y0,即:()x1xny1ynx1y1()x1+x0 xn+x0y1+y0yn+y0 x1+x0y1+y0,本文中所提及的x,y,z轴方向均指正向;(2)矩阵乘法1)伸缩变换:取M=|a00b,将平面图形进行伸缩变换T MT,沿x轴方向伸缩a倍,y轴方向伸缩b倍;2)旋转变换:取M=|cos-sinsincos,将平面图形进行旋转变换T MT,0时为逆时针旋转,而 0时为顺时针旋转;3)对称变换:取M=|-a2-1a2+12aa2+12aa2+1a2-1a2+1,将平面图形关于直线y=ax进行对称变换T MT。收稿日期:2022-0

6、8-30基金项目:国家自然科学基金(61402071,61671099)作者简介:张颖(1977),女,吉林梅河口人,副教授,博士,主要研究方向代数学、密码学、线性代数教学等;张会生(1979),男,山东滨州人,教授,博士,主要研究方向神经网络、人工智能等。E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology 电脑知识与技术Vol.19,No.18,June 2023106DOI:10.14004/ki.ckt.2023.0864交叉与综合Computer Knowle

7、dge and Technology电脑知识与技术第19卷第18期(2023年6月)第19卷第18期(2023年6月)本栏目责任编辑:李雅琪-20246810123456789101112?1a?24681012123456789101112?1b?a)平移变换 b)伸缩变换-4-3-2-101234123456?1c?0123456789-2-10123456?1d?a)旋转变换 b)对称变换图1 四个常见变换实验1x0=2 3 3 4 4 3 3 4 4 2 2;y0=1 1 3 3 4 4 5 5 6 6 1;x1=x0+3;y1=y0+6;plot(x0,y0,:,x1,y1)axis

8、 equaltitle(平移变换);(见图1a)实验2-实验4x0=2 3 3 4 4 3 3 4 4 2 2;y0=1 1 3 3 4 4 5 5 6 6 1;A=x0;y0;C=3 0;0 2;%实验2伸缩变换(见图1b)C=0.5-sqrt(3)/2;sqrt(3)/2 0.5;%实验3旋转变换,取=3(见图1c)C=3/5 4/5;4/5 -3/5;%实验4对称变换,取y=12x(见图1d)D=C*A;a=D(1,:);b=D(2,:);plot(x0,y0,:,a,b)axis equal上面变换可推广到三维空间中进行。1.2 立体图形建立空间直角坐标系Oxyz,把物体置于其中,坐标

9、系的原点位于电脑屏幕的中心处,xoy平面设定为电脑平面。观察者只能看到三维空间物体图像在二维平面xoy上的投影。在Oxyz坐标系中,物体图像的顶点坐标为(x1,y1,z1),(xn,yn,zn),由这n个点的坐标可构成一个3 n坐标矩阵P=()x1x2xny1y2ynz1z2znP的列为n个顶点的三个坐标分量。(1)矩阵加法 将立体图形进行平移变换,沿x轴方向平移x0,y轴方向平移y0,z轴方向平移z0,即:()x1x2xny1y2ynz1z2zn()x1+x0 xn+x0y1+y0yn+y0z1+z0zn+z0(2)矩阵乘法1)伸缩变换:取M=|a000b000c,对立体图形进行伸缩变换P

10、MP,即沿x轴方向伸缩a倍,y轴方向伸缩b倍,z轴方向伸缩c倍;2)旋转变换:取M=|1000cosw-sinw0sinwcosw,将图形绕x轴转滚动角w的旋转变换P MP;取M=|cosv0-sinv010sinv0cosv,将图形绕y轴转俯仰角v的旋转变换P MP;取M=|cosu-sinu0sinucosu0001,将图形绕 z 轴转偏航角u的旋转变换P MP;u,v,w是欧拉角。实验5x0=1,-4,0;1,-3,0;-1,-1,0;-2,-2,0;-2,0,0;-4,3,0;-1,1,0;1,1,0;0,0,0;2,-2,0;3,-2,0;1,-4,0;y0=1,-2,0;0,-1,

11、0;1,0,0.5;3,0,1.5;1,-2,0;x1(1,:)=x0(1,:)+6;x1(2,:)=x0(2,:)+4;x1(3,:)=x0(3,:)+5;y1(1,:)=y0(1,:)+6;y1(2,:)=y0(2,:)+4;y1(3,:)=y0(3,:)+5;plot3(x0(1,:),x0(2,:),x0(3,:),r),hold onplot3(y0(1,:),y0(2,:),y0(3,:),g),hold onplot3(x1(1,:),x1(2,:),x1(3,:),r),hold onplot3(y1(1,:),y1(2,:),y1(3,:),g),hold onaxis eq

12、ualtitle(平移变换);(见图2a)实验6实验9x0=1,-4,0;1,-3,0;-1,-1,0;-2,-2,0;-2,0,0;-4,3,0;-1,1,0;1,1,0;0,0,0;2,-2,0;3,-2,0;1,-4,0;y0=1,-2,0;0,-1,0;1,0,0.5;3,0,1.5;1,-2,0;C=2 0 0;0 3 0;0 0 4;%实验6伸缩变换(见图2b)C=1 0 0;0 1/2-sqrt(3)/2;0 sqrt(3)/2 1/2;%实验7绕x轴旋转变换,取=3(见图2c)C=1/2 0-sqrt(3)/2;0 1 0;sqrt(3)/2 0 1/2;%实验8绕y轴旋转变换

13、,取=3(见图2d)C=1/2-sqrt(3)/2 0;sqrt(3)/2 1/2 0;0 0 1;%实验9绕z轴旋转变换,取=3(见图2e)x1=C*x0;y1=C*y0;x2(1,:)=x1(1,:)+6;%平移便于对比前后图形x2(2,:)=x1(2,:)+4;x2(3,:)=x1(3,:)+4;y2(1,:)=y1(1,:)+6;107交叉与综合Computer Knowledge and Technology电脑知识与技术第19卷第18期(2023年6月)第19卷第18期(2023年6月)本栏目责任编辑:李雅琪y2(2,:)=y1(2,:)+4;y2(3,:)=y1(3,:)+4;p

14、lot3(x0(1,:),x0(2,:),x0(3,:),r),hold onplot3(y0(1,:),y0(2,:),y0(3,:),g),hold onplot3(x2(1,:),x2(2,:),x2(3,:),r),hold onplot3(y2(1,:),y2(2,:),y2(3,:),g),hold onaxis equal引导学生进行多种变换的复合,发掘新型变换,鼓励学生探究线性代数中抽象概念的几何特征,比如将变换矩阵M作相似变换和合同变换后,研究新矩阵对图形作怎样的变换,以及验证经正交变换后的几何图形不变这一重要结论等,提出这样探究性问题给学生,不仅使学生们很容易上手进行科学探

15、究,而且极大提高学生的学习兴趣并从中获得参与感。2 图像水印中的应用在Matlab软件中,图像是以矩阵的形式来表示和存储的。生活中最常见的彩色图像就是RGB图像。RGB图像是一个三层的数据矩阵,每一层分别表示红、绿、蓝三种颜色。在MATLAB中读入一个彩色图像后是一个m*n*3的三层数据矩阵,矩阵中每个值定义了每一个像素的RGB颜色值。对图像进行操作,实际上是将图像看成许多个像素点,对每个像素点进行操作。实验10将图像拖到工作区,在命令行窗口输入imdata=imread(face.jpg);%读取待嵌入水印的图像,这里是彩色图像,回车返回三个矩阵imshow(imdata)%显示待嵌入水印的

16、图像imgray=rgb2gray(imdata)%转为灰度图象,变成一层矩阵imshow(imgray)%显示灰色图像title(原图);(见图3a)wm0=imread(wm.jpg)%读取水印图像(见图3b)lev=graythresh(wm0);wm=im2bw(wm0,lev);%将水印图像转换为二值图像wm1=imresize(wm,64 64);%修改一下水印图片的大小r,c=size(imgray);%获取原图的行数列数r_w,c_w=size(wm1);%获取水印行数列数b=wm1*255;%给水印图片乘以一个分量得到相应的像素值ones1=uint8(ones(r-r_w,

17、c_w);%构造全1矩阵ones2=uint8(ones(r,c-c_w);a=b;ones1;%构造一个分块矩阵使水印和原图像型号相同,将水印放在原图的左上角c=a ones2;waterMark=imgray+c;%通过分块矩阵加法嵌入水印imshow(waterMark);%显示明文水印title(加水印后)(见图3c)?3a?3b?3c?a)原图 b)水印图 c)加水印后图3 实验10本节中简单介绍了灰度图像加水印的基本方法,而且水印出现在图像的左上角。对于彩色图像如何添加水印,以及水印出现在其他位置和调整水印大小等的情形可以引导学生通过实验自行探究,从而激发学生的学习兴趣,并让他们体

18、会这种置身科学研究的快乐。3 在图像加密中的应用本节介绍三种简单的图像加密方法:3.1 随机扰乱图片信息的行列实验11RGB=imread(face.jpg);s=size(RGB);%显示RGB的阶数r=randsample(s(1),s(1);%取RGB行数的任意全排列rRGBS=RGB(r,:,:);%按照r的顺序对RGB进行行置换c=randsample(s(2),s(2);%取RGB列数的任意全排列cRGBSS=RGBS(:,c,:);%按照c的顺序对RGBS进行列置换subplot(1,2,1);imshow(RGBSS);title(加密后);%显示加密后图像(见图4a)考虑私钥

19、密码体制,通信双方已知置换r,ci=1;f=1:length(c);while i=length(c)f(i)=find(c=i);-4-202468-4-202460123456?2a?0510-505100246810?2b?a)平移变换 b)伸缩变换-4-202468-4-20240123456?2c?x?-4-20246-4-2024601234567?2d?y?c)绕x轴旋转变换 d)绕y轴旋转变换-4-202468-4-20246012345?2e?z?e)绕z轴旋转变换图2 实验6-9变换图108交叉与综合Computer Knowledge and Technology电脑知识

20、与技术第19卷第18期(2023年6月)第19卷第18期(2023年6月)本栏目责任编辑:李雅琪i=i+1;endf%求出c的逆RGBE=RGBSS(:,f,:);%还原列置换j=1;g=1:length(r);while j=length(r)g(j)=find(r=j);j=j+1;endg%求出r的逆RGBEE=RGBE(g,:,:);%还原行置换从而解密subplot(1,2,2);imshow(RGBEE);title(解密后);%显示解密后图像(见图4b)?4a?4b?a)加密后 b)解密后图4 实验113.2 随机扰乱图片信息的像素点随机打乱像素点进行数字图像加密,加密效果比较好

21、,但加解密密时间呈指数倍增加。实验12RGB=imread(face.jpg);s=size(RGB);n=s(1)*s(2)*s(3);%计算像素点数r=randsample(n,n);%任取n个数的全排列rRGBS=RGB(r);%将三层矩阵分别按列拉直合成一列,再按r置换RGBSS=reshape(RGBS,s(1),s(2),s(3);%将RGBS摆成s(1)*s(2)*s(3)矩阵完成加密i=1;f=1:n;while i=nf(i)=find(r=i);i=i+1;endf%求出r的逆RGBE=RGBS(f);%将RGBS按照r的逆f置换RGBEE=reshape(RGBE,s(1

22、),s(2),s(3);%将RGBE摆成s(1)*s(2)*s(3)矩阵,完成解密subplot(1,2,1);imshow(RGBSS);title(加密后);(见图5a)subplot(1,2,2);imshow(RGBEE);title(解密后);(见图5b)?5a?5b?a)加密后 b)解密后图5 实验123.3 对像素点的RGB值进行缩放对像素点的RGB值缩放进行数字图像加密,加密效果会随着缩放的倍数增加会更好,但易于破解。实验13RGB=imread(face.jpg);s=size(RGB);r=rand(s(1),s(2),s(3)*10;RGBD=im2double(RGB)

23、;%将图像数据转换成双精度型数据RGBS=RGBD.*r;subplot(1,2,1);imshow(RGBS);title(加密后);(见图6a)RGBE=RGBS./r;subplot(1,2,2);imshow(RGBE);title(解密后);(见图6b)?6a?6b?a)加密后 b)解密后图5 实验13本节中简单介绍了三种加密方法,图像采用的是jpg格式,但jpg格式在读入和读出中存在误差,图片会部分失真,而利用bmp格式的图像是无损压缩,因此不会出现这种情况。引导学生尝试利用bmp格式图片,或提出新的加密形式,以激发学生的学习兴趣。4 结束语本文从操纵和显示图形变换,图像水印和图像

24、加密的实验入手,将Matlab实验引入线性代数教学中,提供的13个实验操作简单,可直接应用,使学生对线性代数深入理解的同时,对图像处理和密码学有进一步深入了解和认知。以提高学生的学习兴趣和激发学生对知识的求知欲及创新精神为目的,在线性代数教学中引入工程问题实验对增益科学智能是非常必要的。从而为培养适应我国社会主义现代化建设需要的高质量专门人才而服务。参考文献:1 杜红林.Matlab在线性代数实验教学中的应用研究J.电脑知识与技术,2019,15(20):114-115.2 王守中,江蓉.判断空间中若干几何图形位置关系的教学设计J.西南师范大学学报(自然科学版),2018,43(8):154-

25、159.3 沈雁.线性代数教学中直观性应用的实践与思考J.数学教育学报,2010(6):86-88.4 吴明月,李万东,汪波,等.矩阵与线性变换几何意义的教学探索J.高师理科学刊,2018,38(7):61-64.5 王志俊,姜咏梅,田记.矩阵在图形学几何变换中的应用J.高等数学研究,2014,17(1):87-88,99.6 王玉花,崔桂芳,刘新柱.以应用为中心的线性代数课堂教学研究J.经济师,2019(1):195-196.7 马艳琴.代数与几何结合的应用问题研究J.山东轻工业学院学报(自然科学版),2012(2):85-89.8 朱丹,于书靖,苏洪波.基于MATLAB数字图像处理的线性代数教学探索J.科技视界,2019(31):118-119.9 吴琦.线性代数的几何化与应用化教学探讨J.黑龙江科学,2018,9(8):78-79.【通联编辑:李雅琪】109

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服