マルチグリッド法をだらだらとまとめる。
旅行にずっと行っていたんだけど、そろそろ研究に戻ろうと思いまする。まず最初はマルチグリッド法を勉強する。
とはいうものの、結構分からない。マルチグリッド法は、ポワソン方程式をとくための近似法であり、粗いグリッドので近似して、そのグリッドを細かくしていくことで精度を高める、というものだろう。最終的にはCUDAにのっけるつもりなので、ここのサイトを参考にしてまとめていく。
http://shatterednirvana.wordpress.com/2007/12/20/multigrid-methods-with-cuda/
Red-Black Gauss Seidel法
線形システム方程式をとく一番簡単な方法は、ヤコビ法、ガウス-ザイデル法、Red-Black ガウスザイデル法である。この中でも、Red-Black ガウスザイデル法が一番反復回数が少ない。さらに、CUDAに都合がよいことに、並列化しやすい。通常のガウスザイデル法では、すべての点が毎回更新される。これは並列計算にとってあまり賢い選択ではない。赤黒ガウスザイデル法では、まず奇数の点が更新され、次に偶数の点が更新される。更新は、となりの点の平均をとることでなされる。
まぁ、まとめようと思ったんだけど
この他はあまり有用な情報がなかったかな。っていうか、結局CUDAでやるよりCで実装した方が早い、みたいな結論になってて残念過ぎる。
V cycleってなんなんだろうか
もともと読んでた論文の中にマルチグリッド法と一緒にVcycleの言及があった。これが全然理解できない…理解しとかないと前に進めない気がするので、一応やっとこう。
ガウス・ザイデル方って何よ。
ここをはっきりさせておかないと始まらない。といっても、結局は連立方程式をとくだけなので深入りはする必要はない(したくない。。。)。漸化式はここにのってます。
http://www.akita-nct.ac.jp/~yamamoto/lecture/2006/5E/Linear_eauations/concrete_relax_html/node2.html
もうやめ。実装進めるわ、今日は。