《MATLAB与科学计算》期末论文
盐 城 师 范 学 院
《MATLAB与科学计算》期末论文
2016-2017学年度 第一学期
用MATLAB解决解析几何的图形问题
学生姓名 吴梦成 学 院 数学与统计学院 专 业 信息与计算科学 班 级 数15(5)信计 学 号 15213542
第 1 页 共 1 页
《MATLAB与科学计算》期末论文
用MATLAB解决解析几何的图形问题
摘 要
将 MATLAB 的图形和动画功能都用于解析几何教学,可使教学形象生动。以图形问题为例,详细给出了实例的程序编写和动画实现过程 。在解析几何教学中有一定的应用价值。
【关键词】: MATLAB; 解析几何 ;图形 ; 动 画;编程
1 引 言
在解析几何的教学中,使用传统的教学方法。许多曲线及曲面的形成过程与变换过程只通过传统的教师讲授静态图示就很难形象生动地表示出来 。在解析几何教学中使用MATLAB软件辅助教学,不仅可以很容易绘制出复杂的立体图形。把曲线、曲面的形成和变化过程准确地模拟出来 ,而且还能够对它们进行翻转 、旋转 ,甚 至还能够轻而易举地实现图形的动画效果!这对提高教学效率和培养学生的空间想象能力可起到事半功倍的效果。下面结合实例从几个方面说明MATLAB在解析几何画图方面的应用。
2 利用 MATLAB绘制三维曲线
在空间解析几何中,各种曲线和曲面方程的建立都离不开图形 ,而空间曲线和曲面图形既难画又费时。借助MATLAB的绘图功能 ,可以快捷 、 准确地绘出图形,使教学变得形象 、生动 。有利于学生观察三维空间图形的形状 , 掌握图形的性质 。 一 般地 ,MATLAB可用plot3,ezplot3,comet3等函数来各种三维曲线 。 例如画螺旋曲线的图形,其参数方程设为 :x?atcost,y??btsint,
z?ct 。使用 plot3语句画螺旋曲线图形的方法如下( 设a =2 ,b=4,c=3):
t?0:pi/50:10*pi;plot3(2*t.*cos(t),?4*t.*sin(t),3*t);
MATLAB用两条简单的语句就可以画出螺旋 曲线(图1),但上述方法是静态的 ,为了体
第 2 页 共 2 页
《MATLAB与科学计算》期末论文
现(圆锥a =b) 螺旋曲线的形成过程 .可以使用的动画功能 .改用以下一条语句 : ezplot3('2*t*cos(t)','?4*t*sin(t)','3*t',[0,10*pi],'animate');
可以看到一个红色的小球在绕螺旋曲线运动(图2) 。若觉得上述语句画出的图形在电脑上显示还是比较快 ,可以改用comet3语句来完成 。 t?0:pi/50:10*pi;comet3(2*t.*cos(t),?4*t.*sin(t),3*t); ; 同样可以看到一个红色的小球在绕螺旋曲线运动(图3) 。
3 利用 MATLAB绘制曲面图形
用 MATLAB绘制曲面时。一般地可以用mesh、shrf、ezmesh、ezsurf等函数来完成。解析几何中有一些常见的二次曲面: 球面,椭球面,双叶双曲面。单叶双曲面,锥面,椭圆抛物面,双曲抛物面等。对于后两个 ,由于可 以直接用 Z表示 ,比如:椭圆抛物面 :z?x2?y2;;双曲抛物面2z?x2/4?y2/9;;因此可以用 meshgridanesh,surf函数直接完成(见图4、 5)。
>> [x,y]=meshgrid(-10:0.2:10);z=(x.^2+y.^2);mesh(x,y,z); [x,y]=meshgrid(-10:0.2:10);z=(x.^2/4-y.^2/9);mesh(x,y,z);
第 3 页 共 3 页
《MATLAB与科学计算》期末论文
从图4中可以看,直接用mesh或 surf函数画出的曲面不一定美观 ,又 比如画锥面:z^2=x^2+y^2 若使用下列语句 ,则图出的图形如图6所示 ,不够美观 。 [x,y]=meshgrid(-10:0.2:10);z=sqrt(x.^2+y.^2);mesh(x,y,z);
这时可以考虑用其他方法 ,由于球面,椭球面,锥面等可用参数方程来表示 : 锥面:x?avcosu,y?bvsinu,z?cv;;
椭球面:x?accosvcosu,y?bcosvsinu,z?csinv;
故可以用ezsurf或ezmesh函数直接画出。这里a=2,b=3,c=4,画锥面和椭球面的语句如下(见图7.8)
ezsurf('2*v*cos(u)','3*v*sin(u)','4*v',[0,2*pi],[?10,10]);
ezsurf('2*cos(v)*cos(u)','3*cos(v)*sin(u)','4*sin(v)',[0,2*pi],[?pi/2,pi/2]);
当然当 a=b时,上述曲面也可以用旋转曲面的方法来画(图9)
因此 .对不同的曲面要采用
不同的画法 .这样可以使图形更加美观。文献[ 3 ] 给出一个通用的二次 曲面画图程序,比较复杂,这里略。
4利 用 MATLAB判定图形间的位置关系
三维空间中的平面 、曲线 、曲面在实际生活中有着广泛的应用 ,学生掌握三维空间中图形的位置关系是解析几何教学的难点之一。借助 MATLAB的三维绘图功能.可以在同一直角坐标系下快捷 、准确地绘出图形。有利于学生观察掌握图形之间的位置
第 4 页 共 4 页
《MATLAB与科学计算》期末论文
关系,突破教学难点。
例 1:作出球面x2?y2?z2?a2和圆柱面x2?y2-ax?0的交线—— 维维安尼(Vivian)曲线[1]。
此题通过联立球面方程x2?y2?z2?a2 和圆柱面方程 x2?y2-ax?0, 得出维维安尼曲线的参数方程 :x?acos2t,y?acost*sint,z?asint;;利用函数plot3,ezflot3可以画出该曲线 (同1O),但是利用plot3函数 ,仅仅画出了该曲线 。还未能反映出两曲面的交的情况 。利用 MATLAB.可在同一直角坐标系中绘出球面与柱面.可以直观看 出 曲面相交的情形 .这更有利于学生观察维维安尼曲线的形状.输 入以下语句(或事先编好M文件,设a=4)
%柱面的MATLAB程序
[a,b,c]?cylinder(2,100); c(1,:)??4;c(2,:)?4;
mesh(a?2,b,c);holdon
%球面的MATLAB程序
[u,v]?meshgrid(?pi:0.2:pi);
x?4*sin(u).*cos(v); y?4*sin(u).*sin(v); z?4*cos(u);
mesh(x,y,z)
第 5 页 共 5 页
《MATLAB与科学计算》期末论文



