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

分类: 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. 同時畫出複數函數的曲面和等高線圖
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)
前一篇:MATLAB中多行注释的三种方法