highlight.pack.js

2014年12月1日月曜日

フーリエ変換の結果

\begin{equation} F(k)=\dfrac{1}{\sqrt{2\pi}}\int_{-\infty}^{\infty} f(x)e^{-ikx}dx \end{equation}

で定義されるフーリエ変換の結果を纏めておく。

f(x)=exp(-a|x|) (a>0) の時

\begin{equation} f(x)=e^{-a\left|x\right|} (a>0) \end{equation}
\begin{equation} F(k)=\sqrt{\dfrac{2}{\pi}}\dfrac{a}{a^2+k^2} \end{equation}

f(x)=exp(-a^2x^2) (a>0) の時

\begin{equation} f(x)=e^{-a^2x^2} (a>0) \end{equation}
\begin{equation} F(k)=\dfrac{1}{\sqrt{2a}}e^{-\frac{k^2}{4a}} \end{equation}

f(x)=1/(x^2+a^2) (a>0) の時

\begin{equation} f(x)=\dfrac{1}{x^2+a^2} (a>0) \end{equation}
\begin{equation} F(k)=\sqrt{\dfrac{\pi}{2a^2}}e^{-a\left|k\right|} \end{equation}

2014年11月23日日曜日

AMS-LaTeXの環境に関するタグの使い方

基本的な環境

split以外の環境名の直後に*を付けると、式番号が振られなくなる。

equation 環境

一つの数式を表示する。

\begin{equation}
  a=b
\end{equation}
\begin{equation*}
  a=b=c
\begin{equation*}
実際の表示
\begin{equation} a=b \end{equation} \begin{equation*} a=b=c \end{equation*}

align 環境

複数の数式を&記号の後の文字でそろえて表示する。

例1

\begin{align}
a &= b \\
  &= c
\end{align}
\begin{align*}
d &= e + f \\
  &= g - h
\end{align*}
実際の表示1
\begin{align} a &= b \\ &= c \end{align} \begin{align*} d &= e + f \\ &= g - h \end{align*}

例2

\begin{align}
x   &= y   & X   &= Y \\
x'  &= y'  & X'  &= Y \\
x'' &= y'' & X'' &= Y \\
\end{align}
実際の表示2
\begin{align} x &= y & X &= Y \\ x’ &= y’ & X’ &= Y \\ x” &= y” & X” &= Y \\ \end{align}

gather 環境

複数の数式を整列せずに表示する。

\begin{gather}
a = b + c \\
c = d + e + f + g
\end{gather}
\begin{gather} a = b + c \\ c = d + e + f + g \end{gather}

実際の例

multline 環境

一行に入りきらない数式を複数行に分割して表示する。

\begin{multline}
  a=b+c+d+e+f+g+h+i+\\
    j+k+l+m+n+o+p+q+r+\\
    s+t+u+v+w+x+y+z
\end{multline}
実際の表示
\begin{multline} a=b+c+d+e+f+g+h+i+\\ j+k+l+m+n+o+p+q+r+\\ s+t+u+v+w+x+y+z \end{multline}

split 環境

他の環境の中で使うことで、複数行に跨がる数式を作ることが出来る。
equation 環境と合わせて使うことで、複数行に跨がりながら一つの数式番号しか与えないようなことも出来る。

\begin{equation}
  \begin{split}
    x_1 + y_1 &= a_1 \\
    x_2 + y_2 &= a_2 \\
    x_3 + y_3 &= a_3
  \end{split}
\end{equation}
実際の表示
\begin{equation} \begin{split} x_1 + y_1 &= a_1 \\ x_2 + y_2 &= a_2 \\ x_3 + y_3 &= a_3 \end{split} \end{equation}

notag, tag, tag*, text, eqref コマンド

notag
現在の行の数式に式番号を与えない。
tag
現在の行に任意の式番号を括弧付きで与える。
tag*
現在の行に任意の式番号を括弧なしで与える。
text
数式に注釈を入れることが出来る。
eqref
式番号を参照することが出来る。

\begin{equation}
  x^2 + 2x + 1 = 0 \notag
\end{equation}
\begin{equation}
  (x + 1)^2 = 0 \tag{}
  \label{eq:star}
\end{equation}
\begin{equation}
  (x - 1)^2 \neq 0 \tag*{式1}
  \label{eq:dagger}
\end{equation}
\begin{equation}
  x = -1 \qquad \text{\eqref{eq:star}から重解}
\end{equation}
実際の表示
\begin{equation} x^2 + 2x + 1 = 0 \notag \end{equation} \begin{equation} (x + 1)^2 = 0 \tag{※} \label{eq:star} \end{equation} \begin{equation} (x - 1)^2 \neq 0 \tag*{式1} \label{eq:dagger} \end{equation} \begin{equation} x = -1 \qquad \text{\eqref{eq:star}から重解} \end{equation}

gathered, aligned 環境

数式の幅が実際に文字が置かれている分だけになる。
括弧で括りたい場合などに使う。

例1

\begin{equation*}
  \left.
  \begin{gathered}
    &\nabla \times \boldsymbol{E} - \dfrac{\partial \boldsymbol{B}}{\partial t} = 0 \\
    &\nabla \times \boldsymbol{H} + \dfrac{\partial \boldsymbol{D}}{\partial t} = \boldsymbol{i} \\
    &\nabla \cdot \boldsymbol{D} = \rho \\
    &\nabla \cdot \boldsymbol{B} = 0
  \end{gathered}
  \right\} 
  \quad \text{マクスウェルの方程式}
\end{equation*}
実際の表示1
\begin{equation*} \left. \begin{gathered} &\nabla \times \boldsymbol{E} - \dfrac{\partial \boldsymbol{B}}{\partial t} = 0 \\ &\nabla \times \boldsymbol{H} + \dfrac{\partial \boldsymbol{D}}{\partial t} = \boldsymbol{i} \\ &\nabla \cdot \boldsymbol{D} = \rho \\ &\nabla \cdot \boldsymbol{B} = 0 \end{gathered} \right\} \quad \text{マクスウェルの方程式} \end{equation*}

2014年11月15日土曜日

AUCTeX のチートシート

AUCTeX を使うときに便利なコマンドを纏めておく。

C-c C-p C-p現在位置の図や数式のプレビュー状態を切り替え
C-c C-p C-c C-p現在位置の図や数式のプレビューを削除

2014年7月3日木曜日

Denyhosts が Ubuntu 14.04 LTS で削除されたようなので Fail2ban に乗り換えてみた

Denyhosts は ssh でのログインログを解析して、不正アクセスを検知すると自動的にそのユーザーからの ログインを拒否するように /etc/hosts.deny を書き換えるというものでした。

しかし Denyhosts は長い間放置されていたせいで、 Debian のパッケージから削除されてしまった模様です。 その関係で、Ubuntu 14.04 でも denyhosts が消されてしまいました。 Package denyhosts in Ubuntu Trusty Tahr is deleted: temporary or forever? というわけで、denyhosts から同等機能を持つ fail2ban に乗り換える事にしました。

「とある魔術の禁書目録」を途中で投げた僕が「魔法科高校の劣等生」を読み通せた理由

巷では、「魔法科高校の劣等生」(以下劣等生)がネタも含み、色々と叩かれているようですが、 私としてはそんなに悪い作品ではないかなぁと思っているのでちょっと援護してみようかなと思います。

2014年5月22日木曜日

逆運動学 (IK: Inverse Kinematics) の勉強

概要

逆運動学 (IK: Inverse Kinematics) は、エンドポイント(手の位置など)から、各関節の角度を求めることを言う。 逆に、各関節の角度からエンドポイントの位置を導く出すことは、順運動学 (FK: Forward Kinematics) という。

順運動学では、一意にエンドポイントが定まるが、逆運動学では一般に関節の角度は一意に定まらず、複数の解が存在する。

ヤコビアンを用いた近似解法

$m$ 個のパラメータ(各関節の回転量) $\vec{x} \in \mathbb{R}^{m}$ から3次元空間上での各関節の位置を決定できるものとする。 $i$ 番目の関節の位置は $p_{i}: \mathbb{R}^{m} \rightarrow \mathbb{R}^{3}$ で与えられる。

ここで初期状態の関節位置が $p_{i}(\vec{x_{0}})$ で与えられ、最終的な関節の位置は $p_{i}(\vec{x_{0}} + \sigma)$ で表されるものとする。

いくつかの関節において、目標となる位置を与える。目標となる関節の位置を $\vec{t}_{i} \in \mathbb{R}^{3}, i \in \tau$ で表す。 $\tau$ は目標となる位置を持つ、全ての関節の添字をまとめた集合。

ここで $\sigma$ を決めるため、 $$ \| \sum_{i \in \tau} p_{i}(\vec{x_{0}} + \sigma) - p_{i}(\vec{x_{0}}) \| $$ を最小にする事を考える。

$\sigma$ が小さい場合は、 $$ p_i(\vec{x_{0}} + \sigma) \approx p_i(\vec{x_{0}}) + J_{p}(\vec{x_{0}})\sigma $$ と近似することが出来る。ここで、 $J_{p}(\vec{x_{0}})$ は $\vec{x_{0}}$ における、$3 \times m$ のヤコビアンを表している。

2014年5月3日土曜日

Ubuntu で日本以外からのSSHアクセスを拒否する (GeoIP2 Python API ver.)

前の記事で紹介した方法は手軽なのですが、 実は MaxMind 社の古いAPIを使っているという、ちょっとだけ気になる点が存在します。

そこで、今度は最新のAPIを利用したスクリプトを使用+データーベースの自動更新をやってみたいと思います。

Ubuntu で日本以外からのSSHアクセスを拒否する (legacy version)

ssh への不正アクセスを見ると結構な数が海外からだったりします。 というわけで、海外からの ssh へのアクセスを禁止して、 精神の安寧を保ちましょう。

最新APIを利用し、データベースの自動更新も行う場合は GeoIP2 ver. を御覧ください。

国の判定に、 geoip を使用した python スクリプトを利用し、 hosts_options が提供する aclexec (debian系列限定らしい) を利用して、実際に海外からの ssh アクセスを遮断します。

2014年2月27日木曜日

GitlabをUbuntuに導入

https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md にある情報を自分なりにアレンジし、備忘録的に書き留めておきます。

二次情報なので、英語が読める方は上記の説明を読みながら行うか、 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/README.md#installation を参照して別な方法を試してみるのも良いと思います。

マニュアルで最新版 (6.7) の GitLab をインストールする方法を書いています。 英語が何の問題もなく読める方は本家のページを読みながらの導入をおすすめしますが、 あまり英語が得意でない方の参考になれば幸いです。

GitLab とは

Github のような機能を提供する Ruby on Rails 上に構築されたオープンソースな Git 管理ソフトです。 Git の bare リポジトリを提供し、Web インターフェースよりバージョン管理を可視化します。