[Из песочницы] Уравнение теплопроводности в tensorflow

Привет, Хабр! Некоторое время назад увлекся глубоким обучением и стал потихоньку изучать tensorflow. Пока копался в tensorflow вспомнил про свою курсовую по параллельному программированию, которую делал в том году на 4 курсе университета. Задание там формулировалось так:


Линейная начально-краевая задача для двумерного уравнения теплопроводности:

frac{partial u}{partial t} = sum limits_{alpha=1}^{2} frac{partial}{partial x_alpha} left (k_alpha frac{partial u}{partial x_alpha} right ) -u, quad x_alpha in [0,1] quad (alpha=1,2),  t>0;

k_alpha =
begin{cases}
    50, (x_1, x_2) in Delta ABC
    1, (x_1, x_2) notin Delta ABC
end{cases}

(alpha = 1,2),  A(0.2,0.5),  B(0.7,0.2),  C(0.5,0.8);

u(x_1, x_2, 0) = 0, u(0,x_2,t) = 1 - e^{-omega t},  u(1, x_2, t) = 0,

u(x_1,0,t) = 1 - e^{-omega t}, u(0, x_2, t) = 0,  omega = 20.


Хотя правильнее было бы назвать это уравнением диффузии.


Задачу тогда требовалось решить методом конечных разностей по неявной схеме, используя MPI для распараллеливания и метод сопряженных градиентов.


Я не специалист в численных методах, пока не специалист в tensorflow, но опыт у меня уже появился. И я загорелся желанием попробовать вычислять урматы на фреймворке для глубокого обучения. Метод сопряженных градиентов реализовывать второй раз уже не интересно, зато интересно посмотреть как с вычислением справится tensorflow и какие сложности при этом возникнут. Этот пост про то, что из этого вышло.

Численный алгоритм

Читать дальше →
[Из песочницы] Уравнение теплопроводности в tensorflow
Source: habrahabr

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *