資源描述:
《matlab曲面繪圖》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、泰州學(xué)院Matlab課堂練習(xí)十曲面繪圖【實驗?zāi)康摹?.了解二元函數(shù)圖形的制作。2.空間曲面等高線的制作。3.學(xué)習(xí)掌握MATLAB軟件有關(guān)的命令?!緦嶒瀮?nèi)容】畫出函數(shù)的圖形,并畫出其等高線。【實驗準備】1.曲線繪圖的MATLAB命令MATLAB中主要用mesh,surf命令繪制二元函數(shù)圖形。mesh(x,y,z)畫網(wǎng)格曲面,這里x,y,z是三個數(shù)據(jù)矩陣,分別表示數(shù)據(jù)點的橫坐標,縱坐標和函數(shù)值,該命令將數(shù)據(jù)點在空間中描出,并連成網(wǎng)格。surf(x,y,z)畫完整曲面,這里x,y,z是三個數(shù)據(jù)矩陣,分別表示數(shù)據(jù)點的橫坐標
2、,縱坐標和函數(shù)值,該命令將數(shù)據(jù)點所表示曲面畫出??梢杂胔elpmesh,helpsurf查閱有關(guān)這些命令的詳細信息【實驗方法與步驟】練習(xí)1畫出函數(shù)的圖形,不妨將區(qū)域限制在。用MATLAB作圖的程序代碼為:clearx=-3:0.1:3;y=-3:0.1:3;[X,Y]=meshgrid(x,y);Z=exp(X.^2+Y.^2);mesh(X,Y,Z)21泰州學(xué)院Matlab課堂練習(xí)十結(jié)果如圖5.1。圖5.1是網(wǎng)格線圖,如果要畫完整的曲面圖,只需將上述的MATLAB代碼mesh(X,Y,Z)改為surf(X,Y,Z
3、),結(jié)果如圖5.2圖5.1錐面圖5.2錐面要畫等高線,需用contour,contour3命令.其中contour為二維等高線,contour3為三維等高線,如畫圖5.1的三維等高線,MATLAB代碼為:clearx=-3:0.1:3;y=-3:0.1:3;21泰州學(xué)院Matlab課堂練習(xí)十[X,Y]=meshgrid(x,y);Z=sqrt(X.^2+Y.^2);contour3(X,Y,Z,10)xlable('X-axis'),ylable('Y-axis'),zlable('Z-axis')%z字符型加‘’
4、title('三維等高線')gridon21泰州學(xué)院Matlab課堂練習(xí)十結(jié)果如圖5.3.圖5.3等高線如畫圖5.1的二維等高線,MATLAB代碼為:結(jié)果如圖5.4.圖5.4等高線如果要畫的等高線,則用命令clearx=-3:0.1:3;y=-3:0.1:3;[X,Y]=meshgrid(x,y);Z=sqrt(X.^2+Y.^2);21泰州學(xué)院Matlab課堂練習(xí)十contour(X,Y,Z,[1,1])結(jié)果如圖5.5。圖5.5等高線練習(xí)1中,函數(shù)值可簡單算出。在有些情況下,函數(shù)值不能簡單算出。這是因為x和y的值
5、可能是非均勻間隔的甚至是隨機分布的,也可能使用了不同的坐標系,比如非長方形的網(wǎng)。出現(xiàn)這些情況時,MATLAB中的函數(shù)griddata就用來產(chǎn)生經(jīng)查值后的均勻間隔數(shù)據(jù)以作圖。21泰州學(xué)院Matlab課堂練習(xí)十練習(xí)2二次曲面的方程如下討論參數(shù)對其形狀的影響。本練習(xí)的關(guān)鍵在于如何作出三維曲面圖形,特別注意在給定值求時,若有開方運算,一是會出現(xiàn)虛數(shù),二是對實數(shù)也有正負兩個解。為了使虛數(shù)不出現(xiàn)在繪圖中,采用了一種技巧,就是將虛數(shù)都換成非數(shù)(NaN).MATLAB代碼為:a=input('a=');a=b=input('b='
6、);b=c=input('c=');c=d=input('d=');N=input('N=');xgrid=linspace(-abs(a),abs(a),N);ygrid=linspace(-abs(b),abs(b),N);[x,y]=meshgrid(xgrid,ygrid);z=c*sqrt(d-y.*y/b^2-x.*x/a^2)>>fork=2:N-1%以下7行程序的作用是取消z中含虛數(shù)的點>>forj=2:N-1ifimag(z(k,j))~=0z1(k,j)=0;end21泰州學(xué)院Matlab課堂練
7、習(xí)十ifall(imag(z([k-1:k+1],[j-1:j+1])))~=0za(k,j)=NaN;endendend>>surf(x,y,z1),holdon%畫空間曲面>>ifu==1z2=-z1;surf(x,y,z2);%u=1時加畫負半面axis([-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c)]);end>>xlabel('x'),ylabel('y'),zlabel('z')>>holdoff運行程序,當(dāng)時的結(jié)果見圖5.6,當(dāng)時的結(jié)果見圖5.7,當(dāng)時的結(jié)果
8、見圖5.8,圖5.6橢球面21泰州學(xué)院Matlab課堂練習(xí)十圖5.7雙曲面圖5.8橢球雙曲面練習(xí)3列出求空間兩任意曲面的交線的程序。[x,y]meshgrid(-2:0.1:2,-2:0.1:2);z1=x.^2+y.^2z2=2*x-3*ymesh(x,y,z1);hold;mesh(x,y,z2);r0=(abs(z1-z2)<=0.1);zz=ro.*