Ім'я файлу: Лб1 (ЧМ) Калита.docx
Розширення: docx
Розмір: 140кб.
Дата: 28.03.2021
скачати
Пов'язані файли:
ОсСАПР 3 лр (2) (3).docx
ОсСАПР 2лб (2) (3).docx

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ

КАФЕДРА СИСТЕМОТЕХНІКИ

ЛАБОРАТОРНА РОБОТА №1

з дисципліни

«Чисельні методи»

на тему: «РОЗВ’ЯЗАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ»
Виконав:

ст. гр. АКТСІу-18-2

Калита Е.О.

Перевірив:

Климова І.М.

2018

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


    1. Мета роботи


Закріплення практичних навичок розв’язання систем лінійних алгебраїчних рівнянь (СЛАР) точними і наближеними методами.
1.2 Постановка задачі
Розробити алгоритм заданого методу для розв'язування СЛАР, запрограмувати його засобами обраної алгоритмічної мови.


1.3 Опис методу розв'язання задачі.
Метод Гауса – алгоритм розв'язування систем лінійних алгебраїчних рівнянь. Зазвичай під цим алгоритмом розуміють деяку послідовність операцій, що виконують над відповідною матрицею коефіцієнтів, для приведення її до трикутного вигляду, з наступним вираженням базисних змінних через небазисні. Цей метод також можливо використовувати для знаходження рангу матриці, для обчислення визначника матриці, а також для обчислення обернення невиродженої квадратної матриці.

Метод Гауса є найбільш розповсюдженим прийомом розв’язування СЛАР. Суть методу складається в послідовному виключенні змінних.

1.4 Схема алгоритму розв'язання задачі.



Рисунок 1.1 – Схема алгоритму розв’язування задачі

1.5. Програмна реалізація
#include "stdafx.h"

#include

#include

#include

using namespace std;

int main()

{

int i, j, n, m;

//создаем массив

cout << "Number of equations: ";

cin >> n;

cout << "Number of variables: ";

cin >> m;

m += 1;

float **matrix = new float *[n];

for (i = 0; i
matrix[i] = new float[m];

//инициализируем

for (i = 0; i
for (j = 0; j
{

cout << " Element " << "[" << i + 1 << " , " << j + 1 << "]: ";

cin >> matrix[i][j];

}

//выводим массив

cout << "matrix: " << endl;

for (i = 0; i
{

for (j = 0; j
cout << matrix[i][j] << " ";

cout << endl;

}

cout << endl;

//Метод Гаусса

//Прямой ход, приведение к верхнетреугольному виду

float tmp;

int k;

float *xx = new float [m];

for (i = 0; i
{

tmp = matrix[i][i];

for (j = n; j >= i; j--)

matrix[i][j] /= tmp;

for (j = i + 1; j
{

tmp = matrix[j][i];

for (k = n; k >= i; k--)

matrix[j][k] -= tmp*matrix[i][k];

}

}

/*обратный ход*/

xx[n - 1] = matrix[n - 1][n];

for (i = n - 2; i >= 0; i--)

{

xx[i] = matrix[i][n];

for (j = i + 1; j
}

//Выводим решения

for (i = 0; i
cout << xx[i] << " ";

cout << endl;

delete[] matrix;

system("pause");

return 0;

}
1.6. Результати розв’язання СЛАР за допомогою програми.


Рисунок 1.2 – Результат розв’язання СЛАР за допомогою програми
1.7. Результати перевірки знайденого розв’язку СЛАР за допомогою Mathcad.



Рисунок 1.3 – Результат знайденого розв’язку СЛАР з Mathcad
1.8. Аналіз результатів і висновки по роботі.


На даній лабораторній роботі були закріплені навички розв'язання систем лінійних алгебраїчних рівнянь (СЛАР). Розв'язання було проведено точним методом, а саме, методом Гауса. Також у програмній частини представлений розв'язок СЛАР за допомогою С++. Результати вирішення за допомогою програми цілком збігаються з вирішенням СЛАР у системі Mathcad.

скачати

© Усі права захищені
написати до нас