Решение систем линейных уравнений методом крамера методом гаусса: Решение системы линейных уравнений (СЛАУ) онлайн

Инженерное дело на курсах Альберты » Правило Крамера

Метод

Правило Крамера — один из первых методов решения систем линейных уравнений. Он датирован восемнадцатым веком! Метод работает очень хорошо; однако это неэффективно, когда количество уравнений очень велико. Тем не менее, при нынешних вычислительных возможностях метод все еще может быть довольно быстрым. Метод работает, используя следующие шаги. Сначала вычисляется определитель матрицы. Каждая компонента неизвестных может быть вычислена как:

   

где — матрица, образованная заменой столбца на вектор .

Пример 1

Рассмотрим линейную систему уравнений, определенную как:

   

. Мы сформируем следующие две матрицы, заменив первый столбец на , а затем второй столбец на :

   

Определители этих матриц:

   

Следовательно:

   

Ниже приведен код, который можно использовать для правила Крамера для двумерной системы уравнений.

Просмотр кода Mathematica
 A = {{a11, a12}, {a21, a22}};
AT = транспонировать [A]
б = {б1, б2};
s1 = Отбросить[AT, {1}]
s2 = Отбросить[AT, {2}]
D1T = Вставить [s1, b, 1]
D2T = Вставить [s2, b, 2]
D1 = транспонировать [D1T]
D2 = транспонировать [D2T]
x1 = Дет [D1] / Дет [A]
x2 = Дет [D2] / Дет [A]
 
Посмотреть код Python
 импортировать sympy как sp
a11, a12, a21, a22 = sp.symbols("a11 a12 a21 a22")
A = sp.Matrix([[a11, a12], [a21, a22]])
печать("А:",А)
АТ = АТ
print("Транспонировать:",AT)
s1 = sp.Matrix(AT)
s1.row_del(0)
печать("s1:",s1)
s2 = sp.Matrix(AT)
s2.row_del(1)
печать("s2:",s2)
b1, b2 = sp.символы ("b1 b2")
b = sp.Matrix([[b1, b2]])
D1T = sp.Matrix(s1)
D1T = D1T.row_insert(0,b)
печать("Д1Т:",Д1Т)
D2T = sp.Matrix(s2)
D2T = D2T.row_insert(1,b)
печать("Д2Т:",Д2Т)
Д1 = Д1Т.Т
print("Транспонирование D1T:",D1)
Д2 = Д2Т.Т
print("Транспонирование D2T:",D2)
x1 = D1.det()/A.det()
печать("x1:",x1)
x2 = D2.det()/A.det()
печать("x2:",x2)
 
Пример 2

Рассмотрим линейную систему уравнений, определенную как:

   

. Мы сформируем следующие три матрицы, заменив соответствующие столбцы на:

   

Определители этих матриц:

   

Следовательно:

   

Следующая процедура применяет правило Крамера к общей системе. Протестируйте процедуру, чтобы увидеть, насколько быстро она выполняется для более высоких измерений.

View Mathematica Code
 Cramer[A_, b_] := (n = Length[A];
  Di = Таблица[A, {i, 1, n}];
  Do[Di[[i]][[All, i]] = b, {i, 1, n}];
  x = Таблица[Det[Di[[i]]]/Det[A], {i, 1, n}])
А = {{1, 2, 3, 5}, {2, 0, 1, 4}, {1, 2, 2, 5}, {4, 3, 2, 2}};
б = {-4, 8, 0, 10};
Крамер [А, б]
 
Посмотреть код Python
 импортировать numpy как np
защита Крамера (A, b):
  п = лен (А)
  Di = [np.array(A) для i в диапазоне(n)]
  для я в диапазоне (n):
    Ди [я] [:, я] = б
  return [np.linalg.det(Di[i])/np.linalg.det(A) для i в диапазоне(n)]
А = [[1, 2, 3, 5], [2, 0, 1, 4], [1, 2, 2, 5], [4, 3, 2, 2]]
б = [-4, 8, 0, 10]
Крамер(А, б)
 

По следующей ссылке представлен код MATLAB для реализации правила Крамера.

Файл MATLABСкачать

Теория системы уравнений II | Математические упражнения

Эта теория о системе уравнений является продолжением предыдущего поста «Система теории линейных уравнений»

GAUSS Метод:

GAUS систему в эквивалентную систему. Для этого возьмем расширенную матрицу системы и элементарными операциями с их рангами преобразуем ее в высшую (или низшую) треугольную матрицу. Таким образом, мы получаем эквивалентную систему для начала и более простую для ее решения:

Он подобен редукционному методу, потому что он работает с уравнениями, как это делается в редукционном методе, но вы экономите на записи неизвестных, потому что, когда коэффициенты одного и того же неизвестного всегда идут в одном и том же столбце, вы всегда знаете, какие неизвестно, на что умножить.

Пример:

Биопроф | Теория системы уравнений II| 01

 

Формируем расширенную матрицу системы:

Биопроф | Теория системы уравнений II| 02

 

Если ко второй и третьей строке вычесть первую, то получим:

Биопрофе | Теория систем уравнений II| 03

 

Если теперь поменять местами вторую строку с третьей, то получим следующую верхнюю треугольную матрицу:

Bioprofe | Теория систем уравнений II| 04

 

Что является расширенной матрицей следующей системы уравнений:

Bioprofe | Теория систем уравнений II| 05

 

Решаем третье уравнение и видим, что:

Биопрофе | Теория систем уравнений II| 06

 

Подставляя во второе уравнение полученное значение z, мы получаем значение неизвестного «y»:

Bioprofe | Теория систем уравнений II| 07

 

Подставляя значения в первое уравнение, получаем все неизвестные:

Bioprofe | Теория систем уравнений II| 08

 

РЕШЕНИЕ:

Х= 1; у = 1; z= 1

 

Метод обратной матрицы:

Он подобен процессу исключения Гаусса, поскольку система записана в матричной форме:

A · X = B

Если существует A-1, то то есть, если определитель квадратной матрицы A не равен нулю, то мы можем умножить все предыдущие равенства на A-1, чтобы получить:

Bioprofe | Теория систем уравнений II| 09

 

, который является решением системы линейных уравнений матрицы коэффициентов A и независимых членов матрицы B, которая уже решена в соответствии с шагами метода Гаусса.

Оставить комментарий