Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 1 Основы программирования

____________________________________________________________________

a33 a33 m3a13

b3 b3 m3b1

Уравнение (3) приобретает вид:

a32 x2 a33 x3 b3

(5)

И исходная система (1.21) теперь имеет вид:

a11x1+a12x2+a13x3=b1

(1)

 

a22 x2

a23 x3

b2

(4)

(1.28)

a32 x2

a33 x3

b3

(5)

 

Эти новые уравнения эквивалентны исходным, с тем преимуществом, что

x1 не входит ни во второе, ни в третье уравнение системы.

 

Попытаемся теперь исключить x2 из уравнений (4) и (5).

 

Если a22 0 , то мы вновь снова переставим местами уравнения, так чтобы

a22 0 . Если же a22

0 и a32

0 , то система вырождена и либо не имеет ре-

шения, либо имеет бесконечное множество решений. Введем новый множитель

m

 

a3 2

. Умножим его на (4) и вычтем его из (5)

 

3

a2 2

 

 

 

 

 

 

 

 

 

 

 

(a32 m3 a22 )x2 (a33 m3a23 )x3 b3 b2 m3

(1.29)

В силу выбора m3

a32 m3 a22 0

a33 a33 m3 a23

(1.30)

b3 b3 b2 m3

Уравнение (1.29) запишется в виде

41

1.3 Примеры разработки алгоритмов

____________________________________________________________________

a33 x3 b3

(1.31)

Уравнение (1.29) можно заменить уравнением (1.31).

Система (1.21) приобретает вид:

a11x1+a12x2+a13x3=b1

(8)

 

a22 x2 a23 x3

b2

(9)

(1.32)

a33 x3

b3

(10)

 

Решение этой системы совершенно очевидно.

x3

b3

a33

 

 

 

 

x2

a23 x3

 

(1.33)

 

 

 

 

b2

 

 

 

 

 

 

 

a22

 

 

 

 

x1

b1

a12 x2 a13 x3

 

 

 

 

 

 

a11

 

 

 

 

 

 

 

 

Для

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

a11, a22 , a33

были не равны 0? Чтобы не было деления на 0!

 

Пример:

 

 

 

 

 

 

 

 

x

y

z

4

 

 

 

 

 

 

2x

3y

 

z 9

 

 

 

(1.34)

x

y

z

2

 

 

 

 

 

 

Умножим первое уравнение (1.34) на 2 и вычтем из 2-го уравнения. Затем первое уравнение умножим на 1 и вычтем из 3-го. Получим систему, эквива-

42

Глава 1 Основы программирования

____________________________________________________________________

лентную (1.34).

x

y

z

4

y

z

1

(1.35)

 

2 y

2z

6

Умножив второе уравнение (1.35) на (-2) и вычтя его из 3-го уравнения получаем

x y z 4

y z 1

(1.36)

4z 4

Отсюда решением этой системы будет: x 1

y 2 z 1

Обобщим этот метод на случай системы из n уравнений с n неизвестными

a11 x1

a12 x2

...

a1n xn

b1

 

a21 x1

a22 x2

...

a2n xn

b2

(1.37)

………………………………………………

 

an1 x1

 

an 2 x2 ...

ann xn

bn

 

Предполагается в силу расположения уравнений a11 ≠0. Введем n-1

множителей:

 

 

 

 

 

 

m

ai1

,

i = 1, 2, 3, … n

(1.38)

 

i

a11

 

 

 

 

 

 

 

 

 

И вычтем из каждого i-го уравнения первое, умноженное на mi. Обозначим

aij aij mi a1 j ,

43

1.3 Примеры разработки алгоритмов

____________________________________________________________________

bi bi mi b1

,

 

 

 

(1.39)

i=2, 3, …, n,

j=1, 2, …, n

 

 

Для всех уравнений, начиная со 2-го ai1 =0, i=2, 3, … n

 

Получим систему

 

 

 

 

 

 

a11 x1

a12 x2

...

a1n xn

b1

 

0 a22 x2

...

a2n xn

b2

(1.40)

………………………………………………

 

 

0

an 2 x2

...

ann xn

bn

 

Продолжая таким образом, мы можем исключить x2 из последних n-2

уравнений, x3 из последних n-3 уравнений и т.д. На некотором k-ом этапе мы исключим xk с помощью множителей.

 

(k 1)

a (k 1)

i=k+1,…n

 

(1.41)

 

mi

akk (k 1) ,

 

 

 

ik

 

 

 

 

 

Причем

 

 

 

 

 

 

 

 

a( k 1)

0 ,

 

 

 

 

 

 

 

kk

 

 

 

 

 

 

 

 

a(k )

a(k 1)

m(k 1) a

(k 1)

 

 

 

 

ij

ij

i

kj

 

 

 

 

b( k )

b( k 1)

m( k 1)b( k 1)

 

 

 

 

i

i

i

k

 

 

 

 

где i = k+1, k+2,…, n;

j = k,…, n;

k = 1,…, n-1

 

Окончательно треугольная система уравнений записывается следующим

образом.

 

 

 

 

 

 

 

 

 

 

a11 x1

a12 x2

...

a1n xn

b1

 

 

 

 

a22 x2

...

a2n xn

b2

(1.42)

44

Глава 1 Основы программирования

____________________________________________________________________

……………………….

 

 

 

 

 

 

 

 

 

 

 

 

a( n

1) x

 

b( n 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

nn

 

n

n

Обратная подстановка для нахождения значений неизвестных задается

формулами:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn

b( n

1)

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a ( n

1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b( n 2)

a( n

2)

 

x

 

 

 

 

 

 

 

 

xn 1

 

 

n 1

n 1,n

 

 

n

 

 

 

 

 

(1.43)

 

 

 

 

a( n 2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1,n 1

 

 

 

 

 

 

 

 

 

 

 

 

b( j

1)

 

a( j 1)

x

j

 

 

... a( j 1)

x

j 1

 

 

 

 

x j

j

 

 

j ,n

 

 

 

j , j 1

 

,

j=n-2, n-3,…,1

 

 

 

 

 

a jj

( j 1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок-схема алгоритма показана на рис. 1.12.

Здесь, чтобы не загромождать блок-схему, мы предположили, что коэффи-

циенты системы уже введены. В этой блок-схеме неясно только одно – что зна-

чит переставить уравнение, как это сделать?

Оказывается, что если переставить уравнения таким образом, чтобы коэф-

фициент при xk был наибольшим, то ошибки округления будут минимальными.

Этот коэффициент называется главным элементом. И перестановка уравнений c

выбором главного элемента называется методом главных элементов, рис. 1.13.

45

Смотрите также:

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773