用matlab解决几何问题_精品文档Word格式文档下载.doc
- 文档编号:14437885
- 上传时间:2022-10-22
- 格式:DOC
- 页数:14
- 大小:616KB
用matlab解决几何问题_精品文档Word格式文档下载.doc
《用matlab解决几何问题_精品文档Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《用matlab解决几何问题_精品文档Word格式文档下载.doc(14页珍藏版)》请在冰豆网上搜索。
2利用MATLAB绘制三维曲线………………………………………………………………1
3利用MATLAB绘制曲面图形……………………………………………………………2
4利用MATLAB判定图形间的位置关系…………………………………………………5
5利用MATLAB研究旋转曲面的性质………………………………………………6
结束语……………………………………………………………………………………………10
参考文献…………………………………………………………………………………………10
致谢…………………………………………………………………………………………11
摘要:
将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语句来完成.
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)
z=(x.^2/4-y.^2/9)/2;
(图5)
图4
图5
从图4中可以看到,直接用mesh或surf函数画出的曲面不一定美观,又比如画锥面:
z2=x2+y2;
若使用下列语句,则图出的图形如图6所示,不够美观.
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
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:
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.
%单叶双曲面
0.1:
2*pi;
y=20+5*cos(t);
[a,b,c]=cylinder(y,100);
mesh(a,b,c-0.5);
图10
%双叶双曲面
e=0:
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;
pi/30:
n=length(t);
y=b+a*co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 解决 几何 问题 精品 文档