C/C++/C#

C言語で配列の長さを取得する

sizeofを使えば配列の長さを自動取得できるようになる。 int A = { 1,2,3,4 }; int size = sizeof(A) / sizeof(int); printf("%d", size);
C/C++/C#

C言語で配列の中身を表示する

lenは配列の長さ、listを配列のポインタとすれば次のようにすれば表示できるようになる。 void showVector( int len, int* list) { int i, index = 0; for (i = 0; i < l...
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で状態空間モデルを離散化してシミュレーションする

MATLABで状態空間モデルを離散化し、シミュレーションする。シミュレーションするモデルはバネマスダンパを用いる。連続時間モデル \begin{align}\dot{x}(t)&=Ax(t)+Bu(t)\\y&=Cx(t)\end{alig...
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...
交流

平均値を導出する

正弦波交流 \begin{align}v(t)=V_m \sin \omega t\end{align} の平均値を求める。平均値は \begin{align}V_{ab} = \frac{1}{2 \pi} \int_0^{2\pi} \...
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} を使えばいい。 ...
代数

二次方程式の解の公式

二次方程式の解の公式を求める。次のような二次方程式について \begin{align}ax^2+bx+c=0 (a \neq 0)\end{align} 平方完成すれば \begin{align}a \left ( x^2+\frac{b}...
C/C++/C#

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

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

ロシア語で簡単な文とその否定

ロシア語で「私はしろねこです」というには I am Shironeko. (Eng)Я Shironeko. (Рус) となり、「私はしろねこではありません」というには I am not Shironeko. (Eng)Я не Shir...
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...
交流

実効値を導出する

電圧もしくは電流の瞬時式 \begin{align}f \left( t \right) = f_m \sin \omega t\end{align} から実効値を求める。二乗平均平方根 \begin{align}f_{rms} &= \s...
交流

Pythonで歪波交流を描画する

歪波交流はそれぞれの周波数の正弦波の合成で表せるので \begin{align}e(t)= \sum_{i=1}^{N} \sqrt{2} E_{i} \sin \left ( \omega_{i} t + \phi_{i} \right ...