数学

C/C++/C#

【C言語】二項定理を実装する

二項定理は \begin{align}(x+y)^{n}= \mathrm{{}_{n} C_{0}} x^{n}y^{0}+ \mathrm{{}_{n} C_{1}} x^{n-1} y^{1}+ \mathrm{{}_{n}C_{2}...
C/C++/C#

【C言語】再帰呼び出しでユークリッド距離を計算する

ユークリッド距離を再帰呼び出しで計算する。前回と同様に2つのベクトル\(A,B\)の距離は \begin{align}d=\sqrt{(a_1 - b_1)^2+(a_2 - b_2)^2 + \cdots +(a_{n-1} - b_{n...
C/C++/C#

【C言語】ユークリッド距離を計算する

2つのベクトル\(A,B\)の距離は \begin{align}d=\sqrt{(a_1 - b_1)^2+(a_2 - b_2)^2 + \cdots +(a_{n-1} - b_{n-1})^2+(a_n - b_n)^2}\end{a...
C/C++/C#

【C言語】漸化式でフィボナッチ数列を定義する

フィボナッチ数列は漸化式を使って次のように与えられる。 \begin{align}F_0&=0\\F_1&=1\\F_{n+2}&=F_{n+1}+F_{n} (n \geq 0)\end{align} 以下のコードで確かめられる。 #in...
C/C++/C#

【C言語】フィボナッチ数列の10個の和と7番目の数との関係

連続するフィボナッチ数列の\(10\)個の和は\(7\)番目の数を\(11\)倍した数と一致する。 \begin{align}\sum_{i=1}^{10} F_{n+i} = 11 \times F_{n+7}\end{align} 以下...
C/C++/C#

【C言語】フィボナッチ数列の性質

フィボナッチ数列には次の性質がある \begin{align}\sum_{i=1}^\infty \frac{F_i}{10^{i+1}} = \frac{1}{89}\end{align} 以下のコードで確かめられる。 #include ...
C/C++/C#

【C言語】フィボナッチ数列の逆数和

フィボナッチ数列の逆数和を \begin{align}\psi=\sum_{i=1}^\infty \frac{1}{F_i} = 3.3498 \cdots\end{align} 以下のコードで確かめられる。 #include <stdi...
代数

【代数】二次方程式と黄金比

二次方程式の解 \begin{align}x^2-x-1=0\end{align} には \begin{align}x=\frac{1 \pm \sqrt{5}}{2}\end{align} のように黄金比が現れる。
C/C++/C#

【C言語】フィボナッチ数列を計算する

フィボナッチ数列は \begin{align}F(n)&=\frac{\phi^n - (-\phi)^{-n}}{\sqrt{5}} \\\phi&=\frac{1+\sqrt{5}}{2}\end{align} で与えられる数列で、 \...
代数

【代数】群の定義

集合\(S\)とその集合上で定義された演算\(f\)が次の3つの性質を持つ時、その集合と演算の組み合わせ\( (S,f)\)を群という。 結合法則 \( (a \circ b) \circ c =a \circ ( b \circ c ) ...
数学

【確率・統計】スタージェスの公式

データ列からヒストグラムを作成する場合、スタージェスの公式を用いると便利である。観測データの数を\(n\)、階級数を\(k\)とすると \begin{align}k=1+ \log_2 n = 1+ \frac{\log_{10} n}{\...
C/C++/C#

【C言語】Radian-Degree相互変換

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

【MATLAB】ヘロンの公式を実装する

ヘロンの公式は三角形の三辺と面積とを結ぶ関係式で \begin{align}S=\sqrt{s(s-a)(s-b)(s-c)} \hspace{10mm} s=\frac{a+b+c}{2}\end{align} MATLABでは func...
MATLAB/simulink

【MATLAB】2つの座標間の角速度ベクトルの関係をクォータニオンを使って定義する

2つの座標間の角速度ベクトルをクォータニオンを使って表すと \begin{align}\dot{\boldsymbol{q}} = \boldsymbol{T}_q (\boldsymbol{q}) \boldsymbol{\omega}\...
MATLAB/simulink

【MATLAB】クォータニオンと回転行列の相互変換を定義する

回転行列とクォータニオンは相互に変換することができる。いまクォータニオンが\(\boldsymbol{q} \in \mathbb{Q}\)と定義されているとすると回転行列とクォータニオンは \begin{align}\boldsymbol...
幾何

クォータニオンを定義してノルムを計算する

クォータニオンのための各変数を定義する。\(\eta,\varepsilon\)を \begin{align}\eta &:= \cos\left (\dfrac{\beta}{2} \right )\\\boldsymbol{\varep...
MATLAB/simulink

回転行列を微分する

回転行列の微分は外積因子を用いて \begin{align}\dot{\boldsymbol{R}}=\boldsymbol{R} \boldsymbol{S}(\boldsymbol{\omega})\end{align} ここで\(\o...
MATLAB/simulink

MATLABで定義したヤコビアンを計算する関数を改造して逆回転を扱えるようにする

あるベクトル2つのベクトルの関係がヤコビアンによって次のように与えられているとする。 \begin{align}\boldsymbol{y}= \boldsymbol{J} \boldsymbol{x}\end{align} この時逆問題は...
MATLAB/simulink

MATLABで定義した回転行列を計算する関数を改造して逆回転を扱えるようにする

あるベクトル2つのベクトルの関係が回転行列によって次のように与えられているとする。 \begin{align}\boldsymbol{y}= \boldsymbol{R} \boldsymbol{x}\end{align} この時逆問題は ...
MATLAB/simulink

MATLABで回転行列を定義してオイラー角が複数あることを調べる

回転行列 \begin{align} \boldsymbol{R}_{x}(\boldsymbol{η}) = \begin{pmatrix} 1 & 0 & 0\\ 0 & \cos \phi & - \sin \phi \\0 & \s...