MatrixCalc

Calculadora de decomposição LU

Fatore uma matriz quadrada em partes triangular inferior e superior, com todos os multiplicadores à vista. Inclui decomposição de Cholesky para matrizes simétricas definidas positivas.

Matriz A
linhas: 3
colunas: 3
Matriz B
linhas: 3
colunas: 3
Operações

Abra os passos abaixo para ver a resposta completa.

Resultado
Escolha uma operação para ver o resultado aqui. Mensagens de erro aparecem nesta área.

Dicas: ajuste o tamanho (máx 50×50). A×B exige cols(A)=linhas(B). det/inversa/traço/potência exigem matrizes quadradas.

React, Tailwind & shadcn/ui. No external math deps. — Português

Digite uma matriz quadrada, abra a aba Decomposições e clique em LU(A). Como a resposta é um par de matrizes, e não uma só, ela vive inteiramente no painel de passo a passo, que abre sozinho e mostra L e U lado a lado no fim. Cholesky(A) fica na mesma aba, para o caso simétrico explicado abaixo.

O que são os fatores

A LU escreve A = L·U, com L triangular inferior e U triangular superior. Nenhuma das duas é misteriosa: U é exatamente a forma escalonada que a eliminação de Gauss produz, e L guarda os multiplicadores usados no caminho. Fazer a eliminação uma vez entrega as duas.

Exemplo resolvido

43
63
=
10
3/21
×
43
0−3/2

O 3/2 em L é o multiplicador que zerou o 6 abaixo do pivô. Repare que o determinante saiu de graça: multiplique a diagonal de U e obtenha 4 · (−3/2) = −6, vezes −1 a cada troca de linha realizada.

Por que vale a pena

Porque a fatoração é reaproveitável. Resolver Ax = b do zero custa cerca de n³/3 operações. Com L e U em mãos, cada novo lado direito custa apenas : resolva Ly = b por substituição direta e depois Ux = y por substituição retroativa. Se você resolve o mesmo sistema contra muitos vetores b diferentes — o caso normal em engenharia e simulação — a economia é enorme. Para uma matriz 100×100 e cinquenta lados direitos, isso é uma fatoração mais cinquenta passagens baratas, em vez de cinquenta eliminações completas.

Substituição direta e retroativa, na prática

Tome a matriz 3×3 carregada acima. Uma eliminação entrega os dois fatores:

211
4−60
−272
=
100
210
−1−11
×
211
0−8−2
001

Os elementos de L são exatamente os multiplicadores usados na eliminação: 2 zerou o 4, −1 zerou o −2, e −1 zerou o que sobrou na segunda coluna. Agora resolva Ax = b com b = (4, −2, 7). Primeiro Ly = b, de cima para baixo, cada linha dando um valor novo de imediato porque tudo à direita dela é zero:

y₁ = 4; depois 2·4 + y₂ = −2, então y₂ = −10; depois −4 + 10 + y₃ = 7, então y₃ = 1.

Em seguida Ux = y, de baixo para cima: x₃ = 1; depois −8x₂ − 2 = −10, então x₂ = 1; depois 2x₁ + 1 + 1 = 4, então x₁ = 1. A solução é (1, 1, 1), obtida sem uma única divisão por algo que não fosse um elemento da diagonal. O determinante vem de graça dos mesmos fatores: 2 · (−8) · 1 = −16.

Pivotamento

Nem toda matriz admite um A = L·U simples: um zero na posição do pivô quebra o método. A saída é uma matriz de permutação, resultando em P·A = L·U. Na prática o pivotamento é usado de qualquer forma, porque escolher o maior pivô disponível mantém os erros de arredondamento sob controle. A fatoração é única depois de fixada uma convenção; esta calculadora usa a de Doolittle, que põe uns na diagonal de L.

Cholesky: o caso simétrico

Se A for simétrica e definida positiva, ela fatora como A = L·Lᵀ — uma raiz quadrada para matrizes, com um único fator triangular. Simétrica significa A = Aᵀ; definida positiva significa que todo autovalor é maior que zero. Parece restritivo, mas as matrizes que isso descreve estão em toda parte: matrizes de covariância, matrizes de Gram, as equações normais dos mínimos quadrados e as matrizes de rigidez de elementos finitos são todas simétricas definidas positivas por construção.

42
25
=
20
12
·
21
02

Cada elemento da diagonal de L é uma raiz quadrada — aqui √4 = 2 e √(5 − 1²) = 2 — e é por isso que o método exige que a quantidade sob cada raiz continue positiva. Essa exigência é exatamente a definição positiva, o que transforma o algoritmo num teste: se a decomposição completa, a matriz é definida positiva; se ela topa com um valor não positivo sob a raiz, não é. Cholesky é cerca de duas vezes mais rápida que a LU, usa metade da memória e é estável sem pivotamento, e é por isso que os solucionadores testam a simetria primeiro e recorrem a ela sempre que podem.

Erros comuns

  • Supor que toda matriz fatora. Um zero na posição do pivô quebra a LU simples. A saída é uma matriz de permutação: P·A = L·U.
  • Usar Cholesky numa matriz não simétrica. A = L·Lᵀ é simétrica por construção, então uma entrada não simétrica não tem essa fatoração. Use LU.
  • Achar que basta ser simétrica. Uma matriz simétrica com autovalor negativo é indefinida e falha no meio do algoritmo.
  • Esperar fatores inteiros. A diagonal de Cholesky envolve raízes quadradas, então L costuma ser irracional mesmo quando A não é.
  • Esquecer as trocas de linha no determinante. Cada troca inverte o sinal.

Perguntas frequentes

Por que a calculadora diz que minha matriz precisa de troca de linhas?
Algum pivô deu zero, então não existe fatoração A = L·U simples. Para essa matriz só existe a forma permutada P·A = L·U.
A decomposição LU é única?
É, depois de fixada a convenção. Esta calculadora usa a de Doolittle, que põe uns na diagonal de L.
Quando devo usar Cholesky?
Quando a matriz é simétrica e definida positiva. Ela é cerca de duas vezes mais rápida e precisa de um único fator triangular, já que A = L·Lᵀ.
E se minha matriz não for definida positiva?
O algoritmo chega a uma raiz quadrada de número não positivo e para. Essa falha é informativa: é o teste numérico padrão de definição positiva.
Dá para obter o determinante pela LU?
Dá — é o produto da diagonal de U, multiplicado por −1 a cada troca de linhas realizada.

Outras calculadoras