Явная схема для решения уравнения теплопроводности

Видео:Решение задачи теплопроводности (Явная разностная схема)Скачать

Решение задачи теплопроводности (Явная разностная схема)

Уравнение теплопроводности

Ранее (см. разд. 2.1.2, 2.1.3) уже были построены и исследованы разностные схемы решения смешанной задачи для одномерного уравнения теплопроводности:

Явная схема для решения уравнения теплопроводности(2.75)

Были получены две двухслойные схемы — явная (2.3) и неявная (2.4). В явной схеме значения сеточной функции Явная схема для решения уравнения теплопроводностина верхнем (j + 1)-ом слое вычисляли с помощью решения на нижнем слое [соотношение (2.13)]. Для нахождения решения на (j + 1)-м слое по неявной схеме была получена трехдиагональная система линейных алгебраических уравнений (2.22), которую решают методом прогонки.

Неявная схема безусловно устойчива, явная схема устойчива при выполнении условия Явная схема для решения уравнения теплопроводности

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

Схемы (2.3), (2.4) построены для случая, когда значения искомой функции (температуры) Uна границах х = 0, х = 1определяются заданными функциями Явная схема для решения уравнения теплопроводности. Однако граничные условия в смешанной задаче (2.75) могут быть и иными, в них может входить производная искомой функции. Например, если конец стержня х=0 теплоизолирован, то условие имеет вид

Явная схема для решения уравнения теплопроводности

В этом случае, как и при решении волнового уравнения, данное условие нужно записывать в схемах (2.3), (2.4) в разностном виде.

Перейдем теперь к построению разностных схем для уравнения теплопроводности с двумя пространственными переменными. Примем для простоты а = 1. Тогда это уравнение можно записать в виде

Явная схема для решения уравнения теплопроводности(2.76)

Пусть при t=0 начальное условие задано в виде

Явная схема для решения уравнения теплопроводности(2.77)

В отличие от волнового уравнения, требующего два начальных условия, в уравнение теплопроводности входит только первая производная по t, и необходимо задавать одно начальное условие.

Часто задачи теплопроводности или диффузии, описываемые двумерным уравнением (2.76), решаются в ограниченной области. Тогда, кроме начального условия (2.77), нужно формулировать граничные условия. В частности, если расчетная область представляет прямоугольный параллелепипед Явная схема для решения уравнения теплопроводности Явная схема для решения уравнения теплопроводности Явная схема для решения уравнения теплопроводности(рис. 2.24), то нужно задавать граничные условия на его боковых гранях. Начальное условие (2.77) задано на нижнем основании параллелепипеда.

Явная схема для решения уравнения теплопроводности

Рис. 2.24. Расчетная область

Введем простейшую сетку с ячейками в виде прямоугольных параллелепипедов, для чего проведем три семейства плоскостей: хi= ih1(i=0,1. I), Явная схема для решения уравнения теплопроводности (j=0,1. J), Явная схема для решения уравнения теплопроводности. Значение сеточной функции в узлах Явная схема для решения уравнения теплопроводностиобозначим символом Явная схема для решения уравнения теплопроводности. С помощью этих значений можно построить разностные схемы для уравнения (2.76).

Рассмотренные выше схемы для одномерного уравнения легко обобщаются на двумерный случай.

Построим явную разностную схему, шаблон которой изображен на рис. 2.25. Аппроксимируя производные отношениями конечных разностей, получаем следующее сеточное уравнение:

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Рис. 2.25. Шаблон двумерной схемы

Отсюда можно найти явное выражение для значения сеточной функции на (k + 1)-ом слое:

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности(2.78)

Условие устойчивости имеет вид

Явная схема для решения уравнения теплопроводности(2.79)

При Явная схема для решения уравнения теплопроводностиполучается особенно простой вид схемы (2.78):

Явная схема для решения уравнения теплопроводности(2.80)

Полученная схема сходится со скоростью Явная схема для решения уравнения теплопроводности

Формулы (2.78) или (2.80) представляют собой рекуррентные соотношения для последовательного вычисления сеточной функции во внутренних узлах слоев k = 1,2. К. На нулевом слое используется начальное условие (2.77), которое записывается в виде

Явная схема для решения уравнения теплопроводности(2.81)

Значения Явная схема для решения уравнения теплопроводностив граничных узлах вычисляют с помощью граничных условий.

Алгоритм решения смешанной задачи для двумерного уравнения теплопроводности изображен на рис. 2.26. Здесь решение хранится на двух слоях: нижнем (массив Явная схема для решения уравнения теплопроводности) и верхнем (массив Явная схема для решения уравнения теплопроводности). Блоки граничных условий необходимо сформировать в зависимости от конкретного вида этих условий. Результаты выводят на каждом слое, хотя можно ввести шаг выдачи (см. рис. 2.13).

Явная схема для решения уравнения теплопроводности

Рис. 2.26. Алгоритм решения двумерного уравнения теплопроводности

Построим теперь абсолютно устойчивую неявную схему для решения уравнения (2.76), аналогичную схеме (2.4) для одномерного уравнения теплопроводности. Аппроксимируя в (2.76) вторые производные по пространственным переменным на (k + 1)-ом слое, получаем следующее разностное уравнение:

Явная схема для решения уравнения теплопроводности(2.82)

Это уравнение можно записать в виде системы линейных алгебраических уравнений относительно значений сеточной функции на каждом слое:

Явная схема для решения уравнения теплопроводности(2.83)

Явная схема для решения уравнения теплопроводности

К этой системе уравнений нужно добавить граничные условия для определения значений сеточной функции в граничных узлах (т.е. при i= 0, I; j = 0, J). На нулевом слое решение находится из начального условия (2.77), представленного в виде (2.81).

Система (2.83), полученная для двумерного уравнения теплопроводности, имеет более сложный вид, чем аналогичная система (2.22) для одномерного случая, которую можно решить методом прогонки. Таким образом, распространение неявной схемы на многомерный случай приводит к значительному усложнению вычислительного алгоритма и увеличению объема вычислений.

Недостатком явной схемы (2.78) является жесткое ограничение на шаг по времени τ, вытекающее из условия (2.79). Существуют абсолютно устойчивые экономичные разностные схемы, позволяющие вести расчет со сравнительно большим значением шага по времени Явная схема для решения уравнения теплопроводностии требующие меньшего объема вычислений. Две из них будут рассмотрены в разд. 2.3.3.

Видео:Решение уравнения теплопроводности в одномерной постановке в Excel с применением неявной схемыСкачать

Решение уравнения теплопроводности в одномерной постановке в Excel с применением неявной схемы

Устойчивые явные схемы для уравнения теплопроводности Текст научной статьи по специальности « Математика»

Видео:Лекция №1.1 Явная и неявная схемы для уравнения теплопроводностиСкачать

Лекция №1.1 Явная и неявная схемы для уравнения теплопроводности

Аннотация научной статьи по математике, автор научной работы — Геренштейн А. В., Геренштейн Е. А., Машрабов Н.

Предлагается численный метод интегрирования уравнения теплопроводности , основанный на комбинации явной и неявной схемы с использованием линейных дифференциальных уравнений первого порядка (обыкновенных или с частными производными в зависимости от наличия исходном уравнении производных первого порядка по пространственным переменным).

Видео:Решение уравнения теплопроводности в одномерной постановке в ExcelСкачать

Решение уравнения теплопроводности в одномерной постановке в Excel

Похожие темы научных работ по математике , автор научной работы — Геренштейн А. В., Геренштейн Е. А., Машрабов Н.

Видео:Решение уравнения теплопроводности методом конечных разностейСкачать

Решение уравнения теплопроводности методом конечных разностей

Steady Obvious Schemes for Equation of Heat Conductivity

In given clause the numerical method of integration for equation of heat conductivity , based on a combination of the obvious and implicit scheme with use of the linear differential first-order equation (ordinary or partial differential depending on presence in the initial equation of first-order derivatives on spatial variables) is offered.

Видео:01 Теплопроводность, явныйСкачать

01 Теплопроводность, явный

Текст научной работы на тему «Устойчивые явные схемы для уравнения теплопроводности»

УСТОЙЧИВЫЕ ЯВНЫЕ СХЕМЫ ДЛЯ УРАВНЕНИЯ ТЕПЛОПРОВОДНОСТИ

A.B. Геренштейн, Е.А. Геренштейн, Н. Машрабов

Предлагается численный метод интегрирования уравнения теплопроводности, основанный на комбинации явной и неявной схемы с использованием линейных дифференциальных уравнений первого порядка (обыкновенных или с частными производными — в зависимости от наличия в исходном уравнении производных первого порядка по пространственным переменным).

Ключевые слова: уравнение теплопроводности, устойчивый, явная схема, дифференциальное уравнение первого порядка.

Рассмотрим одномерное уравнение теплопроводности

ди _ д2и дЬ дх2′

Обозначим через г шаг по переменной через Н — шаг по переменной х. Через иг-, щ, щ+ обозначим значения функции и при і = ¿о (на оси х) в точках жг_і, Хі, Хі+і, через Щ-і, Щ, щ+ обозначим значения функции и при і = ¿о + т в тех же точках (см. рисунок). Зная значения щ (г = 1, 2, . п) нам надо вычислить значения щ (г = 1, 2, . п).

Коэффициенты уравнения (1) и обозначения приведены к безразмерному виду.

Явная схема выглядит так [1, 2]:

і, иг, щ+ уже вычислены). Неявная схема выглядит так [1, 2]:

Это приводит к решению системы линейных алгебраических уравнений с так называемой трехдиагональной матрицей. Для одномерного уравнения эта схема предпочтительна, ибо явная схема неустойчива при г > Н2/2, в то время как неявная схема устойчива при всех значениях т.

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

Устойчивые явные схемы для уравнения теплопроводности

и перейдем к пределу при т -* 0. Получим обыкновенное дифференциальное уравнение

d&i 2 _ Щ—і + ttj-j-x /г

где д = ехр(—2т/к2) 1, то схема неустойчива.

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

ди _ 1 д ( ди 1 д2и . .

Обозначим к — шаг по переменной г, т — шаг по переменной ¿, а — шаг по переменной ір. Явная схема выглядит так

2?”з + к 2гі к т / щгк—1 -|- щ,к— 2и^ т

Щк — иш + ^ Щ+1,к + 2Гі иг-1,к 2Щк j ^ r2 r2 J а2’ (8)

Здесь г — номер узла сетки по г, к — номер узла сетки по

Щ,, ^иле. “J + (I -с >‘г) (12)

т.е. опять возникает устойчивая явная схема.

Однако во многих случаях приходится рассматривать вращающуюся систему координат с постоянной угловой скоростью OJ [3].

Тогда уравнение примет вид

ди ди _ 1 д ( ди 1 д2и . .

dt Ш дір г дг дг) г2 дір2

Вестник ЮУрГУ, №15(115), 2008

A.B. Геренштейн, E.A. Геренштейн, H. Машрабов

В этом случае для устойчивости схемы приходим к линейному уравнению в частных производных первого порядка

д _ д _ _ . . uik w «Ь ßuik — Jik• (14)

Здесь предполагается, что для каждого значения г правая часть является функцией (разумеется, известной) аргумента + шт) означают узлы (г, к) сетки, при которых щк = u^ip + шт), т.е. значение (р + шт попадает в узел (*, к).

Аналогичный смысл имеет выражение f(

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

Видео:Решение нестационарного уравнения теплопроводности в двухмерной постановке в ExcelСкачать

Решение нестационарного уравнения теплопроводности в двухмерной постановке в Excel

Уравнение теплопроводности в tensorflow

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

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

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

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

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

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

Видео:Метод Фурье для неоднородного уравнения теплопроводностиСкачать

Метод Фурье для неоднородного уравнения теплопроводности

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

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Разностная схема:

Чтобы проще было расписывать, введем операторы:

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная разностная схема:

Явная схема для решения уравнения теплопроводности

В случае явной разностной схемы для вычисления используются значения функции в предыдущий момент времени и не требуется решать уравнение на значения Явная схема для решения уравнения теплопроводности. Однако такая схема менее точная и требует значительно меньший шаг по времени.

Неявная разностная схема:

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Перенесем в левую сторону все связанное с Явная схема для решения уравнения теплопроводности, а в правую Явная схема для решения уравнения теплопроводностии домножим на Явная схема для решения уравнения теплопроводности:

Явная схема для решения уравнения теплопроводности

По сути мы получили операторное уравнение над сеткой:

Явная схема для решения уравнения теплопроводности

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

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Заменив Явная схема для решения уравнения теплопроводностина нашу оценку Явная схема для решения уравнения теплопроводности, запишем функционал ошибки:

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

где Явная схема для решения уравнения теплопроводности— ошибка в узлах сетки.

Будем итерационно минимизировать функционал ошибки, используя градиент.

В итоге задача свелась к перемножению тензоров и градиентному спуску, а это именно то, для чего tensorflow и был задуман.

Видео:Самый короткий тест на интеллект Задача Массачусетского профессораСкачать

Самый короткий тест на интеллект Задача Массачусетского профессора

Реализация на tensorflow

Кратко о tensorflow

В tensorflow сначала строится граф вычислений. Ресурсы под граф выделяются внутри tf.Session. Узлы графа — это операции над данными. Ячейками для входных данных в граф служат tf.placeholder. Чтобы выполнить граф, надо у объекта сессии запустить метод run, передав в него интересующую операцию и входные данные для плейсхолдеров. Метод run вернет результат выполнения операции, а также может изменить значения внутри tf.Variable в рамках сессии.

tensorflow сам умеет строить графы операций, реализующие backpropagation градиента, при условии, что в оригинальном графе присутствуют только операции, для которых реализован градиент (пока не у всех).

Сначала код инициализации. Здесь производим все предварительные операции и считаем все, что можно посчитать заранее.

По-хорошему надо было считать значения функции на краях заданными и оптимизировать значения функции только во внутренней области, но с этим возникли проблемы. Способа сделать оптимизируемым только часть тензора не нашлось, и у операции присвоения значения срезу тензора не написан градиент (на момент написания поста). Можно было бы попробовать хитро повозиться на краях или написать свой оптимизатор. Но и просто добавление разности на краях значений функции и краевых условий в функционал ошибки хорошо работает.

Стоит отметить, что метод с адаптивным моментом показал себя наилучшим образом, пусть функционал ошибки и квадратичный.

Вычисление функции: в каждый момент времени делаем несколько оптимизационных итераций, пока не превысим maxiter или ошибка не станет меньше eps, сохраняем и переходим к следующему моменту.

Запуск:

Видео:Основы теплотехники. Лекция 1. Основные понятия и определения (предварительная версия)Скачать

Основы теплотехники. Лекция 1. Основные понятия и определения (предварительная версия)

Результаты

Явная схема для решения уравнения теплопроводности
Явная схема для решения уравнения теплопроводности

Условие как и оригинальное, но без Явная схема для решения уравнения теплопроводностив уравнении:

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Что легко правится в коде:

Разницы почти нет, потому что производные имеют большие порядки, чем сама функция.

Явная схема для решения уравнения теплопроводности
Явная схема для решения уравнения теплопроводности

Условие с одним нагревающимся краем:

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности
Явная схема для решения уравнения теплопроводности

Условие с остыванием изначально нагретой области:

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности
Явная схема для решения уравнения теплопроводности

Условие с включением нагрева в области:

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности

Явная схема для решения уравнения теплопроводности
Явная схема для решения уравнения теплопроводности

Видео:Уравнение в частных производных Уравнение теплопроводностиСкачать

Уравнение в частных производных  Уравнение теплопроводности

Рисование гифок

Функция рисования 3D-гифки:

В основной класс добавляем метод, возвращающий U в виде pandas.DataFrame

Функция рисования 2D-гифки:

Стоит отметить, что оригинальное условие без использования GPU считалось 4м 26с, а с использованием GPU 2м 11с. При больших значениях точек разрыв растет. Однако не все операции в полученном графе GPU-совместимы.

  • Intel Core i7 6700HQ 2600 МГц,
  • NVIDIA GeForce GTX 960M.

Посмотреть, какие операции на чем выполняются, можно с помощью следующего кода:

Это был интересный опыт. Tensorflow неплохо показал себя для этой задачи. Может быть даже такой подход получит какое-то применение — всяко приятнее писать код на питоне, чем на C/C++, а с развитием tensorflow станет еще проще.

🎬 Видео

Численные методы математической физики - Решение смешанной задачи для уравнения теплопроводностиСкачать

Численные методы математической физики - Решение смешанной задачи для уравнения теплопроводности

Решение задачи Коши для уравнения теплопроводности (Часть 1)Скачать

Решение задачи Коши для уравнения теплопроводности (Часть 1)

Шокирующая правда: почему ученица не поступила из-за сбоя госуслуг | ЕГЭLANDСкачать

Шокирующая правда: почему ученица не поступила из-за сбоя госуслуг | ЕГЭLAND

Принцип максимума для уравнения теплопроводности на отрезкеСкачать

Принцип максимума для уравнения теплопроводности на отрезке

Уравнение теплопроводности на полупрямой (решение задачи)Скачать

Уравнение теплопроводности на полупрямой (решение задачи)

8.1 Решение уравнения теплопроводности на отрезкеСкачать

8.1 Решение уравнения теплопроводности на отрезке

Математика в неожиданных местах: Разностная схема для уравнения теплопроводностиСкачать

Математика в неожиданных местах: Разностная схема для уравнения теплопроводности

Решение первой краевой задачи для неоднородного уравнения теплопроводности.Скачать

Решение первой краевой задачи для неоднородного уравнения теплопроводности.

Решение неоднородного уравнения теплопроводностиСкачать

Решение неоднородного уравнения теплопроводности
Поделиться или сохранить к себе: