ad/d(n*x) 演算子のステンシルを生成するにはどうすればよいですか?
画像の線導関数を計算する必要があるプログラムを書いています。d/dx に関して最も単純な微分近似を計算する場合は、次の操作を実行できます。
diff[x] = -1.0 * image[x] + image[x+1]
導関数のより正確な計算が必要な場合は、ステンシルのサイズを大きくして、次のように再計算することができます。
diff[x] = -3./2 * image[x] + 2*image[x+1] - 1./2 * image[x+2]
これらの係数を取得する際に有限差分法を使用しています。
ここで、d/d(3*x) に関して導関数を取得したいとします。元のステンシルを次のように単純に引き伸ばすことができます。
diff[x] = -1.0 * image[x] + image[x+3]
ただし、ここでは image[x+1] と image[x+2] からの情報を使用していないため、微分近似を大幅に改善できます。この情報を使用してより正確なステンシルを生成するにはどうすればよいですか?