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

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

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

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

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

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

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

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

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Комп’ютерні методи дослідження систем керування
Група:
КН-11
Варіант:
8
Коротко про документ

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

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

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

  • Числові методи
  • Системи лінійних рівнянь
  • Метод Гауса
  • Визначник матриці
  • Програмування на C++

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

  1. Мета роботи
  2. Теоретичні відомості
  3. Завдання
  4. Код програми
  5. Результат роботи програми
Для кого:Студенти технічних спеціальностей та виші
Викладачі:Викладач

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

метод Гаусавизначник матрицісистеми лінійних рівняньпрямі методиітераційні методиматрицяголовний елементC++

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

Міністерство освіти та науки України Національний університет “Львівська політехніка” Звіт до лабораторної роботи № 2 з курсу “Комп’ютерні методи дослідження систем керування” ПРЯМІ ТА ІТЕРАЦІЙНІ МЕТОДИ РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРИЧНИХ РІВНЯНЬ Варіант #8 Мета роботи: вивчити найпоширеніші прямі та ітераційні методи розв’язування систем лінійних алгебричних рівнянь та способи їх застосування для обчислення визначників і обертання матриць. Теоретичні відомості Застосування методу Гауса для обчислення визначників матриць Нехай маємо деяку матрицю . (4.1) Розглянемо лінійну систему . (4.2) При розв’язуванні системи (4.2) методом Гауса (п.2) ми здійснювали заміну матриці  трикутною матрицею , що складалася з елементів зазначених стрічок, . (4.3) У результаті ми отримували еквівалентну систему . (4.4) Елементи матриці  послідовно утворювалися з елементів матриці  та подальших допоміжних матриць  за допомогою таких елементарних перетворень: ділення на головні елементи , , … , , які передбачалися відмінними від нуля, та віднімання із рядків матриці  та проміжних матриць  чисел, що пропорційні елементам відповідних головних стрічок. При першій операції визначник матриці також ділиться на відповідний головний елемент, при другій – визначник матриці залишається незмінним. Тому . Отже  (4.5) Як бачимо з виразу (4.5), визначник дорівнює добутку головних елементів для відповідної схеми Гауса. До того ж немає потреби здійснювати обчислення для вектора вільних членів  та операції зворотного ходу – вистачає лише прямого ходу методу Гауса. Завдання 8 Обчислити визначник матриці методом Гауса з вибором головного елемента по всій матриці матриця №1   Матриця №1  де ; ; Код програми #include <iostream> #include <math.h> using namespace std; void main() { int n = 4, h, w; double det = 1; double max = 0, value = 0; double V[4][4], C[4][4]; double A[4][4] = { { 8.3, 2.64, 4.1, 1.9 }, { 3.92, 8.45, 7.76, 2.46 }, { 3.77, 7.23, 8.04, 2.28 }, { 2.21, 3.63, 1.69, 6.69 } }; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) V[i][j] = A[i][j]; } for (int k = 0; k < n; k++) { //**************************************** //Сортування max = fabs(V[k][k]); h = k; w = k; for (int l = k; l < n; l++) for (int f = k; f < n; f++) { if (max < abs(V[l][f])) { h = l; w = f; } } for (int d = 0; d < n; d++) { value = V[k][d]; V[k][d] = V[h][d]; V[h][d] = value; } for (int d = 0; d < n; d++) { if (d < k) { value = C[d][k]; C[d][k] = C[d][w]; C[d][w] = value; } else { value = V[d][k]; V[d][k] = V[d][w]; V[d][w] = value; } } //**************************************** det = det*pow((-1), w + h)*V[k][k]; for (int i = k + 1; i < n; i++) for (int j = k + 1; j < n; j++) { C[k][j] = V[k][j] / V[k][k]; V[i][j] -= V[i][k] * C[k][j]; } } cout << "\n\t==============================" << endl; cout << "\n\t The determinant is " << det << endl; cout << "\n\t==============================" << endl; getchar(); } Результат роботи програми /
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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