加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何用Matlab绘制极坐标等高线

(2014-01-21 15:07:42)
分类: matlab
如何用matlab绘制下面f(z)的等高线?其中z是复平面的任意一个复数。
例1. 直角坐标系下的图形
t = linspace(0, 2*pi, 61); % 角度的格子點
r = 0:0.05:1; % 長度的格子點
[tt, rr] = meshgrid(t, r); % 產生二維的格子點
[xx, yy] = pol2cart(tt, rr); % 將極座標轉換至直角座標
zz = xx + sqrt(-1)*yy; % 複數表示
ff = abs(zz.^3-1); %曲面的函數
contour(xx, yy, ff, 50); %畫出等高線
axis image 
注意以上的图形是直角坐标系下的图形,x轴以及y轴都是直角坐标表示的。

例2. 在上例中,座標的標示仍為直角座標。欲將等高線顯示於極座標上,需先用 polar 指令產生一個極座標圖,再移除圖形,留下圖軸,然後再進行作圖。
t = linspace(0, 2*pi, 61);
r = 0:0.05:1;
[tt, rr] = meshgrid(t, r);
[xx, yy] = pol2cart(tt, rr);
zz = xx + sqrt(-1)*yy;
ff = abs(zz.^3-1);

h = polar([0 2*pi], [0 1]); %产生在极坐标下的一条直线
delete(h);   %删除上述直线,但留下坐标轴
hold on
contour(xx, yy, ff, 50);
hold off
例3. 同時畫出複數函數的曲面和等高線圖

  t = linspace(0, 2*pi, 61);  % 角度的格子點

  r = 0:0.05:1;  % 長度的格子點

  [tt, rr] = meshgrid(t, r);  % 產生二維的格子點

  [xx, yy] = pol2cart(tt, rr);  % 將極座標轉換至直角座標

  zz = xx + sqrt(-1)*yy % 複數表示

  ff = abs(zz.^3-1);  % 曲面的函數值

  h = polar([0 2*pi], [0 1]);  % 產生在極座標上的一條直線

  delete(h);  % 移除上述圖形,但留下極座標圖軸

  hold on

  contour(xx, yy, ff, 20);  % 等高線

  surf(xx, yy, ff);  % 曲面圖

  hold off

  view(-19, 22);  % 設定觀測角度

z = cplxgrid(30);
cplxmap(z, abs(z.^3 -1));
注意cplxmap的图形的幅度是f(z)的实部,图上的颜色是f(z)的虚部
 
注明:没有类似于Z=f(x,y)这样的函数的时候,只有(x,y,z)这样的点的值的时候,绘制等势图的流程如下
[xx,yy]=meshgrid(linspace);
contour(xx,yy,z)
其中最为关键的是一定要保证size(z)=size(xx)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有