Интеграция с использованием метода масштабирования и возведения в квадрат вместо метода Эйлера - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь реализовать в Python метод масштабирования и возведения в квадрат для интеграции, как описано в Moler and Van Loan, 2003;Arsigny et al., 2006b, a.Подход в основном гласит, что если число временных шагов является степенью двойки, то решение может быть определено с помощью метода масштабирования и возведения в квадрат.Иллюстрацию метода можно увидеть на странице 3 прилагаемого документа https://ufile.io/8xdx7.

PS: Это не домашняя работа или что-то еще.Я просто пытаюсь оптимизировать мой и без того функциональный код, который использует метод Эйлера, но работает медленно.

shape = image.shape
dx = np.random.normal(0, 10, shape)
dy = np.random.normal(0, 1, shape)

dx = gaussian_filter(dx, 10)
dy = gaussian_filter(dy, 10)
# dx = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha
# dy = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha
han_window_1 = np.hanning(shape[0])
han_window_2 = np.hanning(shape[1])

for i in range(0, shape[1]):
dy[:,i] = dy[:,i] * han_window_1
for i in range(0, shape[0]):
dx[i,:] = dx[i,:] * han_window_2

# here I want to integrate dx and dy using the aforementioned method instead of Euler's method.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...