2013年10月17日木曜日

テニススクールで注意されたこと

ボレー関連.特にバックボレーはフェデラーのように打つ面を相手に向けたまま,ラケットを首に巻き付けるようにテイクバックをとってもいいらしい.今度やってみる.また,上から下のスイングで,角度はどのくらいかと聞いたところ,角度は距離に合わせて調節する.特にアングルボレーなど打ちたいときは極端に上から下に振るような感じらしい.

2013年9月5日木曜日

emacsで行ジャンプするには

~/.emacs.d/init.el に (global-set-key "\C-x\C-g" 'goto-line) を追加する.\C-x \C-gで行ジャンプできるのですごく便利.

2013年9月4日水曜日

テニススクールで注意されたこと


  • サーブ,スマッシュ時にラケットヘッドを一度下げる.
  • いいショットはいらない,無難にポイントを取る.
  • ボレーは浅くていい.Tゾーンを狙うのがベスト.1メートルずれてもコートの中には入る.

2013年9月1日日曜日

テニススクールで注意されたこと


  • テークバックからインパクトまでの時間を長く取り,しっかり意識して打つ.そこがしっかりできれば,自ずとコントロールできる.どこにボールを打つかではなく,ボールのどこを叩くか,それによってどこに飛ぶかという意識を一球一球に持つ.
  • テークバックが小さくなりすぎる時がある.もっと大きく.
  • ストロークで遠慮している.もっとおもいっきり売っていいらしい.
  • ボレーの時,体が動きすぎている.もっと体を動かさずに適当にやってみるのもありかも.
練習メニュー
  • 2:1のボレーストローク.1はストロークで2はボレーとストローク.1は浅いボールと深いボールを交互に打つ.

2013年7月13日土曜日

wave関係

pythonのwaveモジュールを用いて,waveファイルの情報抽出,読み込みを行う.なお,1行目のfrom __future__ import divisionは整数と整数を小数で出力するおまじない.
from __future__ import division
import wave
from pylab import *
from numpy import *

def printWaveInfo(wf):
    print "Number of channels: ", wf.getnchannels()
    print "Sampel width: ", wf.getsampwidth()
    print "Sampling frequency: ", wf.getframerate()
    print "Number of frames: ", wf.getnframes()
    print "Parameters: ", wf.getparams()

def wavread(wf):
    buffer = wf.readframes(wf.getnframes())
    data = frombuffer(buffer, dtype="int16")
    return data

if __name__ == '__main__':
    wf = wave.open("./wave/guitar_A4.wav", "r")
    printWaveInfo(wf)
    x = arange(wf.getnframes())
    y = wavread(wf)
    fs = wf.getframerate()
    x = x / fs
    
    plot(x, y)
    xlabel("Time [sec]", fontsize = 20, fontname = 'serif')
    ylabel("Amplitude", fontsize = 20, fontname = 'serif')
    xticks(fontsize = 16)
    yticks(fontsize = 16)
    show()

2013年7月12日金曜日

macにpythonをインストール



  • python本体をインストール
  • sudo port install python27
  • numpy(pythonで行列を扱うライブラリ)をインストール
  • git clone https://github.com/numpy/numpy.git
    cd numpy
    python setup.py build
    sudo python setup.py install
  • scipy(pythonで複雑な数値計算を扱うライブラリ)をインストール
  • git clone https://github.com/scipy/scipy.git
    cd scipy
    python setup.py build
    sudo python setup.py install
  • matplotlib(pythonでmatlabライクなグラフを扱うライブラリ)をインストール
  • git clone https://github.com/matplotlib/matplotlib.git
    cd matplotlib
    python setup.py build
    sudo python setup.py install

2013年6月18日火曜日

dvipdfmxでフォントを埋め込む (Times系)

下記のコマンドでTimes系のフォントを埋め込めるという記事は多数あるが,埋め込めなかった.
dvipdfmx -f msembed.map hoge.dvi
解決方法としては,Ghostscriptのgs_pdfwr.psというファイルを書き換えればよい.gs_pdfwr.psは/usr/share/ghostscript/X.XX/Resource/Init/以下にある.
(私の環境(mac)では/opt/local/share/ghostscript/9.06/Resource/Init/にあった)
.standardfonts [
/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique
/Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique
/Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic
/Symbol /ZapfDingbats
] readonly def

/.standardfonts [
%/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique
%/Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique
%/Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic
%/Symbol /ZapfDingbats
] readonly def

追記
Ghostscriptをbrewで管理するようにしたところ,gs_pdfwr.psの場所がわからなくて困った.
/usr/local/Cellar/ghostscript/X.XX/share/ghostscript/Resource/Init/ にあった.

参考

2013年5月23日木曜日

GSL (GNU Scientific Library) のインストール



GNU 科学技術計算ライブラリ (The GNU Scientific Library、GSL) は,数値計算のためのサブルーチン集である.使われているソースコードはすべて C 言語で GSL のために新たに書かれている.ソースコードは GNU General Public License (GNU 一般公衆利用許諾契約) の元で公開されている.


以下にインストール手順を示す.

  1. http://ftp.jaist.ac.jp/pub/GNU/gsl/より,gsl-1.15.tar.gzをダウンロードする.
  2. tarコマンドで展開する.
    tar zxvf gsl-1.15.tar.gz
    
  3. 展開したディレクトリに移動し,コンパイル
  4. cd gsl-1.15.tar.gz
    ./configure
    make
    sudo make install
    
  5. インストールされているか確認
  6. ls /usr/local/include/gsl
    ls /usr/local/lib/libgsl*
    
マニュアルの日本語訳はここを参照.

2013年5月21日火曜日

時間平均とエルゴード性

確率過程の各集合平均がそれぞれの時間平均と等しいと置けるとき,その確率過程はエルゴード的であるといわれる.大雑把にいうと,定常的な確率過程は,その平均と自己相関関数に関してエルゴード性をもつ.

2013年5月14日火曜日

ヤコビアン

以下,二変数の重積分を考える.ヤコビアン$J$とは変数変換前後の面積比となる.以下の具体的な例を示す.まず,$u=(1,0), v=(0,1)$で囲まれた正方形を考える.当然色のついた部分の面積は1である.


次に以下のような一次変換(変数変換)を施す.$$\begin{split}x& = au + bv\\ y &= cu + dv\end{split}$$
そうすると,先ほどの$u,v$の座標は新たな座標$x=(a,c), y =(b,d)$に変換される.$$\begin{split}x &= (a\cdot 1 + b\cdot 0, x\cdot1+d\cdot0) \\&= (a,c)\\y &= (a\cdot0 + b\cdot 1, x\cdot0+d\cdot1) \\&= (b,d)\\\end{split}$$

そして,色のついた面積は以下のような平行四辺形に変換される.


平行四辺形の面積はそれぞれのベクトルの外積に等しく,変換行列の行列式に等しいため,以下のように求めることができる.$$\begin{split}S&={\rm abs }\begin{vmatrix}a&b\\c&d\end{vmatrix}\\&={\rm abs}(ad-bc)\end{split}$$

さて,ここで以下のような変数変換を考える.$$\begin{split}x&=\phi_1(u,v)\\y&=\phi_2(u,v)\end{split}$$
このとき$x, y$の全微分はそれぞれ以下のように表される.$$\begin{split}{\rm d}x &= \frac{\partial x}{\partial u}{\rm d}u+\frac{\partial x}{\partial v}{\rm d}v\\{\rm d}y &= \frac{\partial y}{\partial u}{\rm d}u+\frac{\partial y}{\partial v}{\rm d}v\end{split}$$
よって,${\rm d}x{\rm d}y$と${\rm d}u{\rm d}v$の微小な面積比,すなわちヤコビアン$|J|$は$$|J|={\rm abs}\begin{vmatrix}\frac{\partial x}{\partial u}&\frac{\partial x}{\partial v}\\\frac{\partial y}{\partial u}&\frac{\partial y}{\partial v}\end{vmatrix}$$
となり,$${\rm d}u{\rm d}v:{\rm d}x{\rm d}y=1:|J|\Longleftrightarrow{\rm d}x{\rm d}y=|J|{\rm d}u{\rm d}v$$となる.






2013年5月10日金曜日

情報量とエントロピ

情報量とは,$x$の値を得た際の「驚きの度合い」である.いつでも起きそうな事象が起きても得る情報は少なく,逆に,起きそうもない事象が起きたとしたら得る情報は多い.

まずは,情報量の概念について述べる.ジョーカ2枚を含めた54枚のトランプから一枚引く例を考える.
  • 「このカードはハート」という情報量は小さい
  • 「このカードはジョーカー」という情報量は大きい
このように,確率が小さければ小さいほど情報量は大きくなる.つまり,情報量を測る尺度は確率分布$p(x)$に依存しており,確率分布$p(x)$の単調な関数$h(x)$で,情報量を表すようなもの考える.$h(\cdot)$を定義するにあたり,以下を満たすようなものが望ましい.
  • 2つの事象$x, y$が無関係なら,両方を観測したときの情報が,それぞれ別々に観測した時の情報の和になる.すなわち,$h(x, y) = h(x) + h(y)$を満たす.
  • 2つの無関係な事象は統計的に独立であるため,$p(x, y)=p(x)p(y)$を満たす.
これら2つの関係を満たす$h(x)$は$p(x)$の対数であるため,情報量は以下のように定義される.$$h(x) = \log_2\frac{1}{p(x)} = -\log_2p(x)$$

なお,上式の対数の底は何を選んでも,情報量が低数倍されるだけで本質的な差はないが,底としては2を選ぶことが多く,そのときの$h(x)$の単位は「ビット」である.

次に,エントロピーについて述べる.エントロピーとは情報量の平均値であり,以下のように定義される.$$H[x]=-\sum_xp(x)\log_2p(x)$$



ガウス分布とレイリー分布


レイリー分布を二次元ガウス分布から導出する.確率変数$x, y$($x$と$y$は互いにIID)において,平均$0$, 分散$\sigma^2$の正規分布を考える.$$\begin{split}p(x)&=\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left\{-\frac{x^2}{\sigma^2}\right\}\\p(y)&=\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left\{-\frac{y^2}{\sigma^2}\right\}\end{split}$$
$x, y$は互いにIIDであるため,$p(x), p(y)$の同時確率密度関数はそれぞれの確率密度関数の積で表すことができる.$$\begin{split}p(x, y)&=p(x)p(y)\\&=\frac{1}{2\pi\sigma^2}\exp\left\{-\frac{x^2+y^2}{2\sigma^2}\right\}\end{split}$$
次に極座標系への変数変換を考える.$x=r\cos\theta, y=r\sin\theta$とするとヤコビアン$|J|$は$r$となる.よって,$$\begin{split}p(r, \theta)&=|J|p(x,y)\\&=\frac{r}{2\pi\sigma^2}\exp\left\{-\frac{r^2}{2\sigma^2}\right\}\end{split}$$
レイリー分布は,この同時確率密度関数における振幅$r$の周辺分布である.つまり上式を$\theta$で積分したものがレイリー分布となる.$$\begin{split}p(r)&=\frac{r}{\sigma^2}\exp\left\{-\frac{r^2}{2\sigma^2}\right\}\end{split}$$

2013年5月8日水曜日

二値変数

二値確率変数$x\in\{0,1\}$が1つの場合を考える(コイン投げの結果).コインが歪んでいて,表と裏の出る確率が同じとは限らないとする.$x=1$となる確率はパラメータ$\mu$を用いて$$p(x=1|\mu)=\mu$$とする.ただし,$0\leq\mu\leq1$であり,これより,$p(x=0|\mu)=1-\mu$となる.したがって,$x$上の確率分布は以下のベルヌーイ分布(Bernoulli distribution)となる.
  • ベルヌーイ分布 $${\rm Bern}(x|\mu)=\mu^x(1-\mu)^{1-x}$$
  • ベルヌーイ分布は正規化されている$$\begin{split}\int_{-\infty}^\infty{\rm Bern}(x|\mu){\rm d}x&=\sum_{x\in\{0,1\}}p(x|\mu)\\&=p(x=0|\mu)+p(x=1|\mu)\\&=(1-\mu)+\mu\\&=1\end{split}$$
  • ベルヌーイ分布の平均 $$\begin{split}\mathbb{E}[x]&=\sum_{x\in\{0,1\}}p(x|\mu)x\\&=p(x=0|\mu)\cdot0+p(x=1|\mu)\cdot1\\&=\mu\end{split}$$
  • ベルヌーイ分布の分散$$\begin{split}{\rm var}[x]&=\mathbb{E}[(x-\mu)^2]\\&=p(x=0|\mu)(0-\mu)^2+p(x=1|\mu)(1-\mu)^2\\&=(1-\mu)\mu^2+\mu(1-\mu)^2\\&=\mu(1-\mu)\end{split}$$
  • ベルヌーイ分布に従う二値確率変数$x$のエントロピー$$\begin{split}H[x]&=-\sum_xp(x)\log_2p(x)\\&=-\sum_{x\in\{0,1\}}p(x|\mu)\log_2p(x|\mu)\\&=-p(x=0|\mu)\log_2p(x=0|\mu)-p(x=1|\mu)\log_2p(x=1|\mu)\\&=(1-\mu)\log_2(1-\mu)-\mu\log_2\mu\end{split}$$

googleのBloggerでMathJaxを用いてTeXの数式を埋め込む

MathJaxを用いると,Bloggerに簡単に数式を埋め込むことができます.

詳細はここを参照してください.


以下に,簡単な導入手順を書きます.



  1. ブログ管理画面で「テンプレート」の設定画面を表示させる
  2. 「ブログで使用中」の右下にある「HYMLの編集」をクリック
  3. <head>のすぐ下に,上のリンクで公開されているコードを貼り付ける
$\$\cdots\$$で行内に数式を埋め込むことができます.
  • オイラーの公式:$\exp(j\theta) = \sin\theta + j\cos\theta$
また,$\$\$\cdots\$\$$で以下のように別行立ての式を作ることができます.
$$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$

注意としては,TeXのコマンドを入力する際,¥ではなく\を使用する必要があります.