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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
6.4. Численное решение краевых задач 181
где функция g0(x) задаёт произвольные начальные условия. Так как граничные условия не зависят от времени, то естественно ожидать, что решение v(x, t) с течением времени будет меняться всё медленнее и медленнее. Поэтому в пределе t →∞это решение будет стремиться к решению задачи (6.49), то есть
v(x, t)=u(x).
lim
t→∞
Следовательно, вместо стационарной задачи (6.49) можно решать неста­ционарную задачу (6.50) до некоторого момента времени t,когдареше­ние v(x, t) перестанет изменяться в пределах заданной точности. Это и есть основная идея метода установления.
t
t
k
t
1
t
0
x
x
0
1
x
n
xNx
Рис. 6.11. Разностная сетка на плоскости (x, t)
В соответствии с нашим рассмотрением нам теперь нужно по­строить разностную схему для задачи (6.50). Вначале мы должны за­дать разностную сетку. Для одномерных нестационарных уравнений она определяется узлами (x ры h = x
− xnи τk= t
n+1
), как показано на рисунке 6.11. Парамет-
n,tk
− tkназываются, соответственно, шагами
k+1
по пространству и времени.
Как и прежде, заменим производные по пространству и времени в уравнении (6.50) разностными отношениями. В результате мы получим
182 Глава 6
следующую схему:
v
k+1
n
τ
− v
k
k
k
v
n+1
n
=
− 2v
k
k
+ v
n
n−1
2
h
− c1(xn,v
k
v
n+1
k
)
n
− v
2h
k n−1
− c
2(xn
)v
k
,
n
n =1, ..., N − 1; k =0, 1, ..., (6.51)
k+1
∗
g
(v
1
k+1
,v
0
)=0,g
1
Здесь верхний индекс k обозначает момент времени t
k+1 N−1
,v
k+1
N
)=0,v
0
n
k
= g0(xn).
.
∗
(v
2
Для вычисления приближённого решения перепишем разностную схему (6.51) в виде
2τ
k+1
=1 −
v
n
τ
τ
kc1(xn
k
+
−
2
h
2h
,v
k
)
n
k
− τkc2(xn)v
2
h
v
k
n+1
τ
k
+
2
h
+
τ
kc1(xn
k
+
n
k
,v
)
n
k
v
,
2h
n−1
(6.52)
n =1, ..., N − 1; k =0, 1, ...,
k+1
∗
g
(v
1
k+1
,v
0
)=0,g
1
Из начального условия v(x, 0) = g = {g
чения v v
1
)} известны. Поэтому из формулы (6.52) можно вычислить зна-
0(xn
= {v(xn,t1}. Повторяя эту процедуру, после того как значения
1
определены, можно последовательно вычислить значения v2, v3,....
k+1 N−1
k+1
,v
)=0,v
N
(x) следует, что значения v0=
0
0
= g0(xn).
n
∗
(v
2
Очевидно, что построенная нами схема является явной схемой и, значит, она условно-устойчивая. Методы анализа устойчивости тако­го рода схем требуют специального рассмотрения, что выходит за рамки этой книги, поэтому далее приводится окончательный результат. Раз­ностная схема (6.51) будет устойчива, если шаг по времени выбирается исходя из условия
(2)
min(τ
τ
k
(1)
,τ
),
k
где
2
(1)
τ
=
2h
4+h2maxxc2(x)
,
2
2h
(2)
=
τ
k
h2maxn(c1(xn,v
(2 + h2maxxc2(x))
k
))2+(2+h2maxxc2(x))
n
.
2
6.4. Численное решение краевых задач 183
Метод установления является простым и надёжным методом, так как он даёт приближённое решение, которое сходится к точному реше­нию стационарной задачи при любом начальном условии. Когда прибли­жённое решение v то есть
k
уже не изменяется в пределах заданной точности,
k+1
− vk
v
v
k+1
∞
εp,
∞
процесс установления завершён.
П
РИМЕР 6.10 (МЕТОД УСТАНОВЛЕНИЯ). Как и прежде, мы рассмотрим
задачу (6.46). Тогда соответствующая нестационарная задача имеет вид
∂v
∂t
2
∂
v
=
∂x
2
− exp(−v)
∂v
, 0 x 1,t0,
∂x
v(0) = 0,
v(1) = ln(2).
Для примера выберем начальную функцию g
(x)=0,котораяне
0
удовлетворяет второму граничному условию и довольно далека от точ­ного решения. Процесс установления показан на рисунке 6.12.
Если задать ε
=10−4,топотребуется134шагаповременидляза-
p
вершения этого процесса, и относительная ошибка полученного решения равна
Если выбрать лучшее начальное условие (например, v
u
(e)
u
− v
(e)
134
∞
∞
≈ 8 ·10−4.
(x)=x ln(2)), то
0
потребуется гораздо меньше шагов по времени, чтобы получить требу­емое приближённое решение.
6.4.5. Аппроксимация граничных условий в случае, когда на
границе задано значение производной
До сих пор мы рассматривали краевые задачи с граничными усло­виями первого рода, когда решение принимает некоторые заданные зна­чения в граничных точках. Моделирование различных физических про­цессов часто приводит к краевым задачам, где в граничных точках за­даются значения производных решения (например, граничные условия второго и третьего рода для дифференциальных уравнений второго по­рядка). В качестве примера рассмотрим построение разностной схемы
184 Глава 6
0.7
0.6
0.5
0.4
=80k
v x()
0.3 =20k
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Рис. 6.12. Последовательные приближения, полученные методом установления (задача (6.46), h =0.1,τ = h
2
/2): ———— — точное решение; —————прибли-
=0k
x
жённые решения
для следующей краевой задачи:
2
d dx
u
2
= fx, u,
du dx
du dx
(a)=α,
,a x  b,
(6.53)
u(b)=β.
Разностная аппроксимация дифференциального оператора аналогична выражению (6.44):
⎛
(a)
1
(u
− 2u
n+1
2
h
(a) n
+ u
(a) n−1
)=f
⎝
,u
x
n
(a) n
(a)
u
− u
n+1
,
2h
(a) n−1
⎞
⎠
,
(6.54)
h =1, ..., N − 1,
(a)
= β.
u
N
6.4. Численное решение краевых задач 185
Очевидный способ аппроксимировать du/dx вточкеa — использовать разность вперёд,
(a)
u
(a)
− u
1
0
= α. (6.55)
h
Однако это выражение аппроксимирует производную в точке a споряд­ком h, в то время как выражение (6.54) аппроксимирует дифференциаль­ное уравнение с порядком h
2
. Это значит, что разностная схема (6.54) и (6.55) имеет аппроксимацию только первого порядка. Таким образом, менее точная аппроксимация лишь в одной точке снижает точность все­го решения. Поэтому необходимо построить более точное приближе­ние для производной в граничной точке. Для этого введём фиктивный узел x разность для аппроксимации граничного условия du/dx = α споряд­ком h
Для того чтобы исключить неизвестную величину u
= a −h, что даёт нам возможность использовать центральную
−1
2
:
(a)
(a)
− u
u
1
−1
2h
= α. (6.56)
(a)
,запишемвыра-
−1
жение (6.54) для n =0:
− u
2h
(a)
−1
⎞
⎠
.
⎛
(a)
1
(u
1
2
h
− 2u
(a) 0
+ u
(a)
−1
)=f
⎝
,u
x
0
(a) 0
(a)
u
1
,
После подстановки (6.56) в предыдущее выражение мы окончатель-
но получим
(a)
(a)
1
2
− u
u
1
0
h
−
2
f(a, u
(a)
,α)=αh. (6.57)
0
Для вычисления приближённого решения задачи (6.53) необходимо ре­шить систему (6.45), предварительно заменив первое уравнение в этой системе на уравнение
1
2
v
1
− v0−
h
f(a, v0,α)=αh.
2
Рассмотренныйнамипримерявляетсяпростейшейреализациейбо­лее общего подхода, который называется методом фиктивных областей. Этот метод успешно используется в различных задачах для аппроксима­ции производных в граничных точках.
186 Глава 6
ПРИМЕР 6.11 (АППРОКСИМАЦИЯ ГРАНИЧНЫХ УСЛОВИЙ ВТОРОГО РОДА). Рассмотрим следующую простую задачу:
2
u
d
= u, 0  x 1,
2
dx
du
(0) = −1,
dx
(6.58)
u(1) = 1.
Если мы используем выражение (6.55) для аппроксимации граничного условия в точке x =0, то приближённое решение будет заметно отли- чаться от точного решения, как показано на рисунке 6.13, с относитель­ной ошибкой
e
r
(e)
(a)
− u
(e)
∞
=2.7 · 10−2.
∞
u
=
u
Более точная аппроксимация (6.57) позволяет значительно умень­шить эту ошибку: в этом случае e
=4.1 ·10−4.
r
6.5. Оценка ошибки приближённого решения
В этом параграфе мы рассмотрим несколько методов оценки и кон­троля ошибки приближённого решения. Имея возможность оценить ло­кальную или глобальную ошибку приближённого решения, можно по­добрать шаг сетки таким образом, чтобы эта ошибка была меньше заданной величины, которую мы будем обозначать ε рассматриваемых ниже методов состоит в том, что для оценки ошибки используются два различных приближённых решения.
Мы начнём наше обсуждение с оценки ошибки в случае численного решения задачи Коши. Вычислим два решения,
.Основнаяидея
p
вточкеx
,где2u
n
обозначает более точное решение. Тогда разница
n
(a)
даёт оценку локальной ошибки
e
n
(a)
u
n
u
= u
(a) n
и 2u
− 2u
(e) n
(a) n
(a) n
− u
,
(a) n
6.5. Оценка ошибки приближённого решения 187
1.5
1.4
1.3
u x()
1.2
1.1
1
0.9 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Рис. 6.13. Приближённое решение задачи (6.58): —————точноерешение;—— —— — приближённое решение. Для аппроксимации граничного условия исполь­зовалось выражение (6.55)
x
для менее точного решения. Пара схем Рунге–Кутта с порядками ап­проксимации p и p +1 (так называемая вложенная пара) может быть использована для вычисления двух приближённых решений. Вложен­ные пары строятся таким образом, чтобы вычисление функции произ­водилось в одних и тех же точках для обеих схем, что значительно уменьшает число вычислений. Так, s-этапная вложенная пара может быть представлена в следующем виде
0
c c
c
0
a
2
2, 1
a
3
3, 1a3, 2
. ...
s
a
s, 1as, 2 (1)
b
1 (2)
b
1
... a
(1)
b
... b
2 (2)
b
... b
2
s, s−1
(1) s−1
(2) s−1
.
(1)
b
s
(2)
b
s
188 Глава 6
Наборы параметров
(1)
(2)
и b
b
n
(n =1,...,s)
n
определяют методы порядка p и p +1 соответственно. Несколько приме­ров вложенных схем приведены ниже.
0 0
1 4
4 9
6 7
1
1 4
4
81 57
98
1 6
1 6
43
288
32 81
432
−
343
0
0
0
Пара Фельберга порядка 3(4)
1053
686
27 52
27 52
243 416
49
156
49
156 343
1872
0
1
12
После того как приближённые решения
(a)
(a)
и 2u
u
n
n
вычислены с некоторым шагом h
|2u
Если это условие не выполняется, то выбранный шаг h мал и следует повторить вычисления с другим шагом h
вычисления u
ишагh
(a)
используется метод с порядком аппроксимации p,тогда
выбирается из условия
n,2
h
h
n,2
|2u
(a) n
n,1
, проверяется условие
n,1
(a)
(a)
− u
n
(a)
|≈ch
n
| εp.
n
− u
⎛
ε
⎜ ⎝
p
 
(a)
(a)
− u
2u
n
n
p+1 n
  
⎞
⎟ ⎠
1
1+p
не достаточно
n,1
.Еслидля
n,2
.
6.5. Оценка ошибки приближённого решения 189
Этот процесс повторяется до тех пор, пока приемлемое значение шага разностной сетки не будет найдено. Это значение, затем, может быть использовано в качестве начального шага для вычисления решения
= h
вследующейточке:h
n+1,1
n,2
.
0 0
1 4
3 8
12 13
1
1 2
1 4
3
32
1 932 2 197
439 216
25
216
16
135
9
32
7 200 2 197
−8
8
−
27
0
0
Пара Фельберга порядка 4(5)
7 296 2 197
3 680
513
2
1 408 2 565
6 656
12 825
3 544 2 565
2 197 4 104
28 561 56 430
−
−
845
4 104
1859 4104
−
50
11
−
40
1 5
9
0
2
55
При использовании схем предиктор–корректор (параграф 6.3.3) ошибка может быть оценена через разность двух решений, полученных на этапах предиктор и корректор. Получим оценку ошибки в случае, ко­гда предиктор (явная схема Адамса) и корректор (неявная схема Адамса) имеют одинаковый порядок аппроксимации. Тогда для метода порядка p локальная ошибка записывается как
e
e
n+1
n+1
= u
= u
(e) n+1
(e) n+1
− u
− u
(a)
= αpchp+ O(h
n+1
(a)
= αcchp+ O(h
n+1
p+1
) (предиктор),
p+1
) (корректор),
где параметры α
и αpне зависят от h (значения этих параметров при-
c
ведены в Таблице 6.6).
Теперьмыможемвыразитьизэтихдвухформулch часть ошибки):
ch
(a)
u
n+1
p
=
− u
αp− α
(a) n+1
c
+ O(h
p+1
p
(основную
).
190 Глава 6
Таблица 6.6.
Порядок аппроксимации, p α
p
α
c
1 1/2 −1/2
2 5/12 −1/12
3 3/8 −1/24
4 251/720 −19/720
Пренебрегая слагаемым порядка p +1, мы получим оценку локальной ошибки приближённого решения на этапе корректор:
u
(e) n+1
− u
(a) n+1
≈
α
c
αp− α
(a)
(u
n+1
c
− u
(a) n+1
).
Более того, выполняя локальную экстраполяцию, можно получить более точное решение, чем u
u
(e) n+1
− (u
(a) n+1
(a)
.Еслимызапишем
n+1
+ αcchp)=u
(e) n+1
−u
(a)
n+1
= O(h
p+1
),
то приближённое решение
(a)
u
n+1
будет иметь ошибку порядка h
В случае краевой задачи мы можем оценить глобальную ошибку
(e)
(a)
− u
e = u
. Как и прежде, для оценки ошибки нам нужно два при-
(a)
α
u
p
n+1
=
p+1
αp− α
.
− αcu
c
(a) n+1
ближённых решения. В параграфе 6.4 мы познакомились с разностными схемами для дифференциальных уравнений второго порядка. Эти схемы имели второй порядок аппроксимации, то есть основная часть ошибки была порядка h числении с шагом h,арешениеv
2
. Пусть приближённое решение u
(a)
—сшагомh/2.Тогдавекторы
(a)
получено при вы-
ошибки этих решений записываются как
(e)
− v
− u
(a)
(a)
= ch2+ O(h4)
1
= c
h
2
2
+ O(h4).
= u
e
1
(e)
= u
e
2
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]