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

Schisla_3

.pdf
Скачиваний:
10
Добавлен:
13.02.2015
Размер:
699.4 Кб
Скачать
a 6 x 6 s;
s 6 x 6 b:

51

больше значение (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 + u1

+ O(h2);

 

h2

 

здесь u00n = u00(xn), un = u(xn). Для любой внутренней точки xn можно записать

un+1 ¡ 2u2n + u1 ¡ pnun ¼ fn; h

Используя это соотношение и краевые условия, получим для дифференциальной задачи разностную схему

yn+1 ¡ 2yn + y1

¡

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 + Cny1

= 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 = ®. После подстановки y1 = ®1yn + ¯1 в уравнение (3.22) получается выражение yn через yn+1

Anyn+1 + Bnyn + Cn(®1yn + ¯1) = fn

 

Anyn+1 + (Bn + Cn®1)yn = fn ¡ Cn¯1

 

y

 

=

 

An

y

 

+

fn ¡ Cn¯1

(3.24)

n

¡Bn + Cn®1

n+1

 

 

 

Bn + Cn®1

Таким образом, вычислив ®0 и ¯0 c помощью условия при x = a, можно

по формулам

 

 

 

 

 

 

 

 

 

®

 

=

 

An

; ¯

 

=

Dn ¡ Bn¯1

:

n

¡Bn + Cn®1

n

 

 

 

 

Bn + Cn®1

вычислить все прогоночные коэффициенты ®n и ¯n, n = 1; 2; : : : ; N ¡ 1 (прямой ход прогонки).

Теперь с помощью краевого условия при x = b вычисляются значения ®N и ¯N . Для нашего примера yN = ¯ (®N = 0, ¯N = ¯). Из (3.24) получаются два равенства

yN = ¯;

y1 = ®1yN + ¯1;

55

где ®1 и ¯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®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 + y1 = 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

+

 

 

y1

 

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

 

kuk2 = kukW22 =

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

x=» = u(» ¡ 0) ¡ u(» + 0) = 0

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,

ank'k.

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

¡ fH =

 

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

Так организованный процесс Ритца приводит к методу наименьших квадратов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]