Вопрос по calculus, python, vector, matplotlib – Python Matplotlib Quiver неправильной ориентации

0

Я создаю блокнот ipython по векторному исчислению. (Основы, по крайней мере). В этом блоке кода я пытаюсь создать псевдоцветный график функции x ^ 2 + XY + Y ^ 2 и наложить на него векторное поле, заданное его градиентом U = 2X + Y и V = 2Y + X

Однако колчан кажется повернутым на 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()

мой сюжет

Разве это не ваше изображение, которое вращается? Ваш градиент (GradX, GradY) должен быть наибольшим, когда X и Y являются самыми большими (оба в абсолютном смысле) и иметь одинаковый знак, как это имеет место в вашем текущем изображении, но не будет, если вы повернули график колчана. tom10

Ваш Ответ

1   ответ
3

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

То есть указатьorigin='lower' кластьy=-2 в левом нижнем углу. Как я уже упоминал в комментарии, я думаю, что изображение поворачивается (на самом деле переворачивается - хотя на этом графике такая же разница), а не колчан.

Анализ: В ваших уравнениях всеZ, GradX, а такжеGradY должно быть наибольшим по величине в (+, +) и (-, -) углах участков, где знаки «сотрудничают». Как вы писали, только свойство колчана обладает этим свойством, поэтому изображение поворачивается. Кроме того, эти проблемы всегда возникают с изображением (из-за конфликта между компьютерным соглашением изображения индексируются сверху слева и математического соглашения о том, что наименьшее значение Y изображено наименьшим на оси).

Спасибо! Я собирался отредактировать вопрос, как только понял, что это было действительно неправильное изображение. Думаю, мне есть чему поучиться ... Lucas L

Похожие вопросы