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

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

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

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

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

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

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

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

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

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

У роботі досліджено метод Гаусса з вибором головного елемента для розв'язування систем лінійних алгебраїчних рівнянь. Наведено теоретичні відомості, блок-схему та програму на C#.

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

  • Числові методи
  • Системи лінійних рівнянь
  • Метод Гаусса
  • Програмування на C#
  • Обчислювальна математика
  • Матричні обчислення

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

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

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

метод Гауссаголовний елементтрикутна матрицяпрямий хідзворотний хідСЛАРмасивC#похибка обчисленьалгоритм

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра БІТ Звіт про виконання лабораторної роботи №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. Висновки На даній лабораторній роботі я навчився розв’язувати системи лінійних алгебраїчних рівнянь за допомогою комп’ютерних програм . Розв’язував системи за допомогою методу Гаусса з вибором головного елемента. Застосовував різноманітні кроки для того , щоб звести матрицю до діагонального вигляду , і тим самим отримати розв’язки даної системи лінійних алгебраїчних рівнянь .
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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