80000x80000の正定値行列の平方根が求めたいんですが、良い方法ないでしょうか。ナイーブでDenman-Beaver法はNaNになっているようです。というか私の実装では小さい行列でも結構NaNになるんですね。数値的に安定なアルゴリズムだといろいろな論文に書いてあるのですが。

Follow

@yoriyuki Denman-Beaver法と比べて良いかは知りませんがIN法というのがあるそうです。(数値線形代数の数理とhpc p.167)
link.springer.com/article/10.1

@tetu ありがとうございます。教えていただいた論文はプレプリントを読んだような気がします。

件の問題については、そもそも浮動小数点数で表せない数が出てきているのではないかという疑惑を感じています。だとするとどうしようもないですね。

ニュートン法を改良した方法は教えていただいた論文にもありますが、いろいろあるようなので時間があったら試してみます。

コレスキー分解を使う方法もあるのですが、理論的にはcubicで行列の掛け算に比べてそんなに遅いわけではないのですが、GPUに乗せるのが無理そうなのでちょっと採用できない感じがしています。

Sign in to participate in the conversation
Mathtodon

A Mastodon instance named Mathtodon, where you can post toots with beautiful mathematical formulae in TeX/LaTeX style.