超実数 単語


ニコニコ動画で超実数の動画を見に行く

チョウジッスウ

7.6千文字の記事

超実数とは、アブラハムロビンソンが構築した、普通実数のほかに「無限大」や「無限小」を含む数体系である。

ほんとは実数を移行原理に従うように拡したらすべて超実数なのだが、いちばん有名なのがこれである。名づけはエドウィンヒューイットだが、ロビンソンが発表するよりいのもそのため。

直感的かつ厳密に

微分積分学、ひいては極限を学ぶとき、々は高校生時代は「限りなく大きくする」、「限りなく○○に近づける」というあいまいな操作のもと理解してきた(→微分積分)。これは感覚的に理解しやすいが、厳密性に難があった。

そこで厳密にこれらを定義するために誕生したのが、有限な実数のみを用いて極限を定義した 𝜀-𝛿 論法である(→ 𝜀-𝛿 論法)。しかし、厳密ではあるがあまりにも難解かつ直感的でない 𝜀-𝛿 論法をにした大学生の多くは、それまで理解できていたつもりの微分積分学が理解不能であったことに気づき、数学の荒野に骸をすこととなった(個人の感想です)。

もしも、昔学んだ「限りなく大きくする」、「限りなく○○に近づける」という操作を厳密に定義することができたなら……?

そこで登場するのが超実数である。

概要

実数は数直線上の点として表現できる。では「無限大」とはどのようなものであろう。

仮に「無限大」が実数と同じように数直線上の点として表せるなら、数直線はそれこそ無限に続き、その上にいくらでも点(実数)をとれるのだから、普通に考えればどこかの点(実数)が「無限大」より右(+)に来てしまうはずである。しかし、「無限大」は「どんな実数よりも大きい(⇒右にある)」という性質をもっているはずであり、これでは矛盾している。

このように考えると、「無限大」は「どんどん右に逃げていく点(←!?)であるという結論に達してしまう。なんじゃそら。

というわけで「無限大」は実数にくくることはできなかった。「どんどん原点に近づいていく点」=「無限小」も同様である。

しかし、超実数では「いや別にいいじゃん? 動く点結構。それ、採用。」という立場をとる。この「動く点」のことを「超実数」というわけである。

もう少しkwsk

超実数は大きくふたつに分けられる。「どんどん左右に逃げていく点」こと無限大超実数」と、「どんどんある点に近づいていく点」こと「有限超実数」である。有限超実数の中でも「どんどん原点に近づいていく点」をとくに無限小超実数」とよぶ。

逃げる」「近づいていく」という表現ではまだすこし曖昧なので不等式で表すと、𝑥 ∈ ℝ : |𝜔| > 𝑥(絶対値がいかなる実数よりも大きい)なる 𝜔 が無限大超実数、𝑥 ∈ {𝑥 ∈ ℝ | 𝑥 > 0} : |𝜀| < 𝑥(絶対値がいかなる正の実数よりも小さい)なる 𝜀 が無限小超実数である。

ここで注意が必要なのは、々は感覚的に「無限に 0 以外の実数を掛けても無限」「無限無限を掛けても無限」などと理解してきたが、超実数では違うという点である。

超実数では実数において成立するはすべて(厳密にはすこし違うが)成立しなければならない。これを移行原理という。

  • 0 でないいかなる実数𝑥 についても 2𝑥 ≠ 𝑥
  • 0, 1 でないいかなる実数𝑥 についても 𝑥2 ≠ 𝑥

がそのまま

  • 0 でないいかなる超実数 𝛼 についても 2𝛼 ≠ 𝛼
  • 0, 1 でないいかなる超実数 𝛼 についても 𝛼2𝛼

となって襲いかかってくるのだ。

つまり、無限大超実数 𝜔 があるとき、𝜔 と 2𝜔 と 𝜔2 はどれも別の数である(違う大きさをもつ)と考えなければならない。2𝜔 は「𝜔 の 2 倍の勢いで右に逃げる」、𝜔2 は「𝜔 の 𝜔 倍の勢いで右に逃げる」と考えるとイメージしやすいかもしれない。

ところで有限超実数には、それに無限に近い(つまり差が無限小超実数である)通常の実数がただひとつだけ存在する。これを、その超実数の標準部といい、超実数 𝛼 の標準部を st(𝛼) で表す。たとえば、𝜀 が無限小超実数のとき、st(72 + 𝜀) = 72 である。誤差ってことですね。

実演

長々と話をしてきたが、ためしに超実数を用いて微分をしてみよう。

たとえば、𝑓(𝑥) = 𝑥2 を 𝑥 = 3 で微分することを考える。𝑥 = 3 のとき、𝑓(𝑥) = 9 である。別の点 (𝑥',𝑓(𝑥')) をとって、2 点を通る直線の傾きをめ、𝑥' を 3 に限りなく近づけていけばそれが微分係数であることはご存知のとおりである。ご存知ないかたはニコニコ大百科の微分の項をどうぞ。

  • 𝑥' = 6 のとき、𝑓(𝑥') = 36 である。
    𝑥 軸の差は 3𝑓(𝑥) 軸の差は 27 であるから、傾きは 27/3 = 9 である。
  • 𝑥' = 5 のとき、𝑓(𝑥') = 25 である。
    𝑥 軸の差は 2𝑓(𝑥) 軸の差は 16 であるから、傾きは 16/2 = 8 である。
  • 𝑥' = 4 のとき、𝑓(𝑥') = 16 である。
    𝑥 軸の差は 1𝑓(𝑥) 軸の差は 7 であるから、傾きは 7/1 = 7 である。

……ということはどうやら 2 個の非ゼロ無限小超実数 𝜀 と 𝛿 を選び、𝑥 軸の差を 𝜀𝑓(𝑥) 軸の差を 𝛿 とおいて st(𝛿/𝜀) をめればいいようだ。

※ふつうは 𝜀 と 𝛿 のかわりに 𝑑𝑥 と 𝑑𝑦 を用いるが、ここでは「𝑥, 𝑦 に対して作用素 d がついているのではなく、あくまでも 1 個の数である」ということを強調するためにあえてこのようにする。

とはいえこのままでは計算できないので、𝛿 を 𝜀 で表してみる。

  • 𝑥 軸の差が 3 のとき、𝑓(𝑥) 軸の差は (3 + 3)2 - 32 = 27 である。
  • 𝑥 軸の差が 2 のとき、𝑓(𝑥) 軸の差は (3 + 2)2 - 32 = 16 である。
  • 𝑥 軸の差が 1 のとき、𝑓(𝑥) 軸の差は (3 + 1)2 - 32 = 7 である。

同様に、

  • 𝑥 軸の差が 𝜀 のとき、𝑓(𝑥) 軸の差は (3 + 𝜀)2 - 32 = 𝛿 である。

となるので、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, 𝛼1 + 𝛽1, 𝛼2 + 𝛽2, 𝛼3 + 𝛽3, ...)
  • 𝛼𝛽 = (𝛼0𝛽0, 𝛼1𝛽1, 𝛼2𝛽2, 𝛼3𝛽3, ...)
  • -𝛼 = (-𝛼0, -𝛼1, -𝛼2, -𝛼3, ...)
  • 𝛽-1 = (𝛽0-1, 𝛽1-1, 𝛽2-1, 𝛽3-1, ...) (ただし 𝛽 ≠ 0) ※

※ 実際には、0 ではないが項として 0 を含む無限列が存在する。その場合逆数を取れないので、そのような項については 0 のままにしてよい。この結果は自由フィルターによる同値関係の意味で問題なく乗法逆元をなす。

超実数を扱う際に必ずしもこのような無限列を想定する必要はない。必要なときに無限列から明を行い、あとはそれによって得られた性質を使えばよいからだ。特に、そのような方法によって、超実数が移行原理を満足することがロビンソンによって明されている。だから、々は実数を扱うかのように超実数を扱ってよいのだ。

自由超フィルター

そろそろ後回しにしていた自由フィルターについて説明しようと思う。この節は本当にややこしいので、ちょっとでもが滑り始めたら焦らず休憩してじっくり噛み砕いてほしい。どうしてもわからないならぶっちゃけ読み飛ばしてしまっても構わない。

自由フィルターについて語る前に集合「部分集合、そして「べき集合についておさらいしておきたい。ニコニコ大百科集合の記事も参照。

集合」とはたくいえば「もの」の集まりである。ただし、なにが属していてなにが属していないかは明確に定義されている必要がある。属する「もの」の個数は有限のことも無限のこともある。有限集合の例としては「10 以下の自然数すべて」、無限集合の例としては「自然数すべて」などがある。ふたつの集合の両方に属している「もの」の集合「共通部分」とよぶ。

𝐴 が 𝐵 の「部分集合であるとは、𝐴 に属する要素が必ず 𝐵 にも属していることをいう。𝐴 が 𝐵 の部分集合だが 𝐵 は 𝐴 の部分集合ではないとき、部分集合であるという。ちなみに 𝐵 も 𝐴 の部分集合であるときは 𝐴 と 𝐵 は等しいという。元の集合に属するが部分集合には属さないような「もの」の集合はその部分集合「補」とよぶ。

「べき集合」はすこしややこしいが、「ある集合の部分集合すべての集合である。たとえば、𝑆 = {🍎, 🍊, 🍌} という集合を考える。あなたはこの集合から好きな果物の組み合わせを考える。ひとつも選ばなくてもいいし、逆に全部選んでもいい。すると、考えられるパターンは {{}, {🍎}, {🍊}, {🍌}, {🍎, 🍊}, {🍎, 🍌}, {🍊, 🍌}, {🍎, 🍊, 🍌}} となる。これを 𝑆 のべき集合といい、𝔓(𝑆)2𝑆 などと表記する。

では、自由フィルターについて話そう。自由フィルターとは自由ウルトラフィルターのことである。

まず、集合𝑆 のべき集合𝔓(𝑆) の部分集合ℱ ⊆ 𝔓(𝑆) が以下の条件を満たすとき、 は(べき集合上の)フィルターであるという。

  • 𝐴 も 𝐵 も  に属しているならば、その共通部分も  に属する。(交叉閉性)
  • 𝐴 が  に属していて、𝐴 が 𝔓(𝑆) に属するような 𝐵 の部分集合ならば、𝐵 も  に属する。(上位閉性)
  •  は集合ではない。(非自明性)
  •  は 𝔓(𝑆) 自体ではない。(固有性)

下ふたつの条件は文脈によってはフィルターの条件として定されないことがあるが、通常は含める。なお、3 番の条件は「𝑆 は  に属する」、4 番の条件は「集合は  に属さない」と表現されることもあるが、これらは 2 番の条件から直ちに同値であることが確かめられる。

さらにフィルター が以下の条件を満たすとき、 はフィルターであるという。

さらにさらに、フィルター が以下の条件を満たすとき、 は自由フィルターであるという。

  • 𝐴 が 𝔓(𝑆) に属し、かつ有限集合であるならば、𝐴 の補は  に属する。(非単項性)

いやはや長かった長かった。こうして自由フィルター定義については明らかになったわけであるが、超実数の同値関係を定めるために使うのは自然数 の自由フィルターℱ ⊂ 𝔓(ℕ) である。

この自由フィルター の役割についてイメージが湧きやすいように端的に表現すると、「たっくさんの自然数の集まり、かどうか判定機」である。

どういうことか。まず、上でも示した通りフィルター定義から集合は  に属さないので、まず間違っても「一つも自然数がありませーん」だったら  には属さない。一方で  そのものは  に属するので、「ぜーんぶの自然数」だったら  に属する。

さらに、フィルターの性質から、𝐴 が 𝔓(ℕ) に属するなら、つまり自然数の部分集合ならどれでも、𝐴 が  に属するか、はたまた𝐴 の補が  に属するか、そのどちらかだけが成立する(明は省略させてください……対偶論法で示せるようです)。

そして、自由フィルター定義から、𝐴 が有限個の自然数の集まりだった場合は 𝐴 の補が  に属することになり、つまりは 𝐴 は  に属さない。すなわち、有限個の自然数はいつでも「足りない!」と判断される。

さあ、元の問題に戻ろう。私たちは (1, 1, 1, 1, ...) という数列と (0, 1, 1, 1, ...) という数列を、同じ超実数を表すものとみなす基準が欲しかった。 を使うことでそれが実現できる。

超実数 * を、無限実数列 𝜔 を以下に示す同値関係で割った商集合𝜔/∼ で定義する。ここで  は 𝔓(ℕ) 上の自由フィルターである。

let 𝛼, 𝛽 ∈ ℝ𝜔, 𝛼 ∼ 𝛽 := {𝑛 ∈ ℕ | 𝛼𝑛 = 𝛽𝑛} ∈ ℱ

つまり、「同じ項がたくさんある数列は同一視する」。フィルターなので「異なる項がほとんどない数列は同一視する」とも言い換えられる。これによれば、(1, 1, 1, 1, ...) という数列と (0, 1, 1, 1, ...) という数列で項が異なるような添字は最初の一つだけである。すなわち {0} は明らかに有限集合であるので、「足りてない」。よって、この数列は同値と判断され、同じ超実数を示していることがわかる。これにて一件落着である。

注意点として、自由フィルターは(選択公理によって存在は明らかになるものの)一意に定まらない。たとえば、以下のようなふたつの数列を考えてほしい。

  • 𝛼 = (0, 1, 0, 1, ...)
  • 𝛽 = (1, 0, 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, ...) と異なる項は可算個であるからだ。しかし、どちらかは同じとみなさなければいけない。

余談その 2

さて、上の方で「超実数をしっかり理解して使いこなすのは実のところ 𝜀-𝛿 論法よりはるかにエグい難易度」と書いた。

まず、通常の数学は 𝜀-𝛿 の文法で書かれているためそれを超実数に翻訳する作業が挟まる。

さらに、超実数を用いた明でなんらかの有効な超実数の性質を使うためには無限列に帰着して明しなければいけない(公式を丸暗記することを良しとしないなら、自分で明はしないにしても与えられた明を理解できないといけない!)。そこには「自由フィルター」なる性質だけが明らかで実物を確かめられない怪物が取り除くことができない喉の小骨のように突き刺さっているのだ。

挙げ句、準解析のをさらに進まんとするなら「上部構造」だの「内的集合」だの「標準的」だの理解困難な用語が乱れ飛び、移行原理だって本来の意味を過たず理解するならこれらの理解が必須だ(筆者はこのあたりで心折れて勉強中である)。

では、結局 -𝛿(標準解析)と比較してどちらがいいのだろうか? 答えは様々ろう。超準解析を素晴らしいものだと考える数学者もいれば、厳しく批判する数学者もいる。ここでは、Halmos の言葉を引用したい。

it's a special tool, too special, and other tools can do everything it does. It's all a matter of taste.
(それは特殊な工具だ。あまりにも特殊で、かつ、他の具でも事足りる。最終的には各々の趣味の問題だ。)

関連コミュニティ

ニコニコミュニティは2024年8月に終了しました。ニコニコミュニティは2024年8月に終了しました。

関連項目

この記事を編集する

掲示板

  • 14 ななしのよっしん

    2023/04/16(日) 18:22:24 ID: 4VlvW1CqEl

    >>13
    うる覚え学生時代の理解で解説するなら、ぶっちゃけ時間は超実数を使う人が好きに決めていいんだ
    使ってる数字の大小が分かればいいだけだから

    ω*ωωω倍で逃げ
    ωは全ての実数より速い事が共通認識になっていれば、ωでもωより1大きい'ω'でもωの半分の大きさの('ω')でも議論は変わらないからね
    ある人はωω倍をv('ω')vとして使ってるかもしれないが、「ωω倍」を「ω*ωω*ω倍」と読み替えれば同じ事だ
    その代わり一つの議論中は同じ基準でなければならない

  • 👍
    0
    👎
    0
  • 15 ななしのよっしん

    2023/04/16(日) 18:27:37 ID: 4VlvW1CqEl

    (続き)
    注意点としては最初だけめっちゃ逃げるけど途中で止まるようなのはダメ
    休み休みでもいいけど、く走ってるのはこの時間だけですと全部し上げ可(有限)はダメって事

    また一定ペースで走るのもいればくなったり遅くなったり、永久に同じ場所で反復横飛びしたり、一気に一位踊り出てはスタートに戻るを繰り返すなんかが居るといか決められないように思うかもしれない
    これも実数を使う人のえこひいきでどの間を参考にするか勝手に決めていい
    ただしこれも、どれだけ飛び飛びでもいいけど必ず無限枚の使える写真が撮れないといけない(予選落ちは不可)し、超実数毎に異なる基準を使ってはいけないし、決めずに残して置く事も許されない
    時間はいくらでもあるから一意の世界一位に決める事ができる(自由フィルター)

  • 👍
    0
    👎
    0
  • 16 ななしのよっしん

    2023/06/13(火) 23:03:20 ID: oK+F0hXH0C

    久しぶりに来てみたら意外と掲示板に書き込みがあってちょっとびっくりしています

    上のやり取りを読んで「そういえば構成法について書いてなかったなぁ」と思ったので追記しておきました

  • 👍
    0
    👎
    0

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2025/12/12(金) 22:00

ほめられた記事

最終更新:2025/12/12(金) 21:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP