Python: Как реализовать неявное уравнение, содержащее 2D-массивы с разреженными матрицами scipy? - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь реализовать следующее неявное уравнение в python, чтобы решить для u (n + 1):

Я упрощаю, комбинируя (delta t / delta x ^ 2) в постоянную альфа, и используя термины «u» для u (n + 1) и «u0» для u (n).

u [i, j] - u0 [i , j] = альфа * (u [i + 1, j] + u [i-1, j] + u [i, j + 1] + u [i, j-1] - 4 * u [i, j ]) + h [i, j]

Затем уравнение адаптируется к форме Ax = b.

-alpha * u [i + 1, j] + (1 + 4 * альфа) u [i, j] - альфа * u [i-1, j] - альфа * u [i, j + 1] - альфа * u [i, j-1] = u0 [i, j] - h [i, j]

На этом этапе я застрял, поскольку раньше я изучал / решал неявные одномерные матрицы, где есть только u [i-1], u [i] и u [i + 1] который заполняет три диагонали для вычисления с использованием функции scipys spdiags.

Как мне сделать это с двумя измерениями вместо этого?

РЕДАКТИРОВАТЬ: для тех, кому это интересно в будущем, я закончил преобразование массива в u [i * j] и работаем с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...