- •Запорізький національний технічний університет
- •Чисельні методи
- •Використння MatLab
- •Методичні вказівки
- •До лабораторних робіт з курсу
- •«Обчислювальна техніка та програмування за фахом» (Частина 1)
- •Затверджено
- •2.1 Мета роботи 13
- •Зміст та оформлення лабораторних робот
- •Лабораторна робота №1 Програмування в середовищі Matlab
- •1.1 Мета роботи
- •1.2 Завдання до лабораторної роботи
- •1.3 Основні теоретичні відомості
- •1.3.3 Введення і виведення інформації в діалоговому режимі
- •1.3.4 Організація повторення дій
- •1.4 Індивідуальні завдання до лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 2 Рішення нелінійних рівнянь методами половинного розподілу та хорд
- •2.1 Мета роботи
- •2.2 Завдання до лабораторної роботи
- •Основні теоретичні відомості
- •2.3.1 Методи ітераційного уточнення коренів нелінейних рівнянь
- •2.3.2 Функції MatLab для вирішення нелінійних рівнянь
- •2.4 Індивідуальні завдання до лабораторної роботи
- •2.5 Завдання на самостійну роботу
- •2.6 Контрольні питання
- •Лабораторна робота № 3 Рішення нелінійних рівнянь методами Ньютона та простих итерацій
- •3.1 Мета роботи.
- •3.2 Завдання до лабораторної роботи
- •3.3 Основні теоретичні відомості
- •Метод простої ітерації (метод послідовних повторень)
- •Індивідуальні завдання до лабораторної роботи
- •Лабораторная работа №4 Тема: Рішення систем лінійних алгебраічних рівнянь
- •Прямі методи і їх реалізація в пакеті MatLab
- •Ітераційні методи і їх реалізація в пакеті MatLab
- •4.4 Індивідуальні завдання до лабораторної роботи
- •6.5 Контрольні питання
- •Список літератури
- •Додаток а Індивідуальні завдання до робіт № 4, 5
- •Додаток б. Варіанти завдань для підготовки до модульного контролю по темі «Розв’язання нелінійних рівнянь»
Ітераційні методи і їх реалізація в пакеті MatLab
Ітераційними методами вирішення систем лінійних рівнянь виду
називаються методи, що дають вирішення системи рівнянь як межу послідовності наближень, що обчислюються за одноманітною схемою.
Ітерація Якобі:
для
i=1,2,…,n.
Ітерація Зейделя:
для
i=1,2,…,n.
Достатньою умовою збіжності ітераційних процесів і в методі Якобі, і в методі Зейделя є умова домінування коефіцієнтів що стоять на головній діагоналі:
для
i=1,2,…,n.
Приклад 4.1. Розглянемо систему лінійних рівнянь
Точне рішення:
>> a=[4 -1 1;4 -8 1; -2 1 5]; b=[7;-21;15];
>> x=a\b
x =
2
4
3
Итерація Якобі: Рівняння запишим у виді
Це дозволяє запропонувати слідуючий ітераційний процес Якобі:
Покажемо,
що якщо почати з точки,
,
то ітерації сходяться до розв’язку(2;4;3).
Підставимо
в
праву частину кожного рівняння, щоб
набути нових значень:
Нова
точка
ближче до (2;4;3), чим P0.
Ітерації,
що використовують ітераційні формули
Якобі, генерують послідовність точок
Pк.
, яка
сходиться до
розв’язку(2;4;3).
Цей процес називається ітерацією Якобі і може використовуватися для вирішення лінійних систем. Після 19-і ітерацій послідовність наближених рішень сходиться до наближення з дев'ятьма значущими цифрами (2.00000000; 4.00000000; 3.00000000). Лінійні системи з такою великою кількістю змінних, як 100000, часто виникають при розв’язуванні диференціальних рівнянь із частинними похідними.
Ітерація Зейделя
Метод можна розглядати як модифікацію методу Якобі. Основна ідея полягає в тому, що при обчисленні чергового (k+1)-го наближення до невідомого xi при i >1 використовують вже знайдені (k+1)-е наближення до невідомих x1, x2, ..., xi-1, а не k-е наближення, як в методі Якобі.
Ітеративний процес Зейделя запишемо в наступному виді::
Покажемо, що якщо почати з точки , то ітерації сходяться до розв’язку(2;4;3).
На першій ітерації одержуємо:
Нова
точка
ближче до (2;4;3), чим Р0
,
і краще, ніж значення, отримане в методі
Якобі на першій ітерації. Для запропонованої
СЛАР розв’язання методом Зейделя
одержуємо
за 10 ітерацій (у методі Якобі було
потрібно 19 ітерацій).
Закінчення ітераційного процесу
Слід дати визначення близькості двох векторів так, щоб можна було ввести поняття збіжності послідовності наближень {Pk} до розв’язку P.
Найбільш використовуваними є наступні дві норми:
-
відстань Евкліда між
і
.
-
норма,
що вимагає менше зусиль для обчислень.
Т.ч. для заданої допустимої похибки ε>0 критерій закінчення ітераційного процесу можна записати у вигляді:
< ε,
або:
< ε.
Система MatLab має команду norm, яка є нормою Евкліда. Докладну інформацію про використання команди norm| можна прочитати в системі Help програми MatLab.
Лістинг програми 4.1 (ітерація Якобі). Розв’язання системи Ax=b, починаючи з початкового наближення x=P0, і генерування послідовності {Pk} , котра сходиться до розв’язку. Ефективною умовою для застосування методу є те, що А – строго діагонально домінуюча матриця.
function [x,k]=jacobi(A,b,P,eps,maxiter)
%Input data – A – матриця розміру n*n
% - b – матриця розміру n*1
% - p – матриця розміру n*1, початкове наближення
% - eps – точність обчислень
% - maxiter – максимальне число ітерацій
%Output data – x – матриця розміру n*1: наближення Якобі до
% розв’язку Ax=b
n=length(b);
for k=1:maxiter
for i=1:n
x(i)=(b(i)-A(i,[1:i-1,i+1:n])*P([1:i-1,i+1:n]))/A(i,i);
end
err=abs(norm(x’-P));
P=x’;
if err<eps
break;
end
end
x=x’;
