*数学 [#b0873c02] やはりプログラミングに数学はつき物です。ここではよく使われる数学について簡単に解説します。 #contents **数学の考え方 [#g056c4e8] プログラムなんかで「函数(function)」って云うよね。数学で扱う函数から見れば異質としか言いようが無いけど、しかし、やはり函数は函数なわけで。 数学は、厳密な論理を重視し、高度な抽象化を行い、命題を導くことを目的とします。一見堅苦しい作業に思えるのですが、厳密に且つ抽象的に処理を行うことが、驚異的柔軟性を導いてくれます。譬えば「線型接続」の素晴らしさは柔軟さゆえの事でしょう。 つまり、函数を抽象化してやると、「任意の値に関する答えを返してくれる処理」とも考えられるわけで、プログラムの処理も「函数」に該当するわけ。これもまあ柔軟と云えばそう。 プログラムだと、動けばいいやと思ってしまえば、動画変換のプログラムは何でもいいことになる。でも実際はそうじゃない、なるべく効率的で高速な物を考え、実現する。プログラムと同じように、数学にも効率化する方法がある。結論として、数学における効率化は「厳密な論理」と「抽象化」と僅かばかりの発明からくる「柔軟性」であって、何が云いたいかと云うと、「何でこんなことイチイチ確認するんだ」と謂う場合、そこに驚くべき本質があるからだと思って欲しいので、毛嫌いせずに見てやって欲しいと謂う事です。 **数学の基本演算について [#t387c16a] 四則演算は小学校でもならうが、加えて数学ではこれに余りを求める計算である''モジュラー関数''(modular function)がある。 モジュラー関数はmodという記号で表す。C言語では「%」などの記号でこれを表すが、 数学のモジュラー関数の影響からかこんなものがあるわけ。 四則演算の重要性はいうまでもないが、モジュラー関数に関しては研究が進んでおらず、 それでもなお特に数論において重要性が説かれる。 というのも、たとえばRSA暗号では素数と余りの関係を用いた式が暗号復号化を表すが、 斯様にしてモジュラー関数が暗号において応用法を見せた一例があるからだ。 モジュラー関数は日本人によって楕円方程式との関連が予想された。 氏の名前をとってこれを''谷山・志村の定理''など呼ぶが、 ただの余りを求めるだけの式が、代数と結びつき、かつそれはフェルマーの最終定理を證明したアンドリュー・ワイルズにより證明された。フェルマーの最終定理事体が難解な(しかしその式は平易な)数論の問題で、 かつ楕円方程式とモジュラー関数に密接な関係を見せた定理である。 四則演算と違って、モジュラー関数はそれ自体特殊な性質がある様子。 暗号技術を作りたい人は学んで損は無い。 **数学的表記例について [#y707e98d] Wikipedia の数学記事とかみてると、表記に圧倒される。さっぱりわからない。そのことは論理式や集合論の表記に起因してるような気がする。特別な表記法は、その分野を学ぼうと志せば、意識せずとも真っ先に確認するだろうし、導入部分にも注意されてるけど、共通語になってる部分はそうでもない。 -∞:無限大を表す記号 -A ∽ B:A は B に相似 -A ~ B:A ∽ B に同じ -A ∝ B:A は B に比例 -A = B:A は B に等しい -A ≠ B:A = B の否定 -A ≒ B:A は B に近似 -A ≃ B:A ≒ B に同じ -A ≡ B:A は B と合同 -A ≢ B:A ≡ B の否定 結構断り無く使用される演算子とか。「∥(平行)」「⊥(垂直)」「∴(結論;故に)」「∵(理由・根拠;〜から、なので)」とかは問題ないですかね。 後ですね、「∮」とかどうでしょう。「∮」は積分記号「∫」の一種で、周回積分(閉路積分/経路積分)と謂う概念を表します。しかるべき場所で確認されると良いかと。 ***論理式 [#y48a5955] -かつ -または 列挙してある条件で、「P,Q,R」とあると、「かつ」か「または」かを見極める必要があったりする。とくに解説なし -P ⇒ Q:命題 P が成立すれば、命題 Q が成立 -P ⇔ Q:P ⇒ Q かつ Q ⇒ P 十分条件と必要十分条件って奴。「⇔」は命題における等号ともとれる。 -∧:論理積(かつ) -∨:論理和(または) -¬:否定 -∀:全称記号;全称量化を表す -∃:存在記号;存在量化を表す 最初は兎も角、最後二つは悪名高い概念かと。「∀x」は「任意のxについて(for any x)」と謂う意味。「∃x」は「ある x が存在して」と謂う意味。特に「述語論理」と呼ばれる式たちでして、奥が深いの調べてみるがヨロシ。ちなみに「命題」を中心とした論理は「命題論理」と謂って、高校で扱ってる論理学的な問題はだいたいこれ。 ***集合論 [#fcf1a64f] 集合(set)は大文字で書き、集合を構成する要素は元(ゲン;element)と謂い小文字で書く。集合は元のあつまりであって、元の数は集合によって任意である。集合の性質は群論や環論などにも拡張される。 -R:実数集合(Real Number) -Z:整数集合(ドイツ語 Zahlen) -N:自然数集合(Natural Number) -P:素数集合(Prime Number) -Q:有理数集合(Quotient) -C:複素数集合(Complex Number) -H:四元数集合(Hamilton Number) -A:代数的数集合(Algebraic Number) 暗黙的に利用される集合に上の例がある(P 以降はオマケ)。区別のために二重線や「Fraktur/Black letter(ドイツ文字)」にすることもある。忘れてしまっても文脈でわかることもあるぞ。 -a ∈ M:a は集合 M の元。 -a ∉ M:a ∈ M の否定 「a ∈ R」と書けば、a は実数集合 R の元であり、つまり a は実数であることを表す。 -{a1, a2, …, am}:a1からamまでの元で構成される集合 -{a;P}:条件 P を満たす全ての元 a の集合 -{(a,b);P,Q}:条件 P,Q を満たす全ての元 (a,b) の集合 A = {1,2,3} と B = {7,8,9} の直積集合(後述)を M = {(a,b); a ∈ A, b ∈ B} とすれば、集合 M は (1,7) 等の元を持ちます。 -M ⊂ N:M は N の部分集合;a ∈ M ⇒ a ∈ N -M ⊄ N:M ⊂ N の否定。 -M ⊊ N:M は N の真部分集合;M ⊂ N かつ M ≠ N 集合の大小のような事(包含関係)を比較して表した物です。部分集合は一致する可能性もあります。 -M ∩ N:M, N の積集合;{a; a ∈ M かつ a ∈ N} -M ∪ N:M, N の和集合;{a; a ∈ M または a ∈ N} -M × N:M, N の直積集合;{(a,b); a ∈ M, b ∈ N} -M + N:M, N の直和集合;{a; a ∈ M または a ∈ N} -Σ:直和集合記号 -Π:直積集合記号 -∅:空集合;元を有さない集合 集合の演算です。新たな集合を作ります。直和集合は和集合と同じですが、積集合が空集合であることが暗黙に諒解されます。「M = {1,3,8}, N = {2,5,9,17}」なら「M ∩ N = ∅」ですね。集合の演算は他にもありますが割愛(差集合/補集合/冪集合/商集合 etc.)。 ***他には何か無いの? [#w2661249] これ以上は専門的というか、分野が偏ることになる(もう十分偏ってるかもしれん? それはスマン)。何にせよ、数式の意味が分からないと、理解以前の問題なので、表記例についてはしっかりと確認すべきです。参考書や教科書のページは飛ばさずに読まないと、酷い目に合い兼ねない。 で、これで専門書や Wikipedia の式は読めますかと訊かれると、答えに窮する。ガンバッテネとしか言いようが無い。 **分割して書いてあるもの [#h8ddb04c] -[[三角関数]]:ラジアン等々。円函数。 -[[複素数]] -[[ベクトル]]:線型代数学【イ】。画像処理とか3Dの座標変換等々いろいろ使います。 -[[行列]]:線型代数学【ロ】 -[[解析学(微分・積分)>解析学]] -[[数列]] 加筆募集中。 **書いてほしいもの [#n55b2581] -アフィン変換 -四元数 -フーリエ変換(いらない?)(いや、いりますwww) // こいつはなんて項目にすんべ? // Re:部分和とか集合論的だから集合でよくね? *集合 [#h52cefd4] **総和 [#t8aae2f1] ***定義 [#be6a21af] 総和(そうわ、summation)とはある集合の項その総ての和であり、いわゆるExcelのSum関数です。つまり全部足す、だから総和です。&mimetex(\sum_{i=1}^n x_i);のような書式で表されます(ゼータ∑はギリシヤ語のSを表し、シグマと呼ぶ)。項数iが1から始まってnまで、項はXiがX1からXnとなるので、それXiを足していくという意味です。なんだかforループみたいですね。 ***例 [#c0bc1bb5] #mimetex(\sum_{n=1}^5 2n = 2\times 1 + 2\times 2 + 2\times 3 + 2\times 4 + 2\times 5); のように展開されます。~ プログラムで書くと以下のようになります。 int i, sum=0; for(i=1; i<=5; i++) sum += 2*i; return sum; ただこれは、数Ⅱの数列をやればわかるけれど、一般化された解が存在することがある。Xn=nの場合、その総和は初項から第n項までなら、n(n+1)/2 と定まるようにね。 ***演算 [#i7d403b7] 総和が干渉するのはその項数のみ。従って次の計算ができる。 #mimetex(){{ \begin{array} m \times \sum_{k=1}^n a_k & = & \sum_{k=1}^n m \times a_k \\ \sum_{k=1}^n (a_k + b_k) & = & \sum_{k=1}^n a_k + \sum_{k=1}^n b_k \end{array} }} 当り前と言えば当り前。したがって次の変換には要注意である。&mimetex(\sum_{k=1}^n n \times k = n \times \sum_{k=1}^n k);~ なおこの変換とこの式とを区別すること。&mimetex(\sum_{k=1}^n k^2); ***参照 [#zb0cbdef] -[[級数:Wikipedia:http://ja.wikipedia.org/wiki/%E7%B4%9A%E6%95%B0]] -[[総和:Wikipedia:http://ja.wikipedia.org/wiki/%E7%B7%8F%E5%92%8C]] ***無限級数 [#jca716e2] 総和する項数を無限大にまで拡張したもののこと。ハハハそんなの求まりっこないよ、とおもうかもしれないけれど、これは求まることがある。数Ⅲの極限をやりたまえ。 ***ゼータ関数 [#n890425c] #mimetex(\zeta (s) = \sum^{\infty}_{n=1} { 1 \over {n^s}}); 同じゼータでも小文字のζ(スティグマ)で表す。ベルンハルト・リーマンによって定式化された、とっても重要な式。もともとは数学的な探究のひとつとして、この式のs=2のときの無限級数には解が何と定まるかを求める問題だった。收束することは明らかだけれど、その値を求めることができず、この問題が提示されて百年後にオイラーによってテイラー展開を用いる解法が示された。これをバーゼル問題といって、これに着目したリーマンがゼータ関数として一般化した。現在でも求める事のできないsの値が存在する。 一往に「足し算? ちょろい」といってもそう簡単に求まる物でもないのでその例を示したっすよ。 **総乗 [#see73da6] #mimetex(\prod_{i=1}^n x_i); ***定義 [#gf0d13ca] 総乗はΠ(パイ)で表す。やることは総和に同じだけれど、收束條件がきびしい。 *附録 [#k75f2ddb] **高校数学の範囲 [#o6f2ffce] 下記はだいたい大雑把なので。ⅠAとⅡB、ⅢCとあるんだぜ。大学でも数学をやる人たち(理系の人)は、ⅢCまでが必修の扱い。京大とか行列(数C)だすよと公言する一部を除いて、文系の人はⅠAとⅡBまでって感じ。でも文系では経済学とかは偏微分とかも含まれるから、結局数Ⅲはある程度理解する必要もあったり。 年度によりけりで「過程」が変われば内容もかわる。基本的には、ⅡBをやるにはⅠAの理解、ⅢCをやるにはⅡBの理解、と段階的に学習できるようになってますよ。 ***数学Ⅰと数学A [#x4e1059a] 方程式、二次関数はここがわからないと、高校レベルの理科と解ける問題が半減すると言っても過言ではない。三角関数は正弦・余弦定理と三角形の面積の求積まで。ヘロンの公式とかもここかな。数Ⅰは次の通り。 -方程式、不等式(式の解き方の基本) -二次関数(特殊かつ頻出なので二次関数の性質を学ぶ) -図形と計量(三角函数初歩、面積・体積の求積法など) 確率は、確率の基礎。統計的拡張は数C。二項定理を含むよ。平面図形は、幾何の基礎。 ベクトルなんかだと、ここの幾何が分ってないと式の流れが分らなくなるかも知れません。数Aは次の通り。 -場合の数、確率(順列、組合せ、確率) -論理と集合("且つ"や"又は"の学習ダナ) -平面図形(旧課程では中学で履修、移籍した分野) ***数学Ⅱと数学B [#ifc83c59] かなり重要な分野が多い。関数は頻出のsinだとかlogだとか、それから自然対数e(ネイピアさん)も。対数のあたりで極限のためのlimさんも登場する。なかなかよく要点の纏まった過程だと思う。物理の力学では、微分・積分法の考えかたが沢山(ただし高校物理では使わずに教えることになってるので学校によっては説明してくれない。)あります。そこはこれと併せて学べばよいでしょう。数Ⅱは次の通り。 -式と証明(式の解法、今後必要になる数式の処理の練習がこれ) -[[複素数]]と方程式(二次関数の虚数解の扱いが中心) -図形と方程式(円や軌跡、領域など方程式で図形を表すよ) -三角関数(sin、cos、tanを更に拡張するぜ) -指数・対数関数(大きな数を処理するための関数たちの性質を学ぶよ) -微分・積分法(微積の入門編) 複素数平面は好きならやってね。統計は普通やらないみたい。数Aでの初歩的な統計の考えを拡張して、最後は数Cの正規分布までたどり着くのが統計の目的。数Bは次の通り。 -[[ベクトル]](平面と立体) -[[数列]](漸化式の解法など。ただし極限を含まない) -[[複素数]]平面(これは平成十六年あたりから削除された) -統計とコンピュータ(度数分布など) ***数学Ⅲと数学C [#j450db6a] 積分は置換・部分積分の導入がある。物理の角速度を理解するには、ここまでの学習が入り用。微積には曲線の長さも含まれるよ。数Ⅲは次の通り。 -関数(分数関数、無理関数、逆関数とか、数Ⅲの他の分野で必要な式を考察する) -極限(数列を拡張、微分拡張の為の足がかり) -微分(数Ⅱでやらなかつた微分できる函数を扱う) -積分(微分に同じ、ただし積分の定義たる区分求積法は此処で扱う) 確率以後は普通やらないらしい。統計処理の用語がExcelの変な函数とかにあるネ、あれを理解するにはこれが必要ってわけ。偏差値計算ができるようになるぜ。数Cは次の通り。 -[[行列]](一次変換、回転を含む) -式と曲線(楕円であるとか、特殊な関数たち) -確率分布(確率変数の導入と正規分布への足がかり) -統計処理(正規分布などの扱い) ***体系的にどうなってるの? [#tb57be7d] 無茶を仰る。ザックリまとめてあげよう。 -算術的なお話:所謂方程式だとかで、数学の基礎の基礎の、そのまた基礎って感じ。 -数論・整数論 -論理・集合論 -線型代数学 -古典幾何学 -初等解析学 -確率・統計論 まあこんなとこでしょうな。勉強法としては、上三つの最低限のレベルを理解(数論極めてフェルマーの最終定理とか、群論とか、そんなの理解してどうすんのさ)して、後は真ん中をいったりきたりでしょう。そういう意味では、今の高校数学はよくできてると思う。