幾何

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...
MATLAB/simulink

MATLABで外積因子を定義する

外積は \begin{align}\boldsymbol{A} \times \boldsymbol{B}=\begin{vmatrix}\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\...
MATLAB/simulink

MATLABで回転行列とヤコビアンを一つの行列で表現して6自由度を扱えるようにする

剛体に固定された剛体座標系と地球上に固定されたグローバル座標系を考える。いまグローバル座標系上で定義される位置ベクトル \begin{align}\boldsymbol{\eta}=\begin{pmatrix}\boldsymbol{\e...
MATLAB/simulink

MATLABで位置ベクトルと速度ベクトルを変換するための回転行列を定義する

剛体に固定された剛体座標系と地球上に固定されたグローバル座標系を考える。いまグローバル座標系上で定義される位置ベクトルと \begin{align}\boldsymbol{\eta}_1=\begin{pmatrix}x \\ y \\ z...
MATLAB/simulink

MATLABで角度ベクトルと角速度ベクトルを変換するためのヤコビアンを定義する

剛体に固定された剛体座標系と地球上に固定されたグローバル座標系を考える。いまグローバル座標系上で定義されるオイラー角ベクトルと \begin{align}\boldsymbol{\eta_{2}}= \begin{pmatrix}\phi ...
MATLAB/simulink

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

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

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

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

ルービックキューブを題材にしたおもちゃルービックケージ

ルービックキューブを調べているとルービックケージなるものを見つけた。ルービックケージはルービックキューブのように遊べる〇×ゲームのようなもの。
MATLAB/simulink

MATLABで楕円を書く

楕円の座標は \begin{align}x&=a \cos \theta\\y&=b \sin \theta\end{align} で計算できる。\(a=b\)の時、円になる。 a=2; b=5; theta=-2*pi:0.01:2*pi...
幾何

円の方程式から円の面積公式を求める

円の方程式\(x^2+y^2=r^2\)より \begin{align}S=2\int_{-r}^{r} \sqrt{r^2-x^2}\end{align} \(x=r\sin\theta\:(-\frac{\pi}{2}\leq \the...
幾何

正弦定理と余弦定理

三角形ABCについて、次の二つの定理が成り立つ 正弦定理 \begin{align}\frac{a}{\sin A} =\frac{b}{\sin B} =\frac{c}{\sin C} = 2R\end{align} 余弦定理 \beg...
幾何

正四面体の表面積

一片の長さが\(a\)の正四面体の表面積を考える。正四面体を構成する正三角形の高さは \begin{align}AH=\sqrt{a^2 - \left ( \frac{1}{2} a \right ) ^2} = \frac{\sqrt{...