Problema resolvido na íntegra
-
Onde o Gram-Schmidt clássico perde o ângulo reto 8 passos
A ferramenta apresenta três colunas separadas por 10⁻⁸ e a respetiva resposta do Gram-Schmidt clássico. Execute o algoritmo à mão, encontre o arredondamento isolado que lhe custa trinta graus e, em seguida, indique até onde cada versão pode ser forçada antes de deixar de valer a pena executá-la.
Abrir este problema na ferramenta
-
Cada coluna corresponde ao vetor (1, 0, 0, 0) com um ε colocado numa posição diferente. A matriz AᵀA é a matriz de uns de dimensões 3 × 3 somada a ε²I. Os seus valores próprios são 3 + ε² uma vez e ε² duas vezes. Como tal, os valores singulares são √(3 + ε²) e ε, o que faz com que o número de condição seja exato e não uma estimativa. A primeira linha da tabela regista 1,7321 × 10⁸.
-
‖a₁‖² é 1 + ε², sendo ε² igual a 10⁻¹⁶. Um double armazena o 1, e o próximo número representável encontra-se 2,2204 × 10⁻¹⁶ mais à frente. Qualquer valor inferior a metade dessa distância, 1,1102 × 10⁻¹⁶, desaparece ao ser somado a 1. Dez elevado a menos dezasseis fica abaixo desse limiar. A raiz quadrada é 1, dividir por este valor não altera nada, pelo que q₁ surge como a própria coluna, com o ε² eliminado do registo. Todos os outros arredondamentos neste problema custam uma unidade na última casa. Este custa trinta graus.
-
Passando à coluna 2, ambas as versões concordam, dado existir apenas um vetor para trás. O coeficiente de projeção é q₁ᵀa₂ = 1. A sua subtração deixa (0, −ε, ε, 0), que possui um comprimento de ε√2 = 1,4142 × 10⁻⁸. A coluna 2 chegou com comprimento 1 até onde um double consegue distinguir, e quase toda ela já estava coberta por q₁, à exceção de 1,4142 × 10⁻⁸.
-
Coluna 3, classicamente. O coeficiente em relação a q₁ volta a ser 1. O coeficiente em relação a q₂ é q₂ᵀa₃. Visto que q₂ existe apenas nas posições 2 e 3, enquanto a₃ mantém o seu ε na posição 4, este produto interno é 0. É precisamente isso que indica a linha O que q₂ subtrai à coluna 3. Subtraindo apenas q₁, resta (0, −ε, 0, ε), novamente com o comprimento ε√2. A linha O que resta da coluna 3 também regista 1,4142 × 10⁻⁸.
-
Tanto q₂ como q₃ foram construídos subtraindo q₁ a uma coluna que partilha o seu 1 inicial. Consequentemente, ambos transportam −1/√2 na posição 2 e não partilham mais nada. O produto interno entre eles é um meio. A ferramenta imprime 0,5000 e 60,00°, mas o valor que armazena é 0,4999999999999999, que dista uma unidade na última casa do meio exato garantido pela álgebra. Isto acontece porque ±1/√2 não constitui uma fração binária. Esta é a magnitude de erro que tal aritmética consegue cometer. Os trinta graus não advêm daqui. A linha de perda da versão clássica regista 0,7071, o que equivale a √(2 × 0,5²): o mesmo meio, contabilizado uma vez em cada canto de QᵀQ.
-
Na versão modificada, para a mesma coluna. Após remover a parte de q₁, o resto é (0, −ε, 0, ε), e esta versão faz as projeções contra este vetor em vez de a₃. O produto interno de q₂ com ele resulta em ε/√2 = 7,0711 × 10⁻⁹, e não zero. Subtraindo este valor, o que sobra é (0, −ε/2, −ε/2, ε), com comprimento ε√(3/2) = 1,2247 × 10⁻⁸. O cálculo de q₂ᵀq₃ dá agora 1,1102 × 10⁻¹⁶ em vez de um meio. A linha de perda modificada regista 1,1547 × 10⁻⁸. Tudo o que aqui resta é o que q₁ não conseguiu retirar: a subtração deixa −ε² na direção de q₁, e a divisão por um resto com comprimento de apenas ε√2 volta a transformar isso num ε/√2.
-
O mesmo raciocínio aplica-se a qualquer contagem de colunas disponibilizada pela ferramenta. A versão clássica constrói cada q subsequente subtraindo q₁ a uma coluna com a qual partilha o seu 1 inicial. Portanto, todos os pares entre eles saem a 60°: são (n − 1)(n − 2)/2 pares, com uma perda de ortogonalidade igual à raiz quadrada de metade dessa contagem. Com duas colunas não existem tais pares. O que sobra é a inclinação da ordem de ε partilhada por ambas as versões.
-
A reta ajustada para a versão clássica atinge uma perda de 1 em κ = 2,35 × 10⁸, motivo pelo qual a curva clássica já se encontra plana na extremidade direita do painel. A versão modificada obtém um limite medido em vez de extrapolado, uma vez que a sua curva vira para lá de 10⁻⁸. Uma reta ajustada prolongada até esse ponto seria refutada pelo painel que se lhe segue. Ao longo de 724 pontos do varrimento, a sua perda nunca excedeu 1,25 épsilons de máquina vezes κ, e este limite só alcança o valor 1 em κ = 3,60 × 10¹⁵. O inverso do épsilon de máquina é 4,50 × 10¹⁵.
Resposta
Os trinta graus emergem de uma única linha. A versão clássica lê q₂ᵀa₃ = 0, enquanto a versão modificada lê q₂ᵀv₃ = 7,0711 × 10⁻⁹. No papel, trata-se do mesmo número.
A separação de 10⁻⁸ corresponde ao primeiro nível em que ε² desaparece de 1 + ε², dado que √(metade do épsilon de máquina) é 1,0537 × 10⁻⁸. A partir daqui para baixo, a célula exibe 60,00° independentemente do quanto continue a arrastar. Um nível atrás, a 10⁻⁷, a leitura é de 89,24° e a versão clássica já perdeu 1,88 × 10⁻² de ortogonalidade. O colapso começa muito antes de o controlo deslizante chegar à marca que o torna exato.
Åke Björck publicou a análise da versão modificada em 1967 e, desde então, a reordenação passou a ser a norma. Ambas executam o mesmo número de multiplicações, mas para esta separação a perda de ortogonalidade difere por um fator de 6,1 × 10⁷. A versão modificada mantém os seus ângulos retos até quase ao limite em que um double deixa de conseguir distinguir as colunas. A versão clássica cede sete ordens de grandeza mais cedo. -
Referências (5)
- The matrix the tool is built on, and the name it carries: P. Läuchli, "Jordan-Elimination und Ausgleichung nach kleinsten Quadraten", Numerische Mathematik 3(1), 226–240, 1961. doi:10.1007/BF01386022
- The analysis of the modified variant that made it the default: Åke Björck, "Solving linear least squares problems by Gram-Schmidt orthogonalization", BIT 7(1), 1–21, 1967. doi:10.1007/BF01934122
- The corresponding rounding-error analysis of the classical variant: Luc Giraud, Julien Langou, Miroslav Rozložník and Jasper van den Eshof, "Rounding error analysis of the classical Gram-Schmidt orthogonalization process", Numerische Mathematik 101(1), 87–100, 2005. doi:10.1007/s00211-005-0615-4
- Gram's paper of 1883, where the process is set out for least squares: J. P. Gram, "Ueber die Entwickelung reeller Functionen in Reihen mittelst der Methode der kleinsten Quadrate", Journal für die reine und angewandte Mathematik 1883(94), 41–73. doi:10.1515/crll.1883.94.41
- And Schmidt's of 1907, where the form used today appears: Erhard Schmidt, "Zur Theorie der linearen und nichtlinearen Integralgleichungen", Mathematische Annalen 63, 433–476, 1907. doi:10.1007/BF01449770