Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы научных вычислений. Введение в численные методы для физиков и инженеров

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]