超実数とは、アブラハム・ロビンソンが構築した、普通の実数のほかに「無限大」や「無限小」を含む数体系である。
ほんとは実数を移行原理に従うように拡張したらすべて超実数なのだが、いちばん有名なのがこれである。名づけ親はエドウィン・ヒューイットだが、ロビンソンが発表するより早いのもそのため。
微分積分学、ひいては極限を学ぶとき、我々は高校生時代は「限りなく大きくする」、「限りなく○○に近づける」というあいまいな操作のもと理解してきた(→微分、積分)。これは感覚的に理解しやすいが、厳密性に難があった。
そこで厳密にこれらを定義するために誕生したのが、有限な実数のみを用いて極限を定義した 𝜀-𝛿 論法である(→ 𝜀-𝛿 論法)。しかし、厳密ではあるがあまりにも難解かつ直感的でない 𝜀-𝛿 論法を目にした大学生の多くは、それまで理解できていたつもりの微分積分学が理解不能であったことに気づき、数学の荒野に骸を晒すこととなった(個人の感想です)。
もしも、昔学んだ「限りなく大きくする」、「限りなく○○に近づける」という操作を厳密に定義することができたなら……?
そこで登場するのが超実数である。
実数は数直線上の点として表現できる。では「無限大」とはどのようなものであろう。
仮に「無限大」が実数と同じように数直線上の点として表せるなら、数直線はそれこそ無限に続き、その上にいくらでも点(実数)をとれるのだから、普通に考えればどこかの点(実数)が「無限大」より右(+)に来てしまうはずである。しかし、「無限大」は「どんな実数よりも大きい(⇒右にある)」という性質をもっているはずであり、これでは矛盾している。
このように考えると、「無限大」は「どんどん右に逃げていく点(←!?)」であるという結論に達してしまう。なんじゃそら。
というわけで「無限大」は実数の枠にくくることはできなかった。「どんどん原点に近づいていく点」=「無限小」も同様である。
しかし、超実数では「いや別にいいじゃん? 動く点結構。それ、採用。」という立場をとる。この「動く点」のことを「超実数」というわけである。
超実数は大きくふたつに分けられる。「どんどん左右に逃げていく点」こと「無限大超実数」と、「どんどんある点に近づいていく点」こと「有限超実数」である。有限超実数の中でも「どんどん原点に近づいていく点」をとくに「無限小超実数」とよぶ。
「逃げる」「近づいていく」という表現ではまだすこし曖昧なので不等式で表すと、∀𝑥 ∈ ℝ : |𝜔| > 𝑥(絶対値がいかなる実数よりも大きい)なる 𝜔 が無限大超実数、∀𝑥 ∈ {𝑥 ∈ ℝ | 𝑥 > 0} : |𝜀| < 𝑥(絶対値がいかなる正の実数よりも小さい)なる 𝜀 が無限小超実数である。
ここで注意が必要なのは、我々は感覚的に「無限に 0 以外の実数を掛けても無限」「無限に無限を掛けても無限」などと理解してきたが、超実数では違うという点である。
超実数では実数において成立する主張はすべて(厳密にはすこし違うが)成立しなければならない。これを移行原理という。
がそのまま
となって襲いかかってくるのだ。
つまり、無限大超実数 𝜔 があるとき、𝜔 と 2𝜔 と 𝜔2 はどれも別の数である(違う大きさをもつ)と考えなければならない。2𝜔 は「𝜔 の 2 倍の勢いで右に逃げる」、𝜔2 は「𝜔 の 𝜔 倍の勢いで右に逃げる」と考えるとイメージしやすいかもしれない。
ところで有限超実数には、それに無限に近い(つまり差が無限小超実数である)通常の実数がただひとつだけ存在する。これを、その超実数の標準部といい、超実数 𝛼 の標準部を st(𝛼) で表す。たとえば、𝜀 が無限小超実数のとき、st(72 + 𝜀) = 72 である。誤差ってことですね。
長々と話をしてきたが、ためしに超実数を用いて微分をしてみよう。
たとえば、𝑓(𝑥) = 𝑥2 を 𝑥 = 3 で微分することを考える。𝑥 = 3 のとき、𝑓(𝑥) = 9 である。別の点 (𝑥',𝑓(𝑥')) をとって、2 点を通る直線の傾きを求め、𝑥' を 3 に限りなく近づけていけばそれが微分係数であることはご存知のとおりである。ご存知ないかたはニコニコ大百科の微分の項をどうぞ。
……ということはどうやら 2 個の非ゼロな無限小超実数 𝜀 と 𝛿 を選び、𝑥 軸の差を 𝜀、𝑓(𝑥) 軸の差を 𝛿 とおいて st(𝛿/𝜀) を求めればいいようだ。
※ふつうは 𝜀 と 𝛿 のかわりに 𝑑𝑥 と 𝑑𝑦 を用いるが、ここでは「𝑥, 𝑦 に対して作用素 d がついているのではなく、あくまでも 1 個の数である」ということを強調するためにあえてこのようにする。
とはいえこのままでは計算できないので、𝛿 を 𝜀 で表してみる。
同様に、
となるので、st((3 + 𝜀)2 - 32/𝜀) となる。あとは展開と約分である。
st((3 + 𝜀)2 - 32/𝜀) = st(9 + 6𝜀 + 𝜀2 - 9/𝜀) ……展開
st((3 + 𝜀)2 - 32/𝜀) = st(6𝜀 + 𝜀2/𝜀)
st((3 + 𝜀)2 - 32/𝜀) = st(𝜀(6 + 𝜀)/𝜀) ……因数分解
st((3 + 𝜀)2 - 32/𝜀) = st(6 + 𝜀) ……約分
st((3 + 𝜀)2 - 32/𝜀) = 6 ……標準部
極限を用いた方法と同じように解けることがおわかりいただけただろうか。サラッと因数分解や約分をしているが、これができること……普通の実数と同じように扱っていいことを保証しているのが移行原理である。
無論、3 ではなく 𝑥 でおけば導関数を求めることができる。
st((𝑥 + 𝜀)2 - 𝑥2/𝜀) = st(𝑥2 + 2𝜀𝑥 + 𝜀2 - 𝑥2/𝜀)
st((𝑥 + 𝜀)2 - 𝑥2/𝜀) = st(2𝜀𝑥 + 𝜀2/𝜀)
st((𝑥 + 𝜀)2 - 𝑥2/𝜀) = st(𝜀(2𝑥 + 𝜀)/𝜀)
st((𝑥 + 𝜀)2 - 𝑥2/𝜀) = st(2𝑥 + 𝜀)
st((𝑥 + 𝜀)2 - 𝑥2/𝜀) = 2𝑥
そんな超実数であるが、これをしっかり理解して使いこなすのは実のところ 𝜀-𝛿 論法よりはるかにエグい難易度だったりする。世の中にそうそううまい話はないものである。
ちなみに超実数の理論を用いた数学の分野を『超準解析』とよぶ。せっかくだから覚えて帰ってね。英語で Nonstandard analysis だからぜんぜん浸透してないんだろとかいうな。
ここまでは超実数の性質について述べてきたが、それでは超実数とはどのようなものなのかを以下で概説していく。なお、以降の記述では 0 を自然数 ℕ に含めるものとする。
実は、超実数の正体とは実数の無限列である。「えっ、数列をひとつの数のように扱っていいの?」という不安はごもっともであるが、そもそも分数……つまり有理数も 2 個の整数のペアをひとつの数のように扱っているわけで、ちょっとそれが可算個になっただけなので心配しなくていい。
ちなみにかくいう実数もある条件を満たす有理数の無限列(もしくは有理数をふたつのグループに分ける条件)で定義されている。
ともあれ、通常の実数 𝑥 を定数列 (𝑥, 𝑥, 𝑥, ...) と対応させることで超実数の世界に通常の実数を持ち込むことができる。そして 𝜔 = (0, 1, 2, 3, ...) のようにどんどん大きくなる数列は無限大超実数とみなすことができる。まさしくこれが上で「動く点」と表現していたものである。
ただし、すべての無限列を別々の超実数として扱うと不都合がでてくる。たとえば (1, 1, 1, 1, ...) という数列と (0, 1, 1, 1, ...) という数列は、最終的に同じ 1 に着地するので同じ超実数を表しているとみなしたい。そこで、「自由超フィルター」というものを用意する。自由超フィルターについてはさらにややこしいことになっているので解説は後回しにしておくが、とりあえずここでは無限列を比較するための道具だと思ってよい。それを用いて「実質同じ」である無限列を同一視し、代表ひとつを残して取り除いてしまう。これを数学の用語では「同値関係で割る」とよぶ。こうして超実数 *ℝ が生まれる。
無限列として定義された超実数は、計算が簡単だ。たとえば超実数 𝛼 = (𝛼0, 𝛼1, 𝛼2, 𝛼3, ...) と超実数 𝛽 = (𝛽0, 𝛽1, 𝛽2, 𝛽3, ...) の和や積、その逆元は単に以下のように定義できる。
※ 実際には、0 ではないが項として 0 を含む無限列が存在する。その場合逆数を取れないので、そのような項については 0 のままにしてよい。この結果は自由超フィルターによる同値関係の意味で問題なく乗法逆元をなす。
超実数を扱う際に必ずしもこのような無限列を想定する必要はない。必要なときに無限列から証明を行い、あとはそれによって得られた性質を使えばよいからだ。特に、そのような方法によって、超実数が移行原理を満足することがロビンソンによって証明されている。だから、我々は実数を扱うかのように超実数を扱ってよいのだ。
そろそろ後回しにしていた自由超フィルターについて説明しようと思う。この節は本当にややこしいので、ちょっとでも目が滑り始めたら焦らず休憩してじっくり噛み砕いてほしい。どうしてもわからないならぶっちゃけ読み飛ばしてしまっても構わない。
自由超フィルターについて語る前に「集合」と「部分集合」、そして「べき集合」についておさらいしておきたい。ニコニコ大百科の「集合」の記事も参照。
「集合」とは平たくいえば「もの」の集まりである。ただし、なにが属していてなにが属していないかは明確に定義されている必要がある。属する「もの」の個数は有限のことも無限のこともある。有限集合の例としては「10 以下の自然数すべて」、無限集合の例としては「自然数すべて」などがある。ふたつの集合の両方に属している「もの」の集合は「共通部分」とよぶ。
𝐴 が 𝐵 の「部分集合」であるとは、𝐴 に属する要素が必ず 𝐵 にも属していることをいう。𝐴 が 𝐵 の部分集合だが 𝐵 は 𝐴 の部分集合ではないとき、「真部分集合」であるという。ちなみに 𝐵 も 𝐴 の部分集合であるときは 𝐴 と 𝐵 は等しいという。元の集合に属するが部分集合には属さないような「もの」の集合はその部分集合の「補」とよぶ。
「べき集合」はすこしややこしいが、「ある集合の部分集合すべての集合」である。たとえば、𝑆 = {🍎, 🍊, 🍌} という集合を考える。あなたはこの集合から好きな果物の組み合わせを考える。ひとつも選ばなくてもいいし、逆に全部選んでもいい。すると、考えられるパターンは {{}, {🍎}, {🍊}, {🍌}, {🍎, 🍊}, {🍎, 🍌}, {🍊, 🍌}, {🍎, 🍊, 🍌}} となる。これを 𝑆 のべき集合といい、𝔓(𝑆) や 2𝑆 などと表記する。
では、自由超フィルターについて話そう。自由超フィルターとは自由でウルトラなフィルターのことである。
まず、集合 𝑆 のべき集合 𝔓(𝑆) の部分集合 ℱ ⊆ 𝔓(𝑆) が以下の条件を満たすとき、ℱ は(べき集合上の)「フィルター」であるという。
下ふたつの条件は文脈によってはフィルターの条件として指定されないことがあるが、通常は含める。なお、3 番目の条件は「𝑆 は ℱ に属する」、4 番目の条件は「空集合は ℱ に属さない」と表現されることもあるが、これらは 2 番目の条件から直ちに同値であることが確かめられる。
さらにフィルター ℱ が以下の条件を満たすとき、ℱ は「超フィルター」であるという。
さらにさらに、超フィルター ℱ が以下の条件を満たすとき、ℱ は「自由超フィルター」であるという。
いやはや長かった長かった。こうして自由超フィルターの定義については明らかになったわけであるが、超実数の同値関係を定めるために使うのは自然数 ℕ の自由超フィルター ℱ ⊂ 𝔓(ℕ) である。
この自由超フィルター ℱ の役割についてイメージが湧きやすいように端的に表現すると、「たっくさんの自然数の集まり、かどうか判定機」である。
どういうことか。まず、上でも示した通りフィルターの定義から空集合は ℱ に属さないので、まず間違っても「一つも自然数がありませーん」だったら ℱ には属さない。一方で ℕ そのものは ℱ に属するので、「ぜーんぶの自然数」だったら ℱ に属する。
さらに、超フィルターの性質から、𝐴 が 𝔓(ℕ) に属するなら、つまり自然数の部分集合ならどれでも、𝐴 が ℱ に属するか、はたまた 𝐴 の補が ℱ に属するか、そのどちらかだけが成立する(証明は省略させてください……対偶論法で示せるようです)。
そして、自由超フィルターの定義から、𝐴 が有限個の自然数の集まりだった場合は 𝐴 の補が ℱ に属することになり、つまりは 𝐴 は ℱ に属さない。すなわち、有限個の自然数はいつでも「足りない!」と判断される。
さあ、元の問題に戻ろう。私たちは (1, 1, 1, 1, ...) という数列と (0, 1, 1, 1, ...) という数列を、同じ超実数を表すものとみなす基準が欲しかった。ℱ を使うことでそれが実現できる。
つまり、「同じ項がたくさんある数列は同一視する」。超フィルターなので「異なる項がほとんどない数列は同一視する」とも言い換えられる。これによれば、(1, 1, 1, 1, ...) という数列と (0, 1, 1, 1, ...) という数列で項が異なるような添字は最初の一つだけである。すなわち {0} は明らかに有限集合であるので、「足りてない」。よって、この数列は同値と判断され、同じ超実数を示していることがわかる。これにて一件落着である。
注意点として、自由超フィルターは(選択公理によって存在は明らかになるものの)一意に定まらない。たとえば、以下のようなふたつの数列を考えてほしい。
これを超実数として積をとると、𝛼𝛽 = (0, 0, 0, 0, ...) = 0 である。実数において 𝑥𝑦 = 0 ならば 𝑥 = 0 または 𝑦 = 0 であるから、移行原理から 𝛼 = 0 または 𝛽 = 0 である(というふうになって欲しい)。その一方で 𝛼 = 𝛽 = 0 とすることは許されない。𝛼 + 𝛽 = (1, 1, 1, 1, ...) = 1 だからである。ではどちらが 0 でどちらが 1 なのだろうか?
𝛼 と (0, 0, 0, 0, ...) の相違なる項の添字は「奇数すべての集合」である。𝛽 と (0, 0, 0, 0, ...) の相異なる項の添字は「偶数すべての集合」である。「奇数の集合」と「偶数の集合」は互いに補なので、どちらかだけが ℱ に属し、どちらかだけが 0 になることは保証されている。が、どちらなのかは分からないのだ。この辺も無限列を直接扱うことが少ない理由だろう。(0, 1, 0, 1, ...) だけを持ってきて「これは 0 ですか 1 ですか!?」と数学者に突きつけても、たぶん「さあ? 0 か 1 のどちらかなのは明らかなのだから、0 として扱いたいなら (0, 0, 0, 0, ...) と、1 として扱いたいなら (1, 1, 1, 1, ...) と交換すればいいんじゃないの? それで計算できるよ。あ、自然延長された関数に無限大超実数を適用した結果として現れたならその関数は振動してるね」みたいなこと言われるだけである。
※ これらの数列は「自由超フィルターなんて考えなくても異なる項が有限個だったら同じとみなしていいんじゃね?」という素朴な発想に対する反例としても機能する。どちらの数列も (0, 0, 0, 0, ...) と異なる項は可算個であるからだ。しかし、どちらかは同じとみなさなければいけない。
さて、上の方で「超実数をしっかり理解して使いこなすのは実のところ 𝜀-𝛿 論法よりはるかにエグい難易度」と書いた。
まず、通常の数学は 𝜀-𝛿 の文法で書かれているためそれを超実数に翻訳する作業が挟まる。
さらに、超実数を用いた証明でなんらかの有効な超実数の性質を使うためには無限列に帰着して証明しなければいけない(公式を丸暗記することを良しとしないなら、自分で証明はしないにしても与えられた証明を理解できないといけない!)。そこには「自由超フィルター」なる性質だけが明らかで実物を確かめられない怪物が取り除くことができない喉の奥の小骨のように突き刺さっているのだ。
挙げ句、超準解析の道をさらに進まんとするなら「上部構造」だの「内的集合」だの「標準的」だの理解困難な用語が乱れ飛び、移行原理だって本来の意味を過たず理解するならこれらの理解が必須だ(筆者はこのあたりで心折れて勉強中である)。
では、結局 -𝛿(標準解解析)と比較してどちらがいいのだろうか? 答えは様々だろう。超準解析を素晴らしいものだと考える数学者もいれば、厳しく批判する数学者もいる。ここでは、Halmos の言葉を引用したい。
it's a special tool, too special, and other tools can do everything it does. It's all a matter of taste.
(それは特殊な工具だ。あまりにも特殊で、かつ、他の道具でも事足りる。最終的には各々の趣味の問題だ。)
掲示板
14 ななしのよっしん
2023/04/16(日) 18:22:24 ID: 4VlvW1CqEl
>>13
うる覚えの学生時代の理解で解説するなら、ぶっちゃけ時間は超実数を使う人が好きに決めていいんだ
使ってる数字の大小が分かればいいだけだから
ω*ωはωのω倍で逃げる
ωは全ての実数より速い事が共通認識になっていれば、ωでもωより1大きい'ω'でもωの半分の大きさの('ω')でも議論は変わらないからね
ある人はωのω倍をv('ω')vとして使ってるかもしれないが、「ωのω倍」を「ω*ωのω*ω倍」と読み替えれば同じ事だ
その代わり一つの議論中は同じ基準でなければならない
15 ななしのよっしん
2023/04/16(日) 18:27:37 ID: 4VlvW1CqEl
(続き)
注意点としては最初だけめっちゃ早く逃げるけど途中で止まるようなのはダメ
休み休みでもいいけど、早く走ってるのはこの時間だけですと全部晒し上げ可能な奴(有限)はダメって事
また一定ペースで走るのもいれば早くなったり遅くなったり、永久に同じ場所で反復横飛びしたり、一気に一位に踊り出てはスタートに戻るを繰り返す奴なんかが居ると誰が早いか決められないように思うかもしれない
これも実数を使う人のえこひいきでどの瞬間を参考にするか勝手に決めていい
ただしこれも、どれだけ飛び飛びでもいいけど必ず無限枚の使える写真が撮れないといけない(予選落ちは不可)し、超実数毎に異なる基準を使ってはいけないし、決めずに残して置く事も許されない
時間はいくらでもあるから一意の奴を世界一位に決める事ができる(自由超フィルター)
16 ななしのよっしん
2023/06/13(火) 23:03:20 ID: oK+F0hXH0C
久しぶりに来てみたら意外と掲示板に書き込みがあってちょっとびっくりしています
上のやり取りを読んで「そういえば構成法について書いてなかったなぁ」と思ったので追記しておきました
急上昇ワード改
最終更新:2025/12/12(金) 22:00
最終更新:2025/12/12(金) 21:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。