Saat ini saya sedang bekerja dengan "Tutorial Multigrid" oleh Briggs et al, Bab 8.
Konstruksi operator interpolasi diberikan sebagai:
Kemudian konstruksi operator pembatasan dan operator grid diberikan sebagai:
Misalkan kita memiliki tiga titik kisi x0, x1, x2 dengan yang di tengah x1 baik-baik saja dan yang lainnya kasar. Yang tengah diinterpolasi oleh x1 = x0*w0 + x2*w2
. Oleh karena itu, operator interpolasi adalah (dalam Matlab):
I = [1, 0, 0; w0, 0, w2; 0, 0, 1]
I =
[ 1, 0, 0]
[ w0, 0, w2]
[ 0, 0, 1]
Operator pembatasan adalah:
transpose(I)
ans =
[ 1, w0, 0]
[ 0, 0, 0]
[ 0, w2, 1]
Sekarang mari kita lihat apa yang akan terjadi jika seseorang akan membatasi dan kemudian menginterpolasi secara langsung, apa yang menghasilkan multiplikasi dari I
dan transpose(I)
:
I*transpose(I)
ans =
[ 1, w0, 0]
[ w0, w0^2 + w2^2, w2]
[ 0, w2, 1]
Saya berharap bahwa matriks ini adalah sesuatu seperti matriks identitas atau setidaknya memiliki norma 1 atau sesuatu. Tetapi jika kita akan menerapkan x = [1, 1, 1] untuk katakanlah w0 = w2 = 0,5, kita akan mendapatkan [1,5 1,5 1,5]. Saya akan berasumsi bahwa berulang kali menerapkan operasi pembatasan-interpolasi setidaknya akan bertemu dengan sesuatu. Tetapi tidak, dalam hal ini semua komponen vektor dikalikan 1,5 pada setiap pembatasan-interpolasi. Itu tampak sangat aneh bagi saya.
Adakah yang bisa menjelaskan apa yang terjadi?