Ruby に超準解析のライブラリがあって激しい衝撃を受けた¶
本題¶
HTML5+JavaScript で高校生向けの数学・物理の簡単なアニメーションが作れるので, その関係もあって最近プログラミングを本格的に勉強したいと思っている.
そして全く別件で今色々あって Ruby の勉強を迫られている. そしてまた色々あってるびきちさんに 何かいい本がないか伺ってみたら次の本をおすすめされた.
読んでいたら, 数値の章のラストに超準解析のライブラリがあるとかいう衝撃的な話が出てきたので早速検索した. それがこれだ.
今のところインストールしても使う用途がないので 何もしていないが, びっくりした. ライブラリなら複素数やら行列はいくらでもあるだろうが, 超準解析ライブラリがある言語, 他にあるだろうか. Haskell 勢とか頑張ってほしい.
追記¶
別記事にしてしまったが, dif_engine さんからご指摘を頂いている.
こちらも参考にしてほしい.
追記 2¶
上の指摘をこちらに追記しないままにしていたら, dif_engine さんから再度指摘を頂いた.
@phasetr これはLaugwitz流の無限小計算の方法であって、A.Robinsonが創始した超準解析とは方向が違うというのは以前コメントした気がする
— differential_engine (@dif_engine) 2016年3月11日
で, これ.
@dif_engine 魔法少女にも何か指摘された覚えがあります。あとでコメント引用しておきます
— 相転移P(市民) (@phasetr) 2016年3月11日
@phasetr @dif_engine https://t.co/zXyzLvJlON ここで言及してる
— (@functional_yy) 2016年3月11日
とりあえず, こちらにもきちんと記録・引用しておく.
追記 3¶
2021 年時点では数学+プログラミングは Julia を使うのがよさそう. Python ももちろん役に立つ.
追記 4¶
この間 Ruby に超準解析ライブラリがあるのを知って衝撃を受けた話をしたが, それについて dif_engine さんにちょっと教えてもらったことがある. 少なくとも今の私にはあまりよく分かる話ではないが, 面白いと思う人はいるだろうから転記しておこう.
この辺のツイートからはじまる.
Ruby に超準解析のライブラリがあって激しい衝撃を受けた http://goo.gl/fb/mReIe よく分からない数学
@phasetr tar.gz が落とせなかったのでソースを見ていませんが内部計算に RationalPoly を使ってるとあるので, 1+epsilon の処理のときには形式的に epsilon の有理式として計算してから epsilon=0 と代入してるのではないかと想像します.
@dif_engine ありがとうございます. 超準解析全く知らないのですが, 修羅っぽい印象を受けました
@phasetr 順序体 K の正の部分 P に対して, ∀ p ∈ P p < T として, それと整合するように多項式環 K[T] を順序環とみなし, その商体を考えると t := 1/T が無限小とみなせて…というような話が昔からあるようです. (超準解析の前から)
適当にネタを投下しておくと色々教えてくれる人がいる. いい時代だ.
追記 5¶
Twitter で詳しい方から次のような情報を頂いた. 鍵アカウントだったので許可を頂いた上で転載する.
実数体の任意の拡大順序体は無限大元と無限小元を持ちます. 既に説明されているように, このライブラリでは, 有理式体 R(X) が R の拡大順序体と見做せるので, それを利用しています.
これは超実数体(もう少し正確にいえば計算機で表現できるような実数体の部分環の超準化)とは全く異なるものです. ですから超準解析ライブラリやちょう実数のライブラリという説明は(開発者がそのように説明しているものの)不適切です.
定義をはっきりさせないといけないが, 【実数体の任意の拡大順序体は無限大元と無限小元を持ちます】というのがやばい. 他の (順序?) 体でも同じことは起きるのだろうか. 実数の魔界ぶりを改めて認識させられる.
追記 6¶
編集したらさらに情報を教えてもらったので.
なお無限大と無限小の定義は次の通り: 任意の正の実数よりも絶対値が大きい元を無限大元, 任意の正の実数よりも絶対値が小さい元を無限小元という.
あともう 1 つ.
@phasetr 有理数体を用いて定義された「無限小を持つ環」と(超準解析の)超実数との違いは、例えばsin(x)に代入できるか?などというところに現れます。超準解析では、実数上定義されていれば自動的に超実数に定義が延長される。
— differential_engine (@dif_engine) 2015, 5月 5 あの日見た数体系の名前を僕達はまだ知らない。
追記 7¶
@phasetr有理数体の拡張ならreal closed transcendental and infinitesimal
extensions of the rational numbers(http://t.co/GhXtKXXZ8Z)が他にも計算機で応用されてますね
— カオナシ(T.MATSUMOTO) (@CharStream) 2015, 5月 5 どんどん情報が集まってくる.
ラベル¶
数学, 数学教育, 物理, プログラミング