プログラミング

MATLAB/simulink

matlabで自作関数を定義してRadian-Degree相互変換を行う

Matlabで自作関数を作りRadian-Degree相互変換を行う。Radian-Degreeの相互関係は \begin{align}\theta = \frac{\theta }{180} \pi\end{align} を使えばいい。 ...
C/C++/C#

C言語で素因数分解を実行する

素因数分解とは \begin{align}12=2 \times 2 \times 3\end{align} のように整数を素数の積で表すことである。C言語で実装すると次のようになる。 #include<stdio.h> void Prim...
C/C++/C#

C言語でsprintfを使った文字列生成

sprintfを使うと文字列を生成できる。生成した文字列はcsvファイルへの書き出しで利用できる。 次のようにすると実装できる。勿論printf関数のように複数個の変数を扱うこともできる。 #define _CRT_SECURE_NO_WA...
C/C++/C#

C言語でサイコロを実装して出目の平均を計算する

C言語でサイコロを作り、出目の平均を計算する。\(N\)を変更すればサイコロを振る回数を変更できる。 #include<stdio.h> #include <stdlib.h> #define min 1 #define max 6 #de...
MATLAB/simulink

MATLABで共分散を計算する

MATLABで共分散を求める。共分散は次のように求められる。 \begin{align}\mathrm{Cov} = E - \mu_x \mu_y\end{align} A=; B=; CovAB=(A*B')/length(A)-mea...
MATLAB/simulink

MATLABで分散共分散行列を求める

分散共分散行列は \begin{align}\Sigma = E)] {}^{t} \! (X-E)]\end{align} で与えられる。MATLABでは A=; B=; C=; Data=; mu=mean(Data,2); sigma...
python

Pythonでコサイン類似度を計算する

コサイン類似度は各ベクトルの大きさの違いが無視できる場合に有効な評価方法である。2つのベクトルの内積 \begin{align}A \cdot B = ||A || \ ||B|| \cos \theta\end{align} より \be...
python

Himmelblau関数を描画する

Himmelblau関数は最適化関数の性能を調査する場合によく利用される。Himmelblau関数は \begin{align}f(x,y)=(x^2+y-11)^2+(x+y^2-7)^2\end{align} で表される。 コード im...
python

ローレンツ濃縮を計算する

ローレンツ濃縮は \begin{align}L=L_0 \sqrt{1 - \frac{V^2}{c^2}}\end{align} で表される。速度が大きくなるにしたがって静止時の長さより短くなることが分かる。 import numpy a...
python

外部関数で定義された無限級数を計算する

これの続き。無限級数の一般項を外部関数化して与えると次のようになる。 import numpy as np from matplotlib import pyplot as plt def func(n): return ((-1) ** ...
python

無限級数を計算する その1

次の無限級数を計算する。 \begin{align}\log 2 = \sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n}=1 -\frac{1}{2}+\frac{1}{3} -\frac{1}{4} \cdo...
python

マチンの公式を使った円周率計算

これの続き。マチンの公式を用いると円周率を計算することができる。マチンの公式は \begin{align} \frac{\pi}{4}=4 \tan^{-1} \frac{1}{5} - \tan^{-1} \frac{1}{239} \e...
python

ガウス・ルジャンドル法を用いた円周率計算

これの続き。ガウス・ルジャンドル法を使うとより早く円周率計算ができる。 初期値を \begin{align}a_0=1 \hspace{10mm} b_0=\frac{1}{\sqrt{2}} \hspace{10mm} t_0=\frac...
python

グレゴリー・ライプニッツ級数を用いた円周率計算

グレゴリー・ライプニッツ級数を用いると円周率を計算することができる。グレゴリー・ライプニッツ級数は \begin{align}\tan^{-1} x = x - \frac{x^3}{3} + \frac{x^5}{5} + \cdots ...
python

遠藤の法外な複利計算をやってみる

遠藤がカイジに吹っ掛けた10分3割複利がどのくらいやばいか計算してみる。 繰り返し回数を\(n\)、元金を\(a\)とすればこの計算は \begin{align}y = 1.3^n a \end{align} 横軸は繰り返し回数。縦軸は千円...
python

ヒストグラムの刻み量を調整する

これの続き。 刻み量が少なく正規分布に見えないので刻み量を増やす。ヒストグラムを生成する部分 plt.hist(y, bins=50, histtype='barstacked', ec='black') のbinsを変えればいい 増やすと...
python

サイコロと中心極限定理

サイコロのある面が出る確率はどの目でも一様であると考えれば \begin{align}P(X)=\frac{1}{6}\end{align} となる。いまサイコロを \(N\) 回振り、その平均を求めることを考える。 例えばサイコロのある面...
python

Pythonで転置行列を計算する

行列の転置とは \begin{align}A=\begin{pmatrix} a & b \\ c & d\end{pmatrix}\end{align} の時 \begin{align} ^{t} \! A =\begin{pmatrix...
python

三層のニューラルネットワークを実装する

三層のニューラルネットワークをPythonで実装する。 \(X\)を入力 、 \(W\)を重み 、 \(B\)をバイアスとすれば各層の計算は行列を使って \begin{align}A=XW+B\end{align} と計算できるのでこれを関...
python

numpyを使って行列を定義する

numpyを使って行列を定義するには A = np.array(, , ]) とすればいい 出来てるか確認するには print(A) 大きさを確認するには print(A.shape) とするといい。 import numpy as np ...