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

Метод Гаусса для розв’язування систем лінійних алгебраїчних рівнянь

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра БІТ Звіт про виконання лабораторної роботи №2 з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем» на тему: «Метод Гаусса для розв’язування систем лінійних алгебраїчних рівнянь» Мета роботи – ознайомлення з прямими методами розв’язування систем лінійних алгебраїчних рівнянь. 1.Короткі теоретичні відомості Метод Гаусса з вибором головного елемента. Запишемо розширену прямокутну матрицю коефіцієнтів системи з  рівнянь.  Серед елементів матриці   вибираємо найбільший за модулем елемент, який називається головним елементом. Нехай ним буде . Рядок з номером  називається головним рядком. Обчислюємо множники  для всіх . Далі перетворюємо матрицю наступним чином: з кожного го неголовного рядка віднімаємо почленно головний рядок, домножений на . Отримаємо матрицю, у якої всі елементи го стовпця за винятком , дорівнюють нулю. Відкидаючи цей стовпець і головний рядок, отримуємо нову матрицю  з меншою на одиницю кількістю рядків та стовпців. Над матрицею  повторюємо такі ж дії й тримаємо матрицю  і т.д. Ці перетворення продовжуємо доки не отримаємо матрицю, що містить один рядок з двох елементів, який вважаємо головним. Об’єднаємо всі головні рядки починаючи з останнього. Після перестановки вони утворять трикутну матрицю, еквівалентну початковій матриці . Цей етап називають прямим ходом обчислень. Розв’язавши систему з отриманою трикутною матрицею коефіцієнтів, знайдемо послідовно невідомі  . Цей етап обчислень називають зворотним ходом. Усі описані обчислення проводять аналогічно до методу Гауса. Сенс вибирання головного елемента полягає в тому, щоб зробити як найменшими числа  і завдяки цьому зменшити похибку обчислень. 2.Завдання Розв’язати систему лінійних алгебраїчних рівнянь методом Гаусса з вибором головного елемента.   3.Блок-схема алгоритму програми + + 4. Список ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення class Program – клас, в якому виконуються всі дії; double[] b, double[,] a- масиви в яких зберігаються коефіцієнти системи; n – розмірність масиву; max – максимальний елемент масиву ; max_i – індекс максимального елемента масиву; lead, a_div_lead – змінні які використовуються для отримання розв’язку; Console.WriteLine() – метод виведення на екран; 5. Текст програми using System; namespace Sabodaschko { class Program { static void Main() { int i, n,k,j; double[] b; double[,] a; Console.WriteLine("Введи порядок системи"); n= Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введи коефiцiєнти "); a = new double[n, n]; b = new double[n]; for (i = 0; i < n; i++) { for (j = 0; j < n ; j++) { Console.WriteLine("a["+(i+1)+","+(j+1)+"]="); a[i, j] =Convert.ToDouble(Console.ReadLine()); } Console.WriteLine("b[" + (i + 1) + "]="); b[i] = Convert.ToDouble(Console.ReadLine()); } double eps = 0.000001; double max; int max_i; double lead, a_div_lead; for (k = 0; k < n; k++) { max = 0; max_i = -1; for (i=k; i <n; i++) { if (Math.Abs(a[i,k]) > max) { max = Math.Abs(a[i, k]); max_i = i; } } if (max_i == -1 || Math.Abs(a[max_i,k]) < eps) { Console.WriteLine("Error: det=0"); break; } lead = a[k,k]; for (j = k; j < n; j++) a[k,j] /= lead; b[k] /= lead; for (i = 0; i < n; i++) { a_div_lead = a[i,k] / a[k,k]; if (i != k) { for (j = k; j < n; j++) a[i,j] -= a[k,j] * a_div_lead; b[i] -= b[k] * a_div_lead; } } } Console.Write( "Матриця пiсля перетворень та вiдповiднi результати \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) Console.Write(a[i,j] + " "); Console.Write("x("+(i+1)+")="+b[i] + " \n"); } Console.ReadKey(); } } } 6. Результати роботи програми / 7. Висновки На даній лабораторній роботі я навчився розв’язувати системи лінійних алгебраїчних рівнянь за допомогою комп’ютерних програм . Розв’язував системи за допомогою методу Гаусса з вибором головного елемента. Застосовував різноманітні кроки для того , щоб звести матрицю до діагонального вигляду , і тим самим отримати розв’язки даної системи лінійних алгебраїчних рівнянь .
Антиботан аватар за замовчуванням

30.03.2013 22:48

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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