DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

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

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт до лабораторної роботи № 3 з курсу «Комп’ютерні методи дослідження інформаційних процесів та систем»: Ітераційні методи розв’язування систем лінійних алгебричних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра безпеки інформаційних технологій

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні методи дослідження інформаційних процесів та систем
Група:
КН-31
Коротко про документ

Про що ця робота

У роботі розглядаються ітераційні методи розв’язування систем лінійних алгебричних рівнянь методом простої ітерації. Наведено теоретичні відомості, блок-схему алгоритму та програмну реалізацію мовою С.

У роботі розглядаються

  • Ітераційні методи
  • Системи лінійних алгебричних рівнянь
  • Метод простої ітерації
  • Умови збіжності
  • Блок-схеми алгоритмів
  • Програмування мовою С

Зміст і розділи

  1. Мета роботи
  2. Теоретичні відомості
  3. Метод простої ітерації
  4. Умови збіжності ітераційного процесу
  5. Завдання
  6. Блок-схема алгоритму програми
  7. Список ідентифікаторів констант, змінних, процедур і функцій
  8. Остаточний текст програми мовою С
  9. Результат виконання програми
  10. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Костів Ю.М.

Ключові поняття

ітераційний методСЛАРметод простої ітераціїматриця коефіцієнтівпочаткове наближенняабсолютна похибкаумова збіжностіпрограмна реалізаціямова С

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра БІТ ЗВІТ до лабораторної роботи № 3 з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем» на тему: «ІТЕРАЦІЙНІ МЕТОДИ РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ» Мета роботи Ознайомлення з ітераційними методами розв’язування систем лінійних алгебраїчних рівнянь. Теоретичні відомості Метод простої ітерації. Нехай задано лінійну систему  (1) Розглянемо матриці    Тоді систему (1) можна записати у вигляді матричного рівняння  (2) Будемо вважати, що діагональні коефіцієнти  (і = 1, 2,…, n). Розв’яжемо перше рівняння системи (1) відносно , друге відносно  і т.д. Тоді одержимо еквівалентну систему  (3) де  , при ; , при ; ; ;  Кажуть, що система (3) зведена до нормального вигляду. Введемо матриці ( та (   Систему (3) запишемо у вигляді  (4) Систему (3) будемо розв’язувати методом послідовних наближень. За нульове наближення позначимо, наприклад, стовпчик вільних членів . Далі послідовно будуємо матриці-стовпці наступних наближень розв’язку системи (4):  – перше наближення  – друге наближення і т.д. Будь-яке (k + 1)-е наближення обчислюється за формулою: , (k = 0, 1, 2, …) (5) В розгорнутому вигляді . Якщо послідовність наближень  має границю , (6) то ця границя є розв’язком системи (3). На практиці ітераційний процес припиняють, коли , де ( – гранична абсолютна похибка. Приклад. Розв’язати систему методом простої ітерації: . Зведемо систему до нормального вигляду  (7) або в матричній формі  (8) За нульові наближення коренів системи приймаємо вектор вільних членів: . Підставляємо ці значення в праві частини системи (7). Одержимо перші наближення коренів  Далі знаходимо другі і треті наближення коренів   Умови збіжності ітераційного процесу Нехай задано зведена до нормального вигляду система лінійних рівнянь  Умова збіжності: якщо сума модулів елементів рядків або модулів елементів стовпців матриці α менша ніж 1, то процес ітерації для даної системи збігається до єдиного розв’язку незалежно від вибору вектора початкових наближень. Наприклад задано систему:  Зведена до нормального виду система:  Матриця  заданої системи:  Cума модулів коефіцієнтів по стовпцях:  Таким чином умова збіжності ітераційного процесу для заданої системи виконується. Аналогічно можна було б перевірити виконання умови збіжності, беручи суми модулів елементів рядків матриці . Наведена вище умова є достатньою, але не є необхідною. Це означає, що якщо умова виконується, то процес буде збіжним. Коли ж умова не виконується, то це ще не означає, що процес буде розбіжним. Для системи лінійних рівнянь, заданих у вигляді (2) умова збіжності ітераційного методу формулюється так. Ітераційний метод розв’язування системи (2) збігається, якщо модулі діагональних коефіцієнтів  для кожного рівняння системи більші, ніж суми модулів всієї решти коефіцієнтів даного рівняння (не враховуючи вільних членів). Приклад: Умова збіжності:  (9) Задана система:  (10) Перевірка умови:  (11) У випадку, якщо для заданої системи умова збіжності не виконується і ітераційний процес методу є розбіжним, необхідно добитися виконання умови збіжності шляхом лінійних перетворень заданої системи (перестановка рядків, стовпців матриці коефіцієнтів, домноження рівнянь на деякий коефіцієнт, додавання, віднімання рівнянь, тощо). Дещо простішій програмній реалізації піддається наступна формула методу простих ітерацій:  (12) Звідки вона береться? Відомо, що при зведенні системи  до вигляду  кожне  представляється у вигляді  або  . Якщо зняти обмеження j ( i, то цю формулу можна переписати у такому вигляді  . Звідси випливає, що . Завдання Розв’язати систему лінійних алгебраїчних рівнянь методом  S=k*0.2, b=p*0.2, k=4, р=5. Блок-схема алгоритму програми початок створення масивів А, а, х, b заповнення масивів А та b Масиви А та b Console.ReadLine(); Console.Clear(); система рівнянь i=0,n j=0,n ні так i=j b[i] = b[i] / a[i, i]; A[i, j] = -a[i, j] / a[i, i]; A[i, j] = 0; початкове наближення i=0,n x[i] = b[i]; масив початкових наближень v=0; 1 1 while (Math.Abs(x[0]-f)>E) f=x[0]; v++ i=0,n S1 = 0; S2 = 0; j=0,i S1 += A[i, j] * x[j]; j=i,n S2 += A[i, j] * x[j]; x[i] = b[i] + S1 + S2; x[i] кінець Список ідентифікаторів констант, змінних, процедур і функцій. main – головна функція printf, scanf – функції вводу-виводу даних for – оператор циклу; a – матриця коефіцієнтів A – матриця а, зведена до нормального вигляду x – стовпцева матриця розв’язків Остаточний текст програми мовою С. #include<conio.h> #include<stdio.h> #include<math.h> #define n 4 #define E 0.0001 void main() { int i,j; double k,p,S,t,a[n][n],A[n][n],b[n],x[n],z[n],suma; printf("k=");scanf("%lf",&k); S=k*0.2; printf("p=");scanf("%lf",&p); t=p*0.2; a[0][0]=13.3; a[0][1]=12.62+S; a[0][2]=4.1; a[0][3]=1.9; a[1][0]=3.92; a[1][1]=8.45; a[1][2]=1.78-S; a[1][3]=1.4; a[2][0]=3.77; a[2][1]=1.21+S; a[2][2]=8.04; a[2][3]=0.28; a[3][0]=2.21; a[3][1]=3.65-S; a[3][2]=1.69; a[3][3]=9.99; b[0]=-10.55+t; b[1]=12.21; b[2]=15.45-t; b[3]=-8.35; for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%lf ",a[i][j]); printf("%lf\n",b[i]); } for(i=0;i<n;i++) { b[i]/=a[i][i]; for(j=0;j<n;j++) if(i!=j) A[i][j]=a[i][j]/(-a[i][i]); else A[i][j]=0.0; printf("\n"); } for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%lf ",A[i][j]); printf("%lf\n",b[i]); } for(i=0;i<n;i++) { z[i]=x[i]; x[i]=b[i]; } M1: for(i=0;i<n;i++) { z[i]=x[i]; } for(i=0;i<n;i++) { suma=0.0; for(j=0;j<n;j++) suma+=A[i][j]*x[j]; x[i]=b[i]+suma; } for(i=0;i<n;i++) if(fabs(x[i]-z[i])>=E) goto M1; printf("\n \n Koreni: \n"); for(i=0;i<n;i++) printf(" x%d=%lf\n ",i+1,x[i]); } Результат виконання програми.  Висновок. Виконав[ім’я автора приховано]
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!