Шпоры по МПиПА / Численные методы / Метод Зейделя решения СЛАУ / Описание / Метод Зейделя решения СЛАУ
.docРешение системы линейных алгебраических уравнений ( СЛАУ ) методом Зейделя.
Входные данные - матрица коэффициентов СЛАУ, вектор правых частей, размерность системы, заданная точность.
Выходные данные - вектор решения.
Вспомогательная функция getDiagonal( double **coefficients, double *rightPart, int currColumn, int numberOfEquation ) преобразует матрицу СЛАУ к виду с ненулевыми диагональными элементами с параллельным преобразованием вектора правых частей.
Код: SLAU.cpp
Теоретическое обоснование: Теория.doc
Исполняемый файл: SLAU.exe.
Не всякая система может быть приведена к системе с матрицей с ненулевой диагональю. Если такое приведение не найдено ( в данном случае оно ищется перестановкой строк ) – система не решается.
Быстрее метода простых итераций.
Даже если система приведена к виду с ненулевой диагональю решение может быть не найдено. Это зависит от нормы матрицы и первого приближения решения. Подробнее смотри в файле с теорией.
Примеры использования (распечатка листинга):
Simple iteration method.
Enter system dimension: 3
Enter 1 row: 10 1 1
Enter 2 row: 2 10 1
Enter 3 row: 2 2 10
Enter right part: 12 13 14
Enter precision: 0.1
Solution is:
1.00068
0.997944
1.00028
Number of step: 3
Press "Enter" to continue...
Simple iteration method.
Enter system dimension: 3
Enter 1 row: 2 0 1
Enter 2 row: 1 0 1
Enter 3 row: 1 1 1
Enter right part: 7 4 6
Enter precision: 0.01
Solution is:
2.99707
1.99707
1.00293
Number of step: 11
Press "Enter" to continue...