Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Chiselni_metodi_za_dopomogoyu_Excel.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
8.81 Mб
Скачать

§ 4. Метод простої ітерації для слр

Поширені методи розв’язування СЛР можна поділити на дві групи: точні й ітераційні. Точними називають такі методи, які дають змогу знайти точний розв’язок у припущенні, що всі обчислення проводяться без округлень, а коефіцієнти – точні числа. Тобто це такі методи обчислень, які не мають похибки методу. Прикладом точного методу є метод Гаусса, правило Крамера тощо. Ітераційними називають такі методи, які дають змогу знайти тільки наближений розв’язок системи із заздалегідь указаною точністю, хоч самі обчислення можуть проводитись і без округлень. Іншими словами, це методи, де крім похибок округлення треба враховувати також похибку метода.

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

В ітераційних методах (або методах послідовних наближень) завжди формують послідовність хn наближень, де кожне наступне обчислюється з попередніх за певним (рекурентним) правилом; наближення хn збігаються до точного значення розв’язку. Але ж найчастіше в таких методах рівняння чи систему рівнянь F(x) = 0 замінюють еквівалентним х = Ф(х), де Ф(х) – деяка неперервна функція на множині W допустимих значень F. Далі обирають початкове наближення х0  W і послідовно обчислюють наступні наближення: хk = Ф(хk-1), k = 1,2,… . Якщо послідовність хk має границю х*, тобто = х*, то ця границя буде розв’язком рівняння х = Ф(х). Справді, х* = хk = Ф(хk-1) = Ф( хk-1) = Ф(х*). Для кожної функції Ф(х) отримуємо свій ітераційний метод, який іноді називають стаціонарним або методом простої ітерації.

Перехід від заданої СЛР Ах = b (А – матриця СЛР) до еквівалентної форми Ф(х) = 0 виконується практично так само, як і для рівняння в розділі . Покладемо С = Е – А, де Е – одинична матриця. Звідси b = Ах = (Е – (Е – А))х = (Е – С)х = х – Сх і отже х = Сх + b. Тут функція Ф(х) = Сх + b є неперервною на відповідному n – вимірному просторі L і визначає деякий ітераційний процес х = Ф(х). Для довільного початкового х0  L послідовність наближень хk = Ф(хk-1), k = 1,2,… буде збігатися до границі х*, якщо Ф(х) є стискуючим відображенням (за принцип стискуючих відображень Банаха: теорема 4 розділу ). За означенням, Ф(х) є стискуючим, якщо для деякої норми ║ ║ на L і деякого числа q < 1 виконується нерівність ║Ф(х) – Ф(х')║ < q║x - x'║ при довільних х, х'  L, звідки ║Ф(х) – Ф(х')║ = ║(Сх + b) – (Cx' + b)║ = ║Cx – Cx'║ = ║C(x – x')║ < q║x - x'║ (тобто якщо ║С║ < q). Тоді будуть виконуватись і всі наслідки принципу стискуючих відображень, у тому числі й оцінки похибок (теорема 6 розділу ). Така норма ║ ║ та таке число q знайдуться завжди за умовою, що спектральний радіус С (тобто максимум модулів власних значень цієї матриці) не перевищує одиниці. Природним прикладом СЛР, де можна скористатися такою умовою є система Ах = b, для матриці системи A якої aii > . Такі нерівності виконуються, наприклад, для матриць теорії інформації, де діагональні елементи aii є ймовірністю правильного кодування повідомлення з номером i, а aij з j  i – ймовірності обрання альтернативних помилкових кодів.

Якщо такі нерівності виконуються для СЛР Aх = b, то поділимо кожне рівняння цієї системи на aii. Тоді для матриці А' отриманої еквівалентної системи А'х = b' діагональні елементи дорівнюють 1, для матриці С = Е – А' діагональні елементи дорівнюють нулю, а суми модулів недіагональних елементів < 1. Як і вище, СЛР А'х = b' еквівалентна рівності х = Ф(х) = Сх + b'. У якості норми в L візьмемо максимум модулів координат вектора: ║х║ = max xj. Тоді для деякого числа q < 1 ║Сx║ < q║x║ при кожному х  L, що означає: Ф – стискуюче відображення, а ітераційний процес хk = Ф(хk-1), k = 1, 2, … завжди буде збігатися при довільному х0  L.

Справді, нехай di = < 1, х = (х1, х2, … , хn)  L. Тоді для вектора y = Cx маємо = = di  di = di  ║x║. Остання нерівність випливає з того, що = 1, а опукла комбінація чисел xj не перевищує . Якщо покласти q = < 1, то отримуємо ║Cx║ = ║у║ =  q ║x║, що й потрібно.

Задача 1. Розв’язати CЛР методом простої ітерації.

Розв’язання. Оскільки 3,9 > 1,25 + 0,98 , 3,45 > 0,74 + 0,84 , 2,38 > 0,65 + 1,18 , тобто виконана умова aii > , то скористаємося викладеним вище алгоритмом. Запишемо розширену матрицю даної СЛР в електронну таблицю:

A

B

C

D

1

3,9

1,25

-0,98

4,905

2

0,74

3,45

-0,84

6,031

3

-0,65

1,18

2,38

10,134

Поділимо кожний рядок цієї матриці на aii:

A

B

C

D

5

=A1/$A$1

6

=В2/$В$2

7

=С3/$С$3

В результаті отримаємо матрицю системи А' для СЛР А'х = b', еквівалентної даній.

A

B

C

D

5

1

0,320513

-0,25128

1,257692

6

0,214493

1

-0,24348

1,748116

7

-0,27311

0,495798

1

4,257983

Наступним кроком знайдемо матрицю С = Е – А'. Для цього спочатку помножимо А' на – 1

A

B

C

9

= – А5

10

11

отримавши

A

B

C

12

-1

-0,32051

0,251282

13

-0,21449

-1

0,243478

14

0,273109

-0,4958

-1

а потім додамо одиничну матрицю: фактично ж задамо 0 замість – 1 у її діагональних елементах:

A

B

C

12

0

-0,32051

0,251282

13

-0,21449

0

0,243478

14

0,273109

-0,4958

0

Тепер застосуємо ітераційний процес хk = Ф(хk-1), k = 1, 2, … , де Ф(х) = Сх + b'; за початкове наближення візьмемо b', яке знаходиться в діапазоні D5:D7: х0 = b'. Cпочатку розташуємо вектор b' у горизонтальному діапазоні А16:С16, тобто транспонуємо його за допомогою відповідного вбудованого оператора Excel. Для цього виділимо цей діапазон і задамо там оператор ТРАНСП(D5:D7). У наступному рядку задамо формули ітераційного процесу хk = Схk-1 + b':

А17 = $А$16 + СУММПРОИЗВ($А$12:$С$12;А16:С16);

В17 = $В$16 + СУММПРОИЗВ($А$13:$С$13;А16:С16);

С17 = $С$16 + СУММПРОИЗВ($А$14:$С$14;А16:С16).

У наступні рядки стовпців А, В, С ці формули треба копіювати (тобто протягувати). В результаті дістанемо:

A

B

C

16

1,257692

1,748116

4,257983

17

1,767353

2,515076

3,734758

18

1,390056

2,278364

3,493693

19

1,40535

2,300597

3,508011

20

1,401822

2,300803

3,501165

21

1,400035

2,299893

3,500099

22

1,400059

2,300017

3,500063

23

1,40001

2,300003

3,500008

24

1,400001

2,3

3,500002

25

1,4

2,3

3,5

26

1,4

2,3

3,5

У правильності отриманого розв’язку тут можна переконатись безпосередньою перевіркою:

D

16

= СУММПРОИЗВ($А$26:$С$26;A1:C1)

17

18

звідки

D

15

Проверка

16

4,905002

17

6,031

18

10,134

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