Professional Documents
Culture Documents
NM Lab1
NM Lab1
Лабораторна робота №1
З дисципліни «Чисельні методи»
Тема:
«Розв’язування системи лінійних алгебраїчних рівнянь
методом Гауса. Схема Жордана»
Львів 2019
Мета роботи: ● вивчити і засвоїти Методи Гауса і Жордана – Гауса
розв’язування СЛАР.
Короткі теоретичні відомості. Алгоритми
Метод Гауса
Ідея методу Гауса полягає в тому, щоб СЛАР за допомогою еквівалентних
перетворень звести до системи з трикутною матрицею, оскільки розв’язання
такої системи не вимагає жодних зусиль. Процес зведення системи до
трикутного вигляду називається прямим ходом. А відшукання розв’язку
зведеної системи – зворотним ходом. Прямий хід складається із (n-1)-го кроку,
на кожному з яких із частин рівнянь системи вилучається одне із невідомих.
На першому кроці вилучаємо х1 із усіх рівнянь, крім першого Щоб
вилучити х1 з і-го р-ня системи, треба перше рівняння помножити на коефіцієнт
template<class type>
void format(type num) {
printf("%.2f", num); printsym(6 - to_string((int)num).length(), ' ');
}
if (printResult)
std:cout << "THE RESULT OF FINDING THE DIAGONAL ELEMENTS IS:\n\n",
print2DVector(matrix);
type toDecrement = 0;
for (int i = solutions.size() - 1; i >= 0 ; i--) {
if (i == row) continue;
toDecrement += solutions[i] * matrix[row][i];
}
return toDecrement;
}
template <class type>
vector<type>* calculateSolutionsForGauss(vector<vector<type>> matrix, bool printResult) {
return &solutions;
}
return &solutions;
}
template <class type>
void makeMatrixForGauss(vector<vector<type>>& matrix, bool printResult) {
if (printResult)
std:cout << "THE RESULT OF FINDING THE DIAGONAL ELEMENTS IS:\n\n",
print2DVector(matrix);
int main() {
int n;
printf("\nEnter the size of matrix: ");
cin >> n;
vector<vector<double>> matrix = init2DVector(n + 1, n);
//print2DVector(matrix);
enterMatrixData(matrix);
print2DVector(matrix);
if (n == 2) {
makeStairMatrix(matrix, true);
calculateSolutions(matrix, true);
}
else {
makeMatrixForGauss(matrix, true);
calculateSolutionsForGauss(matrix, true);
return 0;
}
Результат:
Метод Гауса
Метод Жордана-Гауса
Висновок
Під час виконання даної лабораторної роботи я вивчив та засвоїв
Методи Гауса і Жордана – Гауса розв’язування СЛАР. Усі
розрахунки я спочатку виконав вручну, а потім використавши
програмні коди записав туди свої дані. Порівнявши результати, можу
сказати, що розв’язки рівнянь я отримав однакові, як із програмного,
так і з розв’язку вручну. Проте, результати, що показали програми,
виявились більш точними.
Якщо брати до уваги лише два різних методи, то результати
СЛАР були отримані однаково точні.