国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

運用Matlab討論橢球面性質

2016-01-28 03:08:32王新年
大學數學 2015年5期
關鍵詞:橢球面

楊 慧, 王新年

(太原師范學院幾何代數研究室,太原030001)

?

運用Matlab討論橢球面性質

楊慧,王新年

(太原師范學院幾何代數研究室,太原030001)

[摘要]橢球面是測繪學物理學中常用的曲面之一.本文通過運用Matlab強大的繪圖功能和設計技巧,用四種方法繪制了三軸橢球面,設計了平行截割法研究曲面形狀的程序,且在Matlab中實現了橢球面的切平面與法線的設計,另外依據軟件采用矩陣處理問題特點,實現了橢球面生成過程的動畫設計.通過運行程序,表明運用Matlab可以得到生動、逼真的曲面動態(tài)圖形.

[關鍵詞]Matlab; 橢球面; 平行截割法; 動態(tài)圖形

1引言

Matlab是一個交互式的系統(tǒng),編程以矩陣為基本數據單元,按照IEEE的數值計算標準進行計算的,它將編輯、編譯、鏈接、執(zhí)行融為一體.它除了包含豐富的數學軟件外,還包括信息工程和控制工程等方面的內容,如信息處理、小波分析、魯棒控制等等.另外該軟件具有強大的數據可視化功能,能方便地繪制各種復雜的二維、三維和多維圖形,自帶許多繪圖函數,可以設置視角、關照效果,還可創(chuàng)建動畫效果,對我們研究曲面性質起到了重要的作用.

下面將在Matlab中實現對橢球面性質的研究.

2在Matlab中繪制橢球面圖形

在空間直角坐標系下,橢球面的標準方程為

(1)

其中a,b,c為正實數.

橢球面也稱為橢圓面,其參數方程為

文中以a=3;b=2;c=1為例來繪制橢球面.

2.1 在Matlab中運用特殊曲面繪制函數ellipsoid實現圖形繪制(如圖1)

Input(′a=′);input(′b=′);input(′c=′); Input(′N=′);

[x,y,z]=ellipsoid(0,0,0,a,b,c,N)%[X,Y,Z]=ELLIPSOID(XC,YC,ZC,XR,YR,ZR,N) center(XC,YC,ZC) and semi-axis lengths (XR,YR,ZR)

surf(x,y,z);legend(′橢球面′);axis equal

2.2 在Matlab中繪制參數方程形式下的曲面圖形

t=0∶pi/30∶2*pi;

[u,v]=meshgrid(t,t);

x=3*cos(u).* cos(v);

y=2*cos(u).* sin(v);

z=sin(u);

figure; surf(x,y,z)

axis equal

2.3 利用線性變換法:先做出球面的圖形然后再代換即可 (如圖2)

[x,y,z]=sphere(30);

surf(x,y,z);

axis equal

mesh(3*x,2*y,z)

圖1                        圖2

2.4 用Matlab中繪制隱函數方程下的圖形——先繪制橢球面的上半曲面,然后利用對稱性繪制下半部分曲面

a=3;b=2;c=1;N=30;

xgrid=linspace(-a,a,N);

ygrid=linspace(-b,b,N);

[x,y]=meshgrid(xgrid,ygrid);

z=c*sqrt(1-y.*y/b∧2-x.*x/a∧2); m=1;

z1=real(z);

for k=2∶N-1

for j=2∶N-1

if imag(z(k,j))~=0 z1(k,j)=0;

else if all(imag(z([k-1∶k+1],[j-1∶j+1])))~=0 z(k,j)=NaN;

end

end

surf(x,y,z1),hold on

if m==1 z2=-z1; surf(x,y,z2);

end

xlabel(′x′),ylabel(′y′),zlabel(′z′)

注指令plot3實際上是二維圖形繪制指令plot在三維空間的擴展,繪制的是多條曲線;指令mesh繪制的是網格曲面,該曲面將鄰接的點用直線連接起來,從而形成網狀曲面;指令surf繪制的是表面圖,各線條之間的空擋用顏色填充.

3在Matlab中實現橢球面性質研究

橢球面有很好的對稱性,是有界曲面.他與三個對稱平面的交線都是橢圓,且曲面上的點(除了六個頂點)都是橢圓點,是個有心二次曲面.

3.1 Matlab中做出橢球面與一族平行平面的截線,通過研究截線的形狀、大小及位置的變化研究曲面的方法稱為是平行截割法.

a=3;b=2;c=1;u=0.5;

t=-3∶.2∶3;

[x,y]=meshgrid(t);

z1=u*ones(length(t));

axis equal ;

subplot(2,2,1),

surf(x,y,z1);%繪出平面圖形

hold on

[x,y,z2]=ellipsoid(0,0,0,3,2,1,30);%繪出橢球面圖形

surf(x,y,z2);

zoom on%容許對圖形放大

xlabel(′x′);

ylabel(′y′)

zlabel(′z′);

colormap(jet),

r0=abs(z1-z2)<=0.01;

zz=r0.*z1;xx=r0.*x;yy=r0.*y;

subplot(2,2,2),

h1=plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),′-′); %繪出橢球面與平面的交線

set(h1,′markersize′,0.1),hold on ,grid on

for i=1∶9,

v=1-i*0.2;t=-3∶.2∶3;

[x,y]=meshgrid(t);

z3=v*ones(size(x));

subplot(2,2,3),

surf(x,y,z3);

[x,y,z2]=ellipsoid(0,0,0,3,2,1,30);

hold on

mesh(x,y,z2);

hidden off,

colormap(hot)

r1=abs(z3-z2)<=0.01;

zzz=r1.*z3;xxx=r1.*x; yyy=r1.*y;

subplot(2,2,4),

h2=plot3(xxx(r1~=0),yyy(r1~=0),zzz(r1~=0),′b-′);

set(h2,′markersize′,0.1),hold on,grid on

end

從以上圖形中可以直觀地看出截線是一系列橢圓,所以橢球面可以看作一系列橢圓所生成

3.2 橢球面上一點處的切平面及法線方程

由于橢球面上的點都是橢圓點,即都是正常點,故每一點處的切平面均存在.(圖4)

syms x y z;

f(x,y,z)=x∧2/9+y∧2/4+z∧2-1;

圖4

nv=jacobian(f,[x y z]);

[x,y,z]=ellipsoid(0,0,0,3,2,1,20);

surf(x,y,z)

x=2;y=-4/3;z=1/2;

nv=double(subs(nv));

hold on

quiver3(x,y,z,nv(1),nv(2),nv(3),.5);

t=-1∶.2∶1;

[xx,yy]=meshgrid(t+x,t+y);

zz=-(nv(1)*(xx-x)+nv(2)*(yy-y))/nv(3)+z;

mesh(xx,yy,zz);

xlabel(′x′);ylabel(′y′);zlabel(′z′);

3.3 橢球面的表面面積

syms u v a b c

r=[a*cos(u).*cos(v),b*cos(u).*sin(v),c*sin(u)];

ru=[diff(r(1),u),diff(r(2),u),diff(r(3),u)];

rv=[diff(r(1),v),diff(r(2),v),diff(r(3),v)];

N=cross(ru,rv);

M=norm(N)

運行結果為

M=a*b.*cos(u).*sqr(sin(u)∧2+c∧2/a∧2.*cos(u)∧2.*cos(v)∧2+c∧2/b∧2*cos(u)∧2sin(v)∧2

a=3;b=2;c=1;

fun=@(u,v) a*b.*cos(u).*…

sqrt(sin(u).∧2+(c/a.*cos(u).*cos(v)).∧2+(c/b.*cos(u).*sin(v)).∧2)

S=8*quad2d(fun,0,pi/2,0,pi/2)

運行結果為

S=48.8821

3.4 橢球面的體積

由前面的性質1可知,用平行于xOy面的平面z=h (-c≤h≤c)截橢球面時,截口為橢圓,該橢圓方程為

Matlab編程為:

a=3;b=2;c=1;

syms h

f=@(h) pi*a*b*(1-(h./c).∧2)

V=quad(f,-c,c)

運行結果為:V=25.1327

4Matlab中實現橢球面生成過程

4.1 旋轉橢球面動態(tài)圖形——依次畫出曲面矩陣的各列實現

t= 0∶pi/30∶2*pi;

[u,v]=meshgrid(t,t);

x=3 * cos(u).* cos(v);

y=2 * cos(u).* sin(v);

z=sin(u);

axis([-4 4 -3 3 -2 2]);

hold on;

m=size(z,2);

for i=2∶m

plot3(x(i,∶),y(i,∶),z(i,∶));drawnow; pause(0.3);

end

注以上繪制的是坐標曲線v-曲線族,當n=m/4時,運行程序

for i=2∶n

plot3(x(i,∶),y(i,∶),z(i,∶));drawnow; pause(0.3);

end

則得到橢球面的部分曲面圖(圖5).

圖5

for i=2∶m

plot3(x(∶,i),y(∶,i),z(∶,i));drawnow; pause(0.3);

end

注以上繪制的是坐標曲u-曲線族,當n=m/2時,運行程序

for i=2∶n

plot3(x(∶,i),y(∶,i),z(∶,i));drawnow; pause(0.3);

end

則得到橢球面的部分曲面圖(圖6).

圖6

4.2 橢球面動態(tài)圖形——依次畫出相鄰兩列的曲面片

for i=2∶n

surf(x(i-1∶i,∶),y(i-1∶i,∶),z(i-1∶i,∶));drawnow; pause(0.3);

end

注以上繪制的是相鄰坐標曲線v-曲線構成的曲面片

for i=2∶n

surf(x(∶,i-1∶i),y(∶,i-1∶i),z(∶,i-1∶i));drawnow; pause(0.3);

end

注以上繪制的是相鄰坐標曲線u-曲線構成的曲面片

4.3 橢圓繞軸旋轉生成的旋轉橢球面——通過做幾何變換

考慮橢圓

M0=[0 0 0];L=[0 0 1];

theta=0∶pi/10∶2*pi;

y1=2*cos(theta);z1=sin(theta);x1=0*ones(1,length(theta));

plot3(x1,y1,z1)

alpha=pi/60;

I=ones(length(theta),1);

u=[x1;y1;z1];

U=ctranspose(u);V=horzcat(U,I);

for i=1∶120

A=[cos(i*alpha),sin(i*alpha),0,0;-sin(i*alpha),cos(i*alpha),0,0;0,0,1,0;0,0,0,1];

W=V*A;

mesh([W(∶,1),U(∶,1)],[W(∶,2),U(∶,2)],[W(∶,3),U(∶,3)]);

colormap(jet); hold on; pause(0.1)

drawnow;

end

在以上程序的基礎上,我們可以改動幾何變換矩陣做出橢圓繞任意直線生成的旋轉曲面的動態(tài)圖形,也可設計出空間任意曲線繞一直線旋轉生成曲面的程序.

依據Matlab軟件數據可視化特點,以橢球面為研究對象,研究了橢球面的性質,特別采用平行截割法對曲面的生成過程進行了程序設計,研究過程中涉及的方法技巧具有一定的指導意義,我們可以用相似的方法研究其它的曲面如雙曲面、拋物面等.另外,Matlab軟件擁有圖像處理工具箱,提供了大量的用于圖像處理的函數,可以對圖像和視頻進行采集,并對圖像的進行變換、增強和邊緣檢測,希望能進一步運用它來處理幾何中的各類復雜曲線曲面.

[參考文獻]

[1]呂林根,許子道.解析幾何[M].4版.北京:高等教育出版社,2006.

[2]趙海濱.MATLAB應用大全[M].北京:清華大學出版社,2012.

[3]任明慧.MATLAB在空間圖形中的動態(tài)應用[J].數學理論與應用,2008,28(1):40-44.

[4]向修棟,付云芝.在MATLAB中實現旋轉曲面的動畫設計[J].計算機技術與發(fā)展,2011,21(3):52-55.

[5]趙亞男,牛言濤.MATLAB在解析幾何教學中的應用[J].長春大學學報,2011,21(4):54-58.

[6]孔祥強.MATLAB軟件在空間解析幾何教學中的應用探索[J].計算機應用與軟件,2012,29(8):297-300.

Discussing Ellipsoid Properties by Using Matlab

YANGHui,WANGXin-nian

(Geometric and Algebra Laboratory,Taiyuan Normal University,Taiyuan 610500,China)

Abstract:The ellipsoid is one of the curved surface in surveying and mapping science,physics. In this paper,by using the powerful drawing graphics and designing skills,four methods are used to draw the three-axis ellipsoid. The program of parallel cutting method is designed to study surface shape,and a tangent plane and normal are analyzed. In addition,on the basis of data processing techniques of using matrix characteristics,implements the ellipsoid generation process of animation design. By running the program,it shows that the vivid and perfect animations surface can been formed based on Matlab.

Key words:Matlab; ellipsoid; parallel cutting method; animation graphical

[中圖分類號]G642.0

[文獻標識碼]C

[文章編號]1672-1454(2015)05-0120-07

[收稿日期]2015-04-27

猜你喜歡
橢球面
幾種新型異形橢球面方程、幾何特征及其應用前景
一種基于離軸橢球面的小光程差波面整形系統(tǒng)
應用光學(2022年3期)2022-07-05 08:12:14
空間桁架拱支單層橢球面網殼結構設計與分析
大地高代替正常高在低等級公路工程測量中的應用
全國大學生數學競賽之空間解析幾何題的特色解法
帶電導體為橢球體的電場分布
平面和橢球面相截所得的橢圓的參數方程及其應用
基于華中數控宏程序三軸不等半凸型橢球曲面的加工
橢球面上平面曲線類型的閉測地線
大學數學(2015年1期)2016-01-28 02:27:20
橢球面上的等角剖分、共形映射與建筑造型
酉阳| 行唐县| 吉水县| 高淳县| 安平县| 外汇| 西城区| 汉源县| 林甸县| 盐边县| 临安市| 永福县| 黄平县| 宜兰市| 东港市| 巨野县| 黄冈市| 故城县| 乡宁县| 阳高县| 凉山| 油尖旺区| 手游| 泸西县| 万州区| 英德市| 成武县| 宝应县| 彰武县| 罗定市| 财经| 固镇县| 楚雄市| 垣曲县| 定安县| 广宗县| 惠来县| 惠水县| 宜兰市| 日喀则市| 康乐县|