Вот решение в 1D для простоты:
Начальная установка имеет концентрацию 9 в начале координат () и 0 во всех других положительных и отрицательных координатах.
исходное состояние:
0 0 0 0 (9) 0 0 0 0
Алгоритм поиска следующих значений итерации состоит в том, чтобы начинать с источника и средних текущих концентраций с соседними соседями. Исходное значение является граничным случаем, и среднее значение выполняется с учетом исходного значения и двух его соседей одновременно, то есть среднего значения из 3 значений. Все остальные значения эффективно усредняются среди 2 значений.
после итерации 1:
0 0 0 3 (3) 3 0 0 0
после итерации 2:
0 0 1,5 1,5 (3) 1,5 1,5 0 0
после итерации 3:
0,75 .75 2 (2) 2 .75 .75 0
после итерации 4:
.375 .375 1,375 1,375 (2) 1,375 1,375 .375 .375
Вы делаете эти итерации в цикле. Вывод состояния через каждые n итераций. Вы можете ввести постоянную времени, чтобы контролировать, сколько итераций соответствует одной секунде времени на часах. Это также зависит от того, какие единицы длины представляют целочисленные координаты. Для данной H / W системы вы можете настроить это значение опытным путем. Вы также можете ввести значение допуска установившегося состояния для управления, когда программа говорит, что «все соседние значения находятся в пределах этого допуска» или «значение не изменилось между итерациями более чем на это отклонение», и поэтому алгоритм достиг решения для устойчивого состояния. *