数学

やはりプログラミングに数学はつき物です。ここではよく使われる数学について簡単に解説します。

書いてほしいもの

数学の基本演算について

四則演算は小学校でもならうが、加えて数学ではこれに余りを求める計算であるモジュラー函数がある。モジュラー函数はmodという記号で表す。プログラミングでは「%」などの記号でこれを表すが、数学のモジュラー函数の影響からかこんなものがあるわけ。

四則演算の重要性はいうまでもないが、モジュラー函数に関しては研究が進んでおらず、それでもなお特に数論において重要性が説かれる。というのも、たとえばRSA暗号では素数と余りの関係を用いた式が暗号復号化を表すが、斯様にしてモジュラー函数が暗号に於いて数論的応用法を見せた一例があるからだ。

モジュラー函数は日本人によって橢圓方程式との関連が予想された。氏の名前をとってこれを谷山・志村の定理など呼ぶが、モジュラー函数が、ただのあまりを求めるだけの式が、代数と結びつき、かつそれはフェルマーの最終定理を證明したアンドリュー・ワイルズにより證明された。フェルマーの最終定理事体が難解な(しかしその式は平易な)数論の問題で、かつ橢圓方程式とモジュラー函数に密接な関係を見せた定理である。

四則演算と違って、モジュラー函数はそれじたい特殊な性質がある様子。暗号技術を作りたい人は学んで損は無い、のかも知れない。

集合 - 総和

定義

総和(そうわ、summation)とはある集合の項その総ての和であり、いわゆるExcelのSum関数です。つまり全部足す、だから総和です。&mimetex(\sum_{i=1}^n x_i);のような書式で表されます(ゼータ∑はギリシヤ語のSを表し、シグマと呼ぶ)。項数iが1から始まってnまで、項はXiがX1からXnとなるので、それXiを足していくという意味です。なんだかforループみたいですね。

#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 と定まるようにね。

演算

総和が干渉するのはその項数のみ。従って次の計算ができる。

&mimetex(m \times \sum_{k=1}^n a_k = \sum_{k=1}^n m \times a_k);
&mimetex(\sum_{k=1}^n (a_k + b_k) = \sum_{k=1}^n a_k + \sum_{k=1}^n b_k);

当り前と言えば当り前。したがって次の変換には要注意である。&mimetex(\sum_{k=1}^n n \times k = n \times \sum_{k=1}^n k);
なおこの変換とこの式とを区別すること。&mimetex(\sum_{k=1}^n k^2);

参照

無限級数

総和する項数を無限大にまで拡張したもののこと。ハハハそんなの求まりっこないよ、とおもうかもしれないけれど、これは求まることがある。数Ⅲの極限をやりたまへ。

ゼータ函数

&mimetex(\zeta (s) = \sum^{\infty}_{n=1} { 1 \over {n^s}});

同じゼータでも小文字のζ(スティグマ)で表す。ベルンハルト・リーマンによって定式化された、とっても重要な式。もともとは数学的な探究のひとつとして、この式のs=2のときの無限級数には解が何と定まるかを求める問題だった。收束することは明らかだけれど、その値を求めることができず、この問題が提示されて百年後にオイラーによってテイラー展開を用いる解法が示された。これをバーゼル問題といって、これに着目したリーマンがゼータ函数として一般化した。現在でも求める事のできないsの値が存在する。

一往に「足し算?」といってもそう簡単に求まる物でもないのでその例を示した。

集合 - 総乗

&mimetex(\prod_{i=1}^n x_i);

定義

総乗はΠ(パイ)で表す。やることは総和に同じだけれど、收束條件がきびしい。

三角関数

ラジアン等々
量が多いので別ページにしました。こちら→三角関数

線型代数学

量が多いので別ページにしました。

複素数

量が多いので別ページにしました。こちら→複素数


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS