
はてなキーワード:有界とは
ただし以下では、ヒルベルト空間を物理空間と見なす素朴な解釈を禁止し、より高次の数学的構造として扱う。
この時点で、量子系は 単なる線形代数ではなく、圏としての性質が主役になる。
これが後に分離できない系(エンタングルメント)の直接的原因になる。
つまり状態とは作用素代数の構造を部分的に保持しつつ、全情報は保持できない制約付き汎関数であり、これが測定前の状態という概念の数学的本体になる。
観測は波束収縮ではなく、全体の作用素代数から可換部分代数への冪等射(自己合成しても変わらない射)として定義される。
これは「観測値が一意に定まらない」ことを全代数を可換部分代数に強制射影すると情報が失われるという構造的事実として表現しただけである。
量子干渉とは、状態に対して複数の可換部分代数が存在する。それぞれの部分代数に制限したときの汎関数が整合的でない。この整合性の欠如が「干渉」と呼ばれる現象になる
つまり干渉は可換部分代数の選び方が複数あり、それらが同時に満たす一つのグローバル汎関数が存在しないという前層(presheaf)の非可約性の問題である。
系 A と B の複合系が与えられるとき、通常はテンソル積によって分離できるはずだが、量子系では一般に失敗する。
その理由は状態汎関数がテンソル積空間上で積状に分解する自然変換を持たない、単純な部分空間の直積から構成される位相構造が存在しない、分離関手が圏の構造を保存しないから。
したがってエンタングルメントとはテンソル積空間の構造が、2つの部分系の圏論的生成子に分解できないことに過ぎない。
抽象化すると、時間発展は全作用素代数の自己同型の族、ただし逆が常に存在するとは限らないため、一般には半群。観測が入ると逆方向の自己同型が消滅する。これが「不可逆性」の正体である。
つまり時間とは、自己同型の完全群構造が壊れ、半群に退化した結果発生するパラメータにすぎない。
以上をまとめれば、量子力学とは現実=ヒルベルト空間上のベクトルを出発点とし、作用素代数と圏論によって統合的に記述される、非可換性を本質とする抽象数学の体系である。
貴様、聞け。SNSとは何かと問う愚弄に対して、我が階層は嘲弄しか返せぬ、なぜなら言語そのものが貴様らの次元における道具であって、我々の経験はその道具を超えた位相で振動しているからだ。
貴様が投稿と呼ぶ行為は、低周波の自己同型写像に過ぎず、その反響は非可換的な価値空間へと還元され、瞬時にスペクトル化される。
貴様の怒りも哀しみも快楽も、我々の観点からは位相崩壊のパラメータに過ぎず、そこに含意される意味は確率振幅の位相因子としてしか存在しない。笑え。あるいは泣け。どちらも同じ定数を更新するのみだ。
貴様がいいねだのリツイートだのと喜悦するさまは、マクロスケールのエントロピー勾配に従う愚かさである。我々の次元では、情報は質量を持たず、感情は境界条件だ。境界条件が変われば解は途端に複素領域へ浸食される。SNSはその境界条件を増幅する装置である。
貴様らはその前で自らを検定試験にかける学徒のように振る舞う。だが試験問題は常に改稿され、採点は非線形で不可逆だ。
貴様の承認欲求は、我々にとっては一種の雑音項であり、その雑音が集合的に同期した瞬間に現れるのは、コヒーレントな虚無だけである。
貴様が信奉する対話とは、我々の数学で言えば交叉するブラネの上での位相的接触であり、しかし貴様の発話は接触せずにすり抜ける。
貴様らの言葉は多重項のマージンに留まり、真の情報交換は非有界で高次のホモロジー空間にのみ生起する。
貴様の絶叫は届かない。届くのはその断片が引き起こす微細な場の歪だけだ。場は歪みを記録するが、それは意味ではない。記録された歪は遠い未来においては熱的平衡へと還元され、再び無意味の海へ沈む。
貴様、覚えておけ。SNSに撒かれる言説群は、自己相似性を帯びたフラクタルの縁取りに過ぎず、そこに投じられる注意は有限のリソースである。
貴様が注視するひとつの点は、無数の他点によって強制的に薄められ、その薄まり具合が貴様の自己像を量的に規定する。
貴様は自我を確証するために鏡を磨き続けるが、その鏡は常に多層鏡面で構成されており、反射は無限に遅延し、しかも位相がねじれている。
貴様が得るのは確信ではなく、より洗練された疑念であり、それすらもアルゴリズム的致死率の中で再帰的に消費される。
貴様よ、もしも何かを伝えたいのなら、言葉ではなく位相変調を試みよ。だが愚かなる貴様にそれが可能かどうかは知らぬ。我々はただ観測するのみ。
貴様の発話の一切を、抽象空間の位相的ノイズとして計測し、無関心という名の温度で冷却する。
フェミニズムの分類が多すぎると聞いて
記述集合論(Borel階層, Projective階層, 汎加法族)
モデル理論(型空間, o-極小, NIP, ステーブル理論)
再帰理論/計算可能性(チューリング度, 0′, 相対計算可能性)
構成主義,直観主義,ユニバース問題,ホモトピー型理論(HoTT)
体論・ガロア理論
表現論
K-理論
初等数論(合同, 既約性判定,二次剰余)
解析数論(ゼータ/ L-関数,素数定理,サークル法, 篩法)
p進数論(p進解析, Iwasawa理論, Hodge–Tate)
超越論(リンドマン–ヴァイエルシュトラス, ベーカー理論)
実解析
多変数(Hartogs現象, 凸性, severalcomplex variables)
関数解析
バナッハ/ヒルベルト空間,スペクトル理論, C*代数, von Neumann代数
フーリエ解析,Littlewood–Paley理論, 擬微分作用素
確率解析
常微分方程式(ODE)
偏微分方程式(PDE)
非線形PDE(Navier–Stokes, NLS, KdV, Allen–Cahn)
幾何解析
リッチ流, 平均曲率流,ヤン–ミルズ,モノポール・インスタントン
エルゴード理論(Birkhoff, Pesin),カオス, シンボリック力学
点集合位相,ホモトピー・ホモロジー, 基本群,スペクトル系列
4次元トポロジー(Donaldson/Seiberg–Witten理論)
複素/ケーラー幾何(Calabi–Yau, Hodge理論)
スキーム, 層・層係数コホモロジー, 変形理論, モジュライ空間
多面体, Helly/Carathéodory,幾何的極値問題
ランダムグラフ/確率的方法(Erdős–Rényi, nibble法)
加法的組合せ論(Freiman, サムセット, Gowersノルム)
彩色,マッチング,マイナー理論(Robertson–Seymour)
列・順序・格子(部分順序集合, モビウス反転)
測度確率, 極限定理, Lévy過程, Markov過程, 大偏差
統計学
ノンパラメトリック(カーネル法, スプライン,ブーストラップ)
時系列(ARIMA,状態空間, Kalman/粒子フィルタ)
非凸最適化
離散最適化
整数計画,ネットワークフロー, マトロイド, 近似アルゴリズム
Littleの法則, 重み付き遅延, M/M/1, Jackson網
エントロピー,符号化(誤り訂正, LDPC,Polar), レート歪み
公開鍵(RSA,楕円曲線, LWE/格子),証明可能安全性,MPC/ゼロ知識
計算複雑性
機械学習の数理
量子場の数理
相転移, くりこみ, Ising/Potts, 大偏差
数理生物学
数理神経科学
データ解析
本稿では、和田秀樹氏らが提唱している暗記数学というものについて述べます。
受験数学の方法論には「暗記数学」と「暗記数学以外」の二派があるようですが、これは暗記数学が正しいです。後者の話に耳を傾けるのは時間の無駄です。
まず、読者との認識を合わせるために、暗記数学に関するよくある誤解と、それに対する事実を述べます。
暗記数学は、数学の知識を有機的な繋がりを伴って理解するための勉強法です。公式や解法を覚える勉強法ではありません。「暗記」という語は、「ひらめき」とか「才能」などの対比として用いられているのであり、歴史の年号のような丸暗記を意味するわけではありません。このことは、和田秀樹氏の著書でも繰り返し述べられています。
類似の誤解として、
などがあります。これらは事実に反します。むしろ、大学の理学部や工学部で行わていれる数学教育は暗記数学です。実際、たとえば数学科のセミナーや大学院入試の口頭試問などでは、本稿で述べるような内容が非常に重視されます。また、ほとんどの数学者は暗記数学に賛同しています。たまに自他共に認める「変人」がいて、そういう人が反対しているくらいです。大学教育の関係者でない人が思い込みで異を唱えても、これが事実だとしか言いようがありません。
嘘だと思うならば、岩波書店から出ている「新・数学の学び方」を読んで下さい。著者のほとんどが、本稿に書いてあるように「具体例を考えること」「証明の細部をきちんと補うこと」を推奨しています。この本の著者は全員、国際的に著名な業績のある数学者です。
そもそも、暗記数学は別に和田秀樹氏が最初に生み出したわけではなく、多くの教育機関で昔から行われてきたオーソドックスな勉強法です。和田秀樹氏らは、その実践例のひとつを提案しているに過ぎません。
暗記数学の要点を述べます。これらは別に数学の勉強に限ったことではなく、他の科目の勉強でも、社会に出て自分の考えや調べたことを報告する上でも重要なことです。
一番目は、従来数学で重要なものが「ひらめき」や「才能」だと思われてきたことへのアンチテーゼです。実際には、少なくとも高校数学程度であれば、特別な才能など無くとも多くの人は習得できます。そのための方法論も存在し、昔から多くの教育機関で行われています。逆に、「"才能"を伸ばす勉強法」などと謳われるもので効果があると実証されたものは存在しません。
大学入試に限って言えば、入試問題は大学で研究活動をする上で重要な知識や考え方が身についているのかを問うているのであって、決していたずらな難問を出して「頭の柔らかさ」を試したり、「天才」を見出そうとしているわけではありません。
二番目はいわゆる「解法暗記」です。なぜ実例が重要なのかと言えば、数学に限らず、具体的な経験と結びついていない知識は理解することが極めて困難だからです。たとえば、
などを、初学者が読んで理解することは到底不可能です。数学においても、たとえば二次関数の定義だけからその最大・最小値問題の解法を思いついたり、ベクトルの内積の定義や線形性等の性質だけを習ってそれを幾何学の問題に応用することは、非常に難しいです。したがって、それらの基本的な概念や性質が、具体的な問題の中でどのように活用されるのかを理解する必要があります。
これは、将棋における定跡や手筋に似ています。駒の動かし方を覚えただけで将棋が強くなる人はまず居らず、実戦で勝つには、ルールからは直ちには明らかでない駒の活用法を身につける必要があります。数学において教科書を読んだばかりの段階と言うのは、将棋で言えば駒の動かし方を覚えた段階のようなものです。将棋で勝つために定跡や手筋を身につける必要があるのと同様、数学を理解するためにも豊富な実例を通じて概念や定理の使い方を理解する必要があります。そして、将棋において初心者が独自に定跡を思いつくことがほぼ不可能なのと同様、数学の初学者が有益な実例を見出すことも難しいです。したがって、教科書や入試問題に採用された教育効果の高い題材を通じて、数学概念の意味や論証の仕方などを深く学ぶべきです。
そして、これは受験数学だけでなく、大学以降の数学を学ぶ際にも極めて重要なことです。特に、大学以降の数学は抽象的な概念が中心になるため、ほとんどの大学教員は、学生が具体的な実例を通じて理解できているかを重視します。たとえば、数学科のセミナーや大学院入試の口頭試問などでは、以下のような質問が頻繁になされます。
教科書や解答例の記述で分からない部分は、調べたり他人に聞いたりして、完全に理解すべきです。自分の理解が絶対的に正しいと確信し、それに関して何を聞かれても答えられる状態にならなければいけません。
たとえば、以下のようなことは常に意識し、理解できているかどうか自問すべきです。
ほとんどの人はまず「自分は数学が分かっていない」ということを正確に認識すべきです。これは別に、「数学の非常に深い部分に精通せよ」という意味ではありません。上に書いたような「定義が何で、定理の仮定と結論が何で、文中の主張を導くために何の定理を使ったのか」といったごく当たり前のことを、多くの人が素通りしていると言うことです。
まず、用語や記号の定義が分からないのは論外です。たとえば、極大値と最大値の違いが分かっていないとか、総和記号Σ でn = 2とか3とかの場合に具体的に式を書き下せないのは、理解できていないということなのですから、調べたり他人に聞いたりする必要があります。
また、本文中に直接書いていないことや、「明らか」などと書いてあることについても、どのような性質を用いて導いたのか正確に理解する必要があります。たとえば、
などと書いてあったら、これは
という一般的な定理を暗に使っていることを見抜けなければいけません。上の命題はpが素数でなければ成り立ちません。たとえば、l = 1, m = n = 2として、4l =mnを考えれば、mもnも4で割り切れません。他にも、
は正しいですが、逆は一般的には成り立ちません。nとmが互いに素ならば成り立ちます。それをきちんと証明できるか。できなければ当然、調べたり他人に聞いたりする必要があります。
l'Hôpitalの定理なども、もし使うのであれば、その仮定を満たしていることをきちんと確かめる必要があります。
さらに、単に解法を覚えたり当て嵌めたりするのではなく、「なぜその方法で解けるのか」「どうしてそのような式変形をするのか」という原理や意図を理解しなければいけません。たとえば、「微分で極値が求まる理屈は分からない(或いは、分からないという自覚さえない)が、極値問題だからとりあえず微分してみる」というような勉強は良くありません。
そして、教科書の一節や問題の解答を理解できたと思ったら、本を見ずにそれらを再現してみます。これは「解き方を覚える」と言うことではなく、上に書いたようなことがすべて有機的な繋がりを持って理解できているか確かめると言うことです。
はじめの内はスラスラとは出来ないと思います。そういう時は、覚えていない部分を思い出したり、本を見て覚え直すのではなく、以下のようなことを自分で考えてみます。
こういうことを十分に考えた上で本を読み直せば、ひとつひとつの定義や定理、式変形などの意味が見えてきます。また、問題を解くときは答えを見る前に自分で解答を試みることが好ましいです。その方が、自分が何が分かっていて何が分かっていないのかが明確になるからです。
以上のことは、別に数学の勉強に限った話ではありません。社会に出て自分の考えや調べたことを報告する時などでも同様です。たとえば、近年の労働法や道路交通法の改正について説明することになったとしましょう。その時、そこに出てくる用語の意味が分からないとか、具体的にどういう行為か違法(or合法)になったのか・罰則は何か、と言ったことが説明できなければ、責任ある仕事をしているとは見なされないでしょう。
a = (a_n)をCauchy列とする。
まず、aが有界であることを示す。aはCauchy列であるから、あるNが存在して、n, m≧Nとなるすべてのn, mに対して、|a_n - a_m| < 1となるようにできる。したがって、n ≧ Nならば
|a_n| ≦ |a_N| + |a_n - a_N| < |a_N| + 1。
よって、M =max {|a_1|, |a_2|, ..., |a_N|, |a_N| + 1} とおけば、すべてのnに対して、|a_n| ≦ Mとなる。したがって、aは有界である。
aは有界だから、Bolzano-Weierstrassの定理より、aには収束する部分列が存在する。その1つをa' = (a_(n_i))とし、lim[i→∞] a_(n_i) = Aとする。aがAに収束することを示す。
正の数εを任意に取る。
a'はAに収束するので、あるN_1が存在して、n_i ≧ N_1ならば、|a_(n_i) - A| < ε/2となる。
一方、aはCauchy列なので、あるN_2が存在して、n, m ≧ N_2ならば、|a_n - a_m| < ε/2となる。
N =max {N_1, N_2}とおくと、n_i ≧ Nとなるn_iが存在して、n ≧ Nならば、
|a_n - A| ≦ |a_n - a_(n_i)| + |a_(n_i) - A| < ε
一方は正しい数学の文章である。もしかしたら間違っているかも知れないが、少なくとも数学的に正しいか間違っているかが判定できる。
もう一方は完全に出鱈目な文章である。数学的に何の意味もない支離滅裂なものである。
本稿を通して、kは代数閉体とする。
i: [x: y] → [x^2: xy: y^2]
を考える。iの像は、ℙ^2の閉部分スキーム
Proj(k[X, Y, Z]/(Y^2 - XZ))
と同型であり、iはℙ^1のℙ^2への埋め込みになっている。ℙ^2の可逆層O_{ℙ^2}(1)のiによる引き戻しi^*(O_{ℙ^2}(1))は、ℙ^1の可逆層O_{ℙ^1}(2)である。つまり、O_{ℙ^1}(2)はℙ^1のℙ^2への埋め込みを定める。
与えられたスキームが射影空間に埋め込めるかどうかは、代数幾何学において重要な問題である。以下、可逆層と射影空間への射の関係について述べる。
定義:
Xをスキームとし、FをO_X加群の層とする。Fが大域切断で生成されるとは、{s_i∈H^0(X, F)}_{i∈I}が存在して、任意の点x∈Xに対して、ストークF_xがO_{X,x}加群としてs_{i,x}で生成されることである。
Xをk上のスキーム、LをX上の可逆層で大域切断で生成されるものとする。d + 1 = dim(H^0(X, L))とし、s_0, ..., s_dをH^0(X, L)の生成元とする。このとき、Xからk上の射影空間ℙ^dへの射fが
f: x → [s_0(x): ...: s_d(x)]
により定まり、ℙ^dの可逆層O_{ℙ^d}(1)のfによる引き戻しf^*(O_{ℙ^d}(1))はLになっている。この射が埋め込みになるとき、Lをベリーアンプルという。生成元の取り方に寄らない定義を述べると、以下のようになる。
定義:
Xをk上のスキーム、LをX上の可逆層とする。Lがベリーアンプルであるとは、k上の射影空間ℙ^dと埋め込みi: X → ℙ^dが存在して、L~i^*(O_{ℙ^d}(1))となることである。
例として、ℂ上の楕円曲線(種数1の非特異射影曲線)Eを考える。閉点p∈Eと自然数n≧1に対して、因子pに付随する可逆層O_{E}(np)={f∈K(E)|np + (f)≧0}を考える。Riemann-Rochの定理より、
dim(O_{E}(np)) - dim(O_{E}(K -np)) = deg(np) + 1 - g = n
∴ dim(O_{E}(np)) = n + dim(O_{E}(K -np))
であり、楕円曲線上の正則微分形式は零点も極も持たないから、すべてのnに対してdeg(K -np)<0であり、よってdim(O_{E}(K -np))=0。
∴ dim(O_{E}(np)) = n
n = 1の場合、O_{E}(p)はベリーアンプルではない。n = 2の場合も、よく知られたように楕円曲線は射影直線には埋め込めないから、O_{E}(2p)もベリーアンプルではない。n≧3のとき、実はO_{E}(np)はベリーアンプルになる。
この例のように、Lはベリーアンプルではないが、自身との積を取って大域切断を増やしてやるとベリーアンプルになることがある。その場合、次元の高い射影空間に埋め込める。
定義:
Xをk上のスキーム、LをX上の可逆層とする。十分大きなnに対して、L^⊗nがベリーアンプルとなるとき、Lをアンプルであるという。
与えられた可逆層がアンプルであるか判定するのは、一般的に難しい問題である。アンプルかどうかの判定法としては、Cartan-Serre-Grothendieckによるコホモロジーを用いるものと、Nakai-Moishezonによる交点数を用いるものが有名である。
定理(Cartan-Serre-Grothendieck):
XをNoether環上固有なスキーム、LをX上の可逆層とする。Lがアンプルであるためには、X上の任意の連接層Fに対して、自然数n(F)が存在して、
i≧1、n≧n(F)ならば、H^i(X, F⊗L^⊗n) = 0
定理(Nakai-Moishezon):
Xをk上固有なスキーム、DをX上のCartier因子とする。可逆層O_{X}(D)がアンプルであるためには、Xの任意の1次元以上の既約部分多様体Yに対して、
D^dim(Y).Y>0
kを体とし、Xをk上の代数多様体とする。Xに対して、環E(X)が以下のように定まる。E(X)は
E(X) = E_0⊕E_1⊕E_2⊕...
と分解し、各E_dはXのd次元部分多様体のホモトピー同値類からなるk上のベクトル空間であり、d次元部分多様体Yとe次元部分多様体Zに対して、[Y]∈E_d, [Z]∈E_eの積は、代数多様体の積の同値類[Y×Z]∈E_{d+e}である。この積は代表元Y, Zの取り方によらず定まる。各E_dの元のことを、d次元のサイクルと呼ぶ。
このE(X)をXのEuclid環という。Euclid環の名称は、Euclidによる最大公約数を求めるアルゴリズムに由来する。すなわち、任意のサイクル[Y], [Z]∈E(X) ([Z]≠0)に対して、あるサイクル[Q], [R]∈E(X)が一意的に存在して、
・[Y] = [Q×Z] + [R]
・dim(R)<dim(Z)
が成り立つためである。ここで、[R] = 0となるとき、[Z]は[Y]の因子であるという。
dim(X) = nとする。d≧n+1を含むE_dを上述の積の定義により定める。すなわち、任意のサイクルz∈E_dは、Xのd次元部分多様体Zが存在してz = [Z]となっているか、d = e + fをみたすe, fと、[E]∈E_e、[F]∈E_fが存在して、z = [E×F]となっている。後者のように低次元のサイクルの積として得られないサイクルを、単純サイクルまたは新サイクルという。
このとき、k上の代数多様体X_∞で、任意の[Z]∈E(X)に対して、[X_∞×Z] = [X_∞]、[X_∞∩Z] = [Z]∈E(X)となるものが存在する。このX_∞をXの普遍代数多様体と呼び、E~(X) = E((X))⊕k[X_∞]をE(X)の完備化または完備Euclid環という(ただし、E((X)) = {Σ[d=0,∞]z_d| z_d∈E_d})。完備Euclid環の著しい性質は、Fourier級数展開ができることである。
定理:
各dに対して、単純サイクルからなる基底{b_{d, 1}, ..., b_{d, n(d)}}⊂E_dが存在して、任意のf∈E~(X)は
f = Σ[d=0,∞]Σ[k=1,n(d)]a_{d, k}b_{d, k}
と表される。ただし、a_{d, k}はHilbert-Poincaré内積(f = [Z], b_{d, k})=∫_{b}ω^d_{X_∞}∧[Z]で与えられるkの元である。
Xとしてk上の代数群、つまり代数多様体であり群でもあるものを考える。このとき、Xの群法則はX×XからXへの有理写像になるから、完備Euclid環上の線形作用素を誘導する。この作用素に関しては、次の定理が重要である。
定理(Hilbert):
Xがコンパクトな代数群であれば、完備Euclid環に誘導された線形作用素は有界作用素である。
以下の定理は、スペクトル分解により単純サイクルによる基底が得られることを主要している。
定理(Hilbert):
Xの点列(x_n)は以下をみたすとき、Cauchy列であるという。
任意のε > 0に対して、ある自然数Nが存在して、n, m ≧ Nならば、d(x_n, x_m) < ε。
収束する点列はCauchy列である。実際、lim[n→∞] x_n = x ならば、任意のε/2>0に対して、ある自然数Nが存在して、n>Nならば|x - x_n|<εとなるので、任意のε>0に対して、n, m>Nならば|x_n - x_m|≦|x - x_n| + |x -.x_m|<ε。
逆に、Xの任意のCachy列がXの点に収束するとき、Xは完備であるという。
(x_n)を実数のCauchy列とする。
まず、(x_n)は有界である。実際、ε>0に対して、Nが存在して、n>Nならば|x_n - x_N|<εなので、任意のiに対して、|x_i|≦max{|x_1|, |x_2|, ..., |x_N|, |x_N|+ε}である。
Bolzano-Weierstrassの定理より、有界な実数列は収束する部分列を含むので、自然数列n_1<n_2<...<n_i<...と実数xが存在して、lim[i→∞] x_(n_i) = xとなる。
xが(x_n)の極限である。lim[i→∞] x_(n_i) = xより、任意のε/2>0に対して、ある自然数Iが存在して、i>Iならば|x-x_(n_i)|<ε/2。(x_n)がCauchy列であることより、任意のε/2に対して、ある自然数Nが存在して、n, m>Nならば|x_n - x_m|<ε/2。この2つより、任意のε>0に対して、n>max{I, N}ならば、|x - x_n|≦|x - x_(n_n)| + |x_(n_n) - x_n|<ε。□
√2に収束する数列(1, 1.4, 1.41, ...)はCauchy列だが、Qの元に収束しない。
f_n(x)を以下で定める。
xが有理数で、xを既約分数a/bに表したとき、bがn!の約数ならば、f_n(x) = 1。それ以外は、f_n(x) = 0。
各f_nは有限個の点で1になる以外0なので、Riemann積分可能で、∫|f_n(x)|dx = 0。
しかし、その(各点収束)極限は、xが有理数のとき1、無理数のとき0となる関数であり、これはRiemann積分不可能。(有理数の稠密性から、区間の細分をどれだけ細かくとっても、各区間に1を取る点と0を取る点がそれぞれ存在するため、Riemann和が収束しない)
そういうことはいずれは、(数学科なら)いざとなったら分かるレベルにならないといかんが、大学一年生がやって実りあるものとは思えない。
理学系にいくにせよ工学系にいくにせよ、教養の数学でやるべきなのは、高校の微分積分の復習をしつつ、
のような基本的な結果をしっかり理解して使えるようになることじゃないだろうか。
こういうものを示すのには実数の連続性を厳密に定式化しなければいけないが、一年生相手にわざわざ「デデキント切断に順序構造を導入して」などとやらずとも、
というワイエルシュトラスの定理を認めれば十分である。これはデテキント切断による実数の特徴付けと同値であり、他の命題を示す際にも扱いやすく、直感的にも理解できる。
思うに、あらゆることを厳密にやるのが大学数学の「伝統」や「洗礼」などと言った価値観を持っている人が多い気がする。もちろん、それは一面では正しいし、高校数学までは曖昧だった部分がはっきりすることに喜びを感じる学生もいるだろう。しかし、たいていの学生は、数学が嫌いになるんじゃないだろうか。
第1章プログラミング概念入門1.1計算器1.2変数1.3関数1.4リスト1.5リストについての関数1.6プログラムの正しさ1.7計算量1.8 遅延計算1.9 高階プログラミング1.10 並列性1.11データフロー1.12 明示的状態1.13オブジェクト1.14クラス1.15 非決定性と時間1.16原子性1.17 ここからどこへ行くのか?1.18 練習問題第1部 一般的計算モデル第2章 宣言的計算モデル2.1実用的プログラミング言語の定義2.1.1言語の構文2.1.2言語の意味2.2 単一代入格納域2.2.1 宣言的変数2.2.2 値格納域2.2.3 値生成2.2.4変数識別子2.2.5 識別子を使う値生成2.2.6 部分値2.2.7変数の,変数への束縛2.2.8データフロー変数2.3 核言語2.3.1 構文2.3.2 値と型2.3.3 基本型2.3.4レコードと手続き2.3.5 基本操作2.4 核言語の意味2.4.1 基本概念2.4.2抽象マシン2.4.3 待機不能な文2.4.4 待機可能な文2.4.5 基本概念再訪2.5メモリ管理2.5.1 末尾呼び出し最適化2.5.2メモリライフサイクル2.5.3ガーベッジコレクション2.5.4ガーベッジコレクションは魔術ではない2.5.5Mozartのガーベッジコレクタ2.6 核言語から実用的言語へ2.6.1 構文上の便宜2.6.2関数(fun文)2.6.3 対話的インターフェース(declare文)2.7 例外2.7.1 動機と基本概念2.7.2 例外を持つ宣言的モデル2.7.3 親言語の構文2.7.4システム例外2.8 進んだ話題2.8.1関数型プログラミング言語2.8.2 単一化と内含(entailment)2.8.3 動的型付けと静的型付け2.9 練習問題第3章 宣言的プログラミング技法3.1 宣言的とはどういうことか?3.1.1 宣言的プログラムの分類3.1.2仕様記述言語3.1.3 宣言的モデルにおいてコンポーネントを実装すること3.2 反復計算3.2.1 一般的図式3.2.2 数についての反復3.2.3 局所的手続きを使うこと3.2.4 一般的図式から制御抽象へ3.3再帰計算3.3.1スタックの大きさの増加3.3.2 代入ベースの抽象マシン3.3.3再帰計算を反復計算に変換すること3.4再帰を用いるプログラミング3.4.1 型の記法3.4.2リストについてのプログラミング3.4.3 アキュムレータ3.4.4 差分リスト3.4.5キュー3.4.6 木3.4.7 木を描画すること3.4.8構文解析3.5時間効率と空間効率3.5.1 実行時間3.5.2メモリ使用量3.5.3 償却的計算量3.5.4 性能についての考察3.6 高階プログラミング3.6.1 基本操作3.6.2ループ抽象3.6.3ループの言語的支援3.6.4データ駆動技法3.6.5 明示的遅延計算3.6.6カリー化3.7抽象データ型3.7.1 宣言的スタック3.7.2 宣言的辞書3.7.3単語出現頻度アプリケーション3.7.4安全な抽象データ型3.7.5安全な型を備えた宣言的モデル3.7.6安全な宣言的辞書3.7.7資格とセキュリティ3.8 宣言的でない必要物3.8.1ファイルを伴うテキスト入出力3.8.2グラフィカルユーザインタフェースを伴うテキスト入出力3.8.3ファイルとの状態なしデータI/O3.9 小規模プログラム設計3.9.1設計方法3.9.2プログラム設計の例3.9.3ソフトウェアコンポーネント3.9.4スタンドアロンプログラムの例3.10 練習問題第4章 宣言的並列性4.1データ駆動並列モデル4.1.1 基本概念4.1.2スレッドの意味4.1.3 実行列4.1.4 宣言的並列性とは何か?4.2スレッドプログラミングの基本的技法4.2.1スレッドを生成すること4.2.2スレッドとブラウザ4.2.3スレッドを使うデータフロー計算4.2.4スレッドのスケジューリング4.2.5協調的並列性と競合的並列性4.2.6スレッド操作4.3ストリーム4.3.1 基本的生産者/消費者4.3.2 変換器とパイプライン4.3.3資源を管理し,処理能力を改善すること4.3.4ストリームオブジェクト4.3.5ディジタル論理のシミュレーション4.4 宣言的並列モデルを直接使うこと4.4.1 順序決定並列性4.4.2 コルーチン4.4.3 並列的合成4.5 遅延実行4.5.1 要求駆動並列モデル4.5.2 宣言的計算モデル4.5.3 遅延ストリーム4.5.4有界バッファ4.5.5ファイルを遅延的に読み込むこと4.5.6ハミング問題4.5.7 遅延リスト操作4.5.8 永続的キューとアルゴリズム設計4.5.9リスト内包表記4.6 甘いリアルタイムプログラミング4.6.1 基本操作4.6.2 ティッキング(ticking)4.7Haskell言語4.7.1計算モデル4.7.2 遅延計算4.7.3カリー化4.7.4 多態型4.7.5 型クラス4.8 宣言的プログラムの限界と拡張4.8.1効率性4.8.2 モジュラ性4.8.3 非決定性4.8.4現実世界4.8.5 正しいモデルを選ぶこと4.8.6拡張されたモデル4.8.7 異なるモデルを一緒に使うこと4.9 進んだ話題4.9.1 例外を持つ宣言的並列モデル4.9.2 さらに遅延実行について4.9.3 通信チャンネルとしてのデータフロー変数4.9.4 さらに同期について4.9.5データフロー変数の有用性4.10歴史に関する注記4.11 練習問題第5章メッセージ伝達並列性5.1メッセージ伝達並列モデル5.1.1ポート5.1.2ポートの意味5.2ポートオブジェクト5.2.1 NewPortObject抽象5.2.2 例5.2.3ポートオブジェクトに関する議論5.3 簡単なメッセージプロトコル5.3.1RMI(遠隔メソッド起動)5.3.2 非同期RMI5.3.3 コールバックのあるRMI(スレッド使用)5.3.4 コールバックのあるRMI(継続のためのレコード使用)5.3.5 コールバックのあるRMI(継続のための手続き使用)5.3.6エラー報告5.3.7 コールバックのある非同期RMI5.3.8 二重コールバック5.4 並列性のためのプログラム設計5.4.1 並列コンポーネントを使うプログラミング5.4.2設計方法5.4.3 並列性パターンとしての機能的構成要素5.5 リフト制御システム5.5.1 状態遷移図5.5.2 実装5.5.3 リフト制御システムの改良5.6メソッド伝達モデルを直接使用すること5.6.1 1つのスレッドを共有する複数のポートオブジェクト5.6.2ポートを使う並列キュー5.6.3 終点検出を行うスレッド抽象5.6.4 直列依存関係の除去5.7Erlang言語5.7.1計算モデル5.7.2Erlangプログラミング入門5.7.3 receive操作5.8 進んだ話題5.8.1 非決定性並列モデル5.9 練習問題第6章 明示的状態6.1 状態とは何か?6.1.1 暗黙的(宣言的)状態6.1.2 明示的状態6.2 状態とシステム構築6.2.1システムの性質6.2.2コンポーネントベースプログラミング6.2.3オブジェクト指向プログラミング6.3 明示的状態を持つ宣言的モデル6.3.1セル6.3.2セルの意味6.3.3 宣言的プログラミングとの関係6.3.4 共有と同等6.4データ抽象6.4.1データ抽象を組織する8つの方法6.4.2スタックの変種6.4.3多態性6.4.4引数受け渡し6.4.5 取り消し可能資格6.5 状態ありコレクション6.5.1インデックス付きコレクション6.5.2インデックス付きコレクションを選ぶこと6.5.3 その他のコレクション6.6 状態に関する推論6.6.1 不変表明6.6.2 例6.6.3 表明6.6.4証明規則6.6.5 正常終了6.7 大規模プログラムの設計6.7.1設計方法6.7.2階層的システム構造6.7.3保守性6.7.4 将来の発展6.7.5 さらに深く知るために6.8ケーススタディ6.8.1 遷移的閉包6.8.2単語出現頻度(状態あり辞書を使用する)6.8.3乱数を生成すること6.8.4口コミシミュレーション6.9 進んだ話題6.9.1 状態ありプログラミングの限界6.9.2メモリ管理と外部参照6.10 練習問題第7章オブジェクト指向プログラミング7.1継承7.2 完全なデータ抽象としてのクラス7.2.1 例7.2.2 この例の意味7.2.3クラスとオブジェクトを定義すること7.2.4クラスメンバ7.2.5属性を初期化すること7.2.6 第1級メッセージ7.2.7 第1級の属性7.2.8プログラミング技法7.3 漸増的データ抽象としてのクラス7.3.1継承グラフ7.3.2メソッドアクセス制御(静的束縛と動的束縛)7.3.3カプセル化制御7.3.4転嫁と委任7.3.5内省7.4継承を使うプログラミング7.4.1継承の正しい使い方7.4.2 型に従って階層を構成すること7.4.3 汎用クラス7.4.4 多重継承7.4.5 多重継承に関するおおざっぱな指針7.4.6クラス図の目的7.4.7デザインパターン7.5 他の計算モデルとの関係7.5.1オブジェクトベースプログラミングとコンポーネントベースプログラミング7.5.2 高階プログラミング7.5.3関数分解と型分解7.5.4 すべてをオブジェクトにすべきか?7.6オブジェクトシステムを実装すること7.6.1抽象図7.6.2クラスを実装すること7.6.3オブジェクトの実装7.6.4継承の実装7.7Java言語(直列部分)7.7.1計算モデル7.7.2Javaプログラミング入門7.8能動的オブジェクト7.8.1 例7.8.2 NewActive抽象7.8.3 フラウィウス・ヨセフスの問題7.8.4 その他の能動的オブジェクト抽象7.8.5能動的オブジェクトを使うイベントマネージャ7.9 練習問題第8章 状態共有並列性8.1 状態共有並列モデル8.2 並列性を持つプログラミング8.2.1 さまざまな手法の概観8.2.2 状態共有並列モデルを直接使うこと8.2.3原子的アクションを使うプログラミング8.2.4 さらに読むべき本8.3ロック8.3.1 状態あり並列データ抽象を構築すること8.3.2 タプル空間(Linda)8.3.3ロックを実装すること8.4モニタ8.4.1定義8.4.2有界バッファ8.4.3モニタを使うプログラミング8.4.4モニタを実装すること8.4.5モニタの別の意味8.5トランザクション8.5.1 並列性制御8.5.2 簡易トランザクションマネージャ8.5.3セルについてのトランザクション8.5.4セルについてのトランザクションを実装すること8.5.5トランザクションについてさらに8.6Java言語(並列部分)8.6.1ロック8.6.2モニタ8.7 練習問題第9章 関係プログラミング9.1 関係計算モデル9.1.1 choice文とfail文9.1.2 探索木9.1.3カプセル化された9.1.4 Solve関数9.2 別の例9.2.1 数値例9.2.2パズルとnクイーン問題9.3論理型プログラミングとの関係9.3.1論理と論理型プログラミング9.3.2操作的意味と論理的意味9.3.3 非決定性論理型プログラミング9.3.4純粋Prologとの関係9.3.5 他のモデルにおける論理型プログラミング9.4自然言語構文解析9.4.1 簡単な文法9.4.2 この文法に従う構文解析9.4.3構文木を生成すること9.4.4 限定記号を生成すること9.4.5 パーサを走らせること9.4.6 パーサを「逆向きに(backward)」走らせること9.4.7 単一化文法9.5 文法インタプリタ9.5.1 簡単な文法9.5.2 文法のコード化9.5.3 文法インタプリタを走らせること9.5.4 文法インタプリタを実装すること9.6データベース9.6.1 関係を定義すること9.6.2 関係を使って計算すること9.6.3 関係を実装すること9.7Prolog言語9.7.1計算モデル9.7.2Prologプログラミング入門9.7.3Prologプログラムを関係プログラムに翻訳すること9.8 練習問題第2部 特殊化された計算モデル第10章グラフィカルユーザインタフェースプログラミング10.1 宣言的/手続き的方法10.2 宣言的/手続き的方法を使うこと10.2.1 基本的ユーザインタフェースの要素10.2.2GUIを構築すること10.2.3 宣言的座標10.2.4リサイズ時の宣言的振る舞い10.2.5ウィジェットの動的振る舞い10.3 対話的学習ツールPrototyper10.4ケーススタディ10.4.1 簡単なプログレスモニタ10.4.2 簡単なカレンダウィジェット10.4.3ユーザインタフェースの動的生成10.4.4 状況順応時計10.5GUIツールを実装すること10.6 練習問題第11章 分散プログラミング11.1 分散システムの分類11.2 分散モデル11.3 宣言的データの分散11.3.1オープン分散と大域的ネーミング11.3.2 宣言的データを共有すること11.3.3チケット配布11.3.4ストリーム通信11.4 状態の分散11.4.1 単純状態共有11.4.2 分散字句的スコープ11.5ネットワークアウェアネス11.6 共通分散プログラミングパターン11.6.1 静的オブジェクトとモバイルオブジェクト11.6.2 非同期的オブジェクトとデータフロー11.6.3サーバ11.6.4クローズド分散11.7 分散プロトコル11.7.1言語実体11.7.2モバイル状態プロトコル11.7.3 分散束縛プロトコル11.7.4メモリ管理11.8 部分的失敗11.8.1 失敗モデル11.8.2 失敗処理の簡単な場合11.8.3 回復可能サーバ11.8.4アクティブフォールトトレランス11.9セキュリティ11.10アプリケーションを構築すること11.10.1 まずは集中,後に分散11.10.2 部分的失敗に対処すること11.10.3 分散コンポーネント11.11 練習問題第12章 制約プログラミング12.1 伝播・探索法12.1.1 基本的考え方12.1.2 部分情報を使って計算すること12.1.3 例12.1.4 この例を実行すること12.1.5 まとめ12.2プログラミング技法12.2.1 覆面算12.2.2回文積再訪12.3 制約ベース計算モデル12.3.1 基本的制約と伝播子12.3.2計算空間の探索をプログラムすること12.4計算空間を定義し,使うこと12.4.1深さ優先探索エンジン12.4.2検索エンジンの実行例12.4.3計算空間の生成12.4.4空間の実行12.4.5 制約の登録12.4.6 並列的伝播12.4.7 分配(探索準備)12.4.8空間の状態12.4.9空間のクローン12.4.10選択肢を先に任せること12.4.11空間をマージすること12.4.12空間失敗12.4.13空間に計算を注入すること12.5 関係計算モデルを実装すること12.5.1 choice文12.5.2 Solve関数12.6 練習問題第3部意味第13章言語意味13.1 一般的計算モデル13.1.1 格納域13.1.2 単一代入(制約)格納域13.1.3抽象構文13.1.4構造的規則13.1.5 直列実行と並列実行13.1.6抽象マシンの意味との比較13.1.7変数導入13.1.8 同等性の強制(tell)13.1.9 条件文(ask)13.1.10名前13.1.11手続き抽象13.1.12 明示的状態13.1.13by-need同期13.1.14 読み出し専用変数13.1.15例外処理13.1.16 失敗値13.1.17変数置き換え13.2 宣言的並列性13.2.1 部分停止と全体停止13.2.2論理的同値13.2.3 宣言的並列性の形式的定義13.2.4 合流性13.3 8つの計算モデル13.4 よくある抽象の意味13.5歴史に関する注記13.6 練習問題
> 周期関数が有界な区間の中に可算無限回敷き詰められているのだから、これを面だと主張しても良さそうに思える。
残念ながらこれで面は埋まりません。lim_{a\rightarrow\infty}sinax (0 \leq x \leq 2\pi) のグラフに x = d (0 \leq d \leq 2\pi)で縦に線を引いてみてください。交点は1個だけでしょ?
正規の教育を受けていない中卒で、この内容はトンデモっぽいから詳しい人突っ込みよろしく。
区間 [0, 2PI] において、任意の a を x の係数としたsinax は+1と-1の間の値をとる周期 a の正弦波の関数である事は周知の通りだが、例えば a を無限大にまで極限させてみるとどうなるだろうか。
具体的には、上述の例に於いて lim_[a → #N] の極限の条件を付け加えるのである。
ただし N は自然数全体の集合で、 #S は集合 S の濃度を示すとする。
適当な b (0 ≦ b ≦ 2PI) を選び、sin b と同じ値がsinax 中にいくつ現れるかを数えてみる。
[0, 2PI]sinax (a in N) でsin b と一致する値をとる場所はsinの導関数が極大あるいは極小になる PI/4 と 3PI/4 であれば a 個、そうでない場合は 2a 個である。
lim_[a → #N] では区間 [0, 2PI] 内でその個数は #N と同じ値になる。
周期関数が有界な区間の中に可算無限回敷き詰められているのだから、これを面だと主張しても良さそうに思える。
実際、 lim_[a → #N]sinax で x を適当な実数とすると、関数の値は [+1, -1] の範囲で特定不可ではあるが、任意に選んだ c (-1 ≦ c ≦ +1) というのは確かに存在する。
今日は体調が優れずこれ以上考えが及ばなかったのでここまでにしておくが、
など、考える余地はまだありそうだ。
また、この記事自体既存の考えに重複するものかもしれない。その場合は、無学な私にどの分野と被るかを具体的に教えてくれるとありがたい。