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

[ Буслов, Яковлев ] Часть 2 - Численные методы

.pdf
Скачиваний:
17
Добавлен:
22.08.2013
Размер:
392.2 Кб
Скачать

САНКТ ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ФИЗИКИ

В.А.БУСЛОВ , С.Л.ЯКОВЛЕВ

ЧИСЛЕННЫЕ МЕТОДЫ II. РЕШЕНИЕ УРАВНЕНИЙ

КУРС ЛЕКЦИЙ

САНКТ ПЕТЕРБУРГ 2001

Утверждено на заседании кафедры вычислительной физики

печатается по решению методической комиссии физического факультета СПбГУ

А В Т О Р Ы : В.А.БУСЛОВ, С.Л.ЯКОВЛЕВ Р Е Ц Е Н З Е Н Т : докт. физ.-мат. наук С.Ю.СЛАВЯНОВ

Настоящее издание является второй частью курса лекций по численным методам, читавшихся на протяжении ряда лет авторами в первом семестре II курса физического факультета СПбГУ.

В пособии принята нумерация формул по главам. Приведенная библиография частично представляет собой источник справочного материала, но, в основном, рассчитана на дальнейшее изучение численных методов.

2

Глава 1

Системы уравнений

1.1 Решение нелинейных уравнений

Задачу нахождения решений уравнений можно формулировать различными способами. Например, как задачу на нахождение корней: f(x) = 0, или как задачу на нахождение неподвижной точки: F (x) = x. Ïðè

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

1.1.1 Одномерный случай

Метод деления пополам

Простейшим методом нахождения корней уравнения f(x) = 0 является метод деления пополам или

дихотомия. Предположим, мы нашли две точки x0 è x1, такие что f(x0) è f(x1) имеют разные

знаки, тогда между этими точками, если

f 2 C0 , находится хотя бы один корень функции f . Поделим

отрезок [x0; x1] пополам и введем точку

x2 =

x0+x1

f(x2)f(x0) · 0, ëèáî f(x2)f(1) · 0. Оставим

2 . Ëèáî

ту половину отрезка, для которой значения на концах имеют разные знаки. Теперь этот отрезок делим пополам и оставляем ту его часть, на границах которой функция имеет разные знаки, и так далее, до достижения требуемой точности.

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

Недостатком метода является тот факт, что прежде чем начать его применение, необходимо предварительно найти две точки, значения функции в которых имеют разные знаки. Очевидно, что метод неприменим для корней четной кратности. Он также не может быть обобщен на случай комплексных корней и на системы уравнений.

Метод простых итераций

Пусть F : [a; b] ! [a; b] è F сжатие: jF (x) ¡ F (y)j · qjx ¡ yj ; q < 1 (в частности, тот факт, что

F сжатие, как легко видеть, означает, что F 2 C[a;b]). По теореме Банаха существует и единственна

3

f(xj)
x2[a;b]
sup

неподвижная точка x¤. Она может быть найдена как предел простой итерационной процедуры

x¤ = lim xn ; xn+1 = F (xn) ;

n!1

где начальное приближение x0 произвольная точка промежутка [a; b]. Если функция F дифференцируема, то удобным критерием сжатия является число q = jF 0(x)j = jjF 0jjC < 1. Действительно, по теореме

Лагранжа

jF (x) ¡ F (y)j = jF 0(»)jjx ¡ yj · jjF 0jjCjx ¡ yj = qjx ¡ yj :

Таким образом, если производная меньше единицы, то F является сжатием.

Условие F ([a; b]) µ [a; b] существенно, ибо если, например, F (x) ´ 2 на [0,1] , то неподвижная точка

отсутствует, хотя производная равна нулю. Скорость сходимости зависит от величины q. Чем меньше q,

тем быстрее сходимость.

Ïpèìåp. Решить уравнение: x2 = a. Здесь, если в качестве F взять функцию F (x) = xa , òî ñî- ответствующая итерационная процедура будет иметь вид: xn+1 = xan . Как нетрудно убедиться, метод

итераций в данном случае расходится при любой начальной точке x0, не совпадающей с собственно непо- движной точкой x¤ = pa. Однако можно в качестве F предложить и более хитрую функцию с той же

неподвижной точкой. Пусть F (x) =

1 [x +

a ]. Соответствующая итерационная процедура здесь имеет вид:

 

 

 

 

 

 

 

 

2

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

xn+1 = 1 [xn +

a

]. Эти итерации сходятся к неподвижной точке для любого начального приближения

 

2

xn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0 2 (0; 1):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F (x) =

 

a

;

 

 

 

 

 

xn+1 =

a

;

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

8

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

a

 

 

 

 

 

1n

 

a

 

 

 

 

 

 

 

 

< F (x) =

 

 

[x + x ] ; xn+1 =

2 [xn +

 

] ; xn ! x¤ :

 

 

 

 

 

 

 

 

2

xn

 

 

 

 

 

 

первом случае

 

 

 

 

 

 

 

 

a

 

 

 

 

 

необходимо

Действительно, в

F 0(xn) = ¡xn2 , т.е. для выполнения условия F 0(xn) < 1

 

 

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

a

 

x2

 

 

 

 

 

a

 

чтобы x2 > a, но тогда

 

F 0(xn+1)

 

=

 

 

 

=

 

 

=

n

> 1. Таким образом, отображение F (x) =

 

сжатием

 

 

2

 

a2

 

 

n

 

 

 

j

 

j

 

jxn+1 j

 

 

 

 

 

 

a

 

 

 

 

 

x

 

 

 

 

 

 

 

xn2

 

 

 

 

 

 

 

 

 

не является.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Äëÿ F (x) =

1 [x +

a ], где неподвижная точка та же самая, ситуация другая. Здесь, хотя формально

 

2

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

производная может быть довольно большой (при малых x), однако уже на следующем шаге она будет меньше 1. Убедимся в этом:

 

 

F 0(xn+1) =

1

 

1

 

 

a

=

1

 

1

 

 

 

 

 

 

a

 

 

 

=

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

1

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

2

·

 

¡ xn+1

¸

 

2 "

¡

2

(xn +

xn

)2 #

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

1 (1 +

a

 

)

2

 

2a

 

 

 

1 1 +

 

a

2

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¡ xn2

 

 

 

 

 

 

 

1

 

 

 

xn2

 

 

 

 

 

 

xn2

 

 

 

 

 

xn2

 

 

 

=

 

"1 ¡

 

 

 

 

 

#

=

 

 

 

 

 

 

 

 

=

 

 

(1 +¡

a

¢)2

<

 

 

;

2

21 (1 +

a

)2

2

(1 +

a

)2

 

 

2

2

 

 

 

 

x2

 

 

 

x2

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

т.е. такой итерационный процесс всегда сходится.

1.1.2 Метод Ньютона

Метод Ньютона или касательных заключается в том, что если xj некоторое приближение к корню x¤ уравнения f(x) = 0 ; f 2 C1, то следующее приближение определяется как корень касательной к функции

f(x), проведенной в точке xj. Таким образом, в уравнении касательной f0(xj) = y¡f(xj)

x¡xj необходимо

положить y = 0 è x = xj+1 , òî åñòü

xj+1 = xj ¡ f0(xj) :

4

Поскольку метод Ньютона представляет собой метод простых итераций при

F (x) = x ¡

f(x)

 

f0(x)

, òî

нетрудно убедиться, что при

f 2 C2 существует окрестность корня, в которой jF 0j < 1 . Действительно,

 

 

 

F 0 = 1

¡

(f0)2 ¡ ff00

=

 

ff00

 

;

 

 

 

 

 

 

 

 

 

 

 

(f0)2

 

 

 

 

 

 

 

 

 

 

 

(f0)2

 

 

 

 

 

 

 

 

 

òî åñëè x

¤

корень кратности

® , то в его окрестности f(x)

¼

a(x

¡

x

¤

)® и, следовательно, F 0(x

¤

) =

®¡1

 

 

 

 

 

 

 

 

 

 

 

® .

Заметим, что если x¤ простой корень, то сходимость метода касательных квадратичная (то есть порядок

сходимости равен 2). Убедимся в этом. Поскольку xj+1 ¡ x¤ = xj ¡ x¤ ¡

f(xj)

 

f0(xj)

 

 

, òî

 

xj+1 ¡ x¤

=

 

 

1

 

 

 

f(xj)

=

1

 

 

 

 

 

 

xj ¡ x¤ ¡ f0(xj)(xj ¡ x¤)2

xj ¡ x¤

¡

 

(xj ¡ x¤)2

 

 

 

;

¡

 

(xj ¡ x¤)2 [f0

(x¤) + f00(x¤)(xj ¡ x¤) + o¡(xj ¡ x¤)]

¢

 

f0(x¤)(xj

¡ x¤) +

21 f00(x¤)(xj ¡ x¤)2 + o (xj ¡ x¤)2

 

откуда

 

 

 

 

 

 

xj+1 ¡ x¤

 

f00(x¤)

 

 

 

 

 

 

 

 

 

 

 

 

lim

=

:

 

 

 

 

 

 

 

 

 

 

j!1 (xj ¡ x¤)2

2f0(x¤)

 

 

 

 

 

 

 

Таким образом, сходимость метода Ньютона очень быстрая. При этом без всяких изменений метод обобщается на комплексный случай. Если корень x¤ является корнем второй кратности и выше, то, как нетрудно

убедиться, порядок сходимости сразу падает и становится линейным.

К недостаткам метода Ньютона следует отнести его локальность, поскольку он гарантированно сходится при произвольном стартовом приближении только, если везде выполнено jff00j=(f02) < 1, в противной

ситуации сходимость есть лишь в некоторой окрестности корня. Другим недостатком метода Ньютона является тот факт, что на каждом шаге необходимо заново вычислять производную.

1.1.3 Метод секущих

Чтобы избежать вычисления производной, метод Ньютона можно упростить, заменив производную на разностную, вычисленную по двум предыдущим итерациям, что эквивалентно замене функции f(x) íà

интерполяционный полином, проходящий через точки xj è x1 . При этом, итерационный процесс

принимает вид

xj+1 = xj ¡ fj(xj ¡ x1) ; fj ¡ f1

ãäå fj = f(xj) . Это двухшаговый итерационный процесс, поскольку использует для нахождения после-

дующего приближения два предыдущих. Порядок сходимости ìетода секущих, естественно, ниже, чем у

метода касательных и равен в случае однократного корня d =

p5+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 . Убедимся в этом, считая для удобства,

÷òî x¤ = 0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[f

0x

j

 

+ 1 f00x2

+ O(x3)](x

j

 

x

 

)

 

 

 

 

 

 

 

fj(xj ¡ x1)

 

=

 

 

 

 

 

 

¤

 

 

2

 

¤

j

 

 

 

 

j

 

 

 

 

¡

1

 

 

 

 

=

 

 

 

fj

¡

fj

¡

1

 

 

 

 

 

f

0(xj

¡

xj

¡

1) +

1 f00(x2

¡

x2

 

) + O(x3

¡

x3

 

)

 

 

 

 

 

 

 

 

 

 

 

 

¤

 

 

 

 

 

2

¤

j

 

1

 

 

 

 

 

j

1

 

 

 

 

 

= xj 2

 

 

 

 

1 +

 

f00

xj + O(xj2)

 

 

3 = xj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2f¤0

 

 

 

 

 

 

f00

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¤

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¤

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f00

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

1

 

 

2f

 

x1 + O(xj ) :

 

 

 

 

4

1 +

2f¤0

(xj + xj 1) + O(xj )

 

 

 

·

 

¡

 

 

 

 

0

 

 

 

 

 

 

¸

 

 

 

 

 

 

 

 

 

 

¤

 

 

 

 

 

¡

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

¤

 

 

 

 

 

 

 

 

 

 

Таким образом, с точностью до бесконечно малых более высокого порядка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

(x

 

 

 

 

x

 

)

 

f00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

= x

¡

 

j

 

 

j ¡

1

 

 

=

¤

 

x

x

1

 

+ O(x3) :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fj

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

j+1

 

 

 

 

j

 

 

¡

fj 1

 

 

 

 

2f

 

j

 

 

 

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¡

 

 

 

 

¤

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f00

Отбрасывая остаточный член, получаем рекуррентное соотношение

 

x

 

= ®x

x

 

, ® =

 

j+1

 

¤

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j

 

1

 

2f¤0 , решение

которого естественно искать в виде xj+1 = ®cxdj . После подстановки имеем: cd = 1 è d2 ¡d¡1 = 0 , откуда в силу того, что для сходимости необходимо, чтобы d было положительным, заключаем, что d = p5+1

2 .

5

Поскольку знание производной не требуется, то при том же объ¼ме вычислений в методе секущих (несмотря на меньший порядок сходимости) можно добиться большей точности, чем в методе касательных. Отметим, что вблизи корня приходится делить на малое число, и это приводит к потере точности (особенно в случае кратных корней), поэтому, выбрав относительно малое ±, выполняют вычисления до

выполнения jxj+1 ¡ xjj < ± и продолжают их пока модуль разности соседних приближений убывает. Как

только начнется рост, вычисления прекращают и последнюю итерацию не используют. Метод секущих становится неприменимым. Такая процедура определения момента окончания итераций называется приемом

Гарвика.

Метод парабол

Рассмотрим трехшаговый метод, в котором приближение xj+1 определяется по трем предыдущим точкам xj , x1 è x2 . Для этого заменим, аналогично методу секущих, функцию f(x) интерполяционной параболой проходящей через точки xj , x1 è x2 . В форме Ньютона она имеет вид

p2(x) = fj + f1;j(x ¡ xj) + f2;j¡1;j(x ¡ xj)(x ¡ x1) :

Точка xj+1 определяется как тот из корней этого полинома, который ближе по модулю к точке xj . Порядок сходимости метода парабол выше, чем у метода секущих, но ниже, чем у метода Ньютона. Важным отличием от ранее рассмотренных методов, является то обстоятельство, что даже если f(x) вещественна

при вещественных x и стартовые приближения выбраны вещественными, метод парабол может привести

к комплексному корню исходной задачи. Этот метод очень удобен для поиска корней многочленов высокой степени.

Поиск всех корней

Общим недостатком почти всех итерационных методов нахождения корней является то, что они при однократном применении позволяют найти лишь один корень функции, при том неизвестно какой. Чтобы найти другие корни, можно было бы брать новые стартовые точки и применять метод заново, но нет никакой гарантии, что при этом итерации сойдутся к новому корню, а не к уже найденному (если вообще сойдутся, как, скажем, возможно в методе Ньютона).

Для поиска других корней используется метод удаления корней. Пусть x1 корень функции f(x),

рассмотрим функцию f1(x) =

f(x)

 

x1 будет являться корнем функции f1(x)

на единицу меньшей

x¡x1 . Точка

 

 

 

 

 

 

 

кратности, чем

f(x), при этом все остальные корни у функций f(x)

è f1(x)

совпадают с учетом

кратности. Применяя тот или иной метод нахождения корней к функции

f1(x), мы найдем новый корень

x2

(который может в случае кратных корней и совпадать с x1). Далее можно рассмотреть функцию

f2(x) = f1(x) =

f(x)

 

 

 

 

(x¡x1)(x¡x2) и искать корни у не¼. Повторяя указанную процедуру, можно найти все корни

f(x)

x¡x2

с учетом кратности.

 

 

 

 

 

 

Заметим, что когда мы производим деление на тот или иной корень x¤ , то в действительности мы делим лишь на найденное приближение x0¤ , и, тем самым, несколько сдвигаем корни вспомогательной функции относительно истинных корней функции f(x) . Это может привести к значительным погрешностям, если

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

6

f(x) , используя в качестве стартового приближения, последнюю итерацию, полученную по вспомогательной функции.

1.1.4 Многомерный случай

Метод простых итераций

Метод простых итераций (последовательных приближений) легко обобщается на случай системы нелинейных уравнений

fk(x1; x2; : : : ; xN ) = 0 ; k = 1; 2; : : : ; N ;

или в векторной форме

f(x) = 0 :

Эту систему удобно, как и в одномерном случае, записать в виде задачи на неподвижную точку

F(x) = x :

Замечание. Нахождение такой формы записи может оказаться само по себе серьезной задачей. Необходимо добиться и того, чтобы отображение F являлось сжатием (для сходимости итераций) и, при этом, было

эквивалентно исходной постановке.

Выбрав стартовое приближение, организуем итерации

x(j+1) = F(x(j)) :

Если итерации сходятся, то они сходятся к одному из решений системы уравнений. Порядок сходимости

простых итераций линейный. Действительно, пусть x¤

решение, к которому сходятся итерации, тогда для

каждой k-ой его компоненты

 

 

 

 

 

 

 

 

N

@Fk(zj)

 

 

 

(j+1)

¡ xk¤ = Fk(x(j)) ¡ Fk(x¤) = l=1 ·

¸

(j)

¡ xl¤) ;

xk

@xl

(xl

 

 

X

 

 

 

 

ãäå zj некоторый вектор в направлении x(j) ¡x¤, лежащий между этими точками. Отображение F будет

являться сжатием, если норма матрицы производных (согласованная с нормой вектора в данном простран-

ñòâå) n

@xl

o

меньше единицы. Поскольку в конечномерном пространстве все нормы эквивалентны (а

 

@Fk(»k)

 

 

значит и последовательность сходящаяся по одной норме, будет сходиться и по любой другой), то доста-

точно это условие проверить для любой из норм матрицы с элементами Mkl = max j

@Fk

j , мажорирующей

@xl

соответствующие нормы n

@xl

o .

 

 

 

@Fk(»k)

 

 

 

Улучшить сходимость метода последовательных приближений можно (хотя она по прежнему останется

линейной), если уже найденные компоненты

xk(j+1)

использовать для нахождения компонент этого же

приближения x(j+1) с номерами большими

k , то есть организовать итерации следующим образом

x(j+1)

= Fk(x(j+1)

; x(j+1); : : : ; x(j+1)

; x(j)

; x(j)

; : : : ; x(j)) :

k+1

1

2

k

k+1

k+2

N

Метод Ньютона

Метод Ньютона, являясь частным случаем метода простых итераций с вектор-функцией F, равной

F(x) = x ¡ ·@f(x)¸¡1 f(x) ; @x

7

естественно обобщается на многомерный случай. Итерации по методу Ньютона имеют вид

 

 

x)

¡1

x(j+1)

= x(j) ¡ ·

@f(

 

¸x=x(j) f(x(j)) :

@x

Проверка условий сходимости (то есть того, что норма матрицы производных @F=@x меньше единицы)

почти никогда не производится, поскольку требует большого объема вычислений. Сам же метод Ньютона обычно используют в несколько другой записи. Именно:

·@f@(x

¸x=x(j)

x(j) = ¡f(x(j)) ; x(j)

 

x)

 

 

= x(j+1) ¡ x(j) :

Определяя из этой линейной системы (скажем методом Гаусса) вектор

x(j) и, соответственно, при-

ближение x(j+1), заново рассчитывают матрицу производных и продолжают итерации. Если начальное

приближение выбрано удачно, то обычно достаточно всего нескольких итераций, поскольку сходимость квадратичная.

Методы спуска

Введ¼м функцию Φ = PN jfj(x)j2. Она ограничена снизу нулем и достигает своего глобального минимума

j=1

(нуля) только в тех точках, где f(x) = 0. Таким образом, задача на поиск корней вектор-функции сводится

к задаче на поиск минимума скалярной функции многих переменных, методы решения которой рассматриваются в соответствующей главе. Здесь лишь отметим, что эти методы называются методами спуска и являются сходящимися для гладких функций, однако точность их невелика, поэтому их естественно использовать для нахождения начального приближения с последующим использованием метода Ньютона. Важно также иметь в виду, что методы спуска могут сходится не к глобальному минимуму, а к одному из локальных (в зависимости от выбора стартовой точки), не отвечающих, разумеется, корням исходной задачи.

1.2 Решение линейных систем

1.2.1 Обусловленность линейных систем, погрешность

При решении абстрактной задачи Ax = b, ãäå A оператор произвольной природы, важным моментом яв-

ляется корректность ее постановки. Задача считается корректной, если решение существует и единственно и, кроме того, решение непрерывно зависит от входных данных (то есть, при b ! 0 ; x также стремится

ê íóëþ).

Однако и непрерывная зависимость от входных данных может иметь свои нюансы. Чем меньшее (большее) изменение решения вызывает вариация входных данных, тем более хорошо (плохо) обусловленной считается задача. Понятие обусловленности является тем более существенным для численных методов, поскольку на практике входные данные известны, как правило, с некоторой погрешностью. Кроме того, существуют ошибки округления, возникающие при вычислениях. Таким образом, формально корректная задача, являясь плохо обусловленной, может оказаться разрешимой столь неточно, что в этом будет отсутствовать практический смысл.

8

Чем можно охарактеризовать количественно обусловленность для линейных систем? Пусть A квадратная N £ N-матрица. Рассмотрим задачу

Ax = b :

Пусть также jj ¤ jj какая-нибудь норма в RN

(например

jj

x =maxi

xi

j

,

 

=

Pj

xi

j

, =

pP

xi2). Норма

оператора A определяется стандартно

 

 

 

 

 

 

 

 

jj

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

M =

jj

A

jj

= max

jjAxjj

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x=0

jj

x

jj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обозначим y = Ax и введем число m по правилу

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m = min

 

Ax

= min

 

jjyjj

 

 

= max

jjA¡1yjj

´

¡1

=

jj

A¡1 ¡1

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x6=0 jjjjxjjjj

y6=0 jjA¡1yjj

³ y6=0

 

 

jjyjj

 

 

 

 

 

jj

 

 

 

 

 

Величина C(A) = M

=

A

A¡1

jj

называется числом обусловленности. Очевидно

 

 

 

 

m

jj

jj ¢ jj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1) C(A) ¸ 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2) C(®A) = C(A);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3) åñëè A диагональная, то C(A) =

i

j

iij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

min jaiij

 

 

(Для какой нормы, или для всех вышеприведенных?).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Чем меньше число обусловленности C(A), тем лучше обусловлена система. Действительно, пусть b

вариация правой части, а x соответствующее изменение решения. Тогда справедливо следующее нера-

венство

jj

xjj

 

C(A)jj bjj

:

 

 

 

 

 

 

·

 

 

 

 

 

 

 

 

 

jjxjj

 

 

 

 

jjbjj

 

 

Доказательство. Имеем: Ax = b, A(x +

x) = b +

b, A

x = b. Òàê êàê

 

m

·

jjA

 

xjj

= jj

bjj

;

 

 

 

jj

xjj

 

 

 

jj

xjj

 

òî jj xjj · m1 jj bjj. Аналогично, поскольку Ax = b , òî jjbjj · Mjjxjj. Объединяя два неравенства, оконча-

тельно получаем

jj xjj

 

M jj bjj

:

 

·

 

jjxjj

 

 

m

 

jjbjj

 

1.2.2 Метод Гаусса

Одним из самых распространенных прямых методов решения систем линейных уравнений Ax = b :

0 a11

a12

¢ ¢ ¢

a1N

10 x1

1

0 b1

1

B a21

a22

¢ ¢ ¢

a2N

CB x2

C

= B b2

C

B

¢ ¢ ¢

¢ ¢ ¢

¢ ¢ ¢

¢ ¢ ¢

CB

¢ ¢ ¢

C

B

¢ ¢ ¢

C

B

CB

C B

C

B

 

 

 

aNN

CB

 

C

B

 

C

B aN1 aN2

¢ ¢ ¢

CB xN

C B bN

C

B

 

 

 

CB

 

C

B

 

C

@

 

 

 

 

A@

 

A

@

 

A

является метод Гаусса. Вначале исходная система приводится к верхнетреугольному виду. Это достигается следующей последовательностью преобразований (прямой ход метода Гаусса). Будем считать для удобства,

что элементы aij исходной матрицы и компоненты вектора bi есть, соответственно, элементы a(1)

ij первого шага преобразованной матрицы A1 и преобразованного вектора b1: A = A1 ; b = b1. Далее, на втором шаге

прибавим к второй строке первую, умноженную на ¡a21 = c21. Аналогично поступим со всеми оставшимися

a11

строками, т.е. прибавим к каждой i-ой строке i = 2; 3; : : : ; N, первую, умноженную на коэффициент i1 =

¡ ai1 b1. Таким образом, a11 . При этом соответственно изменится и вектор

9

2 шаг) Имеем систему уравнений

0

B a(1)11

B

B 0

B

B

B ¢ ¢ ¢

@

0

A2x = b2

:

 

 

 

 

 

 

 

a12(1)

¢ ¢ ¢

a1(1)N

10

x1

1

0

b1(1)

1

 

(2)

(2)

 

(2)

;

a22

¢ ¢ ¢

a2N

CB x2

C

= B b2

C

 

 

 

CB

 

C

B

 

C

 

¢ ¢ ¢

¢ ¢ ¢

¢ ¢ ¢

CB

¢ ¢ ¢

C

B

¢ ¢ ¢

C

 

(2)

 

(2)

CB

 

C

B

(2)

C

 

aN2

¢ ¢ ¢

aNN

CB xN

C

B bN

C

 

 

 

CB

 

C

B

 

C

 

 

 

 

A@

 

A

@

 

A

 

ãäå a(2)ij = a(1)ij + ci1a(1)1j ; b(2)i = b(1)i + ci1b(1)1 ; i ¸ 2 :

a(2)

3 шаг) Прибавим к новой третьей строке новую вторую, умноженную на c32 = ¡a32(2)22 . То же самое сделаем с остальными строками 4 ; 5 ; : : : ; N, т.е. прибавим к каждой i-ой строке вторую, умноженную на

 

ai(2)2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ci2 = ¡

 

; i > 2. При этом получим систему

A3x = b3

:

 

 

 

 

 

 

 

 

 

 

 

 

 

a22(2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

a11(1)

a12(1)

 

a13(1)

 

 

 

a1(1)N

 

 

x1

1

 

 

b1(1)

1

 

 

 

 

 

 

 

0

 

a22(2)

 

a23(2)

¢ ¢ ¢

 

a2(2)N

10 x2

 

0 b2(2)

 

 

 

 

 

 

B

 

0

 

 

 

 

 

(3)

 

¢ ¢ ¢

 

(3)

CB

 

 

 

C

 

B

(3)

C

;

 

 

 

 

 

B

 

 

 

0 a33

¢ ¢ ¢

 

a3N

CB x3

C

= B b3

 

C

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

CB

 

 

 

C

 

B

 

 

C

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

CB

 

 

 

C

 

B

 

 

C

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

CB

 

 

 

C

 

B

 

 

C

 

 

 

 

 

 

B

 

¢ ¢ ¢

 

¢ ¢ ¢

 

 

¢ ¢ ¢

 

¢ ¢ ¢

 

¢ ¢ ¢

CB

¢ ¢ ¢

C B

¢ ¢ ¢

C

 

 

 

 

 

 

B

 

0

 

 

0

 

 

(3)

 

 

 

 

(3)

CB

 

 

 

C

 

B

(3)

C

 

 

 

 

 

 

B

 

 

 

 

aN3

¢ ¢ ¢

aNN

CB xN

C B bN

C

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

CB

 

 

 

C

 

B

 

 

C

 

 

 

 

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

A@

 

 

 

A

 

@

 

 

A

 

aik(k)

 

 

 

 

(k+1)

 

(k)

 

 

 

(k)

 

(k+1)

 

(k)

 

 

 

 

(k)

 

 

 

 

 

(k + 1)-ый шаг) Здесь

aij

 

 

= aij

+ cikakj , bi

 

= bi

+ cikbk , ãäå

cik = ¡

 

; i; j > k.

 

 

 

akk(k)

Поступая так и далее, на (N ¡ 1)-ом шаге получаем верхнетреугольную систему:

0

0

 

a(2)

a(2)

¢ ¢ ¢

 

¢ ¢ ¢

a(2)

10 x2

 

1

 

0 b(2)

1

 

 

 

 

B

a11(1)

a12(1)

a13(1)

 

 

 

 

 

a1(1)N

CB

x1

 

C

 

B

b1(1)

C

 

 

0

 

 

 

0

(3)

¢ ¢ ¢

 

¢ ¢ ¢

(3)

 

 

 

 

 

(3)

 

 

B

 

 

 

a33

 

¢ ¢ ¢

 

¢ ¢ ¢

a3N

CB x3

 

C B b3

C

 

 

B

 

 

 

 

 

22

23

 

 

2N

CB C

= B

 

2

C :

 

 

B

 

 

 

 

 

 

 

 

 

(4)

¢ ¢ ¢

(4)

CB

 

 

 

C

 

B

 

(4)

C

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CB

 

 

 

C

 

B

 

 

C

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CB

 

 

 

C

 

B

 

 

C

 

 

B

¢ ¢ ¢

 

¢ ¢ ¢

¢ ¢ ¢

 

¢ ¢ ¢

 

¢ ¢ ¢

¢ ¢ ¢

CB

¢ ¢ ¢

 

C

 

B

¢ ¢ ¢

C

 

 

B

 

 

 

CB

 

C B

C

 

 

B

0

 

 

 

0

0

 

a44

 

 

 

a4N

CB x4

 

C B b4

C

 

 

B

0

 

 

 

0

0

 

 

 

 

 

 

(N)

CB

 

C B

 

(N)

C

 

 

B

 

 

 

 

¢ ¢ ¢

 

 

0 aNN

CB xN

 

C B bN

C

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CB

 

 

 

C

 

B

 

 

C

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A@

 

 

 

A

 

@

 

 

A

При этом, мы также получили матрицу C переводных коэффициентов, имеющую вид:

 

 

 

 

 

 

 

 

0

0

 

 

0

 

 

0

0

 

¢ ¢ ¢

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B c31

 

 

c32

 

 

0

0

 

¢ ¢ ¢

 

 

0

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B c21

 

 

0

 

 

0

0

 

 

 

0

C

:

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

¢ ¢ ¢

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

c42

 

c43

0

 

 

 

 

 

 

0

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B c41

 

 

 

 

¢ ¢ ¢

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

...

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

¢ ¢ ¢

 

 

¢ ¢ ¢

 

¢ ¢ ¢

¢ ¢ ¢

 

 

¢ ¢ ¢

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

cNN

 

1

 

0

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B cN1 cN2 cN3

¢ ¢ ¢

¡

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

Решение полученной треугольной системы Ux = f

(U = AN ;

f = bN ), как легко видеть, имеет вид

(обратный ход метода Гаусса)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fNN

 

 

 

 

1

 

 

 

i X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xN =

UNN

 

; xk =

 

Ukk

(fk ¡

 

Ukixi) ; k = N ; N ¡ 1 ; : : : ; 1 :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=k+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заметим, что при прямом ходе метода Гаусса может возникнуть ситуация, когда происходит деление на нуль, да и вообще, желательно не делить на малое число, чтобы не накапливалась ошибка. Поэтому метод Гаусса обычно проводят с частичным выбором главного элемента, то есть после каждого шага (пусть это

10