Juliaを使って、精度保証付き数値計算の方法を紹介します。精度保証付き数値計算は「敷居が高い」と言われ続けていますが、その敷居をみんなが跨げるようにするのが本稿の目的です。Juliaは近年飛ぶ鳥を落とす勢いの計算機言語で、区間演算が実装されているIntervalArithmetic.jlというパッケージがあります。これを利用して、精度保証付き数値計算を実装した例を紹介します。精度保証付き数値計算ってこうやるんだと身近に感じてもらい、今後使ってもらったら嬉しいです。
注意 区間演算の実装であるIntervalArithmetic.jlの実装にまだ不安があり、精度保証付き数値計算で論文を書くときは、MATLABのINTLABやC++のkvライブラリを利用することを推奨します。今はまだ、こうやって実装するのかと気軽に精度保証付き数値計算を体感してもらうためのコンテンツです。今後、区間演算の実装を自作の(あるいは別の)区間演算パッケージに組み替える可能性があります。
目次(順次公開予定)
- はじめに -間違える数値計算-(nonrigorous_numerics.ipynb)
- 整数・浮動小数点数(floating-point.ipynb)
- 丸め誤差・その他の誤差(rounding-error.ipynb)
- 区間演算 -精度保証付き数値計算の入り口-(interval-arithmetic.ipynb)
- ベクトルの内積・行列ベクトル積・行列積の区間演算(interval_dot-mul.ipynb)
- 線型方程式の解の精度保証付き数値計算(verifylss.ipynb)
- 標準固有値問題の精度保証付き数値解法(verifyalleig.ipynb)
- 部分固有対の精度保証付き数値計算(verifyeig.ipynb)
- 高速フーリエ変換(verifyfft.ipynb)
- 非線形方程式の精度保証付き数値解法(verifynlss.ipynb)
- Newton-Kantorovich型定理(Newton-Kantorovich.ipynb)
- フーリエ級数(Fourier_series.ipynb)
- 離散畳み込みの精度保証(discrete_convolution.ipynb)
- フーリエ・スペクトル法による常微分方程式の周期解の数値計算(Fourier_spectral_PO.ipynb)
- 常微分方程式の周期解の精度保証(verifyPO.ipynb)
- チェビシェフ級数(Chebyshev_series.ipynb)
- Clenshawのアルゴリズム(Clenshaw.ipynb)
- Chebyshev補間の微分(Chebdiff.ipynb)
- Chebyshev補間の積分(Chebint.ipynb)
- Chebyshev補間の求根(Chebroot.ipynb)
- Chebyshev補間の最大・最小値(Chebminmax.ipynb)New!
- etc.
これらはGitHub上で学生さんたちと作成したJupyter Notebookが元になっています。GitHubのリポジトリも公開中です。
本稿に関して、修正案やリクエスト等ありましたら、気軽にブログやGitHubにコメントいただくか、高安までご連絡ください。適宜、反映します。
コメント
コメントを投稿