Um conjunto finito de equações lineares nas variáveis $x_{1}$, $x_{2}$, ..., $x_{n}$ é chamado um sistema de equações lineares ou um sistema linear. Uma sequência de números $s_{1}$, $s_{2}$, ..., $s_{n}$ é chamado uma solução do sistema se $x_{1}$ = $s_{1}$, $x_{2} = s_{2}$, ..., $x_{n}$ = $s_{n}$ é uma solução de cada equação do sistema.
Um sistema de equações que não possui solução é chamado inconsistente; se existir pelo menos uma solução do sistema, dizemos que ele é consistente.
Todo sistema de equações lineares tem ou nenhuma solução, ou exatamente uma, ou então uma infinidade de soluções.
Se nós mantivermos guardado na memória a localização dos sinais de soma, das variáveis e das constantes, poderemos abreviar a escrita de um sistema de m equações lineares em n incógnitas para:
$\begin{bmatrix} a_{11} & a_{12} & ... & a_{1n} & b_{1} \\ a_{21} & a_{22} & ... & a_{2n} & b_{2} \\ : & : & : & : & : \\ a_{m1} & a_{m2} & ... & a_{mn} & b_{m} \\ \end{bmatrix}$
Esta é a chamada matriz aumentada do sistema.
Vamos definir um Sistema do tipo:
Manualmente resolver tal processo seria muito custoso, poderiamos resolver diagonalizando a matriz aumentando nesse caso. Entretanto, computacionalmente, podemos usar a ideia de matriz inversa a nosso favor para obter as soluções de qualquer tipo de sistema linear. Vejamos como fazer tal processo abaixo:
Podemos representar o sistema linear acima utilizando matrizes:
Vamos seguir os seguintes passos para encontrar o conjunto solução desse sistema linear, ou pelo menos uma das soluções dependendo da matriz apresentada.
# importando a biblioteca numpy
import numpy as np
# declarar as matrizes do exemplo acima
A = np.array([[1,1,1,1,1,1],[10,2,3,4,5,1],[1,1,2,4,1,1],[2,7,1,1,10,2],
[3,1,1,1,20,1],[2,6,1,4,5,1]])
B = np.array([[21],[70],[36],[85],[118],[64]])
# Encontrar a inversa de A
A_I = np.linalg.inv(A) #Função que encontra a matriz inversa
# Encontrando X
X = np.dot(A_I,B) # Função que realiza mutiplicação entre matrizes sem especificador de tipo
# X = np.linalg.solve(A,B) #Função alternativa que resolve Sistemas Lineares
# imprime a matriz A dos coeficientes de X e Y
print("{}".format(A))
[[ 1 1 1 1 1 1] [10 2 3 4 5 1] [ 1 1 2 4 1 1] [ 2 7 1 1 10 2] [ 3 1 1 1 20 1] [ 2 6 1 4 5 1]]
# imprime a matriz A inversa
print("{}".format(A_I))
[[ 0.5751938 0.07364341 -0.4124031 -0.26511628 0.04341085 0.2503876 ] [-0.80775194 0.05426357 0.29612403 0.40465116 -0.13643411 -0.21550388] [-3.91627907 0.31395349 2.24186047 1.86976744 -0.44651163 -1.93255814] [ 0.97209302 -0.10465116 -0.41395349 -0.62325581 0.14883721 0.64418605] [-0.11317829 -0.00775194 0.04341085 0.02790698 0.04806202 -0.02635659] [ 4.28992248 -0.32945736 -1.75503876 -1.41395349 0.34263566 1.27984496]]
# imprime a matriz B resultado dos sistemas lineares
print("{}".format(B))
[[ 21] [ 70] [ 36] [ 85] [118] [ 64]]
# imprime a matrix , o conjunto solução desse sistema
print("{}".format(X))
[[1.] [2.] [3.] [4.] [5.] [6.]]