投稿

8月, 2018の投稿を表示しています

ブログの説明

学校に通わないで学んだことを記しています。間違っているところが何かありましたらご指摘下さると幸いです。コメントに対する返信が遅れる可能性があります。その場合は申し訳ありません。

このブログではサイドバーに広告を表示しています。このブログ内の投稿記事を検索するには右上の拡大鏡のアイコンを、アーカイブやラベル付けから投稿記事を閲覧するには左上の三重線のアイコンをクリックして下さい。

数式の表示にはMathJaxを利用させていただいています。数式の表示のためにJavaScriptが有効である必要があります。そうでない場合、訳の分からないLatexのコードが表示されます。幾何学図形やチャートの表示にはHTML5 CanvasやGoogle Chartを使用しています。その表示のためにもJavaScriptが有効である必要があります。

Debian GNU/LInuxでPrologを始める

SWI-Prologのインストール DebianではGNU Prologを使う選択肢もあるが、ここではSWI-Prologを使うので、swi-prologまたはswi-prolog-xというdebパッケージをインストールする。後者はGUIアプリケーションを開発するためのXPCEというツールキットが含まれているパッケージ。 $ su # apt update # apt install swi-prolog # exit SWI-Prologの起動 インストールが無事に完了したらPrologを起ち上げる。swiplかprologと打ち込んでエンターキーを押せば起動する。 $ swipl $ prolog いろいろなメッセージが表示された後、次のようなプロンプトが表示される。 ?- まずはお決まりのHello World!を表示。 ?- format('Hello World!'). Hello World! true. ?- 次に四則演算。 ?- is(A, 5+7). A = 12. ?- is(S, 5-7). S = -2. ?- is(M, 5*7). M = 35. ?- is(D, 5/7). D = 0.7142857142857143. ?- A, S, M, Dはいずれも変数。変数名の先頭は大文字か_である必要がある。isは引数を2つ取る組み込み述語。is/2というふうに書かれる。/2は引数を2つ取ることを意味する。is/2は英語でunificationを意味するらしい。式の最後にはピリオドが必要。また、同じことを表すのに次のように記述してもいい。isの左辺が変数の場合、isは中置演算子(infix operator)としての役割を持っているようだ。 ?- A is 5 + 7. A = 12. ?- S is 5 - 7. S = -2. ?- M is 5 * 7. M = 35. ?- D is 5 / 7. D = 0.7142857142857143. ?- ついでに2の平方根と半径3の円の面積も計算。累乗には^が使えることに感動。 ?- is(Root, sqrt(2)). Root = 1.4142135623730951. ?- is(CircleArea, 3^2 * pi). CircleAre

行列の加法・減法・実数倍・乗法 + R言語

行列同士の足し算と引き算 行列の足し算と引き算は同じ型(同じサイズとも言う)の行列同士で可能。同じ型の行列同士を重ねてちょうど同じ位置にある成分同士を足したり引いたりすればいい。 \[ A = \begin{pmatrix} -3 & 5 \\ 10 & -6 \end{pmatrix} \] \[ B = \begin{pmatrix} 5 & -7 \\ -2 & 8 \end{pmatrix} \] 2x2行列A -3 5 10 -6 2x2行列B 5 -7 -2 8 R言語ではmatrix関数を使って行列を作る。第1引数に行列の要素を、第2引数に行数を、第3引数に列数を指定する。 > A = matrix(c(-3, 10, 5, -6), 2, 2) > A [,1] [,2] [1,] -3 5 [2,] 10 -6 > B = matrix(c(5, -2, -7, 8), 2, 2) > B [,1] [,2] [1,] 5 -7 [2,] -2 8 行列Aと行列Bはともに2x2行列なので足し算や引き算が可能であることが分かる。 \[ \begin{align} A + B &= \begin{pmatrix} -3 + 5 & 5 + (-7) \\ 10 + (-2) & -6 + 8 \end{pmatrix} \\ &= \begin{pmatrix} 2 & -2 \\ 8 & 2 \end{pmatrix} \end{align} \] A + B -3 + 5 5 + (-7) 10 + (-2) -6 + 8 計算結果が正しいかどうかR言語で確認。 > A + B [,1] [,2] [1,] 2 -2 [2,] 8 2 \[ \begin{align} A - B &= \begin{pmatrix} -3 - 5 & 5 - (-7) \\ 10 - (-2) & -6 - 8 \end{pmat

数学の行列とその情報処理の初歩ノート

行列とは何か 数学でいう行列はその名のとおり行と列からなる数値の並び。英語ではmatrix(複数形はmatrices)と称されている。行は英語でrowと呼ばれ、列は英語でcolumnと呼ばれている。ちなみに行が横方向の並びを指し、列が縦方向の並びを指している。行は上から順番に第1行、第2行、第3行というふうに称され、列は左から順番に第1列、第2列、第3列というふうに称されている。それらを構成している個々の数値はその行列の成分または要素と呼ばれている。 \[ \begin{pmatrix} a_{11} & a_{12} & a_{13} & \cdots & a_{1n} \\ a_{21} & a_{22} & a_{23} & \cdots & a_{2n} \\ a_{31} & a_{32} & a_{33} & \cdots & a_{3n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & a_{m3} & \cdots & a_{mn} \end{pmatrix} \] 行列の型とは 個々の行列は行数x列数のようにその行数と列数によって識別される。それらは行列のサイズ(size)とか行列の次数(order)と呼ばれている。日本語の数学書では行列の型と呼ばれていることが多い。たとえば3行と5列の要素から成る行列は、3x5行列とか3x5型行列などと書き表される。横方向の並びである行数、縦方向の並びである列数の順番であることに要注意。真ん中のxは掛ける(times)ではなくbyであり、3x2ならthree by twoと読まれている。数学では行をmで列をnで表す慣例がある。 4x3行列 5.2 2.8 7.0 7.6 1.9 2.2 4.6 8.1 3.0 6.4 8.3 0.5 数学の流儀だと\[ \begin{bmatrix} 5.2 & 2.8 & 7.0 \\ 7.6 & 1.9 & 2.2 \\ 4.6 & 8