*数学 [#b0873c02]
#author("2023-11-12T02:39:13+09:00;2023-02-23T23:33:35+09:00","default:vip","vip")
// うんこ掃除しました 2023-11

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

#contents

***書いてほしいもの [#n55b2581]
-行列
-アフィン変換
-四元数
-フーリエ変換(いらない?)(いや、いりますwww)

**総和∑ [#i05cbcb3]
***定義 [#be6a21af]
総和とはいわゆるExcelのSum関数です。つまり全部足す、だから総和です。&mimetex(\sum_{i=1}^n x_i);のような書式で表されます。iが1から始まってnまでXiを足していくという意味です。なんだかforループみたいですね。

***例 [#c0bc1bb5]
&mimetex(\sum_{n=1}^5 2n = 2\times 1 + 2\times 2 + 2\times 3 + 2\times 4 + 2\times 5);

のように展開されます。

***参照 [#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]]

**ラジアン(孤度法) [#lf1b3dd8]
***定義 [#k3646014]
1ラジアンは半径と同じ長さ分の円周を持つ孤の角度です。単位はradで1rad≒57度です。下図の半径の赤い線と円周の赤い線の長さは同じです。この時のθが1radです。

#ref(http://wiki.fdiary.net/vipprog/?c=plugin;plugin=attach_download;p=%BF%F4%B3%D8;file_name=radian.jpg)

***便利な表現 [#e4054795]
360度はラジアンを使って表すと、2πradと簡潔に表せます。同様に180度はπrad、90度はπ/2radと表すことができます。

***参照 [#zb0cbdef]
[[ラジアン:Wikipedia:http://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%B8%E3%82%A2%E3%83%B3]]

**三角関数 [#ua52bfb9]
***定義 [#a84b9de2]
下の図のような単位円(半径が1)を考えます。その時、y=sinθ,x=cosθ。そしてtanθ=y/xと定義します。

#ref(http://wiki.fdiary.net/vipprog/?c=plugin;plugin=attach_download;p=%BF%F4%B3%D8;file_name=sankaku.jpg)

***グラフ [#l48a445d]
sinとcosのグラフは以下の通りである。周期性が確認できる。

#ref(http://wiki.fdiary.net/vipprog/?c=plugin;plugin=attach_download;p=%BF%F4%B3%D8;file_name=graph.jpg)

***Sin (正弦関数) [#l0d7954b]
Sinは上の定義よりBC/ABです。覚え方はsの筆記体をなぞるようにします。θの位置に気をつけてください。この場合のSinθは&mimetex(\frac{1}{\sqrt{2}});です。

#ref(http://wiki.fdiary.net/vipprog/?c=plugin;plugin=attach_download;p=%BF%F4%B3%D8;file_name=sin.png)

***Cos (余弦関数) [#af4fd2df]
Cosは上の定義よりAC/ABです。覚え方はCを描くようにします。この場合のCos30°は&mimetex(\frac{\sqrt{3}}{2});です。

#ref(http://wiki.fdiary.net/vipprog/?c=plugin;plugin=attach_download;p=%BF%F4%B3%D8;file_name=cos.png)

***tan (正接関数) [#fb3b0ec6]
tanは上の定義よりAC/BCです。覚え方はtを筆記体で書くようにします。この場合のtan60°は&mimetex(\sqrt{3});です。

#ref(http://wiki.fdiary.net/vipprog/?c=plugin;plugin=attach_download;p=%BF%F4%B3%D8;file_name=tan.png)

***値 [#tbf803bd]
三角関数は以下のような値をとる
|''角度''|''sin''|''cos''|''tan''|
|''0''|0 |1 |0 |
|''30°''|&mimetex(\frac{1}{2}); |&mimetex(\frac{\sqrt{3}}{2});|&mimetex(\frac{1}{\sqrt{3}});|
|''45°''|&mimetex(\frac{1}{\sqrt{2}});|&mimetex(\frac{1}{\sqrt{2}});|1 |
|''60°''|&mimetex(\frac{\sqrt{3}}{2});|&mimetex(\frac{1}{2}); |&mimetex(\sqrt{3}); |
|''90°''|1 |0 |定義されない|

***定義に戻って考えてみる [#r1dce0b9]
この例では、&mimetex(sin{\frac{\pi}{4}});、&mimetex(cos{\frac{\pi}{6}});、&mimetex(tan \frac{\pi}{3});の場合について考えました。
ここで導出された値はあくまで比です。三角関数は、あくまである辺と別の辺との比を表した関数であるといえるでしょう。
さて、定義によれば、三角関数は半径が1の単位円を考えた上で定義しましたので、例にとった三角形の斜辺を1と考えることもできます。
定義に掲載されている図を例にとって解説すると、&mimetex(sin \theta = \frac{y}{1}=y);がsinの値であると考えられますし、cosも同様に&mimetex(\frac{x}{1}=x);と考えられます。
このように単位円を考えておけば、sinは高さ、cosは幅に対応する関数として利用できるわけです。
これを利用すれば、ある平面に描かれた円の円周に沿って移動する点pを定義することも容易になります。
すなわち、このことをプログラムに応用すると、アナログ時計を描くようなことも簡単にできるのです。

***参照 [#f6f7cb8d]
[[三角関数:Wikipedia:http://ja.wikipedia.org/wiki/%E4%B8%89%E8%A7%92%E9%96%A2%E6%95%B0#.E4.B8.89.E8.A7.92.E9.96.A2.E6.95.B0.E3.81.AE.E5.BE.AE.E5.88.86.E6.B3.95]]

**極座標 [#a3aa1d8b]
普通グラフになにか書くときは軸がX,Yで表されたもの(直交座標)で書いていたと思う。しかし極座標というものを用いて表したほうが簡潔に記述できる場合もある。

極座標とはθと半径rを用いて表す座標のことで、円運動などを表すのにとても便利だ。特にゲームなどでは使えるだろう。以下のように点Pはθとrによって与えられる。x=rCosθ,y=rSinθと直せる。


#ref(http://wiki.fdiary.net/vipprog/?c=plugin;plugin=attach_download;p=%BF%F4%B3%D8;file_name=Polar_coordinates.png)

**行列 [#m3eac589]
***足し算 [#maf0766b]
各要素をそのまま足せばいい

&mimetex(\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} + \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} = \begin{pmatrix} 2 & 4 \\ 6 & 8 \end{pmatrix});

難しく書くとこんな感じ

&mimetex(\begin{pmatrix} a_1 & b_1 \\ c_1 & d_1 \end{pmatrix} + \begin{pmatrix} a_2 & b_2 \\ c_2 & d_2 \end{pmatrix} = \begin{pmatrix} a_1+a_2 & b_1+b_2 \\ c_1+c_2 & d_1+d_2 \end{pmatrix});

***掛け算 [#f35f52e9]
****定義 [#e4e0a964]

&mimetex(C_{ij} = \sum_{k=1}^m a_{ik} b_{kj});

****例 [#u48762d4]
かけていく順番がややこしいのでよく追って確認してください。

&mimetex(\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} = \begin{pmatrix} 1 \times 5 + 2 \times 7 & 1 \times 6 + 2 \times 8 \\ 3 \times 5 + 4 \times 7 & 3 \times 6 + 4 \times 8 \end{pmatrix} = \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix});

右側の行列を上にずらしてみるとわかりやすい

           &mimetex(\begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} );

&mimetex(\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}     \begin{pmatrix} 1 \times 5 + 2 \times 7 & 1 \times 6 + 2 \times 8 \\ 3 \times 5 + 4 \times 7 & 3 \times 6 + 4 \times 8 \end{pmatrix} );

-[[ベクトル]]と線形代数に続く

**[[ベクトル]] [#cec5c652]
量が多いので別ページにしました。こちら→[[ベクトル]]
**[[複素数]] [#h7fa6182]
量が多いので別ページにしました。こちら→[[複素数]]


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