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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
6.4. Численное решение краевых задач 171
8
6
4
2
Im()w
0
-2
-4
-6
-8
-2 0 2 4 6 8 10 12
Рис. 6.8. Области устойчивости на комплексной плоскости для схем BDF поряд­ка p =1, 2, 3, 4. Область неустойчивости лежит внутри контура
=1p
=2p =3p =4p
Re()w
6.4. Численное решение краевых задач
В этом параграфе мы рассмотрим методы приближённого решения краевых задач, которые представляют собой дифференциальные уравне­ния с некоторыми условиями на решение, заданными в разных точках области определения этих задач. Мы познакомимся с основными метода­ми численного решения краевых задач на примере дифференциального уравнения второго порядка вида
2
d dx
u
= f(x, u,
2
du
),a x b,
dx
с условиями, заданными в точках x = a и x = b (граничные условия). Мы будем предполагать, что это уравнение имеет следующие свойства:
1) функция f (...) иеёчастныепроизводныепоu и du/dx непрерывны;
2) частная производная функции f (...) по u положительна, а частная
производная по du/dx ограничена.
172 Глава 6
6.4.1. Метод стрельбы
Рассмотрим следующую краевую задачу:
2
d dx
u
2
= f(x, u,
du
),a x b,
dx
(6.36)
u(a)=α, u(b)=β.
В параграфе 6.3 мы рассмотрели различные методы решения задачи Ко­ши. Можно применить эти методы для решения краевой задачи (6.36), но для этого нам надо изменить постановку задачи. Вместо краевой за­дачи (6.36) мы запишем следующую задачу Коши:
2
d dx
u
2
= fx, u,
du
,a x  b, u(a)=α,
dx
du
(a)=tg(ϕ), (6.37)
dx
где ϕ обозначает угол между касательной к интегральной кривой в точ­ке (a, α) иосьюx (рисунок 6.9).
b
a
abx
Рис. 6.9. Графическое представление метода стрельбы: ———— — точное решение
∗
u(x, ϕ
); •••— u(x, ϕ)
Для заданного значения α решение задачи (6.37) зависит от двух переменных, то есть u = u(x, ϕ),ивточкеx = b это решение зависит
6.4. Численное решение краевых задач 173
только от ϕ. Тогда мы можем переформулировать задачу (6.37) следу­ющим образом: найти такой угол ϕ = ϕ
∗
,чтобыкривая,выходящаяиз
точки (a, α),приходилавточку(b,β),тоесть
∗
u(b, ϕ
При этом решение задачи (6.37) для такого угла ϕ = ϕ
)=β. (6.38)
∗
будет совпадать с решением задачи (6.36), и всё сводится к решению уравнения (6.38). Это уравнение имеет стандартный вид f (ϕ)=0,гдеf(ϕ)=u(b, ϕ) − β. Правда оно отличается от стандартных уравнений тем, что функция f (ϕ) не описывается аналитическим выражением, а определяется через при­ближённое решение задачи (6.37). Замена краевой задачи на сформу­лированную специальным образом задачу Коши является основной осо­бенностью метода стрельбы.
Для решения уравнения (6.38) можно использовать различные мето­ды (смотри Главу 1). Например, если мы найдём такие значения углов ϕ и ϕ1, что разности u(b, ϕ0) − β и u(b, ϕ1) − β имеют противоположные знаки, то далее мы можем применить метод деления отрезка пополам. При использовании метода секущих мы сначала должны задать некото­рые значения ϕ
и ϕ1, и последующие значения ϕkзатем вычисляются
0
по формуле
)(ϕk− ϕ
f(ϕ
ϕ
= ϕk−
k+1
k
f(ϕk) −f (ϕ
)
k−1
,k=1, 2,....
)
k−1
Эти вычисления продолжаются до тех пор, пока не выполнится условие
0
|u(b, ϕ
— требуемая точность приближённого решения.
где ε
p
) −β| εp,
k
Метод стрельбы хорошо работает в тех случаях, когда реше­ние u(x, ϕ) не очень «сильно» зависит от ϕ.Впротивномслучаеонста­новится неустойчивым. Следующий пример поясняет, что значит «силь­ная» зависимость от ϕ.
П
РИМЕР 6.7 (НЕУСТОЙЧИВОСТЬ МЕТОДА СТРЕЛЬБЫ). Рассмотрим сле-
дующую краевую задачу:
2
u
d
= γ2u, 0  x 1,
dx
2
(6.39)
u(0) = α, u(1) = β,
174 Глава 6
где γ — некоторая константа. Решение этой задачи имеет вид
u(x)=
+
exp(−γx) − exp(−γ(2 −x))
1 −exp(−2γ)
exp(−γ(1 −x)) − exp(−γ(1 + x))
1 −exp(−2γ)
α+
β.
Коэффициенты при α и β ограничены на отрезке 0 x 1:длявсех значений γ>0 они не превышают единицу. Следовательно, небольшая ошибка в задании α и β приводит к небольшой ошибке в решении. Рассмотрим теперь задачу Коши
2
d
u
= γ2u, 0  x 1,
2
dx
u(0) = α,
du
(0) = tan(ϕ).
dx
Решение этой задачи имеет вид
1
u(x)=
+
(αγ +tan(ϕ)) exp(γx)+
2γ
1
(αγ −tan(ϕ)) exp(−γx).
2γ
Предположим, мы задали величину tg(ϕ) сточностьюε,тогдарешение вточкеx =1будет отличаться от точного значения на величину
Δu(1) =
ε
exp(γ) −
2γ
ε
exp(−γ).
2γ
Хорошо видно, что для больших значений γ это отличие становится недопустимо большим, даже если ε достаточно мало. Поэтому не име­ет смысла применять метод стрельбы для решения задачи (6.39) при больших значениях γ.
6.4.2. Сведение разностной схемы к системе уравнений
В предыдущем параграфе мы обсудили применение численных ме­тодов для задачи Коши к решению некоторых краевых задач. Далее мы рассмотрим построение разностных схем с использованием разностных
6.4. Численное решение краевых задач 175
отношений, полученных в параграфе 6.2.2. Начнём с линейной краевой задачи второго порядка, имеющей следующий вид:
2
d dx
u
= p(x)
2
du
+ q(x)u + r(x),a x  b,
dx
(6.40)
u(a)=α, u(b)=β.
Введём разностную сетку с узлами x
= a + nh, n =0,...,N,
n
где h =(b − a)/N — шаг сетки. Теперь мы заменим производные в (6.40) приближёнными разностными отношениями
2
d dx
u
(xn) ≈
2
du dx
(x
+ h) − 2u(xn)+u(xn− h)
u(x
n
u(x
) ≈
n
n
2
h
+ h) − u(xn− h)
2h
,
(6.41)
.
В результате мы получим следующую разностную схему:
(a)
1
(u
− 2u
n+1
2
h
p
n
2h
(u
(a) n+1
=
− u
(a) n−1
)+qnu
(a)
u
0
(a)
n
= αu
Эта схема аппроксимирует задачу (6.40) с порядком h
(a)
(a)
+ u
n
n−1
)=
+ rn,n=1, ..., N − 1,
(a)
= β.
N
2
, так как раз­ностные выражения (6.41) аппроксимируют производные с порядком h а граничные условия выполняются точно. После приведения подобных слагаемых схему можно записать в виде
2
,
(a)
u
= α,
0
(1 +
hp
n
(a)
− (2 + h2qn)u
)u
n−1
2
(a) n
+(1−
hp
n
(a)
= h2rn,
)u
n+1
2
(6.42)
n =1, ..., N − 1,
(a)
= β.
u
N
Легко заметить, что эти выражения определяют систему линейных урав­нений с трёхдиагональной матрицей (смотри (2.9)). Если h|p
> 0, тогда условия (2.11) выполняются и можно использовать метод
q
n
|/2 < 1 и
n
176 Глава 6
прогонки для решения системы (6.42). Решая эту систему, мы полу­чим {u
(a)
} — приближённое решение во всех узлах разностной сетки.
Построение разностной схемы для нелинейной краевой задачи вида
2
d dx
u
2
= f(x, u,
du
),a x b,
dx
(6.43)
u(a)=α, u(b)=β
производится аналогичным образом. Однако система уравнений в этом случае будет нелинейной, что потребует применения какого-нибудь ите­рационного метода для её решения. Если заменить производные в (6.43) приближёнными разностными отношениями (6.41), то разностная схема будет иметь вид
= f
⎛
⎝
(a)
1
(u
− 2u
n+1
2
h
(a)
u
n+1
(a)
x
,u
,
n
n
(a)
u
0
(a)
− u
n−1
2h
= α, u
(a)
(a)
+ u
n
n−1
)=
⎞
⎠
,n=1, ..., N − 1,
(a)
= β.
N
(6.44)
Эту схему можно представить в виде системы нелинейных уравнений
v
= α,
v
N−2
− 2v1+ v2− h2fx1,v0,
v
0
.................................
− 2v
+ vN− h2fx
N−1
0
N−1,vN−1
= β.
v
N
v
2
− v
2h
,
0
=0,
(6.45)
2h
N−2
=0,
− v
v
N
Решение этой системы v =(v
(a)
ние u
. Для решения системы (6.45) можно использовать различные
,...,vN) даёт приближённое значе-
0
итерационные методы, рассмотренные в Главе 4. Если применить, напри­мер, метод Ньютона, то на каждой итерации необходимо решать систему линейных уравнений с матрицей Якоби. В данном случае матрица Яко­би является трехдиагональной, поэтому можно применить либо метод прогонки, либо соответствующую процедуру из библиотеки программ.
6.4. Численное решение краевых задач 177
Начальное приближение v
(0)
можно выбрать в виде линейной функции,
проходящей через точки (a, α) и (b, β):
β −α
(0)
=
v
n
b − a
РИМЕР 6.8 (НЕЛИНЕЙНАЯ КРАЕВАЯ ЗАДАЧА). Рассмотрим следующую
П
x
+
n
αb − βa
b − a
,n=0, ..., N.
краевую задачу:
2
d
u
= −exp(−u)
2
dx
du
, 0 x 1,
dx
u(0) = 0,u(1) = ln(2).
Разностная схема (6.44) для этой задачи записывается как
(a)
(a)
1
(u
n+1
2
h
− 2u
(a) n
+ u
n =1, ..., N − 1,u
(a) n−1
)+
exp(−u
(a) 0
)
n
2h
=0,u
(u
(a) N
(a)
− u
n+1
=ln(2).
(a) n−1
)=0,
Тогда соответствующая система нелинейных уравнений имеет вид
v
= α
0
1
h · exp(−v
2
n
v
= β.
N
)− 2vn+
n
)=0,n=1, ..., N − 1,
+v
n+1
v
n−1
1+
1 −
1
h · exp(−v
2
(6.46)
Если выбрать начальное приближение
(0)
= xnln(2),n=0, ..., N,
v
n
и относительную точность 10
−5
, то потребуется всего три итерации по методу Ньютона, для того чтобы решить эту систему. Относительная ошибка полученного приближённого решения для h =0.1 равна
(e)
− v
u
u
(e)
∞
∞
≈ 7.8 · 10−5.
178 Глава 6
6.4.3. Метод последовательных приближений
Идея метода последовательных приближений состоит в том, что ре­шение нелинейной задачи сводится к решению набора линейных задач. Предположим, мы знаем некоторую функцию v
(x), которая удовлетво-
0
ряет граничным условиям и является грубым приближением к точному решению u(x).Пусть
где w
u(x) ≈ v
(x) — малая поправка к функции v0(x).Подставимвыраже-
0
(x)+w0(x), (6.47)
0
ние (6.47) в уравнение (6.43) и проведём линеаризацию:
fx, v
∂f
+
∂u
x, v
+ w0,
0
0
u
2
dx
w
2
d
=
dx
dw
0
+
dx
+
0
∂
2
+(
0
2
d dx
dv
dv
0
,
dx
+O(w
v
0
2
0
∂f
du dx
dw
2
w
d
+
dx
= fx, v
0
2
)
dx
0
2
x, v
).
,
dv
0
,
0
dv
,
0
dx
dx
0
+
dw
0
+
dx
Пренебрегая слагаемым O(...), мы получим линейную задачу для поправки w
0
(x):
d
dx
2
w
2
0
= p(x)
dw
dx
0
+ q(x)w
+ r(x),
0
a x b,
w
(a)=w0(b)=0,
0
где
p(x)=
q(x)=
∂f
du
∂
dx
∂f ∂u
r(x)=fx, v
0
x, v
dv
,
x, v
dx
,
0
0
,
0
dv
dx
−
dv
dx
0
d
0
2
dx
,
,
v
0
.
2
(6.48)
6.4. Численное решение краевых задач 179
Решая линейную задачу (6.48) мы найдём поправку w0(x),то-
(x)=v0(x)+w0(x) будет следующим приближением к реше-
гда v
1
нию u(x). Таким образом, рассмотренная процедура определяет последо­вательность линейных краевых задач, решения которых сходятся к реше­нию исходной нелинейной краевой задачи. Хотя в общем случае доказать наличие сходимости довольно затруднительно, тем не менее этот метод может использоваться для получения хороших начальных приближений при решении нелинейных систем типа (6.45).
РИМЕР 6.9 (МЕТОД ПОСЛЕДОВАТЕЛЬНЫХ ПРИБЛИЖЕНИЙ). Рассмот-
П рим задачу (6.46). Если мы возьмём начальное решение v
(x)=x·ln(2),
0
тогда уравнение (6.48) примет вид (γ =ln(2))
2
d
w
0
= −exp(−γx)
2
dx
0  x 1,w
dw
0
+ γ exp(−γx)w
dx
(0) = w0(1) = 0.
0
− γ exp(−γx),
0
Численно решая это уравнение для h =0.1, мы получим сеточную функцию
w
(a)
0
= {w
0,n
},
показанную на рисунке 6.10. Следующее приближение определяется как
(a)
v
1
= v
(a) 0
+ w
(a)
=%xnln(2) + w
0
(a) 0,n
&
,
и ошибка этого приближения равна
(a)
(e)
u
− v
∞
u
(e)
1
≈ 2.3 · 10−4.
∞
Эти результаты показывают, что в данном случае решение лине­аризованной задачи даёт довольно хорошее приближение к решению исходной нелинейной задачи.
6.4.4. Метод установления
Решение краевой задачи можно трактовать как равновесное состо­яние, к которому приближается решение некоторой нестационарной за­дачи. Иногда возникает ситуация, когда удобнее и эффективнее, с вы­числительной точки зрения, решать такую нестационарную задачу, чем непосредственно искать решение исходной краевой задачи. Такой подход
180 Глава 6
0.7
0.6
0.5
u x(),
v x
w x
Рис. 6.10. Приближённое решение задачи (6.46): ———— — точное решение; —— ———v
0.4
(),
0
()
0.3
0
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
(x); • — w0(x)
0
x
называется методом установления. Мы обсудим основные особенности этого метода в процессе построения численного алгоритма для решения следующей краевой задачи:
2
u
d
= c1(x, u)
2
dx
g
1
(x, u), c2(x), g1(...), g2(...) — некоторые заданные функции. Внача-
где c
1
u(a),
du dx
du
+ c
dx
(a)=0,g
2
2
(x) u, a x b,
du
u(b),
(b)=0,
dx
(6.49)
ле мы должны сформулировать некоторую нестационарную задачу. В на­шем случае она может быть записана в следующей форме:
2
∂v
∂t
∂
v
=
g
1
∂x
v(a),
− c1(x, v)
2
∂v ∂x
∂v
− c
(x) v, a  x  b, t  0,
∂x
(a)=0,g
v(0,x)=g
2
2
0
v(b),
(x),
∂v
(b)=0,
∂x
(6.50)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]