простої ітерації, метод Зейделя, метод верхньої релаксації Текст програми мовою C #include<stdio.h> #include<math.h> #define n 4 Void main(void) { double a[n][n], x[n][2] , b[n], temp, E; Int i,j,k,p; Clrscr (); Printf (“Vvedit matrizu a(4*4), b(4) ta pohibku E:\n’’); For (i=0; i<n; i++) For (j=0; j<n; j++) Skanf (‘’%lf’’, & a[i][j]); For (i=0; i<n; i++) { Skanf (‘’%lf’’, & b[i]); X[i][j]=b[i];} Skanf (‘’%lf’’, &E); k=0; Do { p=o; For (i=0; i<n; i++) {temp=o; For (j=0; j<n; j++) temp+=a[i][j]*x[j][k%2}; x[i][(k+1)%2]=x[i][k%2+0.1/a[i][j]*(b[i]-temp); if ( fabs (x[i][0]-x[i][1]<E) p++; } k++; }while (p!=n); Printf (‘’k=%d/n’’,k); For(i=o; i<n; i++) Printf (‘’x%d=%0.4lf\n’’ , x{i][k%2]);}
Звіт до лабораторної роботи № 3 з курсу “Комп’ютерні методи дослідження інформаційних процесів та систем” на тему “ІТЕРАЦІЙНІ МЕТОДИ РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ” Варіант № 12 Мета роботи – ознайомлення з ітераційними методами розв’язування систем лінійних алгебраїчних рівнянь. Короткі теоретичні дані До ітераційних методів належать: метод простої ітерації, метод Зейделя, метод верхньої релаксації та інші. Метод Зейделя відрізняється від методу простої ітерації тим, що при обчисленні на “k+1”-му кроці враховуються значення , , , обчислені на цьому самому кроці. 2.ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ Розв’язати систему лінійних алгебраїчних рівнянь методами простої ітерації або Зейделя.
, k=2; P=1; Таблиця ідентифікаторів констант, змінних, функцій, використаних у програмі, та їх пояснення: Main() Головна функція
Clrscr() Функція очищення екрану
Printf() Функція виведення даних
Scanf() Функція введення даних
Fabs() Функція для знаходження абсолютного значення типу double
I,j,k,p Змінні цілого типу
A[n][n] Матриця розміру n*n
B[n] Одновимірна матриця, яка скл. з n елементів
Результат роботи програми 3,3 13,02 4,1 1,9 -10,35 3,92 8,45 -1,38 1,4 12,21 3,77 1,61 8,04 0,28 15,25 2,21 3,25 1,699,99 -8,35 -1,658413740 -2,1333270546 7,848471135 -1,292484422