ナンクル力学系

学んだ事を書き連ねていこう。

Archive for April 2008

道具に振り回された先週.休みの多い今週.

leave a comment »

気づけば,先週は何も書いていない.これは危ない兆候.少しでも書かないと,続かなくなってしまう.

先週は,networkX(pythonのネットワークグラフライブラリ)とかboost/graph(C++のネットワークグラフライブラリ)とかの使い方を調べてサンプルを書いていたので,内容的な発展は無かった.土曜には研究室の中間発表もあって,それの準備もしていたのでじれったい一週間だった.

さて,今日もまたboos/graphに悩まされたけれど,やっとStrogatz and Wattsのsmall worldを作るプログラムを書くことが出来た.というわけで,その結果:






上から,確率P=0, 0.01, 0.05, 0.1, 0.5でレギュラーグラフをつなぎ換えている.ノード数はN=500,だったはず.

詳しい説明は気が向いたらやるかも.簡単に言うと,一番上が近場のノードだけに結合したネットワーク(レギュラーグラフ)で,下になるほどランダムなグラフに近づいていくわけ.二番目くらいがSmall-Worldネットワーク(だと思われる).

これを,ニューラルネットに組み込んだり,ノード間距離やクラスタリング係数を測ったりするのが次の課題.ニューラルネットは重み付き,向きありの辺だから,簡単に計算するわけにも行かないし.そっち方面はあんまり論文も無いんだよな.明日休みなのが悲しい.

Written by tkf

April 29, 2008 at 12:37 am

Posted in 研究日誌

Tagged with ,

STLのシャッフルアルゴリズムstd::random_shuffleの乱数にBoost/random.hppを使う

with 2 comments

C++の標準ライブラリSTLに入ってるシャッフルを使いたいんだけど,ちゃんとした乱数を使いたいってことでboostを使ってみることにした.

コードはいつものようにsnipplrに:

http://snipplr.com/view/5907/stdrandomshuffle-and-boostrandomhpp/

C++はちゃんと勉強せずにプログラムを書いたり読んだりしてるだけなので,変な所があるかもしれない.

参考(というか↓を組み合わせたら↑になるんだけどねw):

Written by tkf

April 19, 2008 at 1:34 pm

Posted in programming

Tagged with , ,

もう一歩

leave a comment »

今日は,資料を作るはずがずっと論文読んでた.そんな日.

  • 研究所に8時着.
  • 研究の背景とかを整理して書こうとすると,色々資料を集めたくなる.
  • 論文を読む.
  • 8時を過ぎそうなので,警備員さんに「こちらに研究に来てる外部の者が仕事が長引いてしまって遅れそうなんですよ」という電話をして帰る時間を伸ばしてもらう.
  • プレゼン資料に,図を中心に説明を加えていく.
  • 11時になったので帰る.警備員さんが遅れても大丈夫ですよがははというとても良い人なので思わずありがとうございますと言う.

明日は早起きせねば.午後から大学で授業なので,寝坊するとやる気がふっとんでしまうはず.

Written by tkf

April 17, 2008 at 12:43 am

Posted in 研究日誌

こだわるのも

leave a comment »

今日は寝坊して午後着.やっぱり早寝しなきゃ駄目だ.睡眠時間が凄い長い人間なんだろう俺は.

  • 前半はyatexのインストールをmakefile使って手動でがんばってやった
  • その後,tex入ってないの気づいてyumで入れた
  • aptが使いやすいなあ.やっぱubuntuが楽だと思っ
  • てたら,ボスが来たので書きかけのプレゼン資料をチェックしてもらう
  • 「機械科の卒論だからエンジニアリング指向で頑張って書いたのは分かるけど,あまり面白みが伝わらない.もっとサイエンス指向でも大丈夫」
  • という訳で遠慮なくサイエンスなほうに書き換えることに
  • pstricks(そういえば前回の二つの記事ではsが抜けてた)でニューラルネットワークの図を書いた
  • その他図は,pstricksで書くよりパワポで書くほうが早いし見栄えが良い事に気づいたのでパワポで書いた
  • 時間切れ.警備員に怒られて帰宅.

PSTricksで書くのは繰り返しが多いか何回も使いそうな図とかに限らないと,変な所に時間とられてしまうな.反省.

明日で資料完成出来そうだ.早く勉強とかプログラミングとかしたい.

Written by tkf

April 15, 2008 at 11:07 pm

Posted in 研究日誌

いきなりでも

with 2 comments

今日は悔しい反面,比較的有意義な一日:

  • 8時半ごろ到着.いつものように研究室のカギを開ける.
  • 毎日何か読んだ方が良いと思い昆虫の神経系の話の論文をつまみ読み.
  • ボスが来たので,中間発表の資料作りスタート.久しぶりにオフィス使うなあ.数式少ないとtexでやる意味ないしな.
  • お昼.
  • 室長が来て,M1②の研究成果を確認してた.実験は確率的に上手く行く模様.
  • その後,いきなり室長とボスとM1①&②の前で卒論何をするか発表をすることに.一応言いたいことは伝えられた気がするけど,準備したかった.そこが悔しかった.
  • 夕食.室長の過去を聞いた.
  • 発表資料を作る.図以外の文章は出来た.

明日の午前中で発表資料はだいたい作り終えて,シミュレータ作ったり勉強したり始めたい.勉強すること:

  • カオス(埋め込み次元,リヤプノフ指数,エントロピとか)
  • 非線形解析法(誤り最近防法,リカレンスプロット,自己相関分析とか)
  • 脳・神経系の部位の名前,位置,役割を覚える

名前覚えるとか嫌いだけど,知ってなきゃ論文読めないし人と話せないし.チートシート作りたいなあ.どっかに無いかな.

Written by tkf

April 14, 2008 at 10:16 pm

Posted in 研究日誌

PSTricksで多様体の図

leave a comment »

PSTrickで作った図で,解析力学のテキストを書こうと思ってたときに書いたやつがあるのでなんとなく載せてみる.ひとつ何かつくれば,あとはソースの使いまわしで色々書けそうだと思って書いたんだよな.使いたい人居たら使って欲しいかもしれないけど,そういうニッチな人は居ないかもしれない.

こんなやつ:

ソースコード:
(追記:ソースコードは,Snipplrに貼ると良いことに気づいた > http://snipplr.com/view/5809/pstrick-manifold-and-tangent-space/

\documentclass[12pt]{article}
\usepackage{pstricks} % To use the standard “xcolor” package with PSTricks
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Draw manifold and tangent sapce %%%%%%%%%%%
\newcommand{\ManAndTan}[6]{%
\rput(#1){%
% Manifold と Tangent Space はそれぞれ二回描画してるので変更の時は注意
% Manifold
\psccurve[framearc=0.3,
fillstyle=solid,
fillcolor=lightgray]% 背景色
(-1,-1)(0,-1.5)(2,-1.2)(2.6,-0.4)(1,2)(-1,1)
% Tangent Space
\pspolygon[fillstyle=solid,
fillcolor=white,% 背景色
linestyle=none]
(-1,0)(0,-1)(2.5,1.5)(1.5,2.5)
% Draw curve on the manifold
\begin{psclip}{% No background and no line
\psccurve[framearc=0.3,
linestyle=none]
(-1,-1)(0,-1.5)(2,-1.2)(2.6,-0.4)(1,2)(-1,1)
}
\psbezier[linecolor=gray](-1,-1)(0,0)(2,2)(2,-2)% cliped curve
\end{psclip}
% Tangent Space
\pspolygon(-1,0)(0,-1)(2.5,1.5)(1.5,2.5)
% Tangent Vector
\psline[linewidth=2pt]{*->}(0,0)(1.5,1.5)
% 文字
\rput(-0.8, 1.7){#2}% M
\rput( 2.5, 2.2){#3}% T_m M
\rput( 1 , 1.4){#4}% v
\rput( 1.6,-0.5){#5}% c(t)
\rput(-0.4, 0 ){#6}% m
}
}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Draw chat on Euclid space %%%%%%%%%%%%%%%%%
\newcommand{\EuclidSpace}[4]{%
\rput(#1){%
\psline{->}(-1,0)(2,0)
\psline{->}(0,-1)(0,2)
\begin{psclip}{% No background and no line
\psccurve[framearc=0.3](-0.5,-0.5)(0.5,-0.8)(1.5,0)(1.1,1.4)(-0.5,1)
}
\psbezier[linecolor=lightgray](-1,-1)(0,0)(2,2)(2,-2)% cliped curve
\end{psclip}
\rput(0.4,2.2){#2}
\rput(1.5,1.5){#3}
\rput(0.7,0.7){#4}
}
}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagestyle{empty}
\begin{document}\psset{linewidth=1pt,arrowsize=0.2}%,showpoints=true}
\begin
{pspicture}*(-2,-2)(11,11)
% TM
\ManAndTan{0,3}{$M$}{$T_m M$}{$v$}{$c(t)$}{$m$}
\ManAndTan{5,7}{$N$}{$T_n N$}{$w$}{$f \circ c(t)$}{$n$}
\ManAndTan{8,3}{$P$}{$T_p P$}{}{$g \circ f \circ c(t)$}{$p$}
% R^m
\EuclidSpace{0,8}{$R^m$}{$U$}{$\varphi(c(t))$}
% R
\psline{->}(-1,0)(2,0)
\rput(2.2,0.3){$t \in R$}
% 線種をdashedに設定. 以下で描く矢印に適用
\psset{linestyle=dashed}
% -> \phi
\pscurve{->}(0,3)(-0.5,5.5)(0,8)
\rput(-0.2,6){$\varphi$}
% c(t)
\pscurve{->}(0,0)(-0.2,1)(0,3)
\rput(0.1,1){$c$}
% f
\pscurve{->}(0,3)(4,4)(5,7)
\pscurve{->}(5,7)(6.5,5)(8,3)
\rput(4,3.5){$f$}
\rput(6.5,4.6){$g$}
% g
\pscurve{->}(1,4)(3,7)(6,8)
\pscurve{->}(6,8)(8.4,6.5)(9,4)
\rput(2.3,7){$T_m f$}
\rput(8.2,6){$T_n g$}
% グリッドを描く
%\psgrid(0,0)(-2,-2)(11,11)
\end
{pspicture}
\end
{document}

Written by tkf

April 13, 2008 at 5:26 pm

Posted in tex, 微分幾何

Tagged with , ,

PSTricksが使いやすくなる(かもしれない).emacs

leave a comment »

Linux使ってて,PSTrickで図を描こうという人には役立つかもしれない.emacsの設定.

これを書いた時は(というか今でも)自分でemacs lispとかほとんど書かないので変なことをしてるかも.とりあえず,下のコードを.emacsに張れば

  1. 普通にtexを(yatexとかで)コンパイルして*.dviファイルを生成
  2. 「C-c ps 」で開いてる*.texファイルから作られた*.dviファイルから,*.psファイルを生成
  3. 「C-c pp 」で生成した*.psファイルを表示
  4. 「C-c Eps」で*.psファイルを*.epsファイルに変換

が出来るはず.

(追記:Snipplrのほうが見やすいかもしれない > http://snipplr.com/view/5810/emacs-for-pstrick-user/

; dvips
(defun my-dvips nil
(interactive)
(shell-command
(concat “dvips “ (substring (buffer-name) 0 -4) “.dvi”)))
(global-set-key \C-cps” ‘ my-dvips )
; evince (PostScript viewer)
(defun my-evince nil
(interactive)
(shell-command
(concat “evince “ (substring (buffer-name) 0 -4) “.ps &”)))
(global-set-key \C-cpp” ‘ my-evince )
; dvips -E -o output.eps input.dvi
(defun my-dvips-eps nil
(interactive)
(setq my-dvips-eps-filename (substring (buffer-name) 0 -4))
(shell-command
(concat “dvips -E -o” my-dvips-eps-filename “.eps “
my-dvips-eps-filename “.dvi”)))
(global-set-key \C-cEps” ‘ my-dvips-eps)

Written by tkf

April 13, 2008 at 4:33 pm

Posted in linux

Tagged with , ,