連立一次方程式って難しい

昨夜は月が非常にきれいでしたが、今日は変わって雨模様。昼は結構寒かった・・・
それはさておき。数値計算の練習中、連立方程式を解く場面に出くわしたのですが、それがなかなか難しいようで。
講義で出てきた計算例なのですが、その例ではSOR法で解くとあります。最初に一切合切のパラメータを同じにして同じようにやってみたのですが(たぶんあってると思う)、どうもまともに収束しません。SORをやめてJacobiとGauss Seidelでも試してみましたが、収束しようとはするものの、収束がやけに遅い。情報系でないのでこの辺はしっかり勉強したことがないのですが、収束したと判定する条件を少し厳しくすると、加速度的に必要な反復回数が増えるようです。expといってもいいような雰囲気。初期値が悪いのははなからわかっているのですが、にしてもちょっと実用に耐えません。
しっかりと収束条件を吟味したほうがいいとか、どっか桁落ちしてるんじゃないかとか、丸め誤差がどうとか、もうちょっと真面目に考えた方がいいのは明らかですが、その前にえいやっ、と最も単純であろうGaussの消去法を作ってみました。サイズが100x100とかそのくらいなので、メモリは問題なし。<-実は10000x10000(12/6訂正)
で、結果は撃沈。前進消去の最後に一番右下隅に残る数が小さすぎて、まともに計算できません。やはりかなりたちの悪い行列のようです。連立方程式を解く方法はそれこそこれ以外にも山のようにあって、きっと使えるものもあるとは思うのですが、高度なのはちょっと手に負えません。行列が、三重対角の両外側にちょっと離れて斜めに一列、非ゼロの値が入っていて、それが所々不規則になっているという、疎行列なんだけれども、何ともとらえどころのない感じのもので、扱いにくいというのもあります。
とにもかくにも、連立一次方程式、なかなかに勉強になりますね。計算の方は、物理の方のパラメータなりをなんとかして、まともな行列にするか、あるいは連立方程式を(Poisson方程式を)解かなくて済むようなスキームに変更するかしないと、難しそうだなあ。