「有界」を含む日記 RSS

はてなキーワード: 有界とは

2021-09-07

暗記数学が正しい Part. 1

長くなりすぎたので、概要編と実践例に分けます

本稿では、和田秀樹氏らが提唱している暗記数学というものについて述べます

受験数学方法論には「暗記数学」と「暗記数学以外」の二派があるようですが、これは暗記数学が正しいです。後者の話に耳を傾けるのは時間無駄です。

受験諸君は悪質な情報に惑わされないようにしましょう。

よくある誤解と事実

まず、読者との認識を合わせるために、暗記数学に関するよくある誤解と、それに対する事実を述べます

誤解1: 暗記数学は、公式や解法を覚える勉強法である

暗記数学は、数学知識有機的な繋がりを伴って理解するための勉強法です。公式や解法を覚える勉強法ではありません。「暗記」という語は、「ひらめき」とか「才能」などの対比として用いられているのであり、歴史年号のような丸暗記を意味するわけではありません。このことは、和田秀樹氏の著書でも繰り返し述べられています

誤解2: 受験数学は暗記数学で十分だが、大学以降の数学は暗記数学では通用しない

類似の誤解として、

などがあります。これらは事実に反します。むしろ大学理学部工学部で行わていれる数学教育は暗記数学です。実際、たとえば数学科のセミナー大学入試の口頭試問などでは、本稿で述べるような内容が非常に重視されます。また、ほとんどの数学者は暗記数学賛同しています。たまに自他共に認める「変人」がいて、そういう人が反対しているくらいです。大学教育関係者でない人が思い込みで異を唱えても、これが事実だとしか言いようがありません。

嘘だと思うならば、岩波書店から出ている「新・数学の学び方」を読んで下さい。著者のほとんどが、本稿に書いてあるように「具体例を考えること」「証明の細部をきちんと補うこと」を推奨しています。この本の著者は全員、国際的に著名な業績のある数学者です。

そもそも、暗記数学別に和田秀樹氏が最初に生み出したわけではなく、多くの教育機関で昔から行われてきたオーソドックス勉強法です。和田秀樹氏らは、その実践例のひとつ提案しているに過ぎません。

暗記数学の要点

暗記数学の要点を述べます。これらは別に数学勉強に限ったことではなく、他の科目の勉強でも、社会に出て自分の考えや調べたことを報告する上でも重要なことです。

  1. 数学重要なのは、技巧的な解法をひらめくことではなく、基礎を確実に理解することである
  2. そのためには、具体的な証明計算例を通じて学ぶことが効果である
  3. 論理ギャップや式変形の意図などの不明点は曖昧にせず、調べたり他人に聞いたりして、完全に理解すべきである

ひらめきよりも理解

一番目は、従来数学重要ものが「ひらめき」や「才能」だと思われてきたことへのアンチテーゼです。実際には、少なくとも高校数学程度であれば、特別な才能など無くとも多くの人は習得できます。そのための方法論も存在し、昔から多くの教育機関で行われています。逆に、「"才能"を伸ばす勉強法」などと謳われるもの効果があると実証されたもの存在しません。

大学入試に限って言えば、入試問題大学研究活動をする上で重要知識や考え方が身についているのかを問うているのであって、決していたずらな難問を出して「頭の柔らかさ」を試したり、「天才」を見出そうとしているわけではありません。

実例を通じて理解する

二番目はいわゆる「解法暗記」です。なぜ実例重要なのかと言えば、数学に限らず、具体的な経験と結びついていない知識理解することが極めて困難だからです。たとえば、

などを、初学者が読んで理解することは到底不可能です。数学においても、たとえば二次関数定義だけからその最大・最小値問題の解法を思いついたり、ベクトル内積定義線形性等の性質だけを習ってそれを幾何学問題に応用することは、非常に難しいです。したがって、それらの基本的概念性質が、具体的な問題の中でどのように活用されるのかを理解する必要があります

これは、将棋における定跡や手筋に似ています。駒の動かし方を覚えただけで将棋が強くなる人はまず居らず、実戦で勝つには、ルールから直ちには明らかでない駒の活用法を身につける必要があります数学において教科書を読んだばかりの段階と言うのは、将棋で言えば駒の動かし方を覚えた段階のようなものです。将棋で勝つために定跡や手筋を身につける必要があるのと同様、数学理解するためにも豊富実例を通じて概念定理の使い方を理解する必要があります。そして、将棋において初心者独自に定跡を思いつくことがほぼ不可能なのと同様、数学の初学者有益実例を見出すことも難しいです。したがって、教科書入試問題採用された教育効果の高い題材を通じて、数学概念意味や論証の仕方などを深く学ぶべきです。

そして、これは受験数学だけでなく、大学以降の数学を学ぶ際にも極めて重要なことです。特に大学以降の数学抽象的な概念が中心になるため、ほとんどの大学教員は、学生が具体的な実例を通じて理解できているかを重視します。たとえば、数学科のセミナー大学入試の口頭試問などでは、以下のような質問が頻繁になされます


不明点を曖昧にしない

教科書や解答例の記述で分からない部分は、調べたり他人に聞いたりして、完全に理解すべきです。自分理解絶対的に正しいと確信し、それに関して何を聞かれても答えられる状態にならなければいけません。

たとえば、以下のようなことは常に意識し、理解できているかどうか自問すべきです。

  1. 文中に出てくる用語記号定義を言えるか。
  2. 今、何を示そうとしているのか、そのためには何が言えれば十分なのか。
  3. 式変形をしたり、ある性質を導くために、どのような定理を使ったのか。
  4. その定理仮定は何で、本当にその条件を満たしているのか。
  5. そもそもその定理は本当に成り立つのか。自力証明できるか。
  6. どういう理屈意図でそのような操作・式変形をするのか。

ほとんどの人はまず「自分数学が分かっていない」ということを正確に認識すべきです。これは別に、「数学の非常に深い部分に精通せよ」という意味ではありません。上に書いたような「定義が何で、定理仮定結論が何で、文中の主張を導くために何の定理を使ったのか」といったごく当たり前のことを、多くの人が素通りしていると言うことです。

まず、用語記号定義が分からないのは論外です。たとえば、極大値と最大値の違いが分かっていないとか、総和記号Σ でn = 2とか3とかの場合に具体的に式を書き下せないのは、理解できていないということなのですから、調べたり他人に聞いたりする必要があります

また、本文中に直接書いていないことや、「明らか」などと書いてあることについても、どのような性質を用いて導いたのか正確に理解する必要があります。たとえば、

整数l, m, nに対して、2l = mnとする。このとき、mまたはnは2の倍数。

などと書いてあったら、これは

pが素数で、mnがpの倍数ならば、mまたはnはpの倍数。

という一般的定理を暗に使っていることを見抜けなければいけません。上の命題はpが素数でなければ成り立ちません。たとえば、l = 1, m = n = 2として、4l = mnを考えれば、mもnも4で割り切れません。他にも、

a ≡ b (mod n) ⇒ mamb (mod n)

は正しいですが、逆は一般的には成り立ちません。nとmが互いに素ならば成り立ちます。それをきちんと証明できるか。できなければ当然、調べたり他人に聞いたりする必要があります

l'Hôpitalの定理なども、もし使うのであれば、その仮定を満たしていることをきちんと確かめ必要があります

さらに、単に解法を覚えたり当て嵌めたりするのではなく、「なぜその方法で解けるのか」「どうしてそのような式変形をするのか」という原理意図理解しなければいけません。たとえば、「微分極値が求まる理屈は分からない(或いは、分からないという自覚さえない)が、極値問題からとりあえず微分してみる」というような勉強は良くありません。

そして、教科書の一節や問題の解答を理解できたと思ったら、本を見ずにそれらを再現してみます。これは「解き方を覚える」と言うことではなく、上に書いたようなことがすべて有機的な繋がりを持って理解できているかかめると言うことです。

はじめの内はスラスラとは出来ないと思います。そういう時は、覚えていない部分を思い出したり、本を見て覚え直すのではなく、以下のようなことを自分で考えてみます

  • 問題文の条件をどう使うのか
  • 何が分かれば、目的のものが求まるのか
  • どのような主張が成り立てば、ある定理を使ったり、問題文の条件を示すのに十分なのか

こういうことを十分に考えた上で本を読み直せば、ひとつひとつ定義定理、式変形などの意味が見えてきます。また、問題を解くときは答えを見る前に自分で解答を試みることが好ましいです。その方が、自分が何が分かっていて何が分かっていないのかが明確になるからです。

以上のことは、別に数学勉強に限った話ではありません。社会に出て自分の考えや調べたことを報告する時などでも同様です。たとえば、近年の労働法道路交通法改正について説明することになったとしましょう。その時、そこに出てくる用語意味が分からないとか、具体的にどういう行為違法(or合法)になったのか・罰則は何か、と言ったことが説明できなければ、責任ある仕事をしているとは見なされないでしょう。

2021-08-13

anond:20210813134042

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| < ε

とできる。εは任意だったので、aはAに収束する。□

2020-06-22

一方はふつう数学文章。もう片方は全くデタラメ文章である

一方は正しい数学文章である。もしかしたら間違っているかも知れないが、少なくとも数学的に正しいか間違っているかが判定できる。

もう一方は完全に出鱈目な文章である数学的に何の意味もない支離滅裂ものである

文章1

本稿を通して、kは代数閉体とする。

k上の射影直線ℙ^1から射影平面ℙ^2への射

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

となることが必要十分である

文章2

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):

上述の定義における単純サイクルによる基底は、完備Euclid環の固有自己作用素固有ベクトルになる。

2020-06-05

Cauchy列って何?

収束先がどこかにある数列です。

定義

Xを距離空間、d: X×X→Rを距離関数とする。

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和が収束しない)

2020-05-27

大学に入って最初にやることが「実数構成」では、数学が嫌いになるのは必然

そういうことはいずれは、(数学科なら)いざとなったら分かるレベルにならないといかんが、大学一年生がやって実りあるものとは思えない。

理学系にいくにせよ工学系にいくにせよ、教養数学でやるべきなのは高校微分積分の復習をしつつ、

のような基本的な結果をしっかり理解して使えるようになることじゃないだろうか。

こういうものを示すのには実数連続性を厳密に定式化しなければいけないが、一年相手にわざわざ「デデキント切断に順序構造を導入して」などとやらずとも、

空ではない上に有界実数の集合には上限が存在する。

というワイエルシュトラス定理を認めれば十分である。これはデテキント切断による実数の特徴付けと同値であり、他の命題を示す際にも扱いやすく、直感的にも理解できる。

思うに、あらゆることを厳密にやるのが大学数学の「伝統」や「洗礼」などと言った価値観を持っている人が多い気がする。もちろん、それは一面では正しいし、高校数学までは曖昧だった部分がはっきりすることに喜びを感じる学生もいるだろう。しかし、たいていの学生は、数学が嫌いになるんじゃないだろうか。

2014-12-22

http://anond.hatelabo.jp/20141222152213

おいふざけんなお前自分のやる気が下に有界だって証明したのか???

infと書けこのビチグソ野郎

2013-06-12

なんでPS4と箱一の話題しかないんだよ

しろあれらは「映像表現有界」を端的に表してただろ。

PS3レベルのグラでいいかもっと価格落とせ、が消費者要望だ。

2012-11-05

http://anond.hatelabo.jp/20121105161425

じゃあ「際限なく」じゃなくて「ウシジマくんに出てくるレベルの底辺」とかでいいかな。

下に有界でないか、とかそういう話をしたいわけじゃないので。

みんな大好き偏差値(笑)で言うと、だいたい60以下くらいの人はウシジマくんレベルになるようなシステムしかないんじゃないかと思う。

2011-12-12

コンピュータプログラミング概念技法モデル」の目次

第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.5 Mozartのガーベッジコレクタ
	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/O
	3.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.7 Haskell言語
		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.1 RMI(遠隔メソッド起動)
		5.3.2 非同期RMI
		5.3.3 コールバックのあるRMI(スレッド使用)
		5.3.4 コールバックのあるRMI(継続のためのレコード使用)
		5.3.5 コールバックのあるRMI(継続のための手続き使用)
		5.3.6 エラー報告
		5.3.7 コールバックのある非同期RMI
		5.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.7 Erlang言語
		5.7.1 計算モデル
		5.7.2 Erlangプログラミング入門
		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.7 Java言語(直列部分)
		7.7.1 計算モデル
		7.7.2 Javaプログラミング入門
	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.6 Java言語(並列部分)
		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.7 Prolog言語
		9.7.1 計算モデル
		9.7.2 Prologプログラミング入門
		9.7.3 Prologプログラムを関係プログラム翻訳すること
	9.8 練習問題

第2部 特殊化された計算モデル10グラフィカルユーザインタフェースプログラミング
	10.1 宣言的/手続き的方法
	10.2 宣言的/手続き的方法を使うこと
		10.2.1 基本的ユーザインタフェースの要素
		10.2.2 GUIを構築すること
		10.2.3 宣言的座標
		10.2.4 リサイズ時の宣言的振る舞い
		10.2.5 ウィジェットの動的振る舞い
	10.3 対話的学習ツールPrototyper
	10.4 ケーススタディ
		10.4.1 簡単なプログレモニタ
		10.4.2 簡単なカレンダウィジェット
		10.4.3 ユーザインタフェースの動的生成
		10.4.4 状況順応時計
	10.5 GUIツールを実装すること
	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.13 by-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 練習問題

2010-09-06

http://anond.hatelabo.jp/20100906202318

> 周期関数有界な区間の中に可算無限回敷き詰められているのだから、これを面だと主張しても良さそうに思える。

残念ながらこれで面は埋まりません。lim_{a\rightarrow\infty} sin ax (0 \leq x \leq 2\pi) のグラフに x = d (0 \leq d \leq 2\pi)で縦に線を引いてみてください。交点は1個だけでしょ?

風呂入ってる間に暇だから数学について考えてみたんだけど

正規の教育を受けていない中卒で、この内容はトンデモっぽいから詳しい人突っ込みよろしく。

区間 [0, 2PI] において、任意の a を x の係数とした sin ax は+1と-1の間の値をとる周期 a の正弦波の関数である事は周知の通りだが、例えば a を無限大にまで極限させてみるとどうなるだろうか。

具体的には、上述の例に於いて lim_[a → #N] の極限の条件を付け加えるのである。

ただし N は自然数全体の集合で、 #S は集合 S の濃度を示すとする。

適当な b (0 ≦ b ≦ 2PI) を選び、 sin b と同じ値が sin ax 中にいくつ現れるかを数えてみる。

[0, 2PI] sin ax (a in N) で sin b と一致する値をとる場所はsin導関数が極大あるいは極小になる PI/4 と 3PI/4 であれば a 個、そうでない場合は 2a 個である。

lim_[a → #N] では区間 [0, 2PI] 内でその個数は #N と同じ値になる。

周期関数有界な区間の中に可算無限回敷き詰められているのだから、これを面だと主張しても良さそうに思える。

実際、 lim_[a → #N] sin ax で x を適当実数とすると、関数の値は [+1, -1] の範囲で特定不可ではあるが、任意に選んだ c (-1 ≦ c ≦ +1) というのは確かに存在する。

今日は体調が優れずこれ以上考えが及ばなかったのでここまでにしておくが、

など、考える余地はまだありそうだ。

また、この記事自体既存の考えに重複するものかもしれない。その場合は、無学な私にどの分野と被るかを具体的に教えてくれるとありがたい。

 
ログイン ユーザー登録
ようこそ ゲスト さん