Как изменить массивы формы (60,58) (60,59) на равные - PullRequest
0 голосов
/ 03 мая 2019

Я пишу программу для моего друга, который в настоящее время изучает авиационную технику. Я пытаюсь проверить, работает ли математика, которую я реализовал. Для тех, кто знает, я пытаюсь вычислить расхождение (я думаю, что я не инженер, и я не собираюсь притворяться, что я).

Он отправил мне ссылку переполнения стека, чтобы узнать, как он считает, что это нужно сделать. (Нить можно найти здесь . Его версия не работает для меня, поскольку выдает ошибку Numpy, как показано ниже:

numpy.core._internal.AxisError: axis 1 is out of bounds for array of 
dimension 1

Теперь я попробовал другой метод, который дает мне другую ошибку, как показано ниже:

ValueError: operands could not be broadcast together with shapes (60,58) 
(60,59)

Этот метод выдает мне ошибку выше, и я не совсем уверен, как ее исправить. Я поместил код, который дает мне вышеуказанную ошибку.

velocity = np.diff(c_flow)/np.diff(zex)
ucom = velocity.real
vcom = -(velocity.imag)
deltau = np.divide((np.diff(ucom)),(np.diff(x)))
deltav = np.divide((np.diff(vcom)),np.diff(y))
print(deltau + deltav)

Примечание: C_flow определено ранее в программе и является комплексным потенциалом. zex также определен ранее как ранняя форма комплексной переменной. x и y - две координатные матрицы из координатных векторов.

Ожидаемые результаты от оператора print должны быть равны нулю или значению, которое очень близко к нулю. (Я не совсем уверен, какое значение должно быть, но, как я уже сказал, я не инженер)

Заранее спасибо

EDIT:

После следования совету BenT я использовал np.gradient и np.sum, но это добавляло ось в неправильном направлении, поэтому, чтобы противодействовать этому, я разделил две функции, как показано ниже:

velocity = np.diff(c_flow)/np.diff(z)
grad = (np.gradient(velocity))
divergence = np.sum(grad, axis=0)
print(np.average(divergence))
print(np.average(velocity))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...