Multigrid Algebraic: Por que o produto de interpolação e restrição não resulta em algo com a norma 1?

12

Atualmente, estou trabalhando com "A Multigrid Tutorial", de Briggs et al, capítulo 8.

A construção do operador de interpolação é dada como: insira a descrição da imagem aqui

A construção do operador de restrição e do operador de rede fina é dada como:

insira a descrição da imagem aqui

Vamos supor que temos três pontos de grade x0, x1, x2 com o do meio x1 é bom e os outros são grosseiros. O do meio é interpolado por x1 = x0*w0 + x2*w2. Portanto, o operador de interpolação é (no Matlab):

I = [1, 0, 0; w0, 0, w2; 0, 0, 1]

I =

[  1, 0,  0]
[ w0, 0, w2]
[  0, 0,  1]

O operador de restrição é então:

transpose(I)

ans =

[ 1, w0, 0]
[ 0,  0, 0]
[ 0, w2, 1]

Agora vamos ver o que aconteceria se alguém restringisse e depois interpolasse diretamente, o que resulta em uma multiplicação de Ie transpose(I):

I*transpose(I)

ans =

[  1,          w0,  0]
[ w0, w0^2 + w2^2, w2]
[  0,          w2,  1]

Eu esperaria que essa matriz fosse algo como uma matriz de identidade ou teria pelo menos a norma 1 ou algo assim. Mas se aplicássemos x = [1, 1, 1], digamos que w0 = w2 = 0,5, obteríamos [1,5 1,5 1,5]. Eu assumiria que as operações de interpolação por restrição aplicadas repetidamente pelo menos convergiriam para alguma coisa. Mas não, nesse caso, todos os componentes do vetor são multiplicados por 1,5 em cada interpolação de restrição. Isso me parece muito estranho.

Alguém pode explicar o que está acontecendo?

Michael
fonte
1
Sua notação é um pouco inútil em que você escreve o operador restrição como um matriz. Mas é claro que ele deve mapear do espaço fino de 3 nós para o espaço grosso de 2 nós, portanto, seria útil escrevê-lo como uma matriz . 3 × 3 2 × 3I3×32×3
Wolfgang Bangerth

Respostas:

8

Uma explicação mais simples - a faixa do operador de restrição é o espaço da grade grossa, enquanto a faixa do operador de interpolação é o espaço da grade fina. A menos que os dois sejam iguais, interpolação + restrição não resultará em uma matriz de identidade, porque sempre haverá componentes de que são truncados pelo operador de restrição e perdidos. x

Jesse Chan
fonte
Eu entendi aquilo. Mas eu assumiria pelo menos que aplicar repetidamente restrições e interpolações convergiria contra alguma coisa. Mas não - no caso acima, todos os elementos vetoriais serão multiplicados por 1,5 para cada interpolação de restrição. Isso me parece estranho.
Michael
Claro - algumas respostas curtas. (1) A suavização e a normalização não são levadas em consideração, que geralmente são aplicadas em conjunto com a interpolação / restrição. (2) Parte disso pode ser a escolha dos pesos. Eles geralmente correspondem a diferentes opções de operadores de interpolação / restrição, alguns dos quais resultam em um comportamento comprovadamente melhor que outros. (3) Existem outros operadores interp / restringir para os quais interp + restringir é uma projeção. Por exemplo, você pode fazer projeções globais de grades grossas a finas, mas isso é caro e não vale a pena para um solucionador.
Jesse Chan
4

Existem duas partes da resposta. Primeiro, você não obtém a identidade porque joga fora as informações durante a operação de restrição (se você pensa em uma malha maior do que apenas os três pontos que considera, então "esquece" os valores de qualquer outro nó durante a restrição) e você não pode recuperar essas informações durante a operação de transposição. Conseqüentemente, você não poderá obter a operação de identidade ao aplicar o .ITI

Segundo, sua intuição de que você deve obter algo que tenha uma norma em torno de uma está correta, e você faria se escolher a matriz de prolongamento de maneira diferente. Na sua declaração, você a escolhe como a transposição da matriz de restrição. Essa é uma opção conveniente, pois torna o ciclo multigrid um operador simétrico . Mas a transposição da restrição não é equivalente à matriz de incorporação que simplesmente interpolaria os valores da função da grade grossa para a grade fina. Se você considerou o operador , este possui a propriedade que você está procurando. Em particular, a é idempotente : se você a aplicar duas vezes, o resultado será o mesmo que se você a aplicasse uma vez:E I E I ( E I ) ( E I ) = E IEEIEI(EI)(EI)=EI .

Wolfgang Bangerth
fonte