DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

МЕТОД ГАУССА ДЛЯ РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
КН
Кафедра:
ЗІ

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ / ЗВІТ до лабораторноїроботи №2 з курсу: Комп'ютерні методи дослідження інформаційних процесів і систем на тему:“МЕТОД ГАУССА ДЛЯ РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ” Варіант 7 Львів 2018 1. Мета роботи: Мета роботи – ознайомлення з прямими методами розв’язування систем лінійних алгебраїчних рівнянь. 2. Короткі теоретичні відомості: Прямі методи розв’язування систем лінійних алгебраїчних рівнянь Класичний метод Гаусса. Розглянемо систему рівнянь четвертого порядку:   (1) Зауважимо, що елементи вектора-стовпчика вільних членів  занесені в матрицю коефіцієнтів А. Будемо вважати, що . З першого рівняння знаходимо х1: , (2) де  , . З допомогою рівняння (2) можна виключити  з решти рівнянь, для чого достатньо підставити (2) для  в друге, третє і четверте рівняння системи. Це і є першим кроком – кроком виключення невідомого.  ,  Перехідвідпочатковоїсистеми  до новоствореної  відбувається за такою формулою:  Другий крок – виключення невідомого  відбувається аналогічно:     Третій крок – виключення невідомого  ,    ;  Останнє рівняння можна переписати у вигляді:  або . Отже, в результаті прямого ходу одержимо систему рівнянь:  Знаходження невідомих проводиться в оберненому ході методу Гаусса шляхом зворотніх підстановок. Якщо п – кількість рівнянь (порядок) системи, то програмування обчислювального процесу проводиться так: L – кількість кроків виключення ; j – позначення другого індексу при визначенні α ; і – номер рядка системи ; k – номер стовпця. 3. Завдання: Розв’язати систему лінійних алгебраїчних рівнянь методомГаусса.   4. Блок-схема алгоритму програми: початок 1 f(x) x1:=f(x) ні k<3k:=k+1 так i<k+1 i:=i+1 ні так j>=k ні j:=j-1 так a[i,j]:=f(x) f(x) i>=0 i:=i-1 ні j>i j:=j-1 x[i]:=f(x) x[i]:=f(x) так i<k+1 i:=i+1 так x1,x2,x3,x4 кінець 5. Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі: x1,x2,x3,x4 – змінні, які використовуються для знаходження коренів рівнянь системи. i,j – змінні, що застосовуються в циклах для позначення рядків та стовпців. n– константа, означає кількість стовпців вихідної матриці. s, p – константи, що використовують для визначення коефіцієнтів вихідних рівнянь. mas() - функція, в якій відбувається виведення вихідної системи на екран, знаходження допоміжних коефіцієнтів, обчислення коренів системи рівнянь і виведення їх на екран. 6. Остаточно відлагоджений текст програми згідно з отриманим завданням мовою С#: usingSystem; classGauss { double s, b; double[] x = newdouble[4]; int i, j, k; publicGauss(int a, int d) { Console.WriteLine("Введiтькоефiцiєнт k: "); a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введiтькоефiцiєнт p: "); b = Convert.ToInt32(Console.ReadLine()); s = 0.2 * a; b = 0.2 * d; } publicvoidmas() { double[,] a ={{8.3,2.62+s,4.1,1.9,10.55+b}, {3.92,8.45,7.78-s,2.46,12.21}, {3.77,7.21+s,8.04,2.28,15.45-b}, {2.21,3.65-s,1.69,6.99,-8.35}}; Console.Clear(); Console.WriteLine(@" Розв'язок СЛАР класичним методом Гаусса"); Console.WriteLine("\n"); for (i = 0; i < 4; i++) { for (j = 0; j < 5; j++) { if (j == 3) Console.Write("{0} x{1} ", a[i, j], j + 1); elseif (j == 4) Console.Write(" = " + a[i, j]); else { Console.Write("{0} x{1}", a[i, j], j + 1); Console.Write(" + "); } } Console.WriteLine("\n"); } for (k = 0; k < 2; k++) { for (i = k + 1; i < 4; i++) { for (j = 4; j >= k; j--) { a[i, j] = a[i, j] - (a[k, j] / a[k, k]) * a[i, k]; } } } Console.WriteLine("\n\n\nКоренiрiвнянь:"); for (i = 2; i >= 0; i--) { for (j = 2; j > i; j--) x[i] = x[i] + a[i, j] * x[j]; x[i] = (1.0 / a[i, i]) * (a[i, 4] - x[i]); } for (i = 0; i < 4; i++) Console.WriteLine("x{0}={1}", i + 1, x[i]); Console.ReadLine(); } } classprogram { publicstaticvoidMain() { Gauss g = newGauss(4, 1); g.mas(); } } 7. Результативиконанняпрограми: /Висновок: Виконуючи дану лабораторну роботу я онайомився з прямими методами розв’язування систем лінійних алгебраїчних рівнянь.
Антиботан аватар за замовчуванням

21.11.2018 09:48

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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