• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      運用Matlab討論橢球面性質

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

      楊 慧, 王新年

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

      ?

      運用Matlab討論橢球面性質

      楊慧,王新年

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

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

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

      1引言

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

      下面將在Matlab中實現(xiàn)對橢球面性質的研究.

      2在Matlab中繪制橢球面圖形

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

      (1)

      其中a,b,c為正實數(shù).

      橢球面也稱為橢圓面,其參數(shù)方程為

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

      2.1 在Matlab中運用特殊曲面繪制函數(shù)ellipsoid實現(xiàn)圖形繪制(如圖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中繪制參數(shù)方程形式下的曲面圖形

      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中繪制隱函數(shù)方程下的圖形——先繪制橢球面的上半曲面,然后利用對稱性繪制下半部分曲面

      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繪制的是網(wǎng)格曲面,該曲面將鄰接的點用直線連接起來,從而形成網(wǎng)狀曲面;指令surf繪制的是表面圖,各線條之間的空擋用顏色填充.

      3在Matlab中實現(xiàn)橢球面性質研究

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

      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中實現(xiàn)橢球面生成過程

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

      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)圖形,也可設計出空間任意曲線繞一直線旋轉生成曲面的程序.

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

      [參考文獻]

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

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

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

      [4]向修棟,付云芝.在MATLAB中實現(xiàn)旋轉曲面的動畫設計[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
      空間桁架拱支單層橢球面網(wǎng)殼結構設計與分析
      大地高代替正常高在低等級公路工程測量中的應用
      全國大學生數(shù)學競賽之空間解析幾何題的特色解法
      帶電導體為橢球體的電場分布
      平面和橢球面相截所得的橢圓的參數(shù)方程及其應用
      基于華中數(shù)控宏程序三軸不等半凸型橢球曲面的加工
      橢球面上平面曲線類型的閉測地線
      橢球面上的等角剖分、共形映射與建筑造型
      泉州市| 安国市| 广汉市| 韩城市| 驻马店市| 巩义市| 朝阳区| 舟曲县| 翁源县| 宜州市| 海安县| 新津县| 河津市| 象山县| 嵩明县| 金寨县| 景洪市| 嘉兴市| 沁水县| 菏泽市| 咸阳市| 建平县| 姜堰市| 望奎县| 漳浦县| 修水县| 阿图什市| 安陆市| 泸溪县| 新田县| 顺平县| 绥芬河市| 威远县| 泰顺县| 乳源| 姚安县| 马关县| 洪洞县| 衢州市| 合阳县| 宁化县|