Je travaille actuellement avec "A Multigrid Tutorial" de Briggs et al, Chapter 8.
La construction de l'opérateur d'interpolation est donnée comme suit:
La construction de l'opérateur de restriction et de l'opérateur de grille fine est donnée comme suit:
Supposons que nous ayons trois points de grille x0, x1, x2 avec celui du milieu x1 est bien et les autres sont grossiers. Celui du milieu est interpolé par x1 = x0*w0 + x2*w2
. Par conséquent, l'opérateur d'interpolation est (dans Matlab):
I = [1, 0, 0; w0, 0, w2; 0, 0, 1]
I =
[ 1, 0, 0]
[ w0, 0, w2]
[ 0, 0, 1]
L'opérateur de restriction est alors:
transpose(I)
ans =
[ 1, w0, 0]
[ 0, 0, 0]
[ 0, w2, 1]
Voyons maintenant ce qui se passerait si l'on restreignait puis interpolait directement, ce qui se traduisait par une multiplication de I
et transpose(I)
:
I*transpose(I)
ans =
[ 1, w0, 0]
[ w0, w0^2 + w2^2, w2]
[ 0, w2, 1]
Je m'attendrais à ce que cette matrice soit quelque chose comme une matrice d'identité ou aurait au moins la norme 1 ou quelque chose. Mais si nous appliquions x = [1, 1, 1] pour disons w0 = w2 = 0,5, nous obtiendrions [1,5 1,5 1,5]. Je suppose que les opérations d'interpolation de restriction appliquées à plusieurs reprises convergeraient au moins vers quelque chose. Mais non, dans ce cas, toutes les composantes vectorielles sont multipliées par 1,5 à chaque restriction-interpolation. Cela me semble très étrange.
Quelqu'un peut-il expliquer ce qui se passe?