📑 Линейная алгебра. Практическая работа №5
🌀 Home Page
🌀 Previous
🌀 Next
Системы линейных уравнений
1. Однородные и неоднородные системы
Активируйте этот код перед использованием любых ячеек Linked Sage Cells
Активируйте этот код перед использованием любых ячеек Linked Python Cells
Активируйте этот код перед использованием любых ячеек Linked R Cells
Библиотека $matlib$ здесь не установлена. Можно локально установить и запустить с R.
library(matlib)
A<-matrix(c(8,-2,-2,4,-5,4,1,1,-2,-4,4,3,-2,1,4,10),4,4)
b<-c(35,-8,-11,10)
showEqn(A,b)
Solve(A,b)
2. Правило Крамера
Алгоритм решения:
1) вычисляем определитель основной матрицы системы (должен быть ненулевым);
2) вычисляем определители матриц, полученных заменой каждого столбца основной матрицы столбцом свободных членов;
3) вычисляем значения переменных как отношение определителя с замененным
соответствующим столбцом к определителю основной матрицы.
3. Алгоритм Гаусса
Последовательное исключение неизвестных и приведение матрицы коэффициентов уравнения к верхнему треугольному виду.
Элементарные преобразования:
1) перестановка строк;
2) удаление строк нулевыми коэффициентами;
3) умножение любой строки на ненулевую константу;
4) прибавление к строке любой другой строки.
Шаги алгоритма:
1) выберем "разрешающую" строку с наименьшим количеством нулей, считая от начала;
2) разделим эту "разрешающую" строку на ее первый ненулевой элемент, стоящий на k-ой позиции от начала;
3) переставим полученную строку на k-ую позицию среди строк;
4) вычтем из каждой строки матрицы "разрешающую" строку, умноженную на элемент обрабатываемой строки в k-ом столбце,
k-ый столбец станет столбцом единичной матрицы;
5) продолжим процесс до того приведения матрицы к верхнему треугольному виду.
При вычислениях можно избежать дробей, применив элементарные преобразования.
Библиотека matlib здесь не установлена. Можно локально установить и запустить с R.
library(matlib)
A<-matrix(c(8,-2,-2,4,-5,4,1,1,-2,-4,4,3,-2,1,4,10),4,4)
b<-c(35,-8,-11,10)
echelon(A,b,verbose=TRUE,fractions=TRUE)
4. Задание
Решить систему линейных уравнений указанными методами, используя SageMath, Numpy, SymPy или R.
$\begin{cases}
5x_1 - x_2 - 8x_3 - 10x_4 = 12 \\
-3x_1 + x_2 - x_3 + x_4 = 5 \\
-2x_1 + 4x_2 + 2x_3 + 6x_4 = -28 \\
-2x_1 - 5x_2 - 7x_3 - 10x_4 = 61
\end{cases}$
5. Отдельная ячейка для дополнительных экспериментов