用matlab解决几何问题.docx
《用matlab解决几何问题.docx》由会员分享,可在线阅读,更多相关《用matlab解决几何问题.docx(13页珍藏版)》请在冰豆网上搜索。
用matlab解决几何问题
本科学年论文
题目用matlab解决几何问题
院部数学与信息科学学院
专业数学与应用数学
指导教师肖静
评阅教师肖静
班级2008级3班
姓名牟俊吉
学号20080
2011年5月1日
摘要……………………………………………………………………………………………………Ⅰ
Abstract………………………………………………………………………………………………Ⅰ
1引言…………………………………………………………………………………………………1
2利用MATLAB绘制三维曲线………………………………………………………………1
3利用MATLAB绘制曲面图形……………………………………………………………2
4利用MATLAB判定图形间的位置关系…………………………………………………5
5利用MATLAB研究旋转曲面的性质………………………………………………6
摘要:
将MATLAB的图形和动画功能应用于解析几何教学,可使教学形象生动.以图形问题为例,详细给出了实例的程序编写和动画实现过程,在解析几何教学中有一定的应用价值.
关键词:
MATLAB;解析几何;图形;动画;编程
Abstract:
Applyinggraphandanimatefunctiontoinstructionofanalyticalgeometryandmakeinstructionvisualandliving.Byusingexamplesofgraphing,wegivetheprogramsandanimateproceedingoftheexamples.Ithassomeapplyingvaluesinteachingofanalyticalgeometry.
Keywords:
MATLAB;analyticalgeometry;graph;animate;program
1引言
在解析几何的教学中,使用传统的教学方法,许多曲线及曲面的形成过程与变换过程只通过传统的教师讲授、静态图示就很难形象生动地表示出来.在解析几何教学中使用MATLAB软件辅助教学,不仅可以很容易绘制出复杂的立体图形,把曲线、曲面的形成和变化过程准确地模拟出来,而且还能够对它们进行翻转、旋转,甚至还能够轻而易举地实现图形的动画效果!
这对提高教学效率和培养学生的空间想象能力可起到事半功倍的效果.下面结合实例从几个方面说明MATLAB在解析几何画图方面的应用.
2利用MATLAB绘制三维曲线
在空间解析几何中,各种曲线和曲面方程的建立都离不开图形,而空间曲线和曲面图形既难画又费时.借助MATLAB的绘图功能,可以快捷、准确地绘出图形,使教学变得形象、生动,有利于学生观察三维空间图形的形状,掌握图形的性质.一般地,MATLAB可用plot3,ezplot3,comet3等函数来画各种三维曲线.
例如:
画螺旋曲线的图形,其参数方程设为:
x=a*t*cos(t),
y=-b*t,
sin(t),z=c*t,
使用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),但上述方法是静态的,为了体现(圆锥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)
图1图2
图3
3利用MATLAB绘制曲面图形
用MATLAB绘制曲面时,一般地可以用mesh、surf、ezmesh、ezsurf等函数来完成.解析几何中有一些常见的二次曲面:
球面,椭球面,双叶双曲面,
单叶双曲面,锥面,椭圆抛物面,双曲抛物面等.对于后两个,由于可
以直接用Z表示,比如:
椭圆抛物面:
z=x2+y2;双曲抛物面2z=x2/4-y2/9;
因此可以用meshgrid,mesh,surf函数直接完成(见图4、5).
[x,y]=meshgrid(-10:
0.2:
10);z=(x.^2+y.^2);mesh(x,y,z);(图4)
[x,y]=meshgrid(-10:
0.2:
10);z=(x.^2/4-y.^2/9)/2;mesh(x,y,z);(图5)
图4
图5
从图4中可以看到,直接用mesh或surf函数画出的曲面不一定美观,又比如画锥面:
z2=x2+y2;若使用下列语句,则图出的图形如图6所示,不够美观.
[x,y]=meshgrid(-10:
0.2:
10);
z=sqrt(x.^2+y.^2);mesh(x,y,z);
图6
这时可以考虑用其他方法,由于球面,椭球面,锥面等可用参数方程来表示:
锥面:
x=avcosu,y=bvsinu,z=cv;
椭球面:
x=acosvcosu,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]);
图7
ezsurf('2*cos(v)*cos(u)','3*cos(v)*sin(u)','4*sin(v)');
图8
当然,当a=b时,上述曲面也可以用旋转曲面的方法来画.因此,对不同的曲面要采用不同的画法,这样可以使图形更加美观.文献[3]给出一个通用的二次曲面画图程序,比较复杂,这里略.
4利用MATLAB判定图形间的位置关系
三维空间中的平面、曲线、曲面在实际生活中有着广泛的应用,学生掌握三维空间中图形的位置关系是解析几何教学的难点之一.借助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可以画出该曲线(图10),但是利用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)
图9
运行上述语句,可得到两曲面相交的图形,利用MATLAB的图形旋转功能,从不同角度观察图形,上述图9是进行旋转后的结果.
5利用MATLAB研究旋转曲面的性质
在解析几何教学中,旋转曲面的性质仅仅通过教师的讲解和板书的静态演示很难让学生掌握,利用MATLAB演示旋转曲面的形成过程则可突破这一教学难点.用MATLAB画旋转曲面可用函数cylinder(R,N),只要R为不同的曲线,再加上平移变换则可.
例2:
画旋转单叶双曲面x2/a2+y2/b2-z2/c2=1
和旋转双叶双曲面x2/a2+y2/b2-z2/c2=-1
解:
取a=b,并用参数方程来表示,则MATLAB画图语句如
下,运行后结果如图10、11.
%单叶双曲面
t=0:
0.1:
2*pi;y=20+5*cos(t);
[a,b,c]=cylinder(y,100);
mesh(a,b,c-0.5);
图10
%双叶双曲面
e=0:
0.1:
10;h=sqrt(3*e);
[a,b,c]=cylinder(h,100);
c1=c+0.5;mesh(a,b,c1)
holdon;mesh(a,b,-c1)
图11
上述画图过程是静态的,没有表现出曲面的旋转过程,如何使画图过程是动态的呢?
可采用编程的方法来解决.
例3:
演示将圆(y-b)2+z2=a2
绕Z轴旋转所得的图形
解:
按数学原理,绕Z轴旋转,相当于y用sqrt(x2+y2)代替,则可得到旋转曲面,画图时,根据圆的特点,采用参数方程表示,
编程序如下:
a=5;b=20;
t=0:
pi/30:
2*pi;
n=length(t);
y=b+a*cos(t);
z=a*sin(t);
x=zeros(1,n);
plot3(x,y,z)
holdon;pause
(1)
fork=0:
pi/60:
2*pi;
x1=y.*sin(k);
y1=y.*cos(k);
plot3(x1,y1,z)
pause(0.01);
gridon;holdon;
view([-10,100])
end
holdoff
图12
运行结果如图12所示.
本程序直观形象地演示了圆绕Z轴旋转而形成圆环的过程.
类似地,将程序中圆的方程分别改为直线、椭圆、双曲线、抛物线的方程,运行程序则可动态地演示绕Z轴旋转而成的旋转圆锥面、椭球面、单叶旋转双曲面和旋转抛物面的形成过程.
康托给分析建立了严格的集合论基础.而在对实数连续性的描述中,闭区间套定理是一个基本的定理.因此,在对该定理推广前有必要先回顾一下闭区间套定理的内容.
结束语
动点的轨迹和曲面截痕轨迹是解析几何教学中的又一个难点,而描绘动点轨迹和曲面截痕轨迹的形成过程是传统教学无法实现的.使用MATLAB制作动画,可以轻易实现空间动点的轨迹和曲面截痕的轨迹的形成过程,使学生直观地观察动点变化形成轨迹的过程和曲面截痕轨迹形成的过程.具体例子可以参考文献
[4,5],这里略.
参考文献:
[1]吕林银,许子道.解析几何(第三版)[M].北京:
高等教育出版社,1987.
[2]王沫然.MATLAB与科学计算(第二版)[M].北京:
电子工业出版社,2003.
[3]李丽,王振领.MATLAB工程计算及应用[M].北京:
人民邮电出版社,2001.
[4]周德亮,白岩.用MATLAB解决高等数学中的图形问题[J].数学的实践与认识,2002,23
(1):
122-124.
致谢
在写论文的过程中我遇到了很多麻烦和困难,在我感觉力不人心的时候老师给了我很大的帮助.同学也给我很多鼓励.在他们的支持下我写完了这篇论文.写完之后我感觉有很大收获.因为这篇论文是我一直想写的.