实验五 二元函数的图形.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验五 二元函数的图形

PAGE PAGE 10 实验五 二元函数的图形 【实验目的】 了解二元函数图形的制作。 空间曲面等高线的制作。 了解多元函数插值的方法。 学习掌握MATLAB软件有关的命令。 【实验内容】 画出函数的图形,并画出其等高线。 【实验准备】 1.曲线绘图的MATLAB命令 MATLAB中主要用mesh,surf命令绘制二元函数图形。 mesh(x,y,z) 画网格曲面,这里x,y,z是三个数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点在空间中描出,并连成网格。 surf(x,y,z) 画完整曲面,这里x,y,z是三个数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点所表示曲面画出。 可以用help mesh, help surf查阅有关这些命令的详细信息 【实验方法与步骤】 练习1 画出函数的图形,不妨将区域限制在。用MATLAB作图的程序代码为: clear; x=-3:0.1:3; %x的范围为[-3,3] y=-3:0.1:3; %y的范围为[-3,3] [X,Y]=meshgrid(x,y); %将向量x,y指定的区域转化为矩阵X,Y Z=sqrt(X.^2+Y.^2); %产生函数值Z mesh(X,Y,Z) 结果如图5.1。图5.1是网格线图,如果要画完整的曲面图,只需将上述的MATLAB代码mesh(X,Y,Z)改为surf(X,Y,Z), 结果如图5.2 图5.1 锥面 图5.2 锥面 要画等高线,需用contour,contour3命令.其中contour为二维等高线, contour3为三维等高线,如画图5.1的三维等高线, MATLAB代码为: clear; x=-3:0.1:3; y=-3:0.1:3; [X,Y]=meshgrid(x,y); Z=sqrt(X.^2+Y.^2); contour3(X,Y,Z,10) %画10条等高线 xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis) %三个坐标轴的标记 title(Contour3 of Surface) %标题 grid on %画网格线 结果如图5.3. 图5.3 等高线 如画图5.1的二维等高线, MATLAB代码为: clear; x=-3:0.1:3; y=-3:0.1:3; [X,Y]=meshgrid(x,y); Z=sqrt(X.^2+Y.^2); contour(X,Y,Z,10) xlabel(X-axis),ylabel(Y-axis) title(Contour of Surface) grid on 结果如图5.4. 图5.4 等高线 如果要画的等高线,则用命令 clear; x=-3:0.1:3; y=-3:0.1:3; [X,Y]=meshgrid(x,y); Z=sqrt(X.^2+Y.^2); contour(X,Y,Z,[1 1]) 结果如图5.5。 图5.5 等高线 练习1中,函数值可简单算出。在有些情况下,函数值不能简单算出。这是因为x和y的值可能是非均匀间隔的甚至是随机分布的,也可能使用了不同的坐标系,比如非长方形的网。出现这些情况时,MATLAB中的函数griddata就用来产生经查值后的均匀间隔数据以作图。 练习2 二次曲面的方程如下 讨论参数对其形状的影响。 本练习的关键在于如何作出三维曲面图形,特别注意在给定值求时,若有开方运算,一是会出现虚数,二是对实数也有正负两个解。为了使虚数不出现在绘图中,采用了一种技巧,就是将虚数都换成非数(NaN). MATLAB代码为: a=input(a=); b=input(b=); c=input(c=); d=input(d=); N=input(N=); %输入参数,N为网格线数目 xgrid=linspace(-abs(a), abs(a),N); %建立x网格坐标 ygrid=linspace(-abs(b), abs(b),N); %建立y网格坐标 [x,y]=meshgrid(xgrid,ygrid); %确定个点的x,y网格坐标 z=c*sqrt(d-y.*y/b^2-x.*x/a^2); u=1; %u=1,表示z要取正值 z1=real(z); %取z的实部z1 for k=2:N-1 %一下7行程序的作用是取消z中含虚数的点 for j=2:N-1 if imag(z(k,j))~=0 z1(k,j)=0; end if all(imag(z([k-1:k+1],[j-1:j

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档