1、MATLAB 课程论文姓名:安郁玉 蒋森丽学号:201200801007 201200801036专业:12 物理学(师范)MATLAB 软件高等数学图形问题的研究与学习安郁玉 蒋森丽(德州学院 物理与电子信息学院 山东德州 253023)摘要:作为一名学习物理的学生,高等数学是一门重要的工具,无论是在解决物理方面的问题还是其他方面的问题,学会运用高等数学无疑是一门必不可少学科,而将数学软件MATLAB 应用于高等数学中的空间解析几何中,能够对图形进行静态与动态的可视化,使概念形象生动,有利于对知识的理解与掌握,能进一步推动基础课程的现代化进程。关键词:MATLAB;软件;高等数学;图形1 绪
2、论强大的绘图功能是 MATLAB 的特点之一。MATLAB 提供了一系列的绘图函数,用户不需过多考虑绘图细节,只需给出一些基本参数就能得到所需图形,这一类函数称为高层绘图函数。除此之外,MATLAB 还提供了直接对图形句柄进行操作的底层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、曲面或文字)看做是一个独立的对象,系统给每个图形对象分配一个句柄,以后可以通过该句柄对该图形元素进行操作,而不影响图形的其他部分。高层会图操做简单明了、方便高效,是用户最常使用的绘图方法,而低层绘图操作控制和表现图形的能力更强,为用户更加自主地绘制图形创造了条件。事实上,MATLAB 的高层绘图函数都是利用
3、低层绘图函数建立起来的。2 举例及解析在 MATLAB 软件的高等数学图形问题的研究与学习中,学习到了许多概念和方法。基于周后卿教授的论文,我们做了以下研究与学习。例 1 作出螺旋线的图像。(1)程序:t=0:0.1:10*pi;i=1;h=plot3(sin(t(i), cos(t(i), t(i), *, erasemode, none);grid onaxis(-2 2 -2 2 0 35)for i=2:length(t)set(h, xdata,sin(t(i), ydata, cos(t(i), zdata, t(i); drawnowpause(0.01)end 图 1 圆柱形螺
4、旋线解析:1、第一行,用于建立 0 为初值 10 到 10*pi 的一行 N 列矩阵步长为 0.1(相当于每次增加的长度为 0.1) 。2、第三行,h=plot3 用来画空间曲线;erasemode 可以实现显示新对象,擦除旧对象而又不破坏背景图案。Erasemode 属性有以下四种(normal,none,xor,backgrand)其中此例中 none 方式不做任何擦除直接在原来图形上绘制。3、第四行,grid on 是 MATLAB 的一种函数,grid on 表有网格线,grid off 关掉网格线。4、第五行,axis(-2 2 -2 2 0 35)为设定坐标轴的范围。5、第六行,f
5、or 循环从 i=2 开始到 length(t)为止,length(t)取得 t 的长度。(2)这个程序的特点在于螺旋线是以动画的形式出现,而接下来的这个程序作出的螺线是圆锥形,他没有动画,程序完成后马上显示下面的图 2.a=0:0.1:20*pi;h=plot3(a.*cos(a), a.*sin(a), 2.*a, b, linewidth, 2);axis(-50, 50, -50, 50, 0, 150);grid onset(h, erasemode, none, markersize, 22);xlabel(x 轴);ylabel(y 轴);zlabel(z 轴);图 2 圆锥形螺
6、旋线解析:1、第一行,0 为初值 20*pi 为 4 表示终止 0.1 为步长,相当于每次增加的长度(生成一个矩阵)2、第二行,h=plot3 用来画空间曲线,linewidth 为线的粗细参数。3、第四行,set 函数的调用格式,set(句柄,属性名 1,属性值 1,属性名2,) ,markersize,22 是对标记大小的说明,22 是大小值,本来很小的一点,有了 22 就会很大。4、第五行,xlabel 该函数用于在绘图窗口中的横轴(x 轴)方向上显示一个标签,即,在 x 轴上标注x 轴 ,y,z 轴同理。(3)同样是圆锥形螺旋线,以下这个程序作图时显示了螺旋线形成的动画过程,并且呈现时
7、间比较长,能够看得很清楚。x=2*t*sin(pi/4)*cos(t);y=2*t*cos(pi/4)*sin(t);z=2*t*cos(pi/4);for k=0:0.1:4*pigrid onezplot3(x, y, z, 0, k+0.2)pause(0.05)title( 圆锥螺线)end图 3 动画形圆锥形螺旋线解析:1、前三行,给出了 x,y,z 所满足的函数。2、第四行,for 循环运算,k 从 0 开始,每次增加 0.1 直到增加到 4 为止。3、第五行,grid on 有网格线。4、第六行,ezplot3 是一个画三维曲线的简捷指令,在 0 到 k+0.2 的区间内绘制x,
8、y,z 图形。5、第七行,pause()若不加参数是程序暂停,直到用户按任意键,若加参数,例如此处是指程序暂停 0.05 秒。例 2 做出维维安尼(Viviani)曲线图形。 022axyz首先画球面与柱面相交,程序如下:syms s t k u r;x1=sin(s)*cos(t);y1=sin(s)*sin(t);z1=cos(s);x2=-cos(k)*cos(k);y2=sin(k)*cos(k);z2=u;subplot(1, 2, 1);ezmeshc(x2, y2, z2, 0, pi, -2, 2);%绘制圆柱面holdon;ezsurf(x1, y1, z1, -pi, pi
9、, 0, pi);%绘制球面title( 球面与圆柱面);图 4 球面与柱面相交图解析:1、第一行,定义几个符号变量。2、第四行,subplot(1,2,1)是设置子图的函数,表示大图含有 1 行 2 列共有 1 个子图,当前激活第 1 个子图。Ezmeshc 画带等位线的网线图的简捷指令。 %代表注释行,表解释作用。3、第五行,hold on 表示保留原来的图,hold off 取消原来的图。4、第六行,ezsurf 是画表面图的简捷指令。其次画维维安尼曲线, 程序如下syms s t k u r;x1=sin(s)*cos(t);y1=sin(s)*sin(t);z1=cos(s);x2=
10、-cos(k)*cos(k);y2=sin(k)*cos(k);z2=u;subplot(1, 2, 1);ezmeshc(x2, y2, z2, 0, pi, -2, 2);%绘制圆柱面hold on;ezsurf(x1, y1, z1, -pi, pi, 0, pi);%绘制球面title( 球面与圆柱面);hold off;x3=-cos(r)*cos(r);y3=sin(r)*cos(r);z3=sin(r);subplot(1, 2, 2);ezplot3(x3, y3, z3, 0, 2*pi);title( 维维安尼 Viviani 曲线)图 5 维维安尼图例 3 在阅读了周后卿
11、老师的论文,及学习了 MATLAB 的基本知识后编写了程序。绘制两个直径相等的圆管的相交图形。程序如下:%两个等直径圆管的交线m=30;z=1.2*(0:m)/m;r=ones(size(z);theta=(0:m)/m*2*pi;x1=r*cos(theta);y1=r*sin(theta);%生成第一个圆管的坐标矩阵z1=z*ones(1,m+1);x=(-m:2:m)/m;x2=x*ones(1,m+1);y2=r*cos(theta);%生成第二个圆管的坐标矩阵z2=r*sin(theta); surf(x1,y1,z1);%绘制竖立的圆管axis equal,axis offhold
12、 onsurf(x2,y2,z2);%绘制平放的圆管axis equal,axis offtitle(两个等直径圆管的交线);hold off图 6 两曲面及其交交线图 3 结束语像一枚硬币都有其两面性一样, 利用 MATLAB 绘制图形, 形象又直观, 有利我们认识图形; 但如果因为软件作画简单快捷而放弃手工绘制, 那么对我们的动手能力的培养将是不利的。因为绘图往往是我们的弱项, 平时对作图缺乏系统的训练; 而手工绘制图形的过程也是思维训练的过程, 对空间观念的建立和空间想象能力的提升很有帮助。参考文献1周后卿,基于 MATLAB 软件的高等数学图形问题, 20142刘卫国,MATLAB 程序设计与应用(第二版) ,2006