Ruby に超準解析のライブラリがあって激しい衝撃を受けた

本題

HTML5+JavaScript で高校生向けの数学・物理の簡単なアニメーションが作れるので, その関係もあって最近プログラミングを本格的に勉強したいと思っている.

そして全く別件で今色々あって Ruby の勉強を迫られている. そしてまた色々あってるびきちさんに 何かいい本がないか伺ってみたら次の本をおすすめされた.

読んでいたら, 数値の章のラストに超準解析のライブラリがあるとかいう衝撃的な話が出てきたので早速検索した. それがこれだ.

今のところインストールしても使う用途がないので 何もしていないが, びっくりした. ライブラリなら複素数やら行列はいくらでもあるだろうが, 超準解析ライブラリがある言語, 他にあるだろうか. Haskell 勢とか頑張ってほしい.

追記

別記事にしてしまったが, dif_engine さんからご指摘を頂いている.

こちらも参考にしてほしい.

追記 2

上の指摘をこちらに追記しないままにしていたら, dif_engine さんから再度指摘を頂いた.

で, これ.

とりあえず, こちらにもきちんと記録・引用しておく.

追記 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 つ.

あの日見た数体系の名前を僕達はまだ知らない。

追記 7

どんどん情報が集まってくる.

ラベル

数学, 数学教育, 物理, プログラミング