非矩形区域上图形绘制的MATLAB实现
发布时间:2023-03-23 20:41:21 来源:文档文库
小
中
大
字号:
非矩形区域上图形绘制的MATLAB实现
翟龙余
【摘要】文中通过把自变量的某些值重新赋值为nan,绘制出非矩形区域上函数z=f(x,y的图形;通过把函数值中的虚数重新赋值为nan,绘制出非矩形自然定义域上函数z=f(x,y的图形。%Figuresinthefunctionofz=f(x,yonnon-rectangulardomaincanbedrawnwhennanisreassignedtosomevaluesofindependentvariables.Atthesametime,figuresinthefunctionofz=f(x,yonnon-rectangularnaturaldomaincanbedrawnwhennanisreassignedtosomeimaginarynumbersoffunc-tionvalues.【期刊名称】《通化师范学院学报》【年(卷,期】2014(035004【总页数】3页(P21-23
【关键词】非矩形区域;自然定义域;图形绘制【作者】翟龙余
【作者单位】江苏财经职业技术学院基础教学部,江苏淮安223003【正文语种】中文【中图分类】O245
MATLAB系统是目前世界上最流行的一种数值计算和图形、图像处理工具软件,目前已广泛应用于高等数学辅助教学中.比如,使用MATLAB软件辅助教学,可以
很容易绘制出复杂的立体图形,把曲线、曲面的形成和变化过程准确地模拟出来,这对提高教学效率和培养学生的空间想象能力可起到事半功倍的效果.如果要在空间直角坐标系下,绘制z=f(x,y,其中(x,y∈[a,b]×[c,d]所代表的三维曲面图形,可按如下步骤,用MATLAB进行绘图[1].(1生成平面网格坐标矩阵:先将[a,b]在x方向划分出m个等分点,再将[c,d]在y方向划分出n个等分点,最后利用meshgrid函数生成网格点的坐标,横坐标放在x矩阵中,纵坐标放在y矩阵中,两个矩阵都是n×m的矩阵;(2计算z坐标的矩阵:在上一步的基础上利用MATLAB的数值计算功能计算出函数z=f(x,y的函数值,生成z坐标的矩阵;
(3绘制三维曲面:MATLAB提供了mesh函数和surf函数来绘制三维图形,mesh函数用于绘制三维网格图,surf函数用于绘制三维曲面图.高等数学中的函数z=f(x,y的自然定义域不一定是矩形区域[a,b]×[c,d],很多函数的自然定义域是一般形状的平面区域,还有实际应用问题的研究往往不是在函数的自然定义域上研究,而是在一个与具体问题相关的非矩形区域上研究,这种非矩形区域上函数的三维曲面绘制在MATLAB的相关教材中都没有介绍,本文就此结合数学中的典型实例研究了非矩形区域上空间三维曲面图形的绘制.1非矩形区域上的MATLAB图形绘制——自变量赋nan法
文献[2]介绍了非矩形区域上MATLAB图形绘制的一种方法:先把区域分割成若干个窄条矩形,利用MATLAB中绘制空间曲面的库函数作出窄条矩形的图形,最后再进行叠加,得到任意区域上的函数的图形.但是,按照该法,如果区域的边界线较为复杂时,所取点有可能落到区域外,如果该区域是函数的自然定义域时,还有可能绘制不出图形.在MATLAB中,有一个特殊的变量nan(NotaNumber,表示“非数”,MATLAB在处理数据时,会跳过数据中的nan,所有的MATLAB作图函数都会忽
略含有nan的数据点,实现一种所谓“镂空”的效果[3].受此启发,可以通过如下方法作出边界线已知的任意平面区域上的三维图形:
(1用上述矩形区域绘图法步骤1的方法,生成一个矩形区域的网格坐标,要求该矩形区域包含所绘图形的绘图区域;
(2剔除绘图区域以外点:先计算出绘图区域边界线上函数值,然后通过MATLAB循环与条件判断语句,一一判断网格点是否在作图区域内,如不在,把区域外的网格点的某个坐标值重新赋值为nan;
(3按照上述矩形区域作图法步骤2和3的方法进行绘图,就可绘制出所需图形.上述绘图方法关键之处是把绘图区域外的点的一个坐标的值即函数的一个自变量的值重新赋值为nan,所以称此绘图方法为自变量赋nan法.以x型区域为例,说明该绘图法的编程过程:
由y=g(x,y=h(x,x=a,z=b围成x型区域D(其中g(x≥h(x,现要求绘制二元函数z=f(x,y,(x,y∈D的三维曲面图,具体步骤如下:
(1任取一矩形区域D0,使D0⊇D,如取D0=[a,b]×[gmax