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

Куликов С.П., Самохин А.Б., Чердынцев В.В. Учебное пособие

.pdf
Скачиваний:
434
Добавлен:
02.05.2014
Размер:
554.54 Кб
Скачать

31

b

 

 

x + L

 

Рассматривается интеграл вида I =

 

 

dx , где

x

2

+ x + K

a

 

 

a = (K L) / 2, b = K + L , значения K, L даны в табл. 4.3, n = 4,6,8. Точное значение интеграла равно:

 

L

1

 

 

 

x +

1

 

 

 

 

b

 

 

 

 

 

I =

1

ln(x2 + x + K ) +

2

 

 

arctg

2

 

 

 

 

.

2

 

 

 

 

 

 

 

 

 

 

 

 

 

K

1

 

K

 

1

 

 

 

 

 

 

 

 

 

a

4

 

 

4

Сравнить его со значениями, полученными методом трапеций (4.3.1), методом парабол (4.5.1), методом Гаусса (4.7.1), коэффициенты этого метода приведены в табл. 4.1

Таблица 4.1

 

i

ti

Ai

 

1,4

m 0,861136

0,347854

n=4

2,3

m 0,339981

0,652145

 

1,6

m 0,932464

0,171324

n=6

2,5

m 0,661209

0,360761

 

3,4

m 0,238619

0,467913

 

1,8

m 0,960289

0,101228

n=8

2,7

m 0,796666

0,222381

 

3,6

m 0,525532

0,313706

 

4,5

m 0,183434

0,362683

Результаты расчетов свести в табл. 4.2:

Таблица 4.2

n

4

6

8

Itr

Ipar

Ig

Построить график зависимости величины интегралов от n, на который нанести результаты расчетов и точное значение интеграла. Оценить качественно скорость сходимости различных методов.

32

Таблица 4.3

1

2

3

4

5

6

7

8

K

3,2

3,4

3,6

3,8

4,0

2,2

2,4

2,6

L

1,6

1,8

2,0

2,2

2,4

1,2

1,4

1,6

9

10

11

12

13

14

15

16

K

2,8

3,0

1,2

1,4

1,6

1,8

4,2

4,4

L

1,8

2,2

0,8

1,0

1,2

1,4

3,2

3,4

5. Численные методы линейной алгебры.

Рассматриваются численные методы решения систем линейных алгебраических уравнений (СЛАУ), а также нахождения собственных значений и собственных векторов матриц.

5.1. Численное решение СЛАУ.

СЛАУ используются во многих областях науки и техники и являются наиболее часто встречающимся типом задач вычислительной математики. В общем виде СЛАУ из n уравнений с n неизвестными записывается в виде:

r

 

 

 

A x=b

 

 

(5.1)

Здесь x - неизвестный вектор решения, b - заданный вектор

в n -мерном пространстве, а

 

 

 

a

a

a

 

1,1

1,2

1,n

A = a2,1

a2,2

a2,n -

 

an,2

 

 

an,1

an,n

линейный оператор в этом пространстве, заданная матрица размером n n или в другом виде A = {ai, j }, i, j =1,2,...,n.

Доказывается, что если определитель матрицы не равен нулю, то СЛАУ имеет единственное решение. Ниже будем полагать, что это условие выполняется. Однако, отличие определителя A от нуля и даже весьма отдаленное от нуля его значение не могут служить гарантией того, что решение СЛАУ будет найдено

33

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

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

В качестве примера плохо обусловленной системы можно привести СЛАУ с почти линейно зависимыми строками (столбцами) в матрице. Плохо обусловленным алгоритмом для решения СЛАУ можно назвать метод Гаусса без выбора главного элемента

(см.5.2).

Для характеристики обусловленности задачи вводят, так называемое, число обусловленности K . Для СЛАУ в качестве числа обусловленности можно принять

K = A A−1 .

Здесь - какая-либо норма в пространстве n -мерных век-

торов, которая выражается через норму вектора следующим образом:

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A x

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

= max

 

 

 

 

 

 

 

 

 

 

= max

 

 

 

A x

 

 

 

 

 

r

 

 

 

 

 

 

 

 

r

 

0

 

 

 

 

 

 

 

r

=1

 

 

 

 

 

 

 

 

x

 

 

 

x

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Пусть решение x СЛАУ получено с относительной ошибкой δx . Тогда для нее справедлива оценка:

r

δx <≈ маш.

34

Здесь ε маш. - машинная константа – наименьшее число, которое

при прибавлении к единице ещё изменяет её значение в машинном представлении. Отметим, что оценка справедлива для малых

ошибок в заданной матрице K

 

A

 

/

 

 

A

 

<1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введём понятие невязки h решения:

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

h = A x b

 

 

r

 

 

 

(5.2)

Заметим, что малость невязки

 

h

 

< ε

 

 

 

,

ε <<1

не гарантирует

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

малость относительной ошибки

δx

 

в решении. Так, для относи-

тельной невязки выполняется соотношение

h

r <≈ A ε маш. ,

x

в то время как для δx справедливо:

 

r

 

 

 

<≈

 

A−1

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

δx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Норма обратной матрицы для плохо обусловленной СЛАУ велика, также как и число обусловленности K , характеризующее в этом случае близость матрицы к вырожденной (сингуляр-

ной), для которой A−1.

Существуют два основных класса методов для решения СЛАУ – прямые и итерационные. Прямые методы характеризуются тем, что при абсолютной точности вычислений (на гипотетической бесконечноразрядной ЭВМ) точное решение СЛАУ может быть получено с помощью конечного числа арифметических операций. Итерационные методы характеризуются тем, что даже при абсолютной точности вычислений за конечное число арифметических операций может быть получено лишь приближенное решение системы, хотя возможно и как угодно близкое к точному. Однако при реальных вычислениях на ЭВМ указанное различие теряет свой смысл и для многих задач итерационные методы оказываются более предпочтительными, чем прямые в

35

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

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

5.2 Прямые методы решения СЛАУ

Количество операций при решения системы ~ n3 . Матрица A либо неявно обращается, либо представляется в виде произведения матриц удобных для обращения.

В первом случае матрица Aпоследовательно преобразуется с помощью элементарных (эквивалентных) преобразований:

1.Перестановка столбцов и строк.

2.Умножение столбцов и строк на число.

3.Прибавление к строке (столбцу) другой строки, умножен-

ной на число.

Каждое элементарное преобразование можно представить в виде матрицы Li , в результате последовательного умножения A на Li , она преобразуется в единичную матрицу:

Ln..L2 L1 A x = Ln..L1b

5.2.1 Метод Гаусса (Метод исключений)

Формально, метод Гаусса основан на последовательном применении матриц

 

1

0

0

 

 

 

 

 

 

aij

 

 

 

 

 

 

 

 

1

 

= −

0

l

ii

0

; lii

=

 

; lij

 

 

 

(5.2.1.1)

Li =

 

 

 

 

 

 

 

0

lij

0

 

 

 

aii

 

aii

 

0

lni

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

36

Пример для матрицы (3 × 3):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a11− 1

0 0

 

a

11

a

12

 

 

a

13

 

 

 

 

a

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 0

a

21

a 22

 

 

a 23

=

a11

 

 

 

 

 

 

 

 

 

 

 

 

 

a 32

 

 

a 33

 

 

 

a 31

0

 

 

1

 

 

a 31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a12

 

 

 

 

 

 

 

a13

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a11

 

 

 

 

 

 

 

a11

 

 

 

 

0

 

a 22

 

a

12

 

 

a

21

 

 

a 23

 

a

21

a

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a11

 

 

 

 

 

a11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

a 32

 

a12

 

a 31

 

a 33

 

a13 a

31

 

 

 

 

 

a11

 

 

 

 

 

a11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Действие матрицы Li

преобразуют элементы i -го столбца мат-

рицы A ниже диагонали в нулевые (т.е. исключают их).

5.2.2Вычислительная схема метода Гаусса.

Вкаждом уравнении выделяется ведущий элемент, на который производится деление; пусть это будет a11. Делим первое урав-

нение на a11:

 

a1 j

 

 

b

c1 j =

 

g1

=

1

a11

a11

 

 

 

Все остальные элементы преобразуются по схеме:

aij(1)

 

a1 j

 

( )

 

b

 

= aij ai1

 

;

bi 1

= bi ai1

1

(5.2.2.1)

a

a

 

11

 

 

 

11

 

37

x1 + c12 x2 + ... + c1n xn = g1

 

a22(1)x2 + ... + a2(1n)xn = b2(1)

 

................................

 

 

 

 

 

 

(1)

(1)

(1)

 

an2 x2

+ ... + ann xn = bn

На втором шаге ведущим элементом выбирается a22(1) , на него

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

 

 

 

 

 

 

c2 j =

 

c2(1j)

 

; g2

=

b2(1)

;

 

 

 

 

 

 

 

 

 

 

 

( )

a

(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

 

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5.2.2.2)

 

(

 

)

 

( )

 

( )

 

a2(1j)

 

 

(2)

 

 

 

(1)

 

(1)

 

b(1)

 

a

 

2

 

= a

1

a

1

 

 

 

 

; b

 

= b

 

a

 

 

2

;

 

 

 

 

 

 

 

i2

( )

ij

 

ij

i2

( )

 

 

 

 

 

 

 

 

 

 

i

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

a 1

 

 

 

 

 

 

 

 

 

 

a 1

 

 

 

 

 

 

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

22

 

Элементы во втором столбце с i > 2 становятся равны 0. В результате таких преобразований, мы приходим к верхней треугольной матрице с единичной диагональю:

1

c12 ...

 

 

 

0

1

...

... ... ...

 

 

 

 

0

...

0

c1n c 2 n

...

1

 

 

x

1

 

 

 

 

 

 

 

 

x 2

 

 

 

...

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

x n

 

 

g1

g 2...

g n

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

Далее следует обратный ход: начиная с xn , последовательно вычисляются компоненты вектора:

xn = gn ; xn−1 = gn−1 cn−1,n xn ;

38

 

n

 

xk = gk cki xi , k = n, n − 1,K,1.

(5.2.2.3)

i=k +1

В машинных расчетах в качестве ведущего элемента обычно выбирается максимальный элемент i - го столбца с j > i или

строки aij с i > j .

Эта строка (или столбец) переставляются на место i -ой строки (столбца). Такой выбор уменьшает ошибки округления. При ручных расчетах элементы матрицы записываются вместе с элемен-

тами вектора b в расширенную матрицу:

a

 

a

 

a

 

b

 

 

 

 

 

11

 

12

 

13

1

 

a

21

a 22

a 23

b2

 

 

 

a 32

a 33

b3

 

a 31

 

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

 

 

i

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

aii

 

 

 

 

ait

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

aki

 

 

 

 

akt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пусть aij - ведущий элемент, тогда

 

 

 

 

a

(1)

= a

kt

aki ait

.

(5.2.2.4)

 

 

kt

 

 

 

 

 

 

 

aii

 

 

 

 

 

 

 

 

 

 

 

 

 

39

Из преобразуемого элемента вычитается произведение элементов, стоящих на побочной диагонали, деленное на ведущий элемент.

 

 

 

 

 

 

 

5.2.3 Ортогонализация матриц

 

 

 

 

Матрица называется ортогональной, если

 

A AT = D

, D

- диагональная матрица,

т.е. в ней отличны от нуля только диа-

гональные элементы, если A AT = E , то

 

A - ортонормированная

матрица. Любая неособенная матрица A может быть представле-

на в виде: A = R T , R - ортогональная, а T – верхняя треугольная

матрица с единичной диагональю.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим матрицу А, как набор вектор – столбцов ai ,

 

 

 

r

 

r

 

 

 

r

 

 

 

r

линейно независимы, т.к. det A ≠ 0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = [a1

 

a2

K

an ] -

вектора ai -

Выберем первый столбец матрицы

 

 

 

r

 

 

 

 

 

r

r

r

 

R -

r1

, равным a1 ;

ri

= a1 .

 

 

 

 

 

 

r

 

r

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

r

 

по-

Запишемa2

 

= t12r1 + r2 ,

условие ортогональности R (r1

, r2 ) = 0

зволяет получить t12 :

 

 

 

 

 

 

 

 

 

 

 

r

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r r

 

 

r r

 

 

 

 

 

 

(r1, a2 )

 

 

 

 

 

 

 

 

 

 

(r1

, a2 ) = t12 (r1 , r1 ), t12 =

r r

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

r

 

(r1, r1 )

 

 

 

 

следовательно, известен и вектор

 

 

 

 

r

 

Аналогичным

r2 = a2

t12 r1 .

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

r

 

 

 

 

 

r

 

 

 

r

 

 

 

образом представляется и a3 = t13

r1 + t23 r2

+ r3 , где

 

 

 

 

 

 

 

 

 

 

 

 

t13

=

(r1 , a3 )

, t23

=

 

(r2

, a3 )

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r r

 

 

 

r r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(r1 , r1 )

 

 

 

 

(r2

, r2 )

 

 

 

 

 

 

 

В общем случае получим выражения:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

k −1

 

 

 

 

 

 

 

(ri

, ak

)

 

 

 

 

 

 

 

 

 

 

 

 

= ak tik ri , tik

=

 

.

 

 

(5.2.3.1)

 

 

 

 

 

 

 

rk

 

 

r

r

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i =1

 

 

 

 

 

 

 

(r1i , ri

 

 

 

 

 

 

Покажем, что tik - элементы матрицы Т .

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

 

a1

= r1

r

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

= t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

r

+ r

 

 

, или иначе:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r2

12

r1

2

r

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a3 = t13 r1 + t23 r2

+ r3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

KKKKKKKKK

40

a11

a21a31K

a12 a13

a22 a23

a32 a33

KK

K r11

K = r21

K r31

K K.

r12

r13

K 1

t12

t13

K

r22

r23

K 0

1

t23

K

r32

r33

K 0

0

1 K.

K.

K.

K K.

K.

K .K

5.2.4 Решение системы уравнений методом ортогонализации

Оптимальной является следующая схема, основанная на

свойствах вектора r . Запишем систему

 

r

= b в виде:

A x

r

r

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a1 x1 + a2 x2 + K + an xn = b

 

 

 

 

 

 

 

 

 

 

 

 

 

Из структуры векторов r

следует, что(ri , a j )= 0 ,

 

 

 

(iПродифференцируем соотношение дважды по h :

 

 

 

 

 

Система линейных уравнений умножается слева на RT в резуль-

тате из

r

= R T

r

 

получим

 

r

= D −1 RT b - далее ком-

A x

x = b

 

T x

поненты x получаются обратным ходом метода Гаусса, т.к. Т

верхняя треугольная матрица.

 

 

 

 

 

 

 

 

 

 

 

 

 

Продифференцируем соотношение дважды по

h :

 

 

 

 

 

 

Система линейных уравнений умножается слева на RT в резуль-

тате из

r

= R T

r

 

получим

 

r

= D −1 RT b - далее ком-

A x

x = b

 

T x

поненты x получаются обратным ходом метода Гаусса, т.к. Т

верхняя треугольная матрица.

 

 

 

 

 

 

 

 

 

 

 

 

 

<j). Домножаем систему слева на rn :

 

r

 

 

 

 

 

 

 

r

r

r

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

rn (a1

x1 + a

2 x2 + K + an

xn ) = rn b ,

 

 

r

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

r

r

 

 

 

 

в уравнении остается одно слагаемое: (rn an ) xn

=

(rn b ).

 

 

 

 

 

 

 

 

 

r

, b )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn

=

 

n

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(rn , an )

 

 

r

b )

 

 

 

 

r

r

 

 

 

 

 

 

r

 

r

 

(r

 

r

(1)

 

a x + K + a

 

 

x

 

 

= b a

 

n

 

 

 

= b

 

n−1

n−1

 

r

r

 

)

 

 

 

1 1

 

 

 

 

 

 

n

(r a

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n