タグ

ブックマーク / verifiedby.me (2)

  • 二重振り子の精度保証付き数値計算

    少し前(5月頃)、二重振り子のシミュレーション動画がtwitterで流行したことがありました。最初のtweetがこれ。 わずかに異なる初期値をもった50の二重振り子のシミュレーションを動画にしたもので、途中まで完全に重なっているように見える振り子が一気にバラける様子がとても面白い。 次は、それを三重振り子にしたもの。 gmpを用いて高精度計算をしており、ねとらぼで記事にもなりました。 どちらも常微分方程式の計算にはルンゲクッタ法を用いています。わずかな初期値のずれが後に大きな違いをもたらすことがとてもよく分かる動画ですが、一方で、ルンゲクッタ法で計算された値も真値とはわずかにずれており、当然その誤差も同様に後で大きな違いをもたらすことになります。だとすると、果たして意味のある計算になっているのかという疑問が生じます。 そこで、二重振り子の軌道を精度保証付きで計算し、ルンゲクッタ法とどのく

    二重振り子の精度保証付き数値計算
    peketamin
    peketamin 2018/02/03
  • kv - a C++ Library for Verified Numerical Computation

    1. はじめに ページでは、精度保証付き数値計算を行うためにC++で作成した ライブラリ群を公開している。 特に非線形計算の精度保証を行うとき、template機能によって 複雑な数値型をすっきり記述でき、なおかつ "zero-overhead principle" で 計算速度が遅くならないC++は、非常に適していると言える (ほぼ唯一無二であると作者は考えている。)。 精度保証付き数値計算とkvライブラリの概要については、 このスライドを見て欲しい。 kv-intro.pdf (全84ページ) 2007年秋頃~2013年春頃の間は、区間演算を行うのにboostに含まれている intervalライブラリを用いて開発していたが、 boost.intervalは残念ながら不完全な部分が多く ライブラリ体に手を入れざるを得なかった。 boost全体がアップデートする度にinterval部分

    peketamin
    peketamin 2014/06/13
  • 1