matlab上机练习

更新时间:2023-11-12 20:04:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、画出z?sin(x2?y2)x?y22所表示的三维曲面,x,y的取值范围是[?8,8]。

要求采用不同的方法生成坐标网格,并注意如何回避分母不为零的问题。 方法1:

clear;x=-8:0.5:8; y=x'; X=ones(size(y))*x; Y=y*ones(size(x)); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; mesh(X,Y,Z); colormap(hot) xlabel('x'),ylabel('y'),zlabel('z') 方法2: x=-8:0.5:8;

[X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; surf(X,Y,Z) surf(x,y,Z) 方法3: x=-8:0.5:8; y=x;

for i=1:length(y)

for j=1:length(x)

r=sqrt(x(j)^2+y(i)^2)+eps; z(i,j)=sin(r)/r; end end

surf(x,y,z);

2、通过M脚本文件,画出下列分段函数所表示的曲面

?0.5457e?0.75x2?3.75x1?1.5x1x1?x2?1???x22?6x12p(x1,x2)??0.7575e?1?x1?x2?1

??0.75x22?3.75x12?1.5x10.5457ex1?x2??1??clear;

a=2; b=2; clf;

x=-a:0.2:a; y=-b:0.2:b; %方法1:

22% for i=1:length(y) % for j=1:length(x) % if x(j)+y(i)>1

% z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j)); % elseif x(j)+y(i)<=-1

% z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j)); % else

% z(i,j)=0.7575*exp(-y(i)^2-6.0000*x(j)^2); % end % end % end

% axis([-a,a,-b,b,min(min(z)),max(max(z))]); % colormap(flipud(winter)); % surf(x,y,z); %方法2:

for i=1:length(x) for j=1:length(y) if x(i)+y(j)>1

z(j,i)=0.5457*exp(-0.75*y(j)^2-3.75*x(i)^2-1.5*x(i)); elseif x(i)+y(j)<=-1

z(j,i)=0.5457*exp(-0.75*y(j)^2-3.75*x(i)^2+1.5*x(i)); else

z(j,i)=0.7575*exp(-y(j)^2-6.0000*x(i)^2); end end end

axis([-a,a,-b,b,min(min(z)),max(max(z))]); colormap(flipud(winter)); surf(x,y,z); %方法3: % y=y';

% X=ones(size(y))*x; % Y=y*ones(size(x)); % Z=zeros(size(X));

% for i=1:length(y)%size(X,1) % for j=1:length(x)%size(X,2) % if X(i,j)+Y(i,j)>1

% z(i,j)=0.5457*exp(-0.75*Y(i,j)^2-3.75*X(i,j)^2-1.5*X(i,j)); % elseif X(i,j)+Y(i,j)<=-1

% z(i,j)=0.5457*exp(-0.75*Y(i,j)^2-3.75*X(i,j)^2+1.5*X(i,j)); % else

% z(i,j)=0.7575*exp(-Y(i,j)^2-6.0*X(i,j)^2); % end % end

% end

% axis([-a,a,-b,b,min(min(z)),max(max(z))]); % colormap(flipud(winter)); % surf(X,Y,z);

本文来源:https://www.bwwdw.com/article/vplv.html

Top