📑   Линейная алгебра. Практическая работа №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. Отдельная ячейка для дополнительных экспериментов