Schisla_3
.pdf51
больше значение (b ¡ a), тем больше число обусловленности СЛАУ (3.15). Заметим, что аналогичная, как правило, более сложная ситуация имеет место, если матрица A не постоянна или задача нелинейна.
Иногда в такой ситуации помогает следующий алгоритм реализации метода стрельбы. Сначала выбирается некоторая точка s 2 [a; b] и решаются две задачи Коши
u0 = F (x; u);
(3.17)
u(a) = (®1; : : : ; ®k; pk+1; : : : ; pm);
и
u0 = F (x; u);
(3.18)
u(a) = (p1; : : : ; pk; ¯1; : : : ; ¯m¡k);
Если обозначить ua(x; pk+1; : : : ; pm) решение первой задачи, а ub(x; p1; : : : ; pk)решение второй, то вектор p = (p1; : : : ; pm) надо выбрать так, чтобы в точке s
|
|
|
(3.19) |
||||
|
f(p) ¡ ua(s; pk+1; : : : ; pm) = ub(x; p1; : : : ; pk) = 0; |
||||||
то |
если |
|
|
|
|
||
|
|
ua(x; pk+1; : : : ; pm); |
x |
2 |
[a; s]; |
|
|
|
u(x) = ( ub(x; p1; : : : ; pk); |
если |
x |
[s; b]; |
|
||
является решением краевой задачи (3.2). |
|
|
2 |
|
|
||
|
|
|
|
|
Это означает, что требуется найти вектор p, который является решением уравнения сшивания (3.19).
В случае, если краевая задача линейна, уравнения сшивания представляют собою систему линейных алгебраических уравнений. Для их построения сначала разыскиваются решение u(0)a (x) неоднородной системы
u0 = A(x)u + F (x);
a 6 x 6 s;
u(a) = (®1; : : : ; ®k; 0; : : : ; 0);
решения u(an)(x) (k + 1 6 n 6 m) однородных задач u0 = A(x)u
u(a) = (0; : : : ; 1 ; 0; : : : ; 0); a 6 x 6 b;
|{z}
i место
52
строится решение u |
(x) = ua(0)(x) + |
m |
|
|
ua(n)(x). Далее вычисляется |
|||||
p |
|
|
||||||||
и(0) |
a |
|
|
|
|
n=Pk+1 |
n |
|
||
ub |
(x) решение неоднородной системы |
|
|
|
|
|||||
|
u0 = A(x)u + |
|
(x); |
|
|
|
|
|
||
|
F |
|
|
|
|
s 6 x 6 b; |
||||
|
u(b) = (¯1; : : : ; ¯m¡k; 0; : : : ; 0); |
|
|
|||||||
|
|
|
|
|||||||
решения ub(n)(x) (n 6 i 6 k) задач |
|
|
|
|
|
|||||
|
u0 = A(x)u |
|
|
|
|
|
|
|
s 6 x 6 b |
|
|
u(b) = (0; : : : ; 1 ; 0; : : : ; 0); |
|
|
|||||||
|
|
|
(0)|{z}i |
k |
(n) |
(x). |
||||
и строится решение ub(s) = ub (x) + |
n=1 |
pnub |
|
|||||||
|
|
|
|
|
|
уравнений |
||||
Система линейных алгебраическихP |
|
|
|
|
||||||
|
k |
|
|
m |
|
|
|
|
|
|
|
X |
|
nX |
|
|
|
|
|
||
|
pnub(n)(x) ¡ |
|
|
pnua(n)(s) = ua(0)(s) ¡ ub(0)(s) |
||||||
|
n=1 |
|
=k+1 |
|
|
|
|
|
m порядка и является уравнениями сшивания является СЛАУ. Для построения этой СЛАУ надо решить m соответствующих задач Коши. Выбор подходящей точки s 2 (a; b) труден и требует вычислительного опыта. Такой алгоритм иногда уменьшает вычислительную погрешность за счет его усложнения.
3.2Разностные методы
3.2.1Разностные методы решения линейных задач.
Рассмотрим разностные методы линейной краевой задачи на примере
u00 ¡ p(x)u = f(x); |
a 6 x 6 b; |
(3.20) |
u(a) = ®; u(b) = ¯: |
|
|
Выберем на [a; b] сетку, т.е. множество точек ! = fxngNn=0 таких, что a = x0 < x1 < ¢ ¢ ¢ < xN = b. Будем считать сетку равномерной, т.е. xn = a+nh, h = (b ¡ a)=N.
53
Вторую производную представим в виде |
|
|
un00 = |
un+1 ¡ 2un + un¡1 |
+ O(h2); |
|
h2 |
|
здесь u00n = u00(xn), un = u(xn). Для любой внутренней точки xn можно записать
un+1 ¡ 2u2n + un¡1 ¡ pnun ¼ fn; h
Используя это соотношение и краевые условия, получим для дифференциальной задачи разностную схему
yn+1 ¡ 2yn + yn¡1 |
¡ |
p y |
|
= f ; 1 |
6 |
n |
6 |
N |
¡ |
1; |
h2 |
n |
n |
n |
|
|
(3.21) |
y0 = ®; yN = ¯;
которая представляет собою СЛАУ с трехдиагональной матрицей для вычисления приближенных значений yn ¼ u(xn) решения краевой задачи (3.20) в узлах сетки !.
Здесь возникают три основополагающих вопроса:
1.Существует ли решение полученной СЛАУ?
2.Как его найти?
3.Как близки в узлах сетки значения un, n = 0; 1; : : : ; N точного решения задачи (3.20) и приближенного yn?
Если pn > 0 (p(x) > 0) матрица системы имеет диагональное преобладание, т.е. система имеет единственное решение.
Без ответа на третий вопрос не имеет смысла расчет решения СЛАУ. Ответ на этот вопрос будет сформулирован в более общем виде при численном решении уравнений с частными производными (см. стр. )
Найти решение разностной схемы (3.21) можно с помощью метода прогонки.
54 |
|
|
|
3.2.2 Метод прогонки |
|
|
|
Запишем разностную схему в виде |
|
|
|
Anyn+1 |
+ Bnyn + Cnyn¡1 |
= fn; |
(3.22) |
y0 = ®; |
yN = ¯; |
1 6 n 6 N: |
|
|
|
Для разностной схемы (3.21) An = Cn = 1=h2, Bn = ¡(2=h2 + pn). Если дифференциальное уравнение из системы (3.20) зависит от u0 (содержит слагаемого q(x)u0), то в разностной схеме изменятся лишь коэффициенты
An, Bn и Cn.
Решение (3.22) разыскивается в виде |
|
yn = ®nyn+1 + ¯n: |
(3.23) |
Из краевого условия для x = a вычисляется ®0 и ¯0, для нашего примера ®0 = 0, ¯0 = ®. После подстановки yn¡1 = ®n¡1yn + ¯n¡1 в уравнение (3.22) получается выражение yn через yn+1
Anyn+1 + Bnyn + Cn(®n¡1yn + ¯n¡1) = fn |
|
|||||||||
Anyn+1 + (Bn + Cn®n¡1)yn = fn ¡ Cn¯n¡1 |
|
|||||||||
y |
|
= |
|
An |
y |
|
+ |
fn ¡ Cn¯n¡1 |
(3.24) |
|
n |
¡Bn + Cn®n¡1 |
n+1 |
||||||||
|
|
|
Bn + Cn®n¡1 |
Таким образом, вычислив ®0 и ¯0 c помощью условия при x = a, можно
по формулам |
|
|
|
|
|
|
|
|
|
|
® |
|
= |
|
An |
; ¯ |
|
= |
Dn ¡ Bn¯n¡1 |
: |
|
n |
¡Bn + Cn®n¡1 |
n |
||||||||
|
|
|
|
Bn + Cn®n¡1 |
вычислить все прогоночные коэффициенты ®n и ¯n, n = 1; 2; : : : ; N ¡ 1 (прямой ход прогонки).
Теперь с помощью краевого условия при x = b вычисляются значения ®N и ¯N . Для нашего примера yN = ¯ (®N = 0, ¯N = ¯). Из (3.24) получаются два равенства
yN = ¯;
yN¡1 = ®N¡1yN + ¯N¡1;
55
где ®N¡1 и ¯N¡1 вычисленные прямым ходом прогоночные коэффициенты. Далее обратным ходом вычисляем искомые значения приближенного решения yN , n = N ¡1; N ¡2; :::; 1. Метод прогонки точный и экономичный
(требует 0(N) операций)
Cправедлива лемма (см. Самарский, Николаев Методы решения сеточных уравнений стр. 78).
Пусть коэффициенты системы (3.22) действительны и удовлетворяют условиям:
jAnj > 0; jCnj > 0; n = 1; : : : ; N ¡ 1;
кроме того jBnj > jAnj + jCnj, n = 1; : : : ; N ¡ 1, причем хотя бы в одном из этих неравенств выполняется строгое неравенство, то есть матрица системы имеет диагональное преобладание. Тогда для алгоритма прогонки имеют место неравенства Cn®n¡1 + Bn 6= 0, ®n 6 1, n = 1; : : : ; N ¡ 1, гарантирующее корректность и устойчивость метода.
Эти достаточные условия корректности и устойчивости метода прогонки можно ослабить, разрешив некоторым из коэффициентов An и Cn обращаться в нуль.
3.2.3Разностный методы решения нелинейных задач.
Рассмотрим нелинейную краевую задачу
u00 = f(x; u); |
a 6 x 6 b; |
(3.25) |
u(a) = ®; u(b) = ¯:
Предположение о независимости правой части от u0 непринципиально. Аналогично предыдущему для внутренних узлов сетки получается система уравнений
yn+1 ¡ 2yn + yn¡1 = h2f(xn; yn); 1 6 n 6 N ¡ 1; |
(3.26) |
y0 = ®; yN = ¯; |
|
56
Если f(x; u) непрерывна вместе со своими производными, то можно доказать сходимость разностного решения при измельчении сетки (yn ! u(xn) при n ! 1).
Для вычисления решения (3.26) можно использовать, например, явный метод последовательных приближений
2ynº+1 = ynº+1 + ynº¡1 ¡ h2f(xn; ynº):
Достаточный признак сходимости этого итерационного процесса – модуль нормы матрицы системы меньше единицы. Если функцию f(x; y) можно записать в виде fn = f(xn; yn) = anyn + : : : , то даже при малых an и h у итерационного метода
º+1 |
|
1 º |
|
1 º |
¡ |
h2 |
º |
2 |
|
|||
yn |
= |
|
yn+1 |
+ |
|
|
yn¡1 |
|
anyn + o(h |
): |
||
2 |
2 |
2 |
первая норма матрицы 1=2 + 1=2 + anh2=2 > 1. Это означает, что, как правило, итерационный метод расходится.
Лучше использовать итерационный метод
ynº+1+1 ¡ 2ynº+1 + ynº¡+11 = h2f(xn; ynº)
y0º+1 = ®; yNº+1 = ¯;
Эту линейную задачу, которую можно решать прогонкой.
Метод Ньютона.
В случае, когда известно достаточно хорошее начальное приближение yn0, n = 1; : : : ; N, систему (3.26) можно решать методом Ньютона. Очередная итерация вычисляется по формуле ynº+1 = ynº + ±nº. Система уравнений
для вычисления поправки ±º получается после подстановки yº+1 |
в уравне- |
|||||
n |
|
|
n |
|
||
ние из (3.26) |
|
|
|
|
||
ynº+1 + ±nº+1 ¡ 2ynº ¡ 2±nº + ynº¡1 + ±nº¡1 = h2f(xn; ynº + ±nº): |
|
|||||
Если использовать рзложение в ряд Тейлора |
|
|
|
|
||
f(xn; ynº + ±nº) = f(xn; ynº) + |
@f |
(xn; ynº) ±nº |
+ |
@2f |
(xn; »nº) (±nº)2; |
|
|
|
|||||
|
@y |
|
@y2 |
|
57
¡ ¢
то с точностью до O (±nº)2 получается система уравнений
±nº+1 ¡ (2 + h2 @f@y (xn; ynº))±nº + ±nº¡1 = h2f(xn; ynº + ±nº) ¡ ynº+1 + 2ynº ¡ ynº¡1;
±0º = ±Nº = 0
Она решается экономичным методом прогонки. При удачном начальном приближении, порядок сходимости итераций второй, такой метод выгоднее ранее рассмотренных методов. Для нелинейных задач эффективна следующая организация расчета. Сначала берут сетку с малым числом узлов (N). Проводят расчет итераций с невысокой точностью, когда качество начального приближения не очень существенно и требуется мало операций. Затем сгущается сетка (N := 2N), а в качестве нового начального приближения берется рассчитанное решение, для новых узлов используется интерполяция.
3.3Проекционные и вариационные методы решения краевых задач для дифференциальных уравнений.
Краевая задача |
|
|
|
|
|
|
|
d |
du |
|
|
||
|
|
µp(x) |
|
|
¶ ¡ q(x)u = f(x); x 2 [a; b]; |
(3.27) |
|
dx |
dx |
u(a) = ®; u(b) = ¯;
имеет единственное решение, если функции p(x) > 0 имеет первую ограни-
ченную производную, q(x) > 0 ограничена на [a; b] и f(x) 2 L2[a; b] (f(x)
Zb
суммируема в квадрате, т.е. существует f2(x) dx < 1). Это решение
a
u 2 W22[a; b], где W22 пространство Соболева с нормой
Zb ﯯ¯d2u¯¯¯¯2 + ¯¯¯¯du¯¯¯¯2 + juj2! dx dx2 dx
a
58
Можно показать, что решение задачи (3.27) доставляет минимум функци-
оналу
F (u) = Zb ¡p(x)(u0)2 + q(x)u2 ¡ 2f(x)u¢ dx
a
в W21 (т.е. в более широком классе функций, имеющих первую производную суммируемую в квадрате). Поиск минимума функционала F (u) снижает требования к функциям p(x) и q(x), для его существования достаточно только ограниченности p(x). Если функция p(x) терпит разрыв в точке », то обычно решением задачи (3.27) называют функцию, удовлетворяющую левому краевому условию и дифференциальному уравнению из (3.27) на отрезке [a; »], и функцию, удовлетворяющую правому краевому условию и уравнению на отрезке [»; b]. Дополнительное краевое условие в точке x = » задается, исходя из соображений постановки задачи. Например, условия сопряжения непрерывности решения
¯
[u]¯
или непрерывности функции p(x) |
du |
|
|
|
|||||
dx |
|
|
|
||||||
|
|
¯ |
|
|
|
|
|
||
|
du |
du |
du |
||||||
|
¯ |
||||||||
|
|
|
|
|
|
|
|
|
|
·p(x) |
dx |
¸¯x=» |
= p(x) |
dx |
(» ¡ 0) ¡ p(x) |
dx |
(» + 0) = 0 |
||
|
|
¯ |
|
|
|
|
|
|
|
Таким образом, решение краевой задачи (3.27) можно заменить поиском минимума функционала F (u).
Общая постановка задачи состоит в поиске решения операторного уравнения
Au = f:
Так же, как всегда предполагается существование единственного решения u 2 D(A) (D(A) – область определения оператора A). В рассмотренном примере оператор A определяется дифференциальным выражением
|
d |
du |
|
|
Au = |
|
µp(x) |
|
¶ ¡ q(x)u |
dx |
dx |
59
и ставит в соответствие каждой функции u 2 D(A) ½ H = W22[a; b] некоторую функцию f 2 H1 = L2[a; b], D(A) множество функций из H, удовлетворяющих краевым условиям, заданным при x = a и x = b.
Для любого оператора A, имеющего решение в гильбертовом пространстве, можно построить функционал, например, I(u) = kAu¡fkH , минимум которого достигается на решении задачи (3.27).
Если построить для функционала I(u) минимизирующую последовательность, то один из ее элементов можно считать приближенным решением, найденным с заданной точностью.
Определение. Последовательность функций fung1n=1 из D(A) называется минимизирующей для функционала I(u), если
I u |
n) ! |
I |
inf |
I u |
I |
u¤ |
) при |
n |
! 1 |
: |
( |
0 |
= u D(A) |
( ) = |
( |
|
|
|
|||
|
|
|
2 |
|
|
|
|
|
|
|
Рассмотрим алгоритмы построения минимизирующих последовательностей без доказательства сходимости.
3.3.1Процесс Ритца
Рассмотрим в H систему линейно независимых элементов f'kg1k=1, 'k 2 D(A). Пусть Hn – линейная оболочка натянутая на f'kgnk=1.
Если система f'kg1k=1 полна в H, то элементы un, доставляющие минимум I(u) в Hn, сходятся к точноему решению u¤ при n ! 1 (un ! u¤).
Для построения последовательности un, произвольный элемент u 2 Hn можно разложить
|
|
n |
|
|
|
Xk |
|
|
u = |
ak'k; |
|
|
|
=1 |
|
тогда |
à n |
|
! = F (a1; : : : ; an): |
I(u) = I |
ak'k |
||
|
Xi |
|
|
|
=1 |
|
|
Минимум функции многих переменных достигается на таких значениях ank,
60
для которых
@F = 0; k = 1; : : : ; n: @ak
Получилась система алгебраических уравнений для вычисления ank . Если A - линейный оператор, то и система линейна.
После решения полученной системы элемент минимизирующей после-
довательности un = Pn
k=1
Пример. Пусть оператор A задается линейным дифференциальным выражением L, а функционал I(u) = (Lu¡f; Lu¡f)H достигает минимума на точном решении операторного уравнения Ax = f. Произвольный элемент u 2 Hn ( Hn – линейная оболочка натянутая на f'kgnk=1) раскладывается по базису в Hn
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
Xk |
|
|
|
|
|
|
|
u = |
ak'k; |
|
|
|
|
|
|
|
|
=1 |
|
|
|
тогда функционал I(u) можно записать в виде |
|
|
||||||
I(u) = (Lun ¡ f; Lun ¡ f)H = |
µL |
µk=1 ak'k¶ |
¡ f; L |
µk=1 ak'k¶ |
¡ f¶H = |
|||
|
n |
|
n |
|
P |
|
P |
|
|
P |
|
P |
|
n |
|
n |
|
= |
ajak(L'j; L'k)H ¡ 2 |
aj(L'j; f)H + (f; f)H |
´ F (a1; : : : :an): |
|||||
|
j;k=1 |
|
j=1 |
|
|
|
|
Для вычисления un требуется найти значения a1; : : : :an, которые удовлетворяют условиям
|
n |
@F |
Xk |
@aj |
(a1; : : : :an) = 2 ak(L'j; L'k)H ¡ 2(L'j; f)H = 0 |
|
=1 |
Таким образом получена СЛАУ для вычисления коэффициентов разложения элемента минимизурущей последовательности un
Xn
ak(L'i; L'k)H = (L'i; f)H ; i = 1; : : : ; n:
k=1
Так организованный процесс Ритца приводит к методу наименьших квадратов.