2014-06-27 23 views
1

繪製流功能,我使用此代碼卡繪製流功能我想在MATLAB

[X,Y]= meshgrid(linspace(0,80),linspace(-8,8)); 
[t]=meshgrid(linspace(0,100)); 
B=1+0.3*cos(0.9*t); 
k=2*phi/10; 
low=.1+k.^2.*B.^2.*sin(k.*(X-0.9.*t)).^2; 
PSI=-tanh((Y-B.*cos(k.*(X-0.9.*t)))./sqrt(low)); 
contour(X,Y,PSI,3); 
colormap cool 

我想類似的圖片。我所得到的只是當前的(形狀線)而不是渦流(矩形)。 enter image description here enter image description here

回答

2

我試圖使用生成顯示, 參數的情節,但我沒能拿到「漩渦」形狀的等高線圖 。下面是我的實現:

len = 200; 
[X,Y] = meshgrid(linspace(0,80,len), linspace(-8,8,len)); 
t = meshgrid(linspace(0,1,len)); 

a = 1.2; 
c = 0.12; 
k = 2*pi/7.5; 
w = 0.4; 
e = 0.3; 

B = a + e * cos(w*t); 
D = k * (X - c*t); 
PSI = - tanh((Y - B.*sin(D)) ./ sqrt(1 + (k * B.*cos(D)).^2)) + c*Y; 

figure('Position',[100 100 650 300]) 
movegui('center') 

subplot(211) 
contour(X, Y, PSI, 10), ylim([-4.5 4.5]) 
%colormap cool 
xlabel('kilometers'), ylabel('km'), title('Mobility Model') 

subplot(212), axis off 
text(0.5, 0.5, ... 
    {['$\psi(x,y,t) = -\tanh{[ \frac{y - B(t) \sin(k(x-ct))}' ... 
    '{\sqrt{1 + k^2 B^2(t) \cos^2(k(x-ct))}} ]} + cy$']; 
    '$where\, B(t) = A + \epsilon cos(\omega t)$'}, 'Interpreter','latex', ... 
    'FontSize',20, 'Horizontal','center', 'Vertical','middle') 

matlab_contour_plot


這導致我相信你已經展示的截圖不完全匹配它下面的等式/參數...

實際上,如果我們以3D觀察曲面圖,就會發現曲線中沒有看起來像那些在正弦曲線之間的三角形的形狀。它只是兩個幾乎平坦的飛機,兩者之間有一個凹陷的下降。

這裏是顯示爲表面圖的二維函數:

surf(X, Y, PSI, 'FaceColor','interp', 'EdgeColor','none') 
daspect([20 6 1]) 
axis vis3d, axis tight 
box on, grid on, view(140,30) 
xlabel X, ylabel Y, zlabel PSI 
lighting phong 
camlight left 

surface_3d

+0

非常感謝你對你的解釋,但我仍需要這些旋渦狀 – Asad

+1

@ user2487309:好,我看到問題;正如我預料的那樣,函數方程與您剛剛發佈的截圖中顯示的函數方程並不完全相同。在'PSI = -tanh(..)+ c * y'的末尾添加了一個術語,在原始圖片中省略了該術語。另外正弦函數在sin(k *(s-ct))中提到變量's'而不是'x',我認爲這是一個錯字?現在我不知道它代表什麼,但是你應該仔細檢查方程式!無論如何,當我添加缺失的術語'c * y'時,我開始看到你正在談論的「渦旋」形狀。我已更新我的帖子... – Amro

+0

你是絕對正確的。非常感謝你提供了一個非常棒的答案 – Asad