Resolver sistema de equações do primeiro grau na prática
A maioria das pessoas encontra sistema do primeiro grau na escola e acha que entendeu. Aí chega um problema mal formulado, coeficientes decimais, ou uma matriz singular e percebe que na verdade não tinha entendido quase nada. Eu já vi isso acontecer repetidamente, tanto em sala de aula quanto em projetos de engenharia onde équations lineares aparecem como sub-rotina de algo muito maior. Um sistema do primeiro grau é basicamente um conjunto de duas ou mais equações onde todas as incógnitas aparecem com expoente 1. Nada de x², nada de xy, nada de raiz em variável. O gráfico de cada equação individual é uma reta (no caso de duas variáveis) ou um hiperplano (com mais variáveis). O objetivo é encontrar o ponto em que todas as retas se cruzam ao mesmo tempo.
O que é sistema do primeiro grau e como ele se comporta
Vamos começar pela forma geral. Um sistema com n equações e n incógnitas se escreve assim: ax + ax + ... + ax = b
ax + ax + ... + ax = b
...
ax + ax + ... + ax = b
Em forma matricial, isso vira Ax = b, onde A é a matriz dos coeficientes, x é o vetor das incógnitas e b é o vetor dos termos independentes. Essa notação não é só estética — ela muda completamente a forma como você pensa na resolução. O método mais ensinado é substituição. Você isola uma variável em uma equação e substitui nas outras. Funciona para sistemas pequenos, dois por dois ou três por três. Mas tem um detalhe que ninguém conta: a partir de quatro equações, substituição manualmente começa a gerar erros de sinal com frequência. Eu perdi dois dias num projeto de dimensionamento estrutural porque esqueci de colocar um sinal negativo numa substituição encadeada de sete equações. A solução foi abandonar substituição e ir direto para escalação.
Gauss-Jordan é o método que eu recomendo para tudo acima de dois por dois. Você monta a matriz ampliada [A|b] e aplica operações elementares de linha até chegar à forma escalonada reduzida. Cada operação — trocar linhas, multiplicar uma linha por escalar não nulo, somar múltiplo de uma linha a outra — preserva o conjunto solução. É algorítmico, então dá para fazer à mão com paciência ou programar em poucas linhas. Exemplo rápido, sistema 2x2:
3x + 2y = 8
5x - y = 7 Matriz ampliada:
[3 2 | 8]
[5 -1 | 7] Divido a primeira linha por 3:
[1 2/3 | 8/3]
[5 -1 | 7 ] Subtraio 5 vezes a primeira da segunda:
👉 Clique no botão abaixo para saber mais sobre o assunto!
[1 2/3 | 8/3]
[0 -13/3 | 11/3] Segunda linha multiplicada por -3/13:
[1 2/3 | 8/3]
[0 1 | -1] Subtraio 2/3 vezes a segunda da primeira:
[1 0 | 2]
[0 1 | -1] x = 2, y = -1. Conferindo: 3(2) + 2(-1) = 4 8. Erro de conta minha. Deixa eu recalcular a segunda linha: 7 - 5*(8/3) = 7 - 40/3 = 21/3 - 40/3 = -19/3. Então a segunda linha fica [0 -13/3 | -19/3]. Multiplicando por -3/13: y = 19/13. Depois x = 8/3 - (2/3)(19/13) = 8/3 - 38/39 = 104/39 - 38/39 = 66/39 = 22/13. Conferindo na segunda equação original: 5(22/13) - 19/13 = 110/13 - 19/13 = 91/13 = 7. Fechou.
Esse exemplo mostra algo importante: erro aritmético é o problema número um, não o método em si. Sistema do primeiro grau em si é mecanicamente simples. O que quebra as pessoas é fazer conta com frações na mão. Outra coisa que os livros não enfatizam suficiente: o determinante só conta metade da história. Se det(A) 0, o sistema tem solução única. Isso é verdade. O que não dizem é que calcular o determinante para sistemas grandes é computacionalmente caro — complexidade O(n!) para cofatores, ou pelo menos O(n³) para escalonamento — e que para n > 10 ninguém resolve à mão mesmo. E quando det(A) = 0, o sistema pode ser impossível ou ter infinitas soluções. A diferença entre esses dois casos só aparece durante o escalonamento, não no determinante isolado.
Regra de Cramer existe e é elegante, mas na prática só vale a pena para 2x2 e 3x3. Para cada incógnita você precisa calcular um determinante novo. Cinco incógnitas = cinco determinantes 5x5. Isso é trabalho desnecessário quando o escalonamento resolve tudo de uma vez. Quase todo mundo esquece também de verificar a consistência. Depois de escalonar, se aparecer uma linha do tipo [0 0 0 | k] com k 0, o sistema é impossível. Não adianta continuar. Já vi gente reclamando que o sistema "não dá certo" sem perceber que era simplesmente impossível desde o início. Do outro lado, se aparecer [0 0 0 | 0], você tem uma variável livre e infinitas soluções. Aí o que importa é identificar corretamente quais variáveis são livres e parametrizar tudo direitinho.
Na minha experiência com modelos de fluxo em redes de distribuição, encontrei um sistema 12x12 onde três equações eram combinações lineares das outras nove. A matriz tinha posto 9, não 12. O software que eu usava simplesmente retornava "matriz singular" e travava. A solução foi detectar as dependências antes de resolver: fiz redução por linhas, identifiquei as linhas nulas, removi as equações redundantes e resolvi o sistema 9x9 resultante. Isso cortou o tempo de setup de cerca de 40 minutos para 8 minutos, porque o problema original nem era resolvível no estado em que estava. Para sistemas esparsos — aqueles com muitos coeficientes zero, como aparecem em malhas estruturais e circuitos elétricos — métodos diretos como Gauss consomem memória desnecessária se você não tratar a estrutura de sparse. Um sistema de 500 variáveis com apenas 5 não-zeros por linha pode ser resolvido em segundos com um solver sparso, mas em minutos ou horas com um solver denso que aloca matriz completa. Se você vai resolver sistema do primeiro grau recorrentemente, vale a pena investir em uma biblioteca como Eigen, SciPy sparse ou PETSc, dependendo da linguagem.
Limitações honestas: sistema do primeiro grau não modela tudo. Se o problema envolve atrito seco, materiais com comportamento não-linear, ou fluxos turbulentos, você vai precisar de iteração numérica e linearizações sucessivas. O método de Newton, por exemplo, resolve sistemas lineares em cada passo, mas o sistema original não é linear. Além disso, sistemas mal condicionados — onde pequenas mudanças nos dados de entrada produzem grandes mudanças na solução — são um pesadelo numérico mesmo com o melhor algoritmo. Um número de condição acima de 10 já preocupa em precisão dupla. Nesses casos, regularização ou métodos iterativos como Gauss-Seidel podem ajudar, mas nenhuma técnica é bala de prata. Resumindo sem resumir: sistema do primeiro grau é ferramenta básica, não problema avançado. A dificuldade real está em saber quando ele se aplica, como diagnosticar singolaridade antes de perder tempo calculando, e como lidar com erro numérico quando os coeficientes vêm de medição real. Se você dominar escalonamento e entender o que posto de matriz significa, já resolve 90% dos casos que vão aparecer.