Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы научных вычислений. Введение в численные методы для физиков и инженеров
.pdf
5.5. Многомерное интегрирование 131
Sn— площадь треугольника Tn:
S
=p(p − a)(p −b)(p − c),
n
a =
b =
c =
(x
(x
(x
(n)
l
(n)
l
(n)
m
− x
− x
− x
p =
(n)
)2+(y
k
(n)
)2+(y
m
(n)
)2+(y
k
1
(a + b + c),
2
(n)
l
(n)
l
(n)
m
− y
− y
− y
(n)
k
(n)
m
(n)
k
)2,
)2,
)2,
N — число треугольников, приближающих область S.
Аналогичный подход может быть применен для численного интегрирования по нерегулярной трёхмерной области. В этом случае такая
область представляется как набор тетраэдров.

ГЛАВА 6
Введение в конечно-разностные схемы
для обыкновенных
дифференциальных уравнений
Список обозначений
u(x) — точное решение дифференциального
(e)
u
= u(xn) — точное решение дифференциального
n
(a)
u
n
(e)
en= u
(a)
− u
n
n
h — шаг разностной сетки
Du — дифференциальный оператор
D
u — конечно-разностный оператор
h
δf (a) —невязка
R — оператор перехода
F(x, u)=
(A) — m-е собственное значение матрицы A
λ
m
ε
p
∂f
n
(x, u)"—матрицаЯкоби
∂x
m
уравнения
уравнения в точке x
n
— приближённое решение дифференциального
уравнения в точке x
n
— абсолютная ошибка приближённого
решения в точке x
n
— требуемая точность вычисления
Математические модели различных физических явлений часто формулируются в виде дифференциальных уравнений, и изучение таких моделей требует решения этих уравнений. В некоторых случаях их решение может быть выражено через известные функции. Однако, как
правило, это невозможно, поэтому получение решения в виде явных
выражений нельзя рассматривать как стандартный метод решения дифференциальных уравнений. Нельзя сказать, что аналитические методы

6.1. Простейший пример конечно-разностной схемы 133
потеряли своё значение. Они остаются необходимым инструментом для
решения упрощённых, так называемых, модельных задач. Исследование
модельных задач позволяет получить важную информацию о решении
более сложных задач.
Наряду с аналитическими методами широко используются различные численные методы для решения дифференциальных уравнений. Мы
рассмотрим методы, основанные на конечных разностях. Основная идея
этих методов состоит в том, что приближённое решение определяется на
некотором множестве точек, обычно называемом сеткой. Для вычисления этого приближенного решения используются алгебраические уравнения, которые приближают и заменяют дифференциальное уравнение.
6.1. Простейший пример конечно-разностной схемы
В качестве вводного примера рассмотрим построение вычислительной схемы для решения уравнения
+
x
u =0, 0 x l,
1+x
(6.1)
du
dx
u(0) = 1.
Первым шагом мы введём некоторое множество точек (узлов) на
интервале [0,l]: 0=x
<x1< ... < xN= l. Это простейший пример
0
вычислительной сетки, и расстояние между двумя соседними узлами
h
= x
n
сматривать более простой случай равномерной сетки, когда h
− xnназывается шагом сетки. В дальнейшем мы будем рас-
n+1
= h =
n
=const. Приближённое решение уравнения (6.1) определяется в узлах
сетки, то есть оно представляет собой множество значений
(a)
(a)
= u
u
n
(xn),n=0,...,N.
Такое множество часто называют сеточной функцией. Теперь нам нужно
заменить производную некоторым разностным отношением, определённым на сетке. Простейший способ такой замены основан на определении
производной:
du
dx
u(x +Δx) − u(x)
(x) ≈
Δx
,
где Δx выбирается достаточно малым. Применяя это приближение, мы
получим, вместо дифференциального уравнения (6.1), разностное урав-

134 Глава 6
нение в каждом узле сетки (x → xn, Δx → h)
(a)
u
n+1
x
= nh, n =0, ..., N − 1,h=
n
− u
h
(a)
n
x
n
+
1+x
(a)
=1,
u
0
(a)
u
=0,
n
n
(6.2)
l
.
N
Набор разностных уравнений, определённых на некоторой сетке,
называется конечно-разностной схемой (или просто разностной схемой).
Для того чтобы вычислить приближённое решение, мы перепишем разностную схему (6.2) в форме рекуррентного соотношения
hx
n
(a)
.
u
1+x
(a)
=1,
u
0
n
n
Начиная с
u
(a)
n+1
=1 −
для последовательных значений n =0,...,N − 1 мы найдём прибли-
жённое решение во всех узлах сетки. Вообще говоря, можно построить
бесконечное количество разностных схем для данного дифференциального уравнения. Например, можно записать следующие разностные схемы для уравнения (6.1):
u
(a)
n+1
− u
h
(a)
n
+
x
n+1
1+x
n+1
(a)
u
=0, (6.3)
n+1
с рекуррентным соотношением
u
(a)
n+1
=
1+(1+h)x
1+x
n+1
n+1
(a)
u
n
или
u
(a)
n+1
− u
2h
с рекуррентным соотношением
(a)
u
= u
n+1
(a)
n−1
(a)
n−1
+
x
1+x
−
1+x
n
2hx
(a)
u
=0, (6.4)
n
n
n
(a)
u
.
n
n

6.2. Определения аппроксимации и устойчивости 135
Естественно, что все эти схемы имеют разные свойства. Эти различия
показаны на рисунке 6.1, который представляет результаты вычислений
для разностных схем (6.2), (6.3) и (6.4), вместе с точным решением
уравнения (6.1).
1.2
1
0.8
u x()
0.6
0.4
0.2
0
-0.2
0123456
Рис. 6.1. Приближённые решения задачи (6.1), полученные с помощью различных разностных схем (l =5, h =0.2); ◦ — точное решение u(x)=(1+
+ x)exp(−x);——————схема(6.2);−−− —схема(6.3);———————схема(6.4)
x
Этот пример демонстрирует, что построение разностных схем и решение дифференциальных уравнений с помощью этих схем — не совсем
простая задача. Часто возникают ситуации, когда, казалось бы, схема
должна давать достоверный результат, а мы получаем приближённое
решение, которое не имеет ничего общего с точным решением. Поэтому, прежде чем рассматривать методы построения разностных схем, мы
должны познакомиться с требованиями, выполнение которых обязательно для любой практически пригодной схемы.
6.2. Определения аппроксимации и устойчивости
В этом параграфе мы рассмотрим определения аппроксимации,
устойчивости и сходимости разностной схемы. Предположим, что диф-

136 Глава 6
ференциальная задача определена на интервале I . Это значит, что требуется найти решение дифференциального уравнения (или системы уравнений) u(x) на интервале I при дополнительных начальных и/или граничных условиях, налагаемых на u(x). Далее мы будем записывать дифференциальную задачу в символической форме:
Du = f, (6.5)
где D — дифференциальный оператор и f — правая часть. Например,
чтобы записать задачу (6.1) в форме (6.5), мы определим
Du ≡
⎧
⎨
⎩
du
dx
u(0)
+
x
1+x
u, 0 x l
,f≡
0
.
1
Другой пример: краевая задача
2
d
u
+ a(x)u = g(x), 0 x l
2
dx
u(0) = 1
du
(l)=0
dx
может быть представлена в виде (6.5), если записать
⎧
2
d
u
Du ≡
⎪
⎪
⎪
⎪
⎨
⎪
⎪
⎪
⎪
⎩
+ a(x)u, 0 x l
2
dx
u(0)
du
(l)
dx
,f≡
⎧
⎪
⎨
⎪
⎩
g(x)
1
0
.
6.2.1. Аппроксимация дифференциального уравнения разностной
схемой
Предположим, что решение u(x) задачи(6.5)существуетнаинтервале I. Для того чтобы вычислить это решение методом конечных
разностей, введём конечное число точек (узлов) на интервале I.Это
множество точек называется сеткой и будет обозначаться как I
= {xn}
h
(рисунок 6.2).

6.2. Определения аппроксимации и устойчивости 137
0
xx x
01 n-1
xx
n N
l
Рис. 6.2. Одномерная сетка
Теперь мы будем искать не решение u(x) задачи (6.5), а сеточную
функцию
=(u
(e)
, ..., u
1
(e)
u
которая представляет собой множество значений решения в узлах I
(e)
= u(xn).
u
n
Сетка I
зависит от положительного параметра h = x
h
торый может быть выбран сколь угодно малым. По мере увеличения
количества узлов сетки h → 0,исеточнаяфункцияu
(e)
N
),
:
h
− xn,ко-
n+1
(e)
будет давать
всё более полное представление решения. Тогда, используя интерполяцию, можно получить решение в любой точке интервала I .Однакоточно
вычислить u
(e)
невозможно. Вместо сеточной функции u
(e)
мы можем
вычислить другую сеточную функцию
=(u
(a)
, ..., u
1
которая стремится к u
(a)
u
(e)
, когда число узлов сетки увеличивается. Для
вычисления этого приближённого решения u
(a)
),
N
(a)
используются разностные схемы. По аналогии с выражением (6.5) разностную схему можно
записать в символическом виде:
(a)
D
u
h
(a)
= f
. (6.6)
Например, разностная схема (6.2) может быть представлена в ви-
де (6.6), если записать
⎧
D
(a)
⎪
⎪
u
⎨
(a)
u
h
n+1
≡
⎪
⎪
⎩
(a)
u
0
f
(a)
(a)
− u
n
h
≡
x
n
+
1+x
0,n=0, ..., N − 1
1
(a)
u
,n=0, ..., N − 1
n
n
.
,
Прежде чем продолжить наше обсуждение, нам нужно определить
способ измерения сеточных функций. На самом деле, этот способ нам

138 Глава 6
уже известен, так как функции, определённые на сетке Ih,естьэлементы линейного пространства R
рассмотренные в параграфе 2.1, здесь применимы, и величина отклоне-
(a)
ния u
Если подставить u
от u
(e)
определяется как u
(e)
N
(вектора). Поэтому все определения,
(e)
(a)
− u
.
в разностную схему (6.6), то мы не получим
точного равенства, то есть возникает некоторый вектор невязки:
(e)
D
= f
(a)
u
h
+ δf
(a)
.
Поясним это на примере разностной схемы (6.2) для задачи (6.1). Точное решение задачи (6.1) имеет вид u(x)=(1+x)exp(−x).Еслимы
подставим сеточную функцию
(e)
u
=%u
(e)
=(1+xn)exp(−xn)
n
&
в разностную схему (6.2), то получим следующее выражение:
⎧
⎧
⎪
⎪
⎪
exp(−x
⎨
=
⎪
n =0,...,N − 1
⎪
⎪
⎩
D
n
h
u
)
(e)
(1 + x
(e)
⎪
⎪
u
⎨
n+1
=
⎪
⎪
⎩
(e)
u
0
)(exp(−h) − 1) + h · exp(−h)
n
− u
h
(e)
n
x
n
+
1+x
(e)
u
n
=
n
+ x
,
h
n
.
1
Когда h → 0,
exp(−h)=1−h +
1
2
и предыдущее выражение принимает вид
⎧
1
⎪
⎪
D
h exp(−x
−
⎨
(e)
= f
(a)
u
h
2
+
n =0, ..., N − 1
⎪
⎪
⎩
0
)(1 − xn)+O(h2),
n
Мы будем говорить, что разностная схема
(a)
D
u
= f
h
(a)
2
h
+ O(h3)
= f
(a)
+ δf
(a)
.

6.2. Определения аппроксимации и устойчивости 139
аппроксимирует дифференциальную задачу Du = f на решении u(x),
если δf
венство
(a)
→0,когдаh → 0. В дополнение, если выполняется нера-
(a)
δf
Chk,
где C>0 и k>0, тогда мы будем говорить, что имеет место аппроксимация k-го порядка или разностная схема имеет порядок k.
Так как точное решение исходной задачи нам неизвестно, мы можем
сделать только оценку невязки. Далее мы рассмотрим пример, который
демонстрирует общепринятый метод исследования аппроксимации.
П
РИМЕР 6.1 (АНАЛИЗ АППРОКСИМАЦИИ). Рассмотрим дифференци-
альную задачу (6.1). В параграфе 6.1 приведены три разностные схемы для этой задачи, и наша цель — исследовать аппроксимацию этих
схем. Вначале рассмотрим разностную схему (6.2). Если вместо сеточной функции u
(a)
подставить точное решение u(x),товыражение(6.2)
примет вид
⎧
D
u(x
⎪
⎪
⎪
⎨
(e)
u
=
h
⎪
n =0, ..., N − 1
⎪
⎪
⎩
u(0)
) −u(xn)
n+1
x
n
1+x
u(xn),
n
h
+
0
=
1
(6.7)
Предположим, что все производные функции u(x),дочетвёртого
порядка включительно, непрерывны и ограничены. Тогда мы можем разложить u(x
)=u(xn+ h) по степеням h в окрестности точки xnпо
n+1
формуле Тейлора:
u(x
)=u(xn+ h)=u(xn)+h
n+1
du
dx
(x
n
)+
d2u
1
2
h
(xn)+O(h3).
dx
2
2
Подставляя это разложение в (6.7), получим
u(x
'
du
dx
(x
=
n
n+1
)+
) −u(xn)
h
x
n
1+x
n
+
u(xn)(+
x
n
1+x
1
2
u(xn)=
n
2
d
u
h
(xn)+O(h2),
2
dx
n =1, ..., N − 1.
Выражение в скобках есть левая часть уравнения (6.1), вычисленная
в узлах сетки, и, следовательно, оно равно нулю. Тогда выражение (6.7)

140 Глава 6
можно записать как
⎧
D
(e)
= f
(a)
u
h
+ δf
(a)
0
=
+
1
Когда шаг разностной сетки достаточно мал, компоненты вектора
невязки пропорциональны h и δf
2
d
1
⎨
⎩
u
h
(xn)+O(h2),n=1, ..., N − 1
2
2
dx
0
(a)
Ch. Следовательно, разностная
схема (6.2) аппроксимирует дифференциальную задачу (6.1) с первым
порядком по h.
Теперь обратимся к разностной схеме (6.3). После замены u
(a)
на
точное решение мы получим
⎧
u(x
⎪
⎪
⎪
⎨
(e)
u
D
=
h
⎪
⎪
⎪
⎩
u(0)
В этом случае анализ удобнее проводить в точке x
ние u(x
)=u(x
n
u(x
n
n+1
)=u(x
) − u(xn)
n+1
h
+
x
n+1
1+x
n+1
u(x
n+1
n =0, ..., N − 1
− h) по степеням h в окрестности x
n+1
) − h
du
dx
(x
n+1
)+
d2u
1
2
h
(x
n+1
2
2
dx
),
=
n+1
n+1
)+O(h3).
0
. (6.8)
1
,иразложе-
даёт
Подставляя это разложение в (6.8), получим
u(x
'
du
dx
(x
n+1
=
)+
) −u(xn)
n+1
1+x
h
x
n+1
n+1
u(x
+
1+x
n+1
x
n+1
)(−
n+1
u(x
1
h
2
2
d
dx
n+1
u
2
(x
)=
n+1
)+O(h2),
n =0, ..., N − 1.
.
Тогда мы можем заключить, что разностная схема (6.2) аппрокси-
мирует дифференциальную задачу (6.1) с первым порядком по h.
В заключение рассмотрим разностную схему (6.4), которая на ре-
шении u(x) имеет следующий вид:
⎧
D
u(x
⎪
⎪
⎪
⎨
(e)
u
=
h
⎪
n =0, ..., N − 1
⎪
⎪
⎩
u(0)
n+1
) − u(x
2h
n−1
)
x
+
1+x
n
u(xn),
n
=
0
. (6.9)
1
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
