A Eliminação Gaussiana, também conhecida como Método de Eliminação ou Método de Eliminação de Gauss, é uma técnica fundamental para resolver sistemas de equações lineares. Consiste em aplicar uma série de operações elementares (operações em linha) em um sistema de equações para transformá-lo em uma matriz aumentada escalonada (ou triangular), onde as soluções podem ser facilmente determinadas.
Transformação de um sistema linear em uma matriz escalonada
$$\begin{matrix} \small \color{black} Sistema \to \begin{cases} 2x – y + 3z = 9\\ x – 3y – 2z = 0\\ 3x + 2y – z = -1 \end{cases}\\ \color{black} \downarrow\\ \small \color{black} \begin{matrix}Matriz\\Aumentada \end{matrix} \to \begin{bmatrix} 2&-1&3&:\ \ \ 9\\1&-3&-2&:\ \ \ 0\\3&2&-1&:-1 \end{bmatrix}\\ \color{black} \downarrow\\ \small \color{black} \begin{matrix}Matriz\\Escalonada \end{matrix} \to \begin{bmatrix} 1&-3&-2&:\quad\ 0\\ 0&5&7&:\quad\ 9\\ 0&0&-10&:-21 \end{bmatrix} \end{matrix}$$
Processo de transformação de um sistema linear em uma matriz escalonada
Dado o sistema $\begin{cases} x+y+z=25\quad \\ 5x+3y+2z=0\\ y-z=6\qquad \quad \end{cases}$, determine os valores de $x$, $y$ e $z$.
1º Passo: Transformar o sistema em uma Matriz Aumentada.
$$\begin{matrix} \begin{cases} x+y+z=25\quad \\ 5x+3y+2z=0\\ y-z=6\qquad \quad \end{cases}\\ \Downarrow\\ \begin{vmatrix} 1&1&1&:&25\\5&3&2&:&0\\0&1&-1&:&6 \end{vmatrix} \end{matrix}$$
- A primeira coluna da matriz aumentada contém os valores da incógnita $x$, a segunda coluna contém os valores de $y$, a terceira, de $z$, e a última coluna contém os resultados das equações do sistema.
2º Passo: Identificar o Pivô
- Cada Linha terá um pivô, que ocupará a posição dentro da Diagonal Principal. Para a primeira linha, ele será o elemento mais a esquerda da linha.
O primeiro pivô não pode ser zero: Caso o elemento mais a esquerda seja um zero, é necessário realizar uma troca de linha.
$$\large \begin{matrix} \color{#d43b2d}Diagonal\ Principal\\ \begin{vmatrix} \colorbox{#d43b2d}{1} \quad 1\quad \ 1\ :\colorbox{}25\\ 5\quad \colorbox{#d43b2d}{3}\quad 2\ :\colorbox{}0\\0\quad 1\ \ \ \colorbox{#d43b2d}{-1}\ :\colorbox{}6 \end{vmatrix}\\ \\ \color{magenta}1º\ Pivô\\ \begin{vmatrix} \colorbox{magenta}{1}\quad 1\quad 1\ :\colorbox{}25\\ \ 5\quad \colorbox{}3\quad 2\ :\colorbox{}0\\ \ 0\quad 1\ \ \ \colorbox{}-1\ :\colorbox{}6 \end{vmatrix} \begin{matrix} \to 1ª\ linha: L_{1}\\ \to 2ª\ linha: L_{2}\\ \to 3ª\ linha: L_{3} \end{matrix} \end{matrix}$$
3º Passo: Pivotamento ou Escalonamento -> Aplicar Operações Elementares para transformar a matriz em uma Matriz Escalonada.
- Transformar os elementos embaixo do 1º pivô, na 2ª e 3ª, em 0.
- Para isso, toda a 2ª linha será sujeita à operação $\color{Goldenrod} L_{2} – 5 \cdot L_{1}\ \to\ L_{2}$.
- A 3ª linha será sujeita à operação $\color{Goldenrod} L_{3} + \dfrac{L_{2}}{2}\ \to\ L_{3}$.
- 2ª Linha
$$\begin{matrix} \begin{vmatrix} 1\ \ \ \ 1\quad1\ :\ 25\\5\quad3\quad2\ :\ \ \ 0\\0\quad1\ {-1}\ :\ \ \ 6 \end{vmatrix} \begin{matrix} \ \ \to \scriptsize \color{Goldenrod} L_{2}-5 \cdot L_{1} \color{white} \to\\ \ \ \end{matrix}\ \scriptsize \color{Goldenrod} \begin{matrix} 5-5\cdot 1=0\qquad \ \\ 3-5\cdot 1=-2\quad \ \ \\ 2-5\cdot 1=-3\quad\ \ \\ 0-5\cdot 25=-125 \ \end{matrix} \normalsize \color{white}\\ \normalsize \downarrow\\ \begin{vmatrix} 1\quad 1\quad 1:\quad\ 25\\ 0\ {-2}\ {-3}:{-125}\\0\quad 1\ {-1}:\quad\ \ \ 6\end{vmatrix} \end{matrix}$$
- 3ª Linha
$$\begin{matrix} \begin{vmatrix} 1\quad 1\quad 1:\quad\ 25\\ 0\ {-2}\ {-3}:{-125}\\0\quad 1\ {-1}:\quad\ \ \ 6\end{vmatrix} \begin{matrix} \ \ \ \ \to \scriptsize \color{Goldenrod} L_{3}+\dfrac{L_{2}}{2} \color{white} \to\\ \ \ \end{matrix}\ \scriptsize \color{Goldenrod} \begin{matrix} 0+\dfrac{0}{2}=0\qquad \ \\ 1+\dfrac{-2}{2}=0\quad \ \ \\ -1+\dfrac{-3}{2}=-2.5\quad\ \ \\ 6+\dfrac{-125}{2}=-56.5 \ \end{matrix} \normalsize \color{white}\\ \normalsize \downarrow\\ \begin{vmatrix} 1\quad 1\quad 1\ \ \ :\quad\ \ 25\\ 0\ {-2}\ {-3}\ \ \ :\ {-125}\\0\quad0\ {-2.5}: -56.5 \end{vmatrix} \end{matrix}$$
- Após essa etapa, tendo definido o 2º e 3º pivôs, encontramos a Matriz Escalonada.
$$\begin{matrix} \large \color{#c70452}2º\ e\ 3º\ Pivôs\\ \begin{vmatrix} 1\quad 1\quad 1\ \ \ :\quad\ \ 25\\ 0\ {\colorbox{#c70452}{-2}}\ {-3}\ \ \ :\ {-125}\\0\quad0\ {\colorbox{#c70452}{-2.5}}: -56.5 \end{vmatrix}\\ \downarrow\\ \large \color{green} Matriz\ Escalonada\\ \begin{vmatrix} \colorbox{green}{1}\ \ \colorbox{green}{1}\ \ \colorbox{green}{1}:\ \ \ \ \colorbox{green}{25}\\ 0\ {\colorbox{green}{-2}}\ \ {\colorbox{green}{-3}} :\ {\colorbox{green}{-125}}\\0\ \ 0\ {\colorbox{green}{-2.5}} : \colorbox{green}{-56.5} \end{vmatrix} \end{matrix}$$
4º Passo: Substituir os valores originais do sistema pelos valores encontrados da Matriz Escalonada.
$\begin{matrix} \begin{cases} x+y+z=25\quad \\ 5x+3y+2z=0\\ y-z=6\qquad \quad \end{cases} \Longleftrightarrow \begin{vmatrix} 1\quad 1\quad 1\ \ \ :\quad\ \ 25\\ 0\ {-2}\ {-3}\ \ \ :\ {-125}\\0\quad 0\ {-2.5}: -56.5 \end{vmatrix}\\ \downarrow\\ \begin{cases} x+y+z=25\qquad\\ \quad\ -2y-3z=-125 \qquad \\ {-2.5z}={-56.5} \qquad \quad \end{cases} \end{matrix}$
5º Passo: Tendo encontrado a matriz triangular e substituído os valores no sistema, agora, usa-se uma das fórmulas para resolver sistemas lineares: Método da Eliminação, Método da Substituição, [[Regra de Cramer]], etc. Para essa tarefa será utilizada o Método de Substituição, resolvendo as incógnitas da última equação à primeira, de baixo para cima.
$$\begin{matrix} \large \color{white} \begin{cases} x+y+z=25\\-2y-3z=-125\\ \color{sandybrown} {-2.5z}={-56.5} \end{cases}\\ \downarrow\\ \color{sandybrown} {-2.5z}={-56.5}\ \color{white} \to \color{yellow}z \color{white}= \dfrac{-56.5}{-2.5} = \color{yellow}22.6 \end{matrix}$$
$$\begin{matrix} \large \color{white} \begin{cases} x+y+z=25\\ \color{sandybrown} {-2y-3z=-125}\\ {-2.5z}={-56.5} \end{cases}\\ \downarrow\\ \color{sandybrown} -2y – 3 \cdot 22.6 = -125 \color{white} \to \color{yellow} y \color{white}= \dfrac{-57.2}{-2} = \color{yellow}28.6 \end{matrix}$$
$$\begin{matrix} \large \color{white} \begin{cases} \color{sandybrown} {x+y+z=25} \\ -2y-3z=-125\\ {-2.5z}={-56.5} \end{cases}\\ \downarrow\\ \color{sandybrown} {x-28.6 + 22.6 = 25}\\ \downarrow\\ \ \color{yellow}x \color{white}= 25-51.2 = \color{yellow}-26.2 \end{matrix}$$
Resultado:
$$\large \color{lime} x=-26.2 \quad y=28.6 \quad z=22.6$$
Para confirmar se os valores encontrados estão corretos, podemos substituir as incógnitas no sistema e verificar se os resultados conferem:
$\large \begin{matrix} \begin{cases} x+y+z=25\\ 5x+3y+2z=0\\ y-z=6\end{cases}\\ \downarrow\\ \begin{cases} -26.2+28.6+22.6=\color{salmon}25\\ 5 \cdot (-26.2)+3 \cdot 28.6+2 \cdot 22.6=\color{salmon}0\\ 28.6-22.6=\color{salmon}6 \end{cases} \end{matrix}$
Os resultados confirmam os valores encontrados das incógnitas.
Python
''' Em Python, é importante que os números sejam colocados como floats na matriz do Numpy, caso contrário, pode ocorrer erros de precisão nas operações de divisão'''
import numpy as np
def eliminacao_gauss(A, b):
n = len(b)
x = np.zeros(n)
# Primeira etapa: transformar sistema na forma triangular
for i in range(n-1):
for j in range(i+1, n):
m = A[j,i] / A[i,i]
for k in range(i, n):
A[j, k] = A[j, k] - A[i, k] * m
b[j] = b[j] - m * b[i]
# Segunda etapa: resolver sistema triangular de equações
# Percorre colunas de trás para frente
for j in range(n-1, -1, -1):
x[j] = b[j] / A[j, j]
# Percorre coluna de baixo para cima
for i in range(j-1, -1, -1):
b[i] = b[i] - A[i, j] * x[j]
return x
A = np.matrix([[1.0, 1.0, 1.0], [5.0, 3.0, 2.0], [0.0, 1.0, -1.0]])
b = np.array([25.0, 0.0, 6.0])
print(eliminacao_gauss(A, b))
Julia
# Função de Julia que calcula a eliminação gaussiana
A = [1 1 1; 5 3 2; 0 1 -1]
b = [25, 0, 6]
eliminacao_gauss = A \ b
println(round.(eliminacao_gauss, digits=2))
# RESPOSTA [-26.2, 28.6, 22.6]
# Código semelhante à função em Python, que realiza todo o processo matemático descrito acima
""" Assim com em Python, em Julia também é necessário que os elementos das matrizes e vetores sejam floats, por isso, usa-se a funão Any antes das matrizes e vetores """
function eliminacao_gauss(A, b)
n = length(b)
x = zeros(n)
# Primeira etapa: transformar sistema na forma triangular
for i in 1:n-1
for j in i+1:n
m = A[j, i]/A[i, i]
for k in i:n
A[j, k] = A[j, k] - m*A[i, k]
end
b[j] = b[j] - m*b[i]
end
end
# Segunda etapa: resolver sistema triangular de equações
# Percorre colunas de trás para frente
for j in n:-1:1
x[j] = b[j]/A[j, j]
# Percorre coluna de baixo para cima
for i in j-1:-1:1
b[i] = b[i] - A[i, j]*x[j]
end
end
return x
end
eliminacao_gauss(Any[1 1 1; 5 3 2; 0 1 -1], Any[25, 0, 6])
Libs:
Deixe um comentário