Міністерство освіти і науки України
Національний університет „Львівська політехніка”
ІКТА ,кафедра «Захист інформації»
Звіт
З ЛАБОРАТОРНОЇ РОБОТИ № 3
З КУРСУ “ КОМП’ЮТЕРНІ МЕТОДИ ДОСЛІДЖЕННЯ ІНФОРМАЦІЙНИХ ПРОЦЕСІВ ТА СИСТЕМ ”
НА ТЕМУ: “ ІТЕРАЦІЙНІ МЕТОДИ РОЗВ’ЯЗУВАННЯ СИСТЕМ
ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ“
Варіант 21
Львів-2007
Мета роботи – ознайомлення з ітераційними методами розв’язування систем лінійних алгебраїчних рівнянь.
Короткі теоретичні відомості:
Метод простої ітерації.
Нехай дано лінійну систему
(1)
Розглянемо матриці
Тоді систему (1) можна записати у вигляді матричного рівняння
(2)
Будемо вважати, що діагональні коефіцієнти (і = 1, 2,…, n).
Розв’яжемо перше рівняння системи (1) відносно , друге відносно і т.д. Тоді одержимо еквівалентну систему
(3)
де , при ; , при ;
; ;
Іноді кажуть, що система (3) зведена до нормального вигляду.
Введемо матриці ( та (
Систему (3) запишемо у вигляді
(4)
Систему (3) будемо розв’язувати методом послідовних наближень. За нульове наближення позначимо, наприклад, стовпчик вільних членів . Далі послідовно будуємо матриці-стовпці:
– перше наближення
– друге наближення і т.д.
Будь-яке (k + 1)-е наближення обчислюється за формулою:
, (k = 0, 1, 2, …) (5)
В розгорнутому вигляді .
Якщо послідовність наближень має границю
, (6)
то ця границя є розв’язком системи (3).
На практиці ітераційний процес припиняють, коли , де ( – гранична абсолютна похибка.
Приклад. Розв’язати систему методом простої ітерації:
.
Зведемо систему до нормального вигляду
(7)
або в матричній формі
(8)
За нульові наближення коренів системи приймаємо
.
Підставляємо ці значення в праві частини рівняння (7). Одержимо перші наближення коренів
Далі знаходимо другі і треті наближення коренів
.
Таблиця ідентифікаторів констант, змінних, функцій, використаних у програмі, та їх пояснення:
f()
Функція, що передає задане рівняння
writeln()
Функція виведення даних
readln()
Функція введення даних
abs()
Функція для знаходження азначення типу real
a
Змінна, початкове значення відрізку
b
Змінна, кінцеве значення відрізку
e
Змінна, гранична абсолютна похибка
x
Змінна, розв’язок рівняння
Текст програми мовою Паскаль:
Program prit(input,output);
const n=4;
e=0.0001;
var m,i,k,kk:integer;
d:real;
a:array[1..n,1..n]of real;
b,x,xx:array [1..n] of real;
begin
for i:=1 to n do
begin
for k:=1 to n do
begin
write('a[',i,',',k,']=');
read(a[i,k]);
end;
write('b[',i,']=');
read(b[i]);
x[i]:=b[i];
end;
m:=0;
repeat
kk:=0; m:=m+1;
for i:=1 to n do
begin
xx[i]:=-b[i];
for k:=1 to n do xx[i]:=xx[i]+a[i,k]*x[k];
d:=x[i]/a[i,i];
if abs (d)>e then kk:=1;
xx[i]:=x[i]-d;
end;
for i:=1 to n do x[i]:=xx[i];
until kk=0;
writeln('m=',m);
for i:=1 to n do writeln(x[i]);
readln;
end.
Результат роботи програми:
a[1.1]= 3.3
a[1.2]=12.62+
a[1.3]=4.1
a[1.4]=1.9
a[2.1]=3.92
a[2.2]=8.45
a[2.3]=1.78-
a[2.4]=1.4
a[3.3]=3.77
a[3.3]=1.21+
a[3.3]=8.04
a[3.4]=0.28
a[4.1]=2.21
a[4.2]=3.65-
a[4.3]=1.69
a[4.4]=9.99
x1=-4.5452515786E-04
x2=6.6081765921E-04
x3=4.7985303229E-04
x4=-4.9176646964E-05
m=78
b[1]=-10.55+b
b[2]=12.21
b[3]=15.45-b
b[4]=-8.35
Висновок:
Виконавши дану лабораторну роботу я ознайомився з ітераційними методами розв’язування систем лінійних алгебраїчних рівнянь.