Конечно-разностный метод решения для уравнений параболического типа
Введение
К дифференциальным уравнениям с частными производными приходим при решении самых разнообразных задач. Например, при помощи дифференциальных уравнений с частными производными можно решать задачи теплопроводности, диффузии, многих физических и химических процессов.
Как правило, найти точное решение этих уравнений не удается, поэтому наиболее широкое применение получили приближенные методы их решения. В данной работе ограничимся рассмотрением дифференциальных уравнений с частными производными второго порядка, а точнее дифференциальными уравнениями с частными производными второго порядка параболического типа, когда эти уравнения являются линейными, а искомая функция зависит от двух переменных
Для решения дифференциальных уравнений параболического типа существует несколько методов их численного решения на ЭВМ, однако особое положение занимает метод сеток, так как он обеспечивает наилучшие соотношения скорости, точности полученного решения и простоты реализации вычислительного алгоритма. Метод сеток еще называют методом конечных разностей.
1 Теоретическая часть
1.1 Постановка задач для уравнений параболического типа
Классическим примером уравнения параболического типа является уравнение теплопроводности (диффузии). В одномерном по пространству случае однородное (без источников энергии) уравнение теплопроводности имеет вид
(1)
Если на границах и заданы значения искомой функции в виде
, , (2)
, , (3)
т.е. граничные условия первого рода, и , кроме того заданы начальные условия
, , (4)
то задачу (1)-(4) называют первой начально-краевой задачей для уравнения теплопроводности (1).
В терминах теории теплообмена — распределение температуры в пространственно-временной области
a2 — коэффициент температуропроводности, а (2), (3) с помощью функций , задают температуру на границах и .
Если на границах и заданы значения производных искомой функции по пространственной переменной:
, , (5)
, , (6)
т.е. граничные условия второго рода, то задачу (1), (5), (6), (4) называют второй начально-краевой задачей для уравнения теплопроводности (1). В терминах теории теплообмена на границах в этом случае заданы тепловые потоки.
Если на границах заданы линейные комбинации искомой функции и ее производной по пространственной переменной:
, , (7)
, , (8)
т.е. граничные условия третьего рода, то задачу (1), (7), (8), (4) называют третьей начально-краевой задачей для уравнения теплопроводности (1). В терминах теплообмена граничные условия (7), (8) задают теплообмен между газообразной или жидкой средой с известными температурами на границе и на границе и границами расчетной области с неизвестными температурами , . Коэффициенты α, β – известные коэффициенты теплообмена между газообразной или жидкой средой и соответствующей границей.
Для пространственных задач теплопроводности в области первая начально-краевая задача имеет вид
(9)
Аналогично ставится вторая и третья начально-краевые задачи для пространственного уравнения (9). На практике часто ставятся начально-краевые задачи теплопроводности со смешанными краевыми условиями, когда на границах задаются граничные условия различных родов.
1.2 Основные определения и конечно-разностные схемы
Основные определения, связанные с методом конечных разностей, рассмотрим на примере конечно-разностного решения первой начально-краевой задачи для уравнения теплопроводности (1)-(4).
Согласно методу сеток в плоской области D строится сеточная область D>h>, состоящая из одинаковых ячеек. При этом область D>h> должна как можно лучше приближать область D. Сеточная область (то есть сетка) D>h> состоит из изолированных точек, которые называются узлами сетки. Число узлов будет характеризоваться основными размерами сетки h: чем меньше h, тем больше узлов содержит сетка. Узел сетки называется внутренним, если он принадлежит области D, а все соседние узлы принадлежат сетке D>h>. В противном случае он называется граничным. Совокупность граничных узлов образует границу сеточной области Г>h>.
Сетка может состоять из клеток разной конфигурации: квадратных, прямоугольных, треугольных и других. После построения сетки исходное дифференциальное уравнение заменяется разностным уравнением во всех внутренних узлах сетки. Затем на основании граничных условий устанавливаются значения искомого решения в граничных узлах. Присоединяя граничные условия сеточной задачи к разностным уравнениям, записанных для внутренних узлов, получаем систему уравнений, из которой определяем значения искомого решения во всех узлах сетки.
Нанесем на пространственно-временную область , конечно разностную сетку ω>h,τ>:
(10)
с пространственным шагом h=l/N и шагом по времени τ=T/K.
Рисунок 1 – Конечно-разностная сетка
Введем два временных слоя: нижний ,на котором распределение искомой функции u(x>j>,tk), , известно (при к = 0 распределение определяется начальным условием (4) u(x>j>,tk)=ψ(x>j>)), и верхний временной слой tk+1=(k+1) τ, на котором распределение искомой функции u(x>j>,tk+1), .
Сеточной функцией задачи (1)-(4) называют однозначное отображение целых аргументов j,k в значения функции .
На введенной сетке вводят сеточные функции , первая из которых известна, вторая подлежит определению. Для определения в задаче (1)-(4) заменяют (аппроксимируют) дифференциальные операторы отношением конечных разностей (более подробно это рассматривают в разделах численных методов «Численное дифференцирование»), получают
, (11)
, (12)
Подставляя (11), (12) в задачу (1)-(4), получим явную конечно-разностную схему для этой задачи в форме
(13)
В каждом уравнении этой задачи все значения сеточной функции известны, за исключением одного, , которое может быть определено явно из соотношений (13). В соотношения (13) краевые условия входят при значениях j=1 и j=N-l, a начальное условие – при k = 0.
Если в (12) дифференциальный оператор по пространственной переменной аппроксимировать отношением конечных разностей на верхнем временном слое:
, (14)
то после подстановки (11), (14) в задачу (1)-(4) получим неявную конечно-разностную схему для этой задачи:
(15)
Теперь сеточную функцию на верхнем временном слое можно получить из решения (15) с трехдиагональной матрицей. Эта СЛАУ в форме, пригодной для использования метода прогонки, имеет вид
где
;
;
, ;
;
;
;
.
Шаблоном конечно-разностной схемы называют ее геометрическую интерпретацию на конечно-разностной сетке. На рисунке приведены шаблоны для явной и неявной конечно-разностных схем при аппроксимации задачи.
Рисунок 2 - Шаблон явной конечно-разностной схемы для уравнения теплопроводности
Рисунок 3 - Шаблон неявной конечно-разностной схемы для уравнения теплопроводности
В случае явных схем значения функции в узле очередного слоя можно найти, зная значения в узлах предыдущих слоев. В случае неявных схем для нахождения значений решения в узлах очередного слоя приходится решать систему уравнений. Для проведения вычислений самой простой схемой оказывается первая: достаточно на основании начального условия найти значения функции в узлах слоя , чтобы в дальнейшем последовательно определять значения решения в узлах слоев и т.д. В случае второй схемы, которая является неявной, обязательно приходится решать систему уравнений для нахождения решения сеточной задачи. В любом случае согласно методу сеток будем иметь столько уравнений, сколько имеется неизвестных (значения искомой функции в узлах). Число неизвестных равно числу всех узлов сетки. Решая систему уравнений, получаем решение поставленной задачи.
Разрешимость этой системы для явных схем вопросов не вызывает, так как все действия выполняются в явно определенной последовательности. В случае неявных схем разрешимость системы следует исследовать в каждом конкретном случае. Важным вопросом является вопрос о том, на сколько найденные решения хорошо (адекватно) отражают точные решения, и можно ли неограниченно сгущая сетку (уменьшая шаг по осям) получить приближенные решения, сколь угодно близкие к точным решениям? Это вопрос о сходимости метода сеток.
На практике следует применять сходящиеся разностные схемы, причем только те из них, которые являются устойчивыми, то есть при использовании которых небольшие ошибки в начальных или промежуточных результатах не приводят к большим отклонениям от точного решения. Всегда следует использовать устойчивые разностные схемы, проводя соответствующие исследования на устойчивость. Явные схемы просты для организации вычислительного процесса, но имеют один весьма весомый недостаток: для их устойчивости приходится накладывать сильные ограничения на сетку. Неявные схемы свободны от этого недостатка, но есть другая трудность – надо решать системы уравнений большой размерности, что на практике при нахождении решения сложных уравнений в протяженной области с высокой степенью точности может потребовать больших объемов памяти ЭВМ и времени на ожидание конечного результата. К счастью, прогресс не стоит на месте и уже сейчас мощности современных ЭВМ вполне достаточно для решения поставленных перед ними задач.
Вопрос устойчивости будет рассмотрен далее.
1.3 Аппроксимация
Из определения порядка аппроксимации ясно, что чем выше порядок аппроксимации, тем лучше конечно-разностная схема приближается к дифференциальной задаче. Это не означает, что решение по разностной схеме может быть так же близко к решению дифференциальной задачи, так как разностная схема может быть условно устойчивой или абсолютно неустойчивой вовсе.
Для нахождения порядка аппроксимации используется аппарат разложения в ряды Тейлора точных (неизвестных, но дифференцируемых) решений дифференциальной задачи в узлах сетки (подчеркнем: значения сеточной функции u>h> дискретны, следовательно, не дифференцируемы и поэтому не разлагаются в ряды Тейлора).
1.4 Устойчивость. Исследование устойчивости методом гармонического анализа
конечно-разностная схема устойчива, если для малых возмущений входных данных (начально-краевых условий и правых частей) конечно-разносная схема обеспечивает малые возмущения сеточной функции u>h> т.е. решение с помощью конечно-разностной схемы находится под контролем входных данных.
Если во входные данные f>n> входят только начальные условия или только краевые условия, или только правые части, то говорят об устойчивости соответственно по начальным условиям, по краевым условиям или по правым частям.
Из математической физики известно, что решение начально-краевых задач представляется в виде следующего ряда:
, (16)
где λ>n> – собственные значения
– собственные значения функции, получаемые из решения соответствующей задачи Штурма-Лиувиля, т.е. решение может быть представлено в виде суперпозиции отдельных гармоник , каждая из которых есть произведение функции времени и функции пространственной переменной, причем последняя по модулю ограничена сверху единицей при любых значениях переменной x.
В то же время функция времени , называемая амплитудной частью гармоники, никак не ограничена, и, по всей вероятности, именно амплитудная часть гармоник является источником неконтролируемого входными данными роста функции и, следовательно, источником неустойчивости.
Таким образом, если конечно-разностная схема устойчива, то отношение амплитудной части гармоники на верхнем временном слое к амплитудной части на нижнем временном слое по модулю должно быть меньше единицы.
Если разложить значение сеточной функции в ряд Фурье по собственным функциям:
(17)
где амплитудная часть может быть представлена в виде произведения
(18)
где – размерный и постоянный сомножитель амплитудной части,
k – показатель степени (соответствующий номеру временного слоя) сомножителя, зависящего от времени.
Тогда подставив (17) в конечно-разностную схему, можно по модулю оценить отношение амплитудных частей на соседних временных слоях.
Однако поскольку операция суммирования линейна и собственные функции ортогональны для различных индексов суммирования, то в конечно-разностную схему вместо сеточных значений достаточно подставить одну гармонику разложения (17) (при этом у амплитудной части убрать индекс n), т.е.
(19)
Таким образом, если конечно-разностная схема устойчива по начальным данным, то
, (20)
т. е. условие (20) является необходимым условием устойчивости.
1.5 Схема Кранка-Николсона
параболическое дифференциальное уравнение конечная разность
Явная конечно разностная схема, записанная в форме
(21)
обладает тем достоинством, что решение на верхнем временном слое t>k+l> получается сразу (без решения СЛАУ) по значениям сеточной функции на нижнем временном слое tk, где решение известно (при k = 0 значения сеточной функции формируются из начального условия). Но эта же схема обладает существенным недостатком, поскольку она является условно устойчивой. С другой стороны, неявная конечно-разностная схема, записанная форме
(22)
приводит к необходимости решать СЛАУ, но зато эта схема абсолютно устойчива.
Проанализируем схемы (21) и (22). Пусть точное решение, которое неизвестно, возрастает по времени, т.е. . Тогда, в соответствии с явной схемой (21), разностное решение будет заниженным по сравнению с точным, так как определяется по меньшим значениям сеточной функции на предыдущем временном слое, поскольку решение является возрастающим по времени.
Для неявной схемы (22) на возрастающем решении, наоборот, решение завышено по сравнению с точным, поскольку оно определяется по значениям сеточной функции на верхнем временном слое.
На убывающем решении картина изменяется противоположным образом: явная конечно-разностная схема завышает решения, а неявная — занижает (Рисунок 4).
На основе этого анализа возникла идея о построении более точной неявно-явной конечно-разностной схемы с весами при пространственных конечно-разностных операторах, причем при измельчении шагов тик точное (неизвестное) решение может быть взято в «вилку» сколь угодно узкую, так как если явная и неявная схемы аппроксимируют дифференциальную задачу и эти схемы устойчивы, то при стремлении сеточных характеристик τ и h к нулю решения по явной и неявной схемам стремятся к точному решению с разных сторон.
Рисунок 4 – Двусторонний метод аппроксимации
Проведенный анализ дал блестящий пример так называемых двусторонних методов, исследованных В. К. Саульевым
Рассмотрим неявно-явную схему с весами для простейшего уравнения теплопроводности:
(23)
где θ – вес неявной части конечно-разностной схемы,
θ-1 – вес для явной части
Причем . При θ=1 имеем полностью неявную схему, при θ=0 – полностью явную схему, а при θ=1/2 – схему Кранка-Николсона.
В соответствии с гармоническим анализом для схемы (23) получаем неравенство
,
откуда
(24)
причем правое неравенство выполнено всегда.
Левое неравенство имеет место для любых значений σ, если . Если же вес θ лежит в пределах , то между σ и θ из левого неравенства устанавливается связь
(25)
являющаяся условием устойчивости неявно-явной схемы с весами (23), когда вес находится в пределах .
Таким образом, неявно-явная схема с весами абсолютно устойчива при и условно устойчива с условием (25) при .
Рассмотрим порядок аппроксимации неявно-явной схемы с весами, для чего разложим в ряд Тейлора в окрестности узла (xj,t>k>) на точном решении значения сеточных функций по переменной t, , по переменной х и полученные разложения подставим в (23):
В этом выражении дифференциальный оператор от квадратной скобки в соответствии с дифференциальным уравнением равен дифференциальному оператору , в соответствии с чем вышеприведенное равенство приобретает вид
После упрощения получаем
,
откуда видно, что для схемы Кранка-Николсона (θ = 1/2) порядок аппроксимации схемы (23) составляет , т.е. на один порядок по времени выше, чем для обычных явных или неявных схем. Таким образом, схема Кранка-Николсона при θ = 1/2 абсолютно устойчива и имеет второй порядок аппроксимации по времени и пространственной переменной х.
Используем в уравнение (23) подстановку r=a2k/h2. Но в то же время его нужно решить для трех "еще не вычисленных" значений , , и . Это возможно, если все значения перенести в левую часть уравнения. Затем упорядочим члены уравнения (23) и в результате получим неявную разностную формулу
(26)
для i=2,3,…,n-1. Члены в правой части формулы (26) известны. Таким образом, формула (26) имеет вид линейной трехдиагональной системы АХ=В. Шесть точек, используемых в формуле Кранка-Николсона (26), вместе с промежуточной точкой решетки, на которой основаны численные приближения, показаны на рисунке 5.
Рисунок 5 – Шаблон (схема) метода Кранка-Николсона
Иногда в формуле (26) используется значение r=1. В этом случае приращение по оси t равно , формула (26) упрощается и принимает вид
, (27)
для i=2,3,…,n-1. Граничные условия используются в первом и последнем уравнениях (т. е. в и соответственно).
Уравнения (27) особенно привлекательны при записи в форме трехдиагональной матрицы АХ = В.
Если метод Кранка-Николсона реализуется на компьютере, то линейную систему АХ = В можно решить либо прямым методом, либо итерационным.
2. Практическая часть
2.1 Постановка задачи
Используем метод Кранка-Николсона, чтобы решить уравнение
,
где xϵ(0;1),
tϵ(0;0.1),
с начальным условием
,
где t=0,
xϵ(0;1),
и граничными условиями
u(0,t) = g>1>(t) ≡ 0,
u(1,t) = g>2>(t) ≡ 0.
2.2 Решение в ППП MatLab
Решение будем искать в ППП MatLab 7. Создадим четыре выполняемых m-фала: crnich.m – файл-функция с реализацией метода Кранка-Николсона; trisys.m – файл-функция метода прогонки; f.m – файл-функция задающая начальное условие задачи; fе.m – файл-функция задающая функцию определяющую точное решение задачи(найдена аналитическим путем). Листинги программ представлены в приложении А.
Для простоты возьмем шаг Δх = h = 0,1 и Δt = к = 0,01. Таким образом, соотношение r =1. Пусть решетка имеет n=11 столбцов в ширину и m=11 рядов в высоту.
2.3 Анализ результатов
Решения для данных параметров отразим в таблице 1. Трехмерное изображение данных из таблицы покажем на рисунке 5.
Таблица 1 – Значения u(х>i>, t>i>), полученные методом Кранка-Николсона
x>i> |
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
0.6 |
0.7 |
0.8 |
0.9 |
1 |
t>i> |
|||||||||||
0 |
0 |
1.1180 |
1.5388 |
1.1180 |
0.3633 |
0 |
0.3633 |
1.1180 |
1.5388 |
1.1180 |
0 |
0.01 |
0 |
0.6169 |
0.9288 |
0.8621 |
0.6177 |
0.4905 |
0.6177 |
0.8621 |
0.9288 |
0.6169 |
0 |
0.02 |
0 |
0.3942 |
0.6480 |
0.7186 |
0.6800 |
0.6488 |
0.6800 |
0.7186 |
0.6480 |
0.3942 |
0 |
0.03 |
0 |
0.2887 |
0.5067 |
0.6253 |
0.6665 |
0.6733 |
0.6665 |
0.6253 |
0.5067 |
0.2887 |
0 |
0.04 |
0 |
0.2331 |
0.4258 |
0.5560 |
0.6251 |
0.6458 |
0.6251 |
0.5560 |
0.4258 |
0.2331 |
0 |
0.05 |
0 |
0.1995 |
0.3720 |
0.4996 |
0.5754 |
0.6002 |
0.5754 |
0.4996 |
0.3720 |
0.1995 |
0 |
0.06 |
0 |
0.1759 |
0.3315 |
0.4511 |
0.5253 |
0.5504 |
0.5253 |
0.4511 |
0.3315 |
0.1759 |
0 |
0.07 |
0 |
0.1574 |
0.2981 |
0.4082 |
0.4778 |
0.5015 |
0.4778 |
0.4082 |
0.2981 |
0.1574 |
0 |
0.08 |
0 |
0.1419 |
0.2693 |
0.3698 |
0.4338 |
0.4558 |
0.4338 |
0.3698 |
0.2697 |
0.1419 |
0 |
0.09 |
0 |
0.183 |
0.2437 |
0.3351 |
0.3936 |
0.4137 |
0.3936 |
0.3351 |
0.2437 |
0.1283 |
0 |
0.1 |
0 |
0.1161 |
0.2208 |
0.3038 |
0.3570 |
0.3753 |
0.3570 |
0.3038 |
0.2208 |
0.1161 |
0 |
Величины, полученные методом Кранка-Николсона, достаточно близки к
аналитическому решению u(x,t) = sin(πx)e-π2t+ sin(3πx)e-9π2t, истинные значения для последнего представлены в таблице 2
Максимальная погрешность для данных параметров равна 0,005
Таблица 2 – точные значения u(х>i>, t>i>), при t=0.1
x>i> |
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
0.6 |
0.7 |
0.8 |
0.9 |
1 |
t>11> |
|||||||||||
0.1 |
0 |
0.1153 |
0.2192 |
0.3016 |
0.3544 |
0.3726 |
0.3544 |
0.3016 |
0.2192 |
0.1153 |
0 |
Рисунок 5 – Решение u=u(х>i>, t>i>), для метода Кранка-Николсона
ЗАКЛЮЧЕНИЕ
В зависимости от формы области, краевых условий, коэффициентов исходного уравнения метод конечных разностей имеет погрешности аппроксимации от первого до четвертого порядка относительно шага. В силу этого они успешно используются для разработки программных комплексов автоматизированного проектирования технических объектов.
В МКР строятся, как правило, регулярные сетки, особенности геометрии области учитываются только в около граничных узлах. В связи с этим МКР чаще применяется для анализа задач с прямолинейными границами областей определения функций.
Проблемой методов конечных разностей является высокая размерность результирующей системы алгебраических уравнений (несколько десятков тысяч в реальных задачах. Поэтому реализация методов конечных разностей в составе САПР требует разработки специальных способов хранения матрицы коэффициентов системы и методов решения последней.
Библиографический список
Березин И.С., Жидков Н.П. Методы вычислений. Т.2. – М.: Физматгиз, 1962.
Мэтьюз, Джон, Г., Финк, Куртис, Д. Численные методы. Использование MATLAB, 3-е издание.— М. : Вильяме, 2001. — 720 с
Тихонов А.Н., Самарский А.А. Уравнения математической физики. – М.: Наука, 1972.
Формалев В.Ф., Ревизников Д.Л. Численные методы. – М.: ФИЗМАТЛИТ, 2004. - 400 с.
Пирумов У.Г. Численные методы. – М.: Издательство МАИ, 1998.
Калиткин Н.Н. Численные методы. – М.: Наука, 1976.
ПРИЛОЖЕНИЕ А
Листинг программы для расчета по методу Кранка-Николсона
f.m
function F=f(x)
F=sin(pi*x)+sin(3*pi*x);
ft.m
function F=f(x,t)
F=sin(pi*x)*exp(-pi^2*t)+sin(3*pi*x)*exp(-9*pi^2*t);
tisys.m
function X=trisys(A,D,C,B)
N=length(B);
for k=2:N
mult=A(k-1)/D(k-1);
D(k)=D(k)-mult*C(k-1);
B(k)=B(k)-mult*B(k-1);
end
X(N)=B(N)/D(N);
for k= N-1:-1:1
X(k)=(B(k)-C(k)*X(k+1))/D(k);
end
crnich.m
function [U,Y]=crnich(c1,c2,a,b,c,n,m)
clc;
% - c1=u(0,t) и c2=u(a,t)
% - а и b - правые точки интервалов [0,а] и [0,Ь]
% - с - постоянная уравнения теплопроводности
% - n и m - число точек решетки на интервалах [0,а] и [0,Ь]
%Выход - U - матрица решений
%Инициализация параметров и матрицы U
h=a/(n-1);
k=b/(m-1);
r=c^2*k/h^2;
s1=2+2/r;
s2=2/r-2;
U=zeros(n,m);
%Граничные условия
U(1,1:m)=c1;
Продолжение ПРИЛОЖЕНИЯ А
U(n,1:m)=c2;
%Генерирование первого ряда
U(2:n-1,1)=f(h:h:(n-2)*h)';
%Формирование диагональных и не лежащих на диагонали
%элементов А, вектора постоянных В '
%и решение трехдиагональной системы АХ=В
Vd(1,1:n)=s1*ones(1,n);
Vd(1)=1;
Vd(n)=1;
Va=-ones(1,n-1);
Va(n-1)=0;
Vc=-ones(1,n-1);
Vc(1)=0;
Vb(1)=c1;
Vb(n)=c2;
for j=2:m
for i=2:n-1
Vb(i)=U(i-1,j-1)+U(i+1,j-1)+s2*U(i,j-1);
end
X=trisys(Va,Vd,Vc,Vb);
U(1:n,j)=X';
end
U=U';
%точное решение и определение погрешности
x=0:h:h*(n-1);
t=0:k:k*(m-1);
for i=1:1:n
for j=1:1:m
Y(i,j)=ft(x(i),t(j));
end
end
Y=Y';
pogr=(abs(Y-U));
max(max(pogr))
surf(U)
xlabel('X');
ylabel('t');
zlabel('U(x,t)');
colorbar;
axis([0 n 0 m 0 max(max(U))]);