Hatena::ブログ(Diary)

hiroki_fの日記 このページをアンテナに追加 RSSフィード

2008 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 09 | 11 | 12 |
2013 | 02 | 06 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2015 | 02 | 04 | 07 | 11 |
2016 | 02 | 03 | 04 | 06 | 07 | 11 | 12 |
2017 | 01 |
人, プロフィール twilog カテゴリー[ 日常, 雑感, 物理, 数学, PC, 備忘録, 参考書 ] その他この日記のはてなブックマーク数
 

2017-01-11

物理学会誌2017年1月号 散逸系の変分原理

11:01 | 物理学会誌2017年1月号 散逸系の変分原理を含むブックマーク 物理学会誌2017年1月号 散逸系の変分原理のブックマークコメント

物理学会誌に記事が掲載されました。

物理学会誌2017年1月号 散逸系の変分原理 深川宏樹
一般社団法人 日本物理学会

私の論文は、こちらからでもダウンロードてきます。
72-01_fukagawa.pdf

トラックバック - http://d.hatena.ne.jp/hiroki_f/20170111

2016-12-24

monadとかapplicativeとか

| 05:01 | monadとかapplicativeとかを含むブックマーク monadとかapplicativeとかのブックマークコメント

なんとなくメモ

An Applicative is a Monoid in the category of endofunctors, what's the problem?

monadとかapplicativeとか、めっちゃ役にたつのってなんでだろうと考えてみた。

ようは、関数fとかgとかがあって、それを合成して何かプログラムができたとしよう。
機能拡張をmとする。そうすると fはm fになる。
機能拡張mを考えた時に、構造を維持したいよね。
それを可能にするのがfunctor則。
m (f.g)=(m f).(m g)

haskellだと

class Functor m where
fmap :: (a -> b) -> m a -> m b

とかく。これを<$>とも書く。fmap f x = f <$> x

さて、Functor mだけど、以下の性質をもっていると便利そうだ。
1 mの合成があれば、便利そうだ。
2 mの合成をする度にインターフェースが代わってしまうのは不便。インターフェースがかわっても、データのやり取りができる機能が欲しい。

これをかなえるのがapplicativeになる。
1のmの合成は Day convolution ★で与える。まあ、何か構成方法があるとみなせばよい。
2をかなえるのが、自然変換unitとjoinになる。

つまり、Day convolution ★はunitとjoinがきまるように定める。
さて、applicativeは、

class Functor m => Applicative m where
pure :: a -> m a
(<*>) :: m (a -> b) -> m a -> m b

で定められている。pureはそのままunitになる。

Day convolution ★は

Day :: f (a -> b) -> g a -> Day f g b

で定めれていて、

(<*>) :: Applicative f => f (a -> b) -> f a -> f b

をもちいて、

Day (<*>) :: Day f f b -> f b

が定まれば、joinを持つことになる。

もちろん、勝手にpureと<*>を決めて今述べたことが成立するわけがないので、次を要請する。

pure id <*> v = v
pure (.) <*> u <*> v <*> w = u <*> (v <*> w)
pure f <*> pure x = pure (f x)
u <*> pure y = pure ($ y) <*> u


Day convolution ★は、この構成方法より、 (<*>) より決まる。


monadは、もっと簡単だ。Day convolution★は素朴にFunctorを合成したものになる。

このとき、モナド則を

(return x) >>= f ≡ f x
m >>= return ≡ m

で決める。
joinとbind (>>=)は互いに導出できる。

join n = n >>= id
m >>= g ≡ join (fmap g m)


monadがDay convolution★の特別な場合であることから分かるように、Applicativeはmonad一般化になっている。


no title
Monads Made Difficult
Where do the applicative laws come from? : haskell
Monad (functional programming) - Wikipedia
Monads Made Difficult

トラックバック - http://d.hatena.ne.jp/hiroki_f/20161224

2016-12-17

lyxで図式を書く。

01:17 | lyxで図式を書く。を含むブックマーク lyxで図式を書く。のブックマークコメント

lyxで図式を書きたくなった。
キッカケは、
アルゴドゥー・ヴィエルジュさんのツイート: "ちなみにこんな感じで書いています… https://t.co/OllNjGGNrH"
ツイート

そもそもlatexで図式を書く場合は、amscd、Xy-pic、TikZなどがある。
図式の書き方について : 圏論 | 壱大整域

さて、lyxでできるかどうかを調べたところ、
基本的には、command + Lでtexモードにしたところに、
amscd、Xy-pic、TikZのコードを入れればよい。

Xy-picだけは、lyxがサポートしていて、
command + M
で数式モードにして、コードを入れれば、その場で図式が表示される。
LyX wiki | LyX / XY-pic
sample file
Using XY-pic in LYX

Tikzを使う場合は、
latexのプリアンブル
\usepackage{pgfplots}
\usepackage{tikz}
\pgfplotsset{compat=newest}
とする必要がある。
LyXのアドバンスユーザを参考。
Plotting Graphs in LATEX Using LYX and PGFPlots

amscdはどうやれば良いかわからなかった。
The amscd package

使い勝手は、Tikzがよいかと思う。
Tikzは対象と射を定義すると図式ができあがる方式なので、意味がわかりやすい。

グラフを書くソフトならGraphvizがある。
Graphvizとdot言語でグラフを描く方法のまとめ - Qiita
Graphvizで遊んでみた - pho's blog

texstudioよさそう。
TeXstudio/設定/OS X - TeX Wiki

トラックバック - http://d.hatena.ne.jp/hiroki_f/20161217

2016-11-07

ubuntu 16.04でのcuda 8.0の設定

16:06 | ubuntu 16.04でのcuda 8.0の設定を含むブックマーク ubuntu 16.04でのcuda 8.0の設定のブックマークコメント


これ にしたがった。

pathが通ってないので、

~/.bashrc に以下を追加する必要があります

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

をするべし。

2016-07-31

散逸系の変分原理のセミナー@金沢大学(8月17日)

00:35 | 散逸系の変分原理のセミナー@金沢大学(8月17日)を含むブックマーク 散逸系の変分原理のセミナー@金沢大学(8月17日)のブックマークコメント

散逸系の変分原理セミナーをします。
二本立てで、山口哲生氏の「破局力学現象の高精度発生予測:座屈,破壊から地震まで」の次に発表になります。

現象数理解析研究会 - Masato Kimura web site
散逸系の変分原理

 物理法則の中には「ある汎関数に停留値を与える現象が起こる」と言い表せるものがあり、これらを総称して変分原理と呼ぶ。良く知られた例は、解析力学で教えられるハミルトンの原理である。散逸のない系の運動は、汎関数に停留値を与えるラグランジュ方程式で定まり、ルジャンドル変換を用いれば、これに等価な方程式として、正準方程式を得る。
 散逸のない完全流体に対しても、各流体粒子に付随した物理量の時間発展を見るラグランジュ描像であれば、質点系と同様にして正準方程式を得る。一方、空間に固定された点での物理量の時間発展を見るオイラー描像での完全流体の正準方程式変分原理で得るためには、あらたに補助場を導入するなどの工夫が必要である。我々は速度場を制御理論における制御入力とみなし、「評価汎関数に停留値を与える最適制御を求める」という最適制御理論の枠組みを使って、理論の見通しを良くした。[1]
 散逸のある系では、摩擦や粘性などにより力学的なエネルギーが熱エネルギーに変換される。一般に散逸系でのエントロピーの時間発展は、他の状態変数の時間発展に依存する。しかし、エントロピーは、同時刻の他の状態変数から求めることはできない。このような状態変数の関係は非ホロノミック拘束条件と呼ばれる。我々は、非ホロノミック拘束条件下での最適制御問題を解くことで、上述の完全流体に対する変分原理を拡張して、ナビエ・ストークス方程式を導出した。[2]
 通常の流体力学では、運動量などの保存量の釣り合いの式を与えた後に、圧力や応力の具体的な式を代入して、運動方程式を求める。変分原理の利点は、この手順を踏まえるのが難しい系でも、系統的に運動方程式を導出できることにある。
 一般に、物理の微分方程式系は、対称性熱力学第二法則を満たし、更に境界値問題が良設定問題になるものでなければならない。我々の変分原理は、物理系を制御系とみなしたときに、制御関数汎関数、拘束条件から、系統的に運動方程式を導出する枠組みを与える。具体的に運動を知る為には、制御関数汎関数、拘束条件が何であるかを知る必要があるが、我々の方法では、これらを先に述べた物理系の持つ制約条件に矛盾しないように与えることができる。
 最初に、我々の変分原理を質点系の例で説明し、次に、ニュートン流体や粘弾性体の運動方程式の導出し、最後に、気液系などの界面がある流体の運動方程式を導出する。[3]

参考文献
[1] H.Fukagawa and Y.Fujitani: Prog.Theor. Phys. 124 (2010) 517.
[2] H.Fukagawa and Y.Fujitani: Prog.Theor. Phys. 127 (2012) 921.
[3] H. Fukagawa, C. Liu, and T. Tsuji: arXiv: 1411.6760 (2014).

 
先頭に戻る