Saltar para o conteúdo

Ortogonalização

Origem: Wikipédia, a enciclopédia livre.

Em álgebra linear, ortogonalização é o processo de encontrar um conjunto de vetor ortogonal que gera um subespaço específico. Formalmente, começando com um conjunto linearmente independente de vetores {v1, ... , vk} em um espaço com produto interno (mais frequentemente o espaço euclidiano Rn), o processo de ortogonalização resulta em um conjunto de vetores ortogonais {u1, ... , uk} que geram o mesmo subespaço que os vetores v1, ... , vk. Todo vetor do novo conjunto é ortogonal a todos os demais vetores do novo conjunto; e o novo conjunto e o antigo possuem o mesmo espaço gerado.

Além disso, se o objetivo for obter vetores que são unitários, então o procedimento é chamado de ortonormalização.

Também é possível realizar o processo de ortonormalização com relação a qualquer forma bilinear simétrica (não necessariamente um produto interno, e não necessariamente sobre os números reais), mas os algoritmos usuais podem se deparar com divisão por zero nesta situação mais geral.

Algoritmos de ortogonalização[editar | editar código-fonte]

Estes são alguns dos métodos de ortogonalização:

Quando a ortogonalização é feita em um computador, geralmente prefere-se utilizar a transformação de Householder em vez do processo de Gram–Schmidt uma vez que ela é mais estável numericamente, ou seja, os erros de arredondamento tendem a ter efeitos menos graves.

Por outro lado, o processo de Gram–Schmidt produz o j-ésimo vetor ortogonalizado depois da j-ésima iteração, enquanto que a ortogonalização por reflexões de Householder produz todos os vetores somente no fim do processo. Isso faz com que somente o processo de Gram–Schmidt seja aplicável a métodos iterativos como a iteração de Arnoldi.

A rotação de Givens é paralelizada mais facilmente do que as transformações de Householder.

Referências[editar | editar código-fonte]

  • J. Stoer & R. Bulirsch. Introduction to Numerical Analysis. Springer. 2 ed. p. 198. ISBN 0-387-97878-X.

Ver também[editar | editar código-fonte]