11679

Ітераційні методи розвязання систем лінійних алгебраїчних рівнянь. Метод Зейделя. Метод релаксації

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторна робота №2 Ітераційні методи розв’язання систем лінійних алгебраїчних рівнянь. Метод Зейделя. Метод релаксації. Мета роботи: познайомитися з ітераційними методами розв’язання систем алгебраїчних рівнянь реалізувати заданий за варіантом метод у серед...

Украинкский

2013-04-10

40.97 KB

33 чел.

Лабораторна робота №2

Ітераційні методи розв’язання систем

лінійних алгебраїчних рівнянь. Метод Зейделя. Метод релаксації.

Мета роботи: познайомитися з ітераційними методами розв’язання систем алгебраїчних рівнянь, реалізувати заданий за варіантом метод у середовищі MATLAB.

Завдання до виконання роботи: Доповнити систему MATLAB файлом, що реалізує метод Зейделя чи метод релаксації для розв‘язання системи лінійних алгебраїчних рівнянь (відповідно до варіанту).

Теоретичні відомості.

Ітераційні методи дозволяють наближено знайти розв’язок системи лінійних алгебраїчних рівнянь, як границю послідовних наближень, що обчислюються по однаковому алгоритму. До ітераційних методів належать: метод Зейделя, метод простої ітерації, метод релаксації, градієнтні методи та їх модифікації. Застосовуються ітераційні методи для розв’язання систем ЛАР з числами порядку 106.

Забезпечення збіжності ітераційного процесу

Непрямі (ітераційні, неточні) методи дозволяють наближено знайти розв’язок системи лінійних алгебраїчних рівнянь, як границю послідовних наближень, що обчислюються за певним алгоритмом.

До ітераційних методів належать: метод Зейделя, метод простої ітерації, метод релаксації, градієнтні методи та їх модифікації. Застосовуються ітераційні методи для розв’язання СЛАР з коефіцієнтами порядку 106.

Ознакою ітераційного методу розв‘язання системи ЛАР є наявність початкового наближення х0 чи (х01, х02, х03, …) і потрібної точності отримання розв‘язків .

Для успішного застосування ітераційних методів до початку ітерацій потрібно напевне знати, що ітераційний процес буде збігатися до конкретного розв‘язку. Для цього початкову систему приводять до нормалізованого вигляду таким чином:

 (1)

Після заміни початкової системи лінійних рівнянь еквівалентною їй – нормалізованою системою – застосуємо ітераційні чисельні методи розв‘язання СЛАР, забезпечивши, таким чином, збіжність до розв‘язку.

Метод релаксації для розв‘язання систем лінійних алгебраїчних рівнянь

Для початку обчислень вибираємо початкове наближення (х10, х20, …, хn) і точність обчислень . На першому етапі обчислюємо, так звані, нев‘язки, тобто відхилення від нуля параметрів :

,                        (4)

які при канонічному представленні системи рівнянь повинні дорівнювати нулю.

В системі знаходимо рівняння з максимальною по модулю нев‘язкою: , і, обнулюючи ( = 0), обчислюємо значення за формулою:

              (5)

де і – номер рівняння з максимальною по модулю нев‘язкою. На наступному кроці підраховуємо нев‘язки за оновленим вектором наближень (х11, х20, …, хn0 ) і вибираємо рівняння з максимальною по модулю нев‘язкою :

,                         (6)

після чого розраховуємо , що задовольняє рівності:

                      (7)

При знаходженні чергового значення  не забувайте обнулювати ! 

Розрахунки продовжуємо до знаходження всіх значень , після цього перевіряємо умову припинення ітерацій, яка записується у вигляді: .

Якщо умова не виконується розпочинаємо наступний цикл ітерацій, який проводиться так, як і попередній, але в якості початкових значень невідомих виступають значення, обчислені у попередньому циклі ітерацій, наприклад: (х31, х21, …, хn1).

Цикли ітерацій продовжуємо до отримання необхідної точності  , яка визначається за простою умовою , саме тому даний метод називається методом релаксації.

При реалізації методу релаксації рівняння намагаються вибирати в такому порядку, щоб за найменшу кількість кроків знайти розв‘язок із заданою точністю. Оскільки такий вибір є невизначеним даний метод називають нестаціонарним.

Завдання для виконання лабораторної роботи.

Створити програму на внутрішній мові середовища МatLAB, що реалізує метод простої ітерації (варіанти 1, 4, 7, 10), метод релаксації (варіанти 3, 6, 9) та метод Зейделя (варіант 2, 5, 8). Провести тестування створеної програми на прикладі, вибраному за варіантом лабораторної роботи № 1.

6 варіант.

Реалізація в Matlab

function result = relax(A, B, X, e, maxiter)

 A=[-2 -3 11;1 12 -5;-1 1 -1]

B=[-15 40 35 ]

X=[1;1;1]

e=0.001

maxiter=1000

B = A*B';

 A = A'*A;

 B = A'*B;

 D = A*X - B;

 [value, imax] = absmax(D);

 j = 1;

 while (abs(value) >= e) & (maxiter > 0)

       X(j) = X(j) - value/A(j,imax);

       D = A*X - B;

       [value,imax] = absmax(D);

       if j == length(B)

          j = 1;

          else 

          j = j + 1;

          end

       maxiter = maxiter - 1;

 end

 result = X;

D

A'

function [val, i] = absmax(A)

 val = A(1);

 i = 1;

 for j = 2 : length(A)

     if abs(val) < abs(A(j))

         val = A(j);

         i = j;

     end

 end

Реалізація

A =

   -2    -3    11

    1    12    -5

   -1     1    -1

B =

  -15    40    35

X =

    1

    1

    1

e =

 1.0000e-003

maxiter =

       1000

D =

 1.0e+016 *

  -0.5667

  -1.7124

   0.0000

ans =

    6    17   -26

   17   154   -94

  -26   -94   147

ans =

 1.0e+015 *

  -3.9993

  -0.1664

  -0.8138

Висновок: виконавши лабораторну роботу, я познайомився з ітераційними методами розв’язання систем алгебраїчних рівнянь, реалізував заданий за варіантом метод у середовищі MATLAB.


 

А также другие работы, которые могут Вас заинтересовать

62936. Historical sites and museums 16.54 KB
  Which historical sites and museums do the leaflets recommend people to visit? What can visitors get acquainted with in these places?