2014-02-08 54 views
0

我在矢量演算中創建一個ipython筆記本。 (至少基礎知識)。 在這個代碼塊im試圖有一個函數x^2 + XY + Y^2 的僞彩色繪圖,並繪製它的矢量場由其梯度 U = 2X + Y和V = 2Y + XPython Matplotlib顫抖錯誤的方向

然而顫動情節似乎被旋轉90度,因此在正確的方向

x = arange(-2.0, 2.0,00.1) 
y = arange(-2.0, 2.0,00.1) 
X,Y = meshgrid(x, y) 
Z = X**2 + X*Y + Y**2 
GradX = (2*X+Y) 
GradY = (2*Y+X) 
figure(figsize=(10, 10)) 
im = imshow(Z, cmap=cm.RdYlBu, interpolation='none', extent=[-2,2,-2,2]) 
quiver(X, Y, GradX, GradY, angles='xy', scale_units='xy') 
show() 

my plot

enter image description here

+1

是不是你的圖像旋轉?當X和Y最大時(在abs意義上),您的漸變(GradX,GradY)應該最大,並且具有相同的符號,這是您當前圖像中的情況,但如果您旋轉顫抖圖則不會。 – tom10

回答

3

沒有指向我懷疑你需要:

im = imshow(Z, cmap=cm.RdYlBu, interpolation='none', extent=[-2,2,-2,2], origin='lower') 

也就是說,指定origin='lower'y=-2在左下角。正如我在評論中提到的那樣,我認爲這是旋轉的圖像(實際上是翻轉的 - 儘管它在這個圖中的差異是相同的),而不是顫動圖。

分析:在你的公式,所有的ZGradXGradY應該是最大的幅度在(+,+)和( - , - )本次地塊,這裏的招牌「合作」的角落。正如你所發佈的,只有顫抖陰謀有這個屬性,所以它是旋轉的圖像。此外,圖像總是存在這些問題(由於計算機慣例(圖像從左上角索引)與數學慣例(Y軸的最小值在軸上繪製得最低)之間的衝突)。

enter image description here

+0

非常感謝!一旦我意識到這確實是錯誤的圖像,我正要編輯這個問題。猜猜我有很多東西要學習... –