Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
/
ЗВІТ
Вирішення системи рівнянь методом Гауса
до лабораторної роботи № 5
з дисципліни
" AЛГОРИТМИ ТА МЕТОДИ ОБЧИСЛЕНЬ"
ЗАВДАННЯ
Реалізувати стандартний алгоритм матричного множення і запрограмувати метод Гауса (розв'язок системи лінійних алгебраічних рівнянь).
Лістинг програми:
#include "iostream"
#include "math.h"
using namespace std;
int main()
{
int i, j, n, m;
setlocale(LC_ALL, "ukr");
//створюємо масив
cout << "Введiть число рiвнянь: ";
cin >> n;
cout << "Введiть число невiдомих: ";
cin >> m;
m += 1;
float **matrix = new float *[n];
for (i = 0; i<n; i++)
matrix[i] = new float[m];
//ініціалізуємо
for (i = 0; i<n; i++)
for (j = 0; j<m; j++)
{
cout << "Елемент " << "[" << i + 1 << " , " << j + 1 << "]: ";
cin >> matrix[i][j];
}
//виводимо масив
cout << "Матриця має наступний вигляд: " << endl << endl;
for (i = 0; i<n; i++)
{
for (j = 0; j < m; j++)
cout << matrix[i][j] << " "; //<< endl;
cout << endl;
}
cout << endl;
//Метод Гауса
//Прямий хід, приведення до верхньо трикутного вигляду
float tmp, *xx = new float[m];
int k;
for (i = 0; i<n; i++)
{
tmp = matrix[i][i];
for (j = n; j >= i; j--)
matrix[i][j] /= tmp;
for (j = i + 1; j<n; 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<n; j++) xx[i] -= matrix[i][j] * xx[j];
}
//виводимо рішення
for (i = 0; i<n; i++)
cout << xx[i] << " ";
cout << endl << endl;
delete[] matrix;
system("pause");
}
Результат виконання програми:
/
Висновок: на даній лабораторній роботі я засвоїла алгоритм розв’язування систем лінійних рівнянь методом Гауса .