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

algoritm / методи_алгор_обчисл_пр

.pdf
Скачиваний:
11
Добавлен:
21.02.2016
Размер:
202.53 Кб
Скачать

МIНIСТЕРСТВО ОСВIТИ I НАУКИ, МОЛОДI ТА СПОРТУ УКРАЇНИ

Днiпропетровський нацiональний унiверситет залiзничного транспорту iменi академiка В. Лазаряна

Кафедра «Прикладна математика»

АЛГОРИТМИ ТА МЕТОДИ ОБЧИСЛЕНЬ

Методичнi вказiвки до практичних занять з дисциплiни

«Алгоритми та методи обчислень»

Укладачi: Т. Ф. Михайлова

Ю. А. Максименкова I. В. Нечай

Для студентiв зi спецiальностi 7.091501Компьютернi системи та мережi

Днiпропетровськ — 2013

УДК 517.9(076)

Укладачi:

к.ф.-м.н, доц. Михайлова Тетяна Федорiвна, ст.викл. Максименкова Юлiя Анатолiївна, к.ф.-м.н, доц. Нечай Iгор Вiкторович

Рецензенти:

д.-р.т.н., проф. Д.Г. Зеленцов (УДХТУ) к.ф.-м.н, доц. Ю.П. Бабич (ДIIТ)

Алгоритми та методи обчислень: Методичнi вказiвки до практичних занять з дисциплiни Алгоритми та методи обчислень / Днiпропетр. нац. ун- т залiзн. трансп. iм. акад. В. Лазаряна; Укл. : Т. Ф. Михайлова, Ю. А. Максименкова, I. В. Нечай. – Д., 2013. – 36 с.

Методичнi вказiвки мiстять необхiднi вiдомостi з курсу "Алгоритми та методи обчислень". Наведено аналiз типових прикладiв i завдання для самостiйної роботи студентiв.

Методичнi вказiвки призначенi для студентiв II курсу спецiальностi Комп’ютернi системи та мережi .

Iл. 4. Бiблiогр.: - 7 назв.

c Михайлова Т.Ф. та iн., укладання, 2013c Вид-во Днiпропетр.нац.ун-ту залiзн.

трансп. iм.акад. В.Лазаряна

Практична робота № 1

Тема: Методи розв’язання систем лiнiйних алгебраїчних рiвнянь. Мета: Навчитися розв’язувати системи лiнiйних алгебраїчних рiвнянь

вiдомими чисельними методами (метод простої iтерацiї, метод Зейделя) за допомогою ЕОМ .

1. Порядок виконання роботи

1.1.Ознайомитися з основними теоретичними вiдомостями.

1.2.Обрати програмне середовище.

1.3.Розробити та реалiзувати програму на ЕОМ, яка знаходить розв’язки системи рiвнянь одним iз запропонованих методiв .

1.4.Пiдготувати звiт до захисту.

2. Змiст звiту

2.1.Назва i мета практичної роботи.

2.2.Постановка задачi.

2.3.Короткi теоретичнi вiдомостi.

2.4.Текст програми.

2.5.Результати роботи програми.

2.6.Аналiз результатiв i висновки.

Основнi теоретичнi вiдомостi

1. Метод простої iтерацiї.

Розглянемо систему лiнiйних алгебраїчних рiвнянь

Ax = b;

(1)

де A - лiнiйний оператор у скiнченновимiрному просторi Rn, якому вiдповiдає матриця [aij]i;j=1;n,x = (x1; x2; :::; xn)Rn, b = (b1; b2; :::; bn)Rn. Припустимо, що detA ≠ 0 i (1) має єдиний розв’язок x . Зведемо (1) до

вигляду

x = αx + β;

(2)

де α - лiнiйний оператор в Rn, що визначається матрицею [αij]i;j=1;n, β = (β1; β2; :::; βn)Rn, x = (x1; x2; :::; xn)′n Rn. Задаючи початкове набли-

ження x0 = β, кожне наступне наближення знаходимо за формулою

xk+1 = αxk + β; k = 1; 2; :::

(3)

Умови збiжностi методу простої iтерацiї дає теорема

3

Теорема: Якщо норма матрицi α обмежена правильним додатним дробом q ( α ≤ q < 1), то iтерацiйний процес (3) збiгається до точного розв’язку системи x iз швидкiстю геометричної прогресiї зi знаменником q, тобто

xk − x ≤ q x0 − x i правильна оцiнка

 

 

 

 

 

 

 

xk

 

x

 

α k

x1

 

x0

 

:

(4)

 

1 α

 

 

 

 

 

 

 

Систему (1) можна привести до вигляду (2) будь-яким способом, наприклад так: iз k-го рiвняння системи (1)

ak1x1 + ak2x2 + ::: + akkxk + ::: + aknxn = bk

визначимо xk

 

bk

ak1

ak2

− ::: −

akk−1

xk−1 − ::: −

akn

xk =

akk

akk

x1

akk

x2

akk

akk

xn:

Тодi матриця α = [αkj]k;j=1;n i вектор β = [βk]k=1;n в одержанiй системi (2) визначаються так:

α

 

=

{

0; k = j;

(4)

kj

 

akj

 

 

 

 

 

 

 

 

; k ̸= j; (j; k = 1; n):

 

 

 

akk

 

 

 

 

 

β =

bk

 

 

 

 

 

 

 

(k = 1; n):

 

 

 

 

 

 

 

 

 

 

k

 

akk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Враховуючи перетворення (1) до виду (2), умову збiжностi процесу (3) можна сформулювати так: iтерацiйний процес для системи (1) буде збiгатися, якщо дiагональнi елементи матрицi A за абсолютною величиною будуть перевищувати суму абсолютних величин елементiв рядка чи стовпця, тобто

 

n

 

j

̸

 

|akk| >

|akj|;

(5)

 

=1;j=k

 

або

n

 

 

 

k

̸

 

|akk| >

|akj|:

(6)

=1;k=j

Якщо для системи (1) виконана умова збiжностi методу простих iтерацiй, то наближення розв’язку iз заданою точнiстю може бути одержане за скiнченну кiлькiсть p iтерацiй, яку можна визначити, використовуючи оцiнку

(4). Оскiльки початкове наближення x0 є довiльним, то можна покласти

x0 = β, тодi:

x1 = αβ + β x1 − x0 = αβ;

4

 

 

 

 

x1 − x0 = αβ α β ;

 

x

x0

 

α p

 

α β

= α p+1 β :

 

 

 

1 α

 

 

 

1 α

 

Для виконання умови x − xp ε достатньо щоб було

 

 

 

 

 

 

 

 

 

α p+1 β

 

ε

:

 

 

 

 

 

 

 

 

 

 

 

 

 

1

α

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Звiдси одержимо оцiнку для кiлькостi iтерацiй p

 

 

 

 

p

 

lg[ε(1 α )] lg β

1:

 

 

 

 

 

 

 

 

 

lg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α

 

 

 

 

 

 

 

Ця теоретична оцiнка на практицi часто виявляється завищеною.

Приклад 1. Розглянемо систему

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2x + 3x + 4x + x

 

3 = 0;

 

 

 

x1

1 2x2 2

5x3

3+ x4 4 2 = 0;

 

 

 

 

 

 

5x1

3x2+ x3

 

 

4x4

 

 

 

 

 

 

 

 

 

1 = 0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10x1 + 2x2 − x3 + 2x4 + 4 = 0:

Для цiєї системи не виконанi умови (5) i (6), тобто метод простої iтерацiї для еквiвалентної їй системи x = αx + β, побудованої згiдно (4), збiгатись не буде. Зведемо систему до виду, для якого виконуватимуться умови (5) i (6), за допомогою перетворень:

1.рiвняння IV поставимо першим, I= IV ;

2.рiвняння IIнової системи одержимо як II= I − II;

3.рiвняння II поставимо третiм, III= II;

4.рiвняння IV одержимо за правилом IV = 2·III −IV +2·I −II, тобто

2(5x1 3x2 +x3 4x4 1)(10x1 +2x2 −x3 +2x4 +4)+2(2x1 +3x2 +4x3 + x4 3) + (x1 2x2 5x3 + x4 2) = 0 3x1 + 0x2 + 0x3 9x4 10 = 0:

Одержимо систему

 

10x1 2x2 − x3 + 2x4 + 4 = 0;

x1

5x2 + x3

1 = 0;

2 = 0;

x1

2x2

5x3+ x4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9x4 10 = 0;

3x1 + 0x2 + 0x3

5

матриця якої задовольняє умови (5) i (6) збiжностi методу простих iтерацiй, а еквiвалентна їй система має вигляд

 

 

 

 

 

 

 

 

x1 = 0x1 + 0; 2x2 + 0; 1x3 0; 2x4 0; 4;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

= 0; 2x1 + 0; 2x3 0; 2;

 

 

 

 

 

 

 

 

 

 

x3 = 0; 2x1 + 0; 4x2 + 0; 2x4

 

0; 4;

Маємо

 

α

=

 

x4 = 0; 333x1 1; 111:

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max 0; 5; 0; 4; 0; 8; 0; 333 = 0; 8 < 1

 

 

 

 

 

 

 

 

{

}

 

 

 

 

 

 

 

 

 

 

 

 

x0 = {−0; 4; 0; 2; 0; 4; 1; 111}:

Обчислимо вектор x1 = {x11; x21; x31; x41}.

 

 

 

 

 

 

 

x11 = 0 · x10 + 0; 2 · x20 + 0; 1 · x30 0; 2 · x40 0; 4 = 0; 2578;

 

 

 

 

 

 

 

 

x21 = 0; 2 · x10 + 0; 2 · x30 0; 2 = 0; 2;

 

 

 

 

 

x31 = 0; 2 · x10 + 0; 4 · x20 + 0; 2 · x40 0; 4 = 0; 6222;

 

 

 

 

 

 

 

 

x41 = 0; 333 · x10 1; 111 = 0; 9778:

Тодi

x1

x0

 

= max 0; 1422; 0; 0; 2222; 0; 1332 =0,2222. Отже кiлькiсть

 

 

 

 

 

 

{

}k

крокiв k потрiбно вибрати iз спiввiдношення

0;8

· 0; 2222 > 0; 001, або

10;8

0; 8k < 0; 0009, звiдки k = 32.

2.Метод Зейделя є модифiкованим методом простої iтерацiї. Як i у попередньому випадку систему (1) потрiбно звести до виду (2). Для простоти подальших викладок запишемо систему (2) у розгорнутому виглядi

n

 

 

 

j

 

 

 

xi =

αijxj + βi (i = 1; n):

=1

 

 

 

Задаючи початкове наближення x0 = (x01; x02; :::; x0n), координати наступних

наближень одержимо за формулами:

 

 

 

 

 

 

x1k+1

 

 

 

 

n

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

= j=1 αijxjk + β1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k+1

 

 

k+1

 

 

 

 

k

 

 

 

 

= α21x

+

 

 

 

+

β

x

2

1

 

 

 

α2jx

 

 

 

 

 

 

 

 

 

j

k

2

 

 

 

 

 

 

 

 

j=2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

· · ·

 

 

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k+1

i

1

 

k+1

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= αijx

 

 

 

+ αijx + β ;

 

 

 

 

 

 

x

 

 

 

 

 

 

i

 

 

 

j

 

 

 

 

j

i

 

 

 

 

 

 

 

 

 

 

 

 

j=1

 

 

 

 

 

=i

 

 

 

 

· · ·

n

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k+1

 

 

k+1

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

= αijxj

 

+ αnnxn + βn:

 

 

 

 

xn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j=1

 

 

 

 

 

 

 

 

 

6

Тобто для визначення кожної координати (k+1)-го наближення використовується вся iнформацiя про k-те i (k + 1)-е наближення. Метод Зейделя можна iнтерпретувати як метод покоординатного спуску.

Достатнi умови збiжностi методу Зейделя тi самi, що i методу простих iтерацiй (5) i (6). У бiльшостi випадкiв метод Зейделя дає швидшу збiжнiсть у порiвняннi з методом простих iтерацiй.

Приклад 2. Розглянемо систему

4; 5x1 1; 8x2 + 3; 6x3 = 1; 7

3; 1x1 + 2; 3x2 1; 2x3 = 3; 6 1; 8x1 + 2; 5x2 + 4; 6x3 = 2; 2:

Зробимо елементарнi перетворення i приведемо систему до вигляду, який задовольняє умовам (5) i (6). Отримаємо систему

x1 = 0; 24x1 0; 05x2 0; 24x3 + 0; 19;

x2 = 0; 22x1 + 0; 09x2 0; 44x3 + 0; 97; x3 = 0; 13x1 0; 02x2 + 0; 42x3 0; 14:

Розв’яжемо цю систему рiвнянь методом Зейделя з точнiстю до ε = 0:001. Для цiєї системи α = max{0; 53; 0; 77; 0; 57} = 0; 77 < 1. Отже, процес Зейделя збiгається.

x11 = 0; 19; x02 == 0; 97; x03 = 0; 14; x01 = 0; 2207;

x12 = 0; 22x11 + 0; 09x02 0; 44x03 + 0; 97 = 1; 0703; x13 = 0; 13x11 0; 02x12 0; 42x03 0; 14 = 0; 1915:

Результати обчислень помiстимо в таблицi

Таблиця 1

k

x1

x2

x3

k

x1

x2

x3

0

0,19

0,97

-0,14

5

0,2467

1,1138

-0,2237

1

0,2207

1,0703

-0,1915

6

0,2472

1,1143

-0,2241

2

0,2354

1,0988

-0,2118

7

0,2474

1,1145

-0,2243

3

0,2424

1,1088

-0,2196

8

0,2475

1,1145

-0,2243

4

0,2454

1,1124

-0,2226

 

 

 

 

Таким чином, x1 0; 248 , x2 1; 115 , x3 ≈ −0; 224.

7

Для розв’язку систем лiнiйних алгебраiчних рiвнянь (1) можна застосовувати i точнi методи: метод Гаусса, метод оберненої матрицi

x= A1b

увипадку, коли визначник det A ≠ 0.

Для виконання лабораторної роботи доцiльно використати пакет Maple 8.

Завдання для самостiйної роботи

Привести (якщо потрiбно) систему до вигляду, придатного для iтерацiй та розв’язати її з точнiстю 0; 001 методом простої iтерацiї або методом Зейделя.

Варiант 1

 

Варiант 6

 

 

 

2; 7x1 + 3; 3x2 + 1; 3x3 = 2; 1

 

7; 6x1 + 5; 8x2 + 4; 7x3 = 10

3; 5x1 1; 7x2 + 2; 8x3 = 1; 7

3; 8x1 + 4; 1x2 + 2; 7x3 = 9; 7

 

 

 

 

 

 

 

 

4; 1x1 + 5; 8x2 1; 7x3 = 0; 8:

2; 9x1 + 2; 1x2 + 3; 8x3 = 7; 8:

Варiант 2

 

Варiант 7

 

 

 

1; 7x1 + 2; 8x2 + 1; 9x3 = 0; 7

0; 9x1 + 2; 7x2 3; 8x3 = 2; 4

2; 1x1 + 3; 4x2 + 1; 8x3 = 1; 1

2; 5x1 + 5; 8x2 0; 5x3 = 3; 5

 

 

 

 

 

 

 

 

4; 2x1 1; 7x2 + 1; 3x3 = 2; 8:

4; 5x1 2; 1x2 + 3; 2x3 = 1; 2:

Варiант 3

 

Варiант 8

 

 

 

5; 4x1 2; 3x2 + 3; 4x3 = 3; 5

 

9; 1x1 + 5; 6x2 + 7; 8x3 = 9; 8

4; 2x1 + 1; 7x2 2; 3x3 = 2; 7

3; 8x1 + 5; 1x2 + 2; 8x3 = 6; 7

 

 

 

 

 

 

 

 

3; 4x1 + 2; 4x2 + 7; 4x3 = 1; 9:

4; 1x1 + 5; 7x2 + 1; 2x3 = 5; 8:

Варiант 4

 

Варiант 9

 

 

 

4; 5x1 3; 5x2 + 7; 4x3 = 2; 5

2; 7x1 + 0; 9x2 1; 5x3 = 3; 5

3; 1x1 0; 6x2 2; 3x3 = 1; 5

4; 5x1 2; 8x2 + 6; 7x3 = 2; 6

 

 

 

 

 

 

 

 

0; 8x1 + 1; 3x2 + 3; 7x3 = 1; 2:

5; 1x1 + 3; 7x2 1; 4x3 = 0; 14:

Варiант 5

 

Варiант 10

 

 

 

3; 3x1 + 3; 7x2 + 4; 2x3 = 5; 8

 

3; 8x1 + 6; 7x2 1; 2x3 = 5:2

2; 7x1 + 2; 3x2

2; 9x3 = 6; 1

6; 4x1 + 1; 3x2 2; 7x3 = 3:8

 

4; 1x1 + 4; 8x2

5; 0x3 = 7; 0:

 

2; 4x1

4; 5x2 + 3; 5x3

= 0:6:

 

 

 

 

 

8

Варiант 11

7; 8x1 + 5; 3x2 + 4; 8x3 = 1; 8

3; 3x1 + 1; 1x2 + 1; 8x3 = 2; 3 4; 5x1 + 3; 3x2 + 2; 8x3 = 3; 4:

Варiант 12

3; 8x1 + 4; 1x2 2; 3x3 = 4; 8

2; 1x1 + 3; 9x2 5; 8x3 = 3; 3 1; 8x1 + 1; 1x2 2; 1x3 = 5; 8:

Варiант 13

3; 8x1 + 8; 7x2 + 1; 2x3 = 5; 2

6; 4x1 + 4; 3x2 2; 7x3 = 8; 8 3; 4x1 4; 5x2 + 3; 5x3 = 6; 6:

Варiант 14

3; 6x1 + 1; 8x2 4; 7x3 = 3; 8

2; 7x1 3; 6x2 1; 9x3 = 0; 4 1; 5x1 + 4; 5x2 + 3; 3x3 = 1; 6:

Варiант 15

3; 2x1 11; 5x2 + 3; 8x3 = 2; 8

0; 8x1 + 1; 3x2 6; 4x3 = 6; 5 2; 4x1 + 7; 2x2 1; 2x3 = 4; 5:

Варiант 16

5; 4x1 2; 4x2 + 3; 8x3 = 2; 8

2; 5x1 + 6; 8x2 1; 1x3 = 4; 3 2; 7x1 0; 6x2 + 1; 5x3 = 3; 5:

Варiант 17

9; 8x1 + 5; 3x2 + 4; 8x3 = 1; 8

3; 3x1 + 1; 1x2 + 1; 8x3 = 2; 3 4; 5x1 + 3; 3x2 + 2; 8x3 = 0; 4:

Варiант 18

5; 8x1 + 4; 1x2 2; 3x3 = 1; 8

2; 1x1 + 3; 9x2 5; 8x3 = 3; 3 0; 8x1 + 1; 1x2 2; 1x3 = 5; 8:

Варiант 19

1; 5x1 + 2; 3x2 3; 7x3 = 4; 5

2; 8x1 + 3; 4x2 + 5; 8x3 = 3; 2 1; 2x1 + 7; 3x2 2; 3x3 = 5; 6:

Варiант 20

2; 4x1 + 3; 7x2 + 8; 3x3 = 2; 3

1; 8x1 + 4; 3x2 + 1; 2x3 = 1; 2 3; 4x1 2; 3x2 + 2; 5x3 = 3; 5:

Варiант 21

10; 2x1 11; 5x2 + 3; 8x3 = 2; 8

0; 8x1 1; 3x2 6; 4x3 = 6; 5 2; 4x1 + 7; 2x2 1; 2x3 = 4; 5:

Варiант 22

5; 4x1 2; 4x2 + 3; 8x3 = 1; 8

2; 5x1 + 6; 8x2 1; 1x3 = 4; 3 2; 7x1 + 0; 6x2 + 1; 5x3 = 1; 5:

Варiант 23

2; 4x1 + 2; 5x2 2; 9x3 = 4; 5

0; 8x1 + 3; 5x2 1; 4x3 = 3; 2 1; 5x1 2; 3x2 + 8; 6x3 = 5; 5:

Варiант 24

0; 8x1 + 0; 6x2 + 0; 8x3 = 2; 2

0; 1x1 + 0; 7x2 0; 1x3 = 1; 4 0; 1x1 0; 4x2 + 0; 8x3 = 1; 6:

Варiант 25

0; 9x1 + 2; 7x2 3; 8x3 = 2; 4

2; 5x1 + 5; 8x2 0; 5x3 = 3; 5 4; 5x1 2; 1x2 + 3; 2x3 = 1; 2:

9

Практична робота № 2

Тема: Розв’язання нелiнiйних рiвнянь та систем методом простої iтерацiї.

Мета: Навчитися розв’язувати алгебраїчнi та трансцендентнi рiвняння та системи методом простої iтерацiї за допомогою ПЕОМ .

1. Порядок виконання роботи

1.1.Ознайомитися з основними теоретичними вiдомостями.

1.2.Обрати програмне середовище.

1.3.Розробити та реалiзувати програму на ЕОМ, яка знаходить розв’язки нелiнiйних рiвнянь та систем методом простої iтерацiї.

1.4.Пiдготувати звiт до захисту.

2. Змiст звiту

2.1.Назва i мета практичної роботи.

2.2.Постановка задачi.

2.3.Короткi теоретичнi вiдомостi.

2.4.Текст програми.

2.5.Результати роботи програми.

2.6.Аналiз результатiв i висновки.

Основнi теоретичнi вiдомостi

Метод простої iтерацiї

Нехай задана система нелiнiйних рiвнянь

 

 

f1

(x1

; x2; :::; xn) = 0

 

 

 

 

 

 

f2

(x1

; x2; :::; xn) = 0

 

 

· · ·

 

 

 

 

 

 

 

fn(x1; x2; :::; xn) = 0;

яку можна записати у

виглядi

 

 

 

 

 

F (x) = 0:

(1)

(2)

Припустимо, що система (1) допускає лише iзольованi коренi. Функцiї f1(x1; x2; :::; xn); : : : ; fn(x1; x2; :::; xn) неперервно диференцiйованi в Rn, де

x= (x1; x2; :::; xn) X Rn, F оператор в Rn(D(F ) = X), що переводить

xв нуль простору Rn.

Для того щоб систему (1) можна було роз’вязати методом простої iтерацiї необхiдно звести до вигляду

10

Соседние файлы в папке algoritm