コメント: ハウスホルダー変換経由、ダブルQR法

こんにちは。
私は学生で,ある行列の複素固有値を求めたいと思っているものです。

FORTRANで3重対角行列を作るところまではいったのですが,その次のダブルQR法のプログラムが分かりません.
FORTRANでのダブルQR法のプログラムはありませんか?よろしくお願いします.

投稿者 tomo : October 18, 2004 04:38 PM

fenrirです。Numerical Receiptをみるといいかもしれません。確かFortran77/90のコードがのっていると思います。コードが使いやすいかどうかはわかりませんが。
http://www.library.cornell.edu/nr/

投稿者 fenrir : October 18, 2004 09:11 PM

こんなに古い記事にコメントしてすいません。プログラムについて教えてください。

ダブルシフト法のプログラムをCで作ってますが、ハウスホルダー変換のとき、
「omega * omega.transpose() * -2 / (omega.transpose() * omega)(0, 0)」の部分で、分母が限りなく0に近い場合、誤差の関係でエラーが出ます。これに対して何かしらの処理を行っていますか?

もしよろしければ教えてください。

投稿者 : December 11, 2007 12:09 PM

>Kさん
fenrirです。
コメントありがとうございます。申し訳ないですが、そのような事態は想定していませんでした、現時点では何も処理を行っていません。
少し考えてみましたが、分母が小さくなる場合とはomegaの要素全体が小さい場合しかない(なぜなら分母はノルム)ので、omega * omega.transpose()自体もゼロと扱ってしまってよいのではないでしょうか。

投稿者 fenrir : December 13, 2007 11:21 AM
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。