黒木玄 Gen Kuroki
- いいね数 389,756/311,170
- フォロー 995 フォロワー 14,556 ツイート 293,980
- 現在地 (^-^)/
- Web https://genkuroki.github.io/documents/
- 自己紹介 私については https://twilog.org/genkuroki と https://genkuroki.github.io と https://github.com/genkuroki と https://github.com/genkuroki/public を見て下さい。
2018年01月06日(土)
#JuliaLang おすすめの方法は複数あります。
(1) 一番素朴な方法は任意のグラフ作画機能を使ってひとコマひとコマグラフのpngファイルを作成します。そしてそれらをImagemagick convertコマンドでGIF動画にまとめる。
nbviewer.jupyter.org/gist/genkuroki...
に例があります。
タグ: JuliaLang
posted at 23:59:40
@cometscome_phys @aki_room その数えかたで10000ステップ以内ならまったく無問題。僕がお見せした臨界点での分布は、その数えかたで100万ステップですから
タグ:
posted at 23:58:51
#JuliaLang
Julia言語で数学ミニ動画を作ることが趣味の集団が生まれてもよいと思うくらい、Julia言語の使い方をマスターすれば多彩な数学ミニ動画を簡単に作れます。
タグ: JuliaLang
posted at 23:55:36
非公開
タグ:
posted at xx:xx:xx
#JuliaLang
1億3500万ステップ!!!www
すごすぎ。
やはり玄人は違うな。
twitter.com/cometscome_phy...
タグ: JuliaLang
posted at 23:51:37
piacere @ 技術(Elixir/ @piacere_ex
@xapa_ace あ、Pythonista+numpy+matplotlibだったんですね(最近、juliaで何かをプロットするのが流行ってるみたいなので、てっきり…)😅
タグ:
posted at 23:51:00
非公開
タグ:
posted at xx:xx:xx
イマジンアドミニストレーター@妄想管理者 @imaginster
@piacere_ex 恥ずかしいくらい興味が出るようなものではないですよw
単純な計算をPythonista3って言うiOSアプリ上で、numpyにて、計算した結果をmatplotlibで出力しただけですw_(:3 」∠)_
タグ:
posted at 23:46:21
そうだな…元々Pythonで書かれてて実行完了までに半日かかってたアプリをGoに書き換えて40分ぐらいまで高速化したのでこれ、もしJuliaだったらどうなるか試してみてもいいな。
タグ:
posted at 23:44:05
adhara_mathphys @adhara_mathphys
こんなバーが出てくるのです。
> RT pic.twitter.com/phdIhYKGIc
タグ:
posted at 23:43:27
力学系の低次元化法(goo.gl/E7zRKW)が専門です。こうした理論を応用して学際分野に殴り込みをかけるために、データサイエンスとの融合に意欲を持っていますが、まだ道半ばです。
#質問箱 #peing_7cda19ea5ba7eec peing.net/q/489ea40e-d93... pic.twitter.com/2KxfigBrCE
posted at 23:43:23
非公開
タグ:
posted at xx:xx:xx
#JuliaLang
なるほど、これを読むと「プログラミング言語のおもちゃの総合デパートみたい」という私のような素人の感想は開発者達を喜ばせそうだな。
なぜ僕らはJuliaを作ったか(翻訳) - 丸井綜研 marui.hatenablog.com/entry/20120221...
タグ: JuliaLang
posted at 23:11:43
adhara_mathphys @adhara_mathphys
研究環境に関して暗い話題は確かに多いのですが、学問を好む人々は次々と出てくるわけですし悲観することはないと思っています。
タグ:
posted at 23:10:21
非公開
タグ:
posted at xx:xx:xx
adhara_mathphys @adhara_mathphys
ラブルさんの記事の中での
『社会でもっと数学や科学を盛り上げることができないかなぁと思っています。学生や社会人が中心になって数学や科学を楽しめる環境が作れないかなと思います。』
というところは特に共感致します。
くらい話題も多いですが頑張りたいですね。
twitter.com/lovebourbaki/s...
タグ:
posted at 23:08:13
N(eutral).W(-boson). @math_phys
箱玉系のjupyter notebookもとりあえず公開しました。(juliaが流行っているようですが、相変わらずpython 3で書いてあります。) notebookでは容量制限あり運搬車のケースについても少しコメントしてあります。 pic.twitter.com/wuhITCNF2P
タグ:
posted at 23:05:44
#JuliaLang そう言えば、きくちさんがParameterizedFunctionが難しいとか何とか言っていたような感じがします。Julia言語のドキュメントの function-like objects の節の存在を知らないと理解できない方が普通だと思いました。
タグ: JuliaLang
posted at 22:40:04
磁場ゼロの150x150の二次元イジング模型、T=1Jの時1億3500万ステップでちゃんと磁化された。今使っているアルゴリズム(局所スピンフリップ)だと低温に行くほどドメインがなかなか解消されなくてたくさんステップが必要になる pic.twitter.com/qf8ZSasZ4e
タグ:
posted at 22:39:36
#JuliaLang パラメーター付き函数は添付画像のように実現できます。
rwm は random weighted mean のつもり。
この例で T は Float64 になっています。
さらに WeigjtedMean 型が Function 型のsubtypeになるようにもしてあります。
Juliaの型システムに関わる部分は私もまだ全然理解していない。 pic.twitter.com/m3V1YMKyjd
タグ: JuliaLang
posted at 22:36:34
#JuliaLang
mutable struct WeightedMean{T}
w::Array{T}
end
(wm::WeightedMean)(a) = mean(wm.w .* a)
srand(2018)
rwm = WeightedMean(rand(10))
a = 4 * rand(10)
println(rwm(a))
rwm.w = rand(10)
println(rwm(a))
rwm.w = rand(100,100)
a = 4 * rand(100,100)
println(rwm(a))
タグ: JuliaLang
posted at 22:29:55
非公開
タグ:
posted at xx:xx:xx
OokuboTact 大久保中二病中年 @OokuboTact
#超算数 『小学校新学習指導要領 ポイント総整理 算数』に算数教育研究の専門家の座談会(笠井健一、清水美憲、齊藤一弥)が掲載されていて、興味深いので、少しだけ紹介 pic.twitter.com/11qcstovvx
タグ: 超算数
posted at 22:06:09
#JuliaLang 私はJulia言語のドキュメントにfunction-like objectの説明があったことについ最近気付いた。(最近であることの証拠に読み間違った!)
大域変数を変更可能な函数のパラメーターとして使うとJulia言語では効率が大幅に落ちる。変更可能な函数的オブジェクトなら問題無し。
タグ: JuliaLang
posted at 22:01:01
piacere @ 技術(Elixir/ @piacere_ex
おぉ、これは興味深い😆 #QuaUnivFukuoka
juliaですか?🤔 twitter.com/xapa_ace/statu...
タグ: QuaUnivFukuoka
posted at 21:59:20
#JuliaLang
ParameterizedFunction.jlに関する
github.com/JuliaDiffEq/Pa...
Internals: How it Works
の解説はJulia言語に関する
docs.julialang.org/en/stable/manu...
Function-like objects
の部分の再解説になっています。
Julia言語において函数的オブジェクトの使用は効率を落とさない点が重要。
タグ: JuliaLang
posted at 21:56:58
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
Julia、ProgressMeterがとても便利だ。
using ProgressMeterとして、forループの最大数をnとして
prog = Progress(n,1)
をループ前に書いて、ループの中で
next!(prog)
とやれば進捗バーが出て予想終了時間が出るように
タグ:
posted at 21:50:38
#JuliaLang その通りで、ParameterizedFuncton.jl は函数的オブジェクトを使ってパラメーター付き函数を実現しています。
Function-like object = parameterized function
です。リンクの紹介に続く。
twitter.com/tkf/status/949...
タグ: JuliaLang
posted at 21:49:55
非公開
タグ:
posted at xx:xx:xx
wikipediaの英語版と日本語版の質・量の違いに関するツイートが流れてきたので、畳込み(Convolution)も紹介しておきたい。これとほとんど同じ説明をしようと思ってたら、英語版のwikipediaに載っててやるなとなった。
en.wikipedia.org/wiki/Convolution pic.twitter.com/xTOpNaGWoq
タグ:
posted at 21:36:31
今年はPythonでも齧ってみるかと思っていたところ、最近急にTLでjuliaがものすごく流れてきて惑う(^_^;)。でも自分は数値計算とかほぼしないから、本来迷う必要ないはずだけど(^_^;)。
タグ:
posted at 21:14:47
この辺は ParameterizedFunctions.jl を使うか参考にするかすると良い気がするな。DifferentialEquations.jl で似たような問題に対処するために作られたライブラリ。 github.com/JuliaDiffEq/Pa...
タグ:
posted at 21:08:11
なぜ一部のプログラムが遅いかについては,Julia言語の創始者のひとりであるBezanson氏がこのトークで説明してますね (最初の5分くらい)。要するにコードにある不確実性(uncertainty)が最適化を妨げると。
Jeff Bezanson - Why is Julia fast? youtu.be/cjzcYM9YhwA via @YouTube
タグ:
posted at 21:07:15
Julia でがっつりコードを書くのは今のところ Visual Studio Code に Julia 拡張が軽くてよさげ。シンタックスハイライトとコンソール程度だけど。Eclipse や IntelliJ 並のデバッガやプロファイラを備えた開発環境はなさそうかな。 #julialang pic.twitter.com/C8mVCzVsue
タグ: julialang
posted at 20:49:33
#掛算 #超算数 サテンでスピリッツの連載漫画「2月の勝者」を読んでたら消防のお受験塾の成績下位者のクラスで講師が「きはじ」のテントウムシを板書しててワロタw(おい)
bigcomicbros.net/comic/2gatsuno...
posted at 20:44:06
#超算数 あまりにもくだらない岐阜県総合教育センターの「算数の学期末評価問題・補充問題 」 blog.goo.ne.jp/mh0920-yh/e/ab...
タグ: 超算数
posted at 20:42:59
非公開
タグ:
posted at xx:xx:xx
#超算数 の世界。 #掛算 twitter.com/Remio7/status/...
posted at 20:09:34
@genkuroki 時間の掛る席替え
人数に合わせて席に番号を振り番号札を用意する。1番の人が札を一枚取る。その席が1番の人の新しい席となり,次はその番号の人が札を引く。以下札が無くなるまで繰り返す。が、途中で誰かが1番を引くとまた元に戻って最初から繰り返す。 #此れはあかんやつかも
タグ: 此れはあかんやつかも
posted at 20:06:16
@genkuroki そんなわけで機会があれば紹介して遊ぶ為に、人数は10人にして、全員見つけたら勝ちというゲームにして戦略を考える話にしてみる事に。でまぁ事のついでに時間の掛る席替えや勝ち抜きゲームも遊んでみたいものだという話にしておこう。
タグ:
posted at 20:02:36
このgifアニメーションは、当時レポート提出に加えて、自習した内容をメール添付したものですが、その返信メールの一部がこちらです。 pic.twitter.com/XZUazTkOAm
タグ:
posted at 19:15:23
スティーブ・ジョブスに憧れていた私は学部3年で休学していたときに他学科大学院の計算物理学の講座に潜り込んだのであった。しかし受講者が3〜4人しかおらず、初回講義でバレてしまい万事休すかと思いきや、快く受講を許可された。講義後の質問にも丁寧に答えて下さったN先生ありがとうございました。 pic.twitter.com/bM76ZWotB3
タグ:
posted at 19:03:39
Julia と multiple dispatch できる他の言語との比較あった en.wikipedia.org/wiki/Julia_(pr... (via news.ycombinator.com/item?id=6750028) pic.twitter.com/OxqWWN2pec
タグ:
posted at 18:24:17
@genkuroki 何がポイントかが判ってるパズルはそういう意味では面白みがないのかも。だからまぁ新しいものを探したり作ったりするわけだけど。その辺りは音楽やデザインなどと変わらない。クリエイトを愉しむ人もいれば消費を愉しむ人もいる。でも何れにせよ素養がないと愉しみ方が判らない。その辺りが気になる。
タグ:
posted at 17:28:22
Why We Created Julia (原文)
julialang.org/blog/2012/02/w... pic.twitter.com/UMBWl5LLqU
タグ:
posted at 17:26:23
だそうです。
なぜ僕らはJuliaを作ったか(翻訳)
marui.hatenablog.com/entry/20120221... pic.twitter.com/OMFLFEZoXv
タグ:
posted at 17:21:42
いちおう答えを書いておくと、完全に対称な状態からまったく誤差のないシミュレーションをすれば対称性の崩れた構造には移りません。分子動力学は決定論的なので。じゃあなぜ現実にはいずれ対称性の崩れた構造に行くのかといえば、数値誤差で対称性が壊れるから。数値誤差の効果を見てるだけってこと
タグ:
posted at 16:53:34
中村広ニ Kouji Nakamura @clock_one
しかし、Rが世間に出てそんなに経ってないのに、今度はJuliaか、すごいのう。まだまだいいツールあったりして(^^)
タグ:
posted at 16:27:20
中村広ニ Kouji Nakamura @clock_one
juliaは、ネット環境を整えなくてはいけないけど、学校の工学系の計算などで使えそうやね。簡単だと思います。
タグ:
posted at 16:06:53
中村広ニ Kouji Nakamura @clock_one
Julia、オープンソースなのね。少ししか触ってないけどよくできてるというファーストインプレッションです。
タグ:
posted at 15:04:51
N(eutral).W(-boson). @math_phys
さすがに当時のノート等はすぐ見つかりそうにない。あれ受けていたの最後は3,4人位だったの、どう考えてももったいな過ぎる。学部1・2年生で世界的数学者・物理学者5人の講義が聴けるって...
タグ:
posted at 14:20:26
ツイッターで
julia lang:ja -JULIA_Cmore
を検索して「すべてのツイート」を見ているのだが、昨晩から今日にかけて大量のミュートを実行するハメになった。
#JuliaLang ←このタグを使うのが怖い人は
#Julia言語 ←このタグをつけておけばいいかも。
posted at 14:16:13
N(eutral).W(-boson). @math_phys
おまけ)なおこの本を読むきっかけになったのが(多分)次の本。
www.iwanami.co.jp/book/b259048.h...
もはや10年近く前なので記憶が曖昧だが、(文句なしの)佐藤先生押しだった気がする。
タグ:
posted at 14:08:51
conda 経由で Julia をインストールしつつ隔離環境毎に MKL 対応したりしなかったり、って昔やったんだけど、恐らく Pkg3 が出ると使えなくなるハックを使っている... Pkg3 出たら再トライしたい気もする github.com/tkf/conda-julia
タグ:
posted at 14:06:24
N(eutral).W(-boson). @math_phys
そして土屋先生の講義ではまさにマヤ図形とboson-fermion対応の話があった。この話を家族に分かりやすく説明するのが(選択)課題だったのも記憶している。)
タグ:
posted at 14:02:10
N(eutral).W(-boson). @math_phys
3. www.amazon.co.jp/dp/4000056123 はソリトンの背後にある数学的構造を簡潔にまとめた本。(こっちは当時設立されたばかりの、IPMU研究員主催のオムニバス形式の講義があって、それを取りまとめておられたのが、神保先生で、おお、と思った記憶がある。(続
タグ:
posted at 14:01:00
adhara_mathphys @adhara_mathphys
Julia、Macだとわりとコンパイルは簡単でした(makeか何かが自動的にやってくれるので)。
バージョンの指定をしなければいけないことと、anacondaに入っている諸々との接続をするところで、多少気を使いましたが。
タグ:
posted at 13:59:37
#JuliaLang 以下のノートブックも「函手的」→「函数的」と修正した。
nbviewer.jupyter.org/gist/genkuroki...
大域変数を含む函数は遅くなる
nbviewer.jupyter.org/gist/genkuroki...
定数を含む函数と函数的オブジェクト
「函数的オブジェクト=パラメーターを持つ函数」という理解でよいと思う。
タグ: JuliaLang
posted at 13:48:42
【メモlog】 投稿: Jupyter notebookとjuliaなどをインストールする - www.cml-office.org/memolog?p=438
タグ:
posted at 13:47:11
#JuliaLang
twitter.com/genkuroki/stat...
大訂正:函手的オブジェクト functor-like object ではなく、正しくは
函数的オブジェクト function-like object
でした。ごめんなさい!
タグ: JuliaLang
posted at 13:41:47
#JuliaLang
大訂正:函手的オブジェクト functor-like object ではなく、正しくは
函数的オブジェクト function-like object
でした。最近、視力が下がっているような気がする。いや、昔からか。
ごめんなさい!
タグ: JuliaLang
posted at 13:40:45
@genkuroki 例えばこのパズルにおいては「箱に番号が振ってあるけど箱はその番号順には並んでませんしそもそも一列にも並んでないし重ねて置いてあるかもしれないし裏返して置いてあるかもしれないし…」なんて事はまったくどうでも良い事では?ってこれはフレーム問題なのか?
タグ:
posted at 13:28:05
@genkuroki 特にパズルとしては。だから秀逸なパズルはその「問題の条件の示し方が秀逸」も含まれると思う。うまい条件設定?状況設定だと簡潔に条件が共有できてパズルの本質的なところに集中できる。もちろん数学の問題でも同じかと。逆に言えば,数学では「如何に汎用に簡潔に記号化できるか」が肝要なのだと
タグ:
posted at 13:19:25
#JuliaLang おお!三体問題!
なるほど、三体問題の数値計算でまだ遊んでなかった。
new solutions to 3-body problem を検索するといっぱいヒットする。
www.google.co.jp/search?num=100...
面白い動きをする解のプロットは楽しそうだ。
twitter.com/adhara_mathphy...
タグ: JuliaLang
posted at 13:19:15
@genkuroki ですよね。そして「そう思う」ところが共有できないと「個人で楽しむ」ことはできても「共有して楽しむ」事が難しくなりある種の忖度(でいいのだろうか?)を期待する事になりそれはどうかとも思う。
タグ:
posted at 13:13:48
箱の並びがランダムというのは並べ方(つまり箱の置き方も?ですか?)
そうなると次どの箱を開けるかという「作戦」そのものの共有が難しくなりますが… twitter.com/genkuroki/stat...
タグ:
posted at 13:07:07
@genkuroki 何かと囚人とか殺される設定になるのがこの手のパズルのアレなところだけど,これはまだちゃんと読んでないけどロッカーというか鍵の問題にしてあるのかな。それだと整列の問題も解消されるし筋の良い出題というか問題提議?かも。
タグ:
posted at 12:59:22
@genkuroki 箱は「順番が分かるように/対応が分かるように並んでいる」という条件が必要なのではないかと思うたり。色々と「思い込み」が発想の邪魔になったりするので困った。紹介するにはその辺が「問題」なので色々ググってみるとこんなものが
www.cl.cam.ac.uk/~gw104/Locker_...
あったよ。
タグ:
posted at 12:57:06
#JuliaLang Julia言語の Distributions.jl パッケージは「確率分布の簡易マニュアル」としても結構便利です。
?確率分布名
で確率分布の定義が表示される。Distributions.jlパッケージは結構たくさんの確率分布に対応しています。
github.com/JuliaStats/Dis...
自分で確率分布を定義して利用可能。
タグ: JuliaLang
posted at 12:56:15
adhara_mathphys @adhara_mathphys
ここまではシミュレーションをしやすい条件にしているのVelocityVerlet法程度でもできている感があります。
本格的にシミュレーションをするにはもっと精度の良い方法が必要になります。
Levi-Civita変換、Kustaanheimo-Stiefel変換等も利用するべきかもしれません。
タグ:
posted at 12:47:28
#JuliaLang 添付画像は Jupyter notebook で「負の二項分布」の説明を表示させた結果です。普通に数式を含む説明が表示され、wikipediaへのリンクも表示されます。「負の二項分布」の類に慣れていない人は数式を含む解説が表示されないと相当に苦しいと思う。 pic.twitter.com/0F1yUF5fNK
タグ: JuliaLang
posted at 12:44:37
非公開
タグ:
posted at xx:xx:xx
adhara_mathphys @adhara_mathphys
制限三体問題になります。
同じくVelocityVerlet法です。 pic.twitter.com/NUjI7C9v1V
タグ:
posted at 12:41:31
#JuliaLang あと、Jupyter notebookのような仕組みが無ければ、Julia言語をこんなに使うことはなかったと思います。
もはや、コメントとして数式を気軽にかつ普通に利用できないプログラミング言語はまったく使う気になれない。コメントは、テキストオンリーではなく、数式を含むものを読みたい。
タグ: JuliaLang
posted at 12:36:54
#JuliaLang 私は以下のような感じで使っています。
* 大域変数を含む函数も普通によく使っている。(計算速度が関係しない場合に限る。)
* 函数名や変数名をよく1文字にしている。(プログラミングの習慣ではなく、数学の習慣に合わせることが多い。)
他にも色々好き勝手やっています。
タグ: JuliaLang
posted at 12:33:57
#JuliaLang 函数が含むパラメーターの調節が必要なことはよくあります。しかし、パラメーターを函数に常に引数の形式で与えるようにすると、f(x)と書いていた部分をすべてf(x,param1,...,paramN)のような書き方に変更しなければいけなくなる。keyword arguments を使えば避けられます。
タグ: JuliaLang
posted at 12:27:05
#JuliaLang keyword argsは、函数を
function f(x) ~ end
と定義してあって、
function f(x; param=デフォルト値) ~ end
と定義し直して、実験的に f(x, param=色々な値) を試してみるというような使い方をするとちょっと便利。f(x)を使っている「本番用の函数」は書き換える必要がない。
タグ: JuliaLang
posted at 12:24:28
adhara_mathphys @adhara_mathphys
こちらもケプラー問題ですが二体問題です。 pic.twitter.com/7PMmWU5vcK
タグ:
posted at 12:21:14
前も書いたかもしれないけど、対称性の破れを伴う構造変化を分子動力学で計算するには「少し対称性を崩した初期状態」から始める。ところがその道ではわりと知られた研究者が「それだと"やらせ"になっちゃうので、完全に対称な初期状態から始める。時間が経てば勝手に対称性が崩れる」と主張していた
タグ:
posted at 12:17:25
adhara_mathphys @adhara_mathphys
同じに見えますが、こちらはケプラー問題です。二次元上の円運動です。
これも解析解ではなくてVelocityVerletによる数値解です。 pic.twitter.com/j0y6tzCRit
タグ:
posted at 12:13:49
#JuliaLang
f(x, param1, param2) のような書き方を必須で無くす方法としてkeyword argumentsを使う方法があります。
function f(x; parama1=0.0, param2=1.0)
~
end
のように定義して
f(3.0)
f(3.0; param2=2.0)
のように使います。
タグ: JuliaLang
posted at 12:05:58
・入室のノックは3回
・入室時は30度、退室時は45度でお辞儀
・服はリクルートスーツ白シャツ黒靴で統一
などの奇怪な日本の面接ルールが海外ニュースで紹介されてる。
「仕事の能力に関係ない。何を評価したいのか」
「奴隷の採用試験?」
「中世の面接?」
仰る通りですとしか返し様がない反応ばかり twitter.com/business/statu...
タグ:
posted at 11:50:23
#JuliaLang 続き。そういう書き方を避けたいので、大域変数をすべて函数の引数にするという処方箋も避けたい。
函数fをmutable functor-like objectにしてしまう方法ならf(x)というシンプルな書き方を維持したままパラメーターを f.param = new_param で変更できます。
タグ: JuliaLang
posted at 11:48:59
#JuliaLang 大域変数を含む函数を書きたい1つ目の動機は、大域変数を函数のパラメーターとみなして、パラメーターを変更して函数の挙動を変えたい場合なので、大域変数を定数にする処方箋は使えません。
2つ目の動機は、f(x, param1, param2, ..., paramN) のような長い書き方を避けたいから。続く
タグ: JuliaLang
posted at 11:45:43
@kikumaco @genkuroki @cometscome_phys ありがとうございます。菊地さんが登場されたので、ぼくはもはや何も書くことはないです。
それにしても、こういうのって掲示板でやりたいですよね。
タグ:
posted at 11:42:11
#JuliaLang 現実に試行錯誤の計算をしていると、大域変数を含む函数を書いて手抜きしたいことは結構多い。函数が含む大域変数に
::型
を付けて型を教えてあげると速くなることがある。
大域変数を定数にすると、定数を変更しても、定数を含む函数の方は(再定義しないと)変化しなくなります。
タグ: JuliaLang
posted at 11:41:49
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
adhara_mathphys @adhara_mathphys
実行中はこんな感じの画面になっています。
どれくらいシミュレーションが進んでいるのかが見えたりします。 pic.twitter.com/kDpIFMeDnE
タグ:
posted at 11:27:28
#JuliaLang Julia言語を安定して高速で動かしたい人は以下を読む:
docs.julialang.org/en/latest/manu...
myenigma.hatenablog.com/entry/2017/08/... (日本語)
函数f(x)実行時に、xの型に応じてf(x)のコード内の諸々のモノの型を推定し、型の推定結果に基いてコンパイルし、実行する、という仕組みを意識することが大事。
タグ: JuliaLang
posted at 11:23:34
adhara_mathphys @adhara_mathphys
@gif 基本はこれだけでgifができてしまうわけです。
Hamiltonian、初期値、integrationの方法を放りこめば時間発展を勝手にしますし、そこから位相空間上の座標を取り出してプロットすることが可能です。
タグ:
posted at 11:22:19
イジングモデルくらいなら今のノートPCで簡単に計算できるので(僕が博士課程のときにスーパーコンピューターで計算した程度のことはできる)、いろいろな量をプロットしてみると勘がつかめます
タグ:
posted at 11:21:45
adhara_mathphys @adhara_mathphys
@gif for i in 1:n
H(q,p) = p[1]^2/2 - cos(q[1]) + 1
prob = HamiltonianProblem(H, q0, p0, (0.0,0.1))
sol = solve(prob, integrator, dt=Δt)
plotsol2(sol)
local t, q_, p_
t, q_, p_ = sol2tqp(sol)
d = size(q_)[1]
p0=[p_[d,1]]
q0=[q_[d,1]]
end
タグ:
posted at 11:20:37
adhara_mathphys @adhara_mathphys
Hamiltonianの数値積分には”DifferentialEquations”というライブラリにあるVelocityVerlet法が使われています。すなわち、かなりサボっています。
タグ:
posted at 11:15:10
adhara_mathphys @adhara_mathphys
まだJuliaで私が作ったgifは大したものがありませんが、こんなものがあります。
単振り子のシミュレーションの位相空間上での運動です。Qは触れ角[rad]です。Pは角速度に当たる量です。 pic.twitter.com/PxLCGT3hvP
タグ:
posted at 11:08:50
#JuliaLang Julia言語 v0.6 の仕様についてより詳しい情報が欲しい人は次を見ると良いと思います。
nbviewer.jupyter.org/github/bicycle...
github.com/bicycle1885/Ju...
タグ: JuliaLang
posted at 11:07:43
@Hal_Tasaki @genkuroki @cometscome_phys 低温で磁化の平衡平均値に意味がないのは「全反転」が稀に起きるからなので、平均値を描きたければ磁化の二乗や絶対値などをプロットする。平均値ではなく分布を描いたほうが筋がいいけれども、もちろんそのためにはステップ数が必要。でも今のノートPCならできる
タグ:
posted at 11:07:03
@Hal_Tasaki @genkuroki @cometscome_phys とにかく、「磁場ゼロなら平均磁化がゼロ」というのは有限系の長時間平均に対しては臨界点以下でも正しいステートメントだけど、低温での時系列を追ってみれば、各瞬間には大きな磁化を持っている。従って(1)低温で磁化の平衡値をプロットするのは意味がない(2)時系列や分布を描くのは意味がある
タグ:
posted at 11:03:53
@Hal_Tasaki @genkuroki @cometscome_phys なお、磁化分布の形は境界条件によって変わります。自由境界ではたぶんふた山にならないのかな。二次元の結果は忘れましたが。境界をずらした「螺旋境界」とかにしても分布は変わる。ただし、分布の形は違っていても、境界条件ごとに有限サイズスケーリングが成立
タグ:
posted at 10:57:58
#JuliaLang FAQだと思う。
私は半年前にJulia言語の存在を知ったのですが、そのときはまだv0.5.2で現在はv0.6.2です。v0.5.2の書き方をすると警告が大量に出ます。動きが速い。
よく使うパッケージも頻繁に更新されています。
JuliaのQA qiita.com/bicycle1885/it...
タグ: JuliaLang
posted at 10:53:32
@Hal_Tasaki @genkuroki @cometscome_phys 100×100で周期境界の二次元イジングの場合、臨界点であっても平衡状態で殆どの瞬間に磁化が+-0.6程度の大きな値を持ちます。この値はシステムを大きくするにつれてL^{-1/8}に比例して小さくなります
タグ:
posted at 10:50:30
@Hal_Tasaki @genkuroki @cometscome_phys 2次元イジングでの磁化の分布関数の有限サイズスケーリング
twitter.com/kikumaco/statu...
タグ:
posted at 10:45:32
adhara_mathphys @adhara_mathphys
数理物理の素材はいくつもありますが、その中でもイジング模型と水素原子は私は特に好きですね。レンツにつながるところから、ある意味この二つは兄弟筋に当たるわけです。
タグ:
posted at 10:45:06
@Hal_Tasaki @genkuroki @cometscome_phys 2次元イジング、周期境界条件での熱平衡の磁化分布。臨界点でのシミュレーション。100万モンテカルロステップ。各瞬間には大きな磁化を持つが、時々全反転がおきる。もっと長時間やれば左右対称になる
pic.twitter.com/ccO2XXh0Ec
タグ:
posted at 10:42:36
adhara_mathphys @adhara_mathphys
パウリの方はラプラス・ルンゲ・レンツベクトルを用いて水素原子の問題を解きました。これをもって水素原子の数理の祖と見なすことができます。やはりここからも豊かな数理物理が展開されていきました。
タグ:
posted at 10:41:45
JuliaならこういうならべたGIFアニメも簡単に作れる。二次元イジング模型、T=0.01J、h=0.001Jのメトロポリス法と熱浴法のシミュレーション。さてどっちがどっちでしょうか pic.twitter.com/uefIi2RU6X
タグ:
posted at 10:40:43
adhara_mathphys @adhara_mathphys
イジングとパウリは弟子あるいは助手に当たります。
イジングの方は一次元のイジング模型を解きました。これは他の次元だとか量子系の問題やスピングラスの問題などに発展し、理論物理・数理物理の中でも重要なものとなっています。
タグ:
posted at 10:36:51
これだとまだ全然ステップ数が足りないのだけど、続けると黒と白のクラスターがそれぞれ拡大する。最後に黒と白の大きな領土の取り合いになってからは、ゆっくりしか進まない。特にもし境界がまっすぐになってしまったら、簡単には片方に揃わない。いっぽうが他方に囲まれればいずれ囲まれた側が消える twitter.com/cometscome_phy...
タグ:
posted at 10:32:30
@genkuroki @cometscome_phys もちろん、特定のシミュレーションでどうやっているかは私にはわかりません。でも、わざと磁場をかけたり、境界条件をいじったりしないでも、ある程度の時間待ってやればちゃんとスピンが揃った状態が見えるんだと思います(臨界点に近いと緩和は遅くなるけど)。
タグ:
posted at 10:30:13
@genkuroki @cometscome_phys そうすると低温のイジングの話も不思議ではない。
この場合、ありふれた状態は、プラスかマイナスかどちらかの方向にほぼ全てのスピンが揃ったような配置。そういうものをランダムに一つ持ってくると、いずれかの方向に(それは確率で決まる)スピンが揃った状態が見える。
タグ:
posted at 10:28:31
adhara_mathphys @adhara_mathphys
イジング模型を最初に提案したのはイジングの指導教官であるレンツです。
ラプラス・ルンゲ・レンツベクトルのレンツです。
タグ:
posted at 10:27:08
@genkuroki @cometscome_phys あとコメントしておきたいのは、MCMC は通常は平衡分布を再現するための方法として紹介されますが、統計力学の対象となるような大自由度の系では、むしろ、「(許される拘束の下で)ありふれた状態」を生成する方法と考える方が筋がいいと思います(そして、「ありふれた状態」=「平衡状態」)。
タグ:
posted at 10:26:49
@genkuroki @cometscome_phys そして無限系になれば(もちろんモデルとしては対称性を保っていても)プラスかマイナスかどちらかに揃った状態が永続するわけです。これこそが対称性の自発的な破れですね。
この辺りは(平衡状態だけでなく確率過程の性質も)数学的にかなりきちんと理解されていると思います。
タグ:
posted at 10:23:39
@genkuroki 磁場ゼロかつ周期境界条件のように完全に対称性を保っても低温ではプラスかマイナスかのいずれかにスピンがほぼ揃った状態の寿命が極めて長くなります(多分、サイズについて指数的)。なので十分に大きなサイズで確率過程を走らせると実質的にスピンが揃った状態が見えるはずです。
@cometscome_phys
タグ:
posted at 10:21:23
Juliaの2次元イジング模型のメトロポリス法、温度T=0.01Jで磁場hをh=0.001Jと少しだけ入れると、どんどん磁化ってきた。悪くなさそうなので解説書こう pic.twitter.com/fkbKiD9kwR
タグ:
posted at 10:05:33
非公開
タグ:
posted at xx:xx:xx
Juliaで2次元イジング模型をメトロポリス法で局所的にスピンフリップさせて計算させてみた。T=0.01Jでかなり低温なんだけど、クラスターになってしまって全体が磁化されないなあ。局所アップデートの限界なのかな pic.twitter.com/qXu7PTMXht
タグ:
posted at 08:33:24
非公開
タグ:
posted at xx:xx:xx
白蔵 盈太/Nirone @「桶狭間で死 @Via_Nirone7
大宮駅近くにサンダルと下駄の専門店が昔からあって、周辺住人ならたぶん「あぁ、あの店ね」ってなると思うんだけど、その店頭に貼られてるこの貼り紙、
「履物修理」
って、こうやって書くと
「物理履修」
になるんだな…と。 pic.twitter.com/Itv4lS4qdc
タグ:
posted at 07:25:56
Julia のカッコイイ所は、開発目標が C/C++ のスピードではなく Fortran な所だと思う。 (便乗して普段から思っていることをつぶやく)
> Fortran/C++より遅いのか
qiita.com/bicycle1885/it...
タグ:
posted at 07:22:35
黒木さん(@genkuroki)のおかげでやっとまともなプロットができました!常微分方程式(dy/dx= λy)を前進オイラー法、ホイン法、RK4で解いたやつと厳密解の比較 pic.twitter.com/23JkA8yGjw
タグ:
posted at 04:14:57
#julialang ちょっとしたソースコードを他人に見せたい場合にはGitHub Gistにコピー&ペーストするという手が使えます。GitHubのアカウントを取ればすぐに使える。
Gistは簡易バージョン管理のできるメモ帳。GistならURLを知っている人しか読めないメモも無料で作れます。
gist.github.com/genkuroki
タグ: julialang
posted at 04:11:23
#JuliaLang
github.com/JuliaWeb/HTTP.jl
Performant, robust HTTP client and server functionality for Julia
twitter.com/Woofer30/statu...
タグ: JuliaLang
posted at 03:57:22
#JuliaLang
using PyCall
pygui(:tk)
using PyPlot
x = linspace(0, 7, 201)
plot(x, sin.(x))
grid() pic.twitter.com/X19amEw043
タグ: JuliaLang
posted at 03:51:50
#JuliaLang
REPL上で PyPlot.jl を使わずに、Jupyter notebook で使うと快適。
REPL上でどうしても使いたいなら、
using PyCall
pygui(:tk)
using PyPlot
としてみるとか。次のツイートにスクリーンショット。
twitter.com/ceptree/status...
タグ: JuliaLang
posted at 03:50:02
#JuliaLang
個人的に、Julia言語+Jupyter notebook で数学ネタの情報を趣味で配布しまくる人が増えるとよいと思っています。
Windows環境でのインストールの記録が次の場所にあります。
nbviewer.jupyter.org/gist/genkuroki...
Anaconda3+Juliaの組み合わせでインストールすると色々簡単だと思う。
タグ: JuliaLang
posted at 03:24:29
#JuliaLang スクリーンショットは
gist.github.com/genkuroki/9cb1...
より。 // で有理数の計算をできます。 pic.twitter.com/xDQOgJFkL0
タグ: JuliaLang
posted at 03:22:24
#JuliaLang 有理数計算できます。
a = 13//256
のように // で有理数になる。スクショに続く。
twitter.com/_kobashi/statu...
タグ: JuliaLang
posted at 03:19:45
非公開
タグ:
posted at xx:xx:xx
@Qiita #JuliaLang Jupyter notebook に貼り付けて実行してみました(スクリーンショット)。素晴らしいです!
qiita.com/goropikari/ite...
Juliaで簡単なGUIアプリを作ってみる pic.twitter.com/6ejtnODNcR
タグ: JuliaLang
posted at 02:48:24
神戸の大学院集中講義、モンテカルロ法をやるのだけど、Juliaboxを使って実習形式でやれるかなあ。インストールしなくていいのが講義にはありがたいんだけどね
タグ:
posted at 02:43:26
#JuliaLang Julia言語ではパッケージが足りなければ
ArgumentError: Module Gtk not found in current path.
Run `Pkg.add("Gtk")` to install the Gtk package.
とパッケージの追加の仕方を教えてくれるので、それに従えば問題無し。自然に増えて行く。
タグ: JuliaLang
posted at 02:41:33
そういえばこないだからChromeのタグにこれを出しっぱなしでやってないな。
github.com/bicycle1885/Ju...
#JuliaLang
タグ: JuliaLang
posted at 02:41:01
#JuliaLang すばらしいです!
Juliaで簡単なGUIアプリを作ってみる on @Qiita qiita.com/goropikari/ite...
タグ: JuliaLang
posted at 02:35:53
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
#JuliaLang
(1/N)Σ_{i=1}^N weight[i] f(sample[i])
を計算したければ
mean(weight .* f.(sample))
と書けばよい。dot syntax で配列の各要素ごとに函数や演算子を作用させられる。
タグ: JuliaLang
posted at 01:46:46
3Dプリンタで回しやすいつまみを作ってみた。#3Dプリンタ #つまみ #シャワー pic.twitter.com/ugyJ9f4QoM
posted at 01:38:20
#JuliaLang 「速い」という特徴だけに注目すると確実に誤解すると思う。
よくもまあ一つのプログラミング言語にこんだけ大量のおもちゃを詰め込んだものだと素直に感心するレベル。
タグ: JuliaLang
posted at 01:33:21
#JuliaLang Julia言語には「プログラミングに使えるおもちゃの総合デパート」みたいな感じで楽しいところがあるので、Version 1.0が出て仕様が固まる前の段階で「どういう様子になっているか」を覗いてみる価値があると思います。
「式」を見る方法だけで何種類もあって、S式表示もサポート。
タグ: JuliaLang
posted at 01:31:19
#JuliaLang ネタ(笑)
S式じゃないと理解できないあなたにJulia言語はおすすめ。
a+b-c*d をS式に直してほしければ
Meta.sexpr(:(a+b-c*d))
を実行してください。
(:call, :-, (:call, :+, :a, :b), (:call, :*, :c, :d))
と答えてくれます。
gist.github.com/genkuroki/90b9...
中身を見れるのは便利。 pic.twitter.com/9J84W0FKKE
タグ: JuliaLang
posted at 01:22:03
Python で round(1.5) は 2 になるが round(0.5) は 0 になるのはなんで?
Ruby だと (1.5).round → 2, (0.5).round → 1 となって,ちゃんと四捨五入になっているのだけど。
タグ:
posted at 01:19:12
Juliaのインストール方法を追記 Mac OS High Sierraをクリーンインストールした後に行う環境構築メモ qiita.com/kotaro_holland...
タグ:
posted at 01:10:32
#JuliaLang 「函数のコンパイルは函数の引数に何を代入するかを決めないと行なえない」という仕組みのせいで色々苦労しなければいけない面もある。しかし、その問題はこれからどんどん解決されて行く可能性が高い。
medium.com/@sdanisch/comp...
Compiling Julia Binaries
タグ: JuliaLang
posted at 00:40:14
#JuliaLang Julia言語でコンパイルした後も動的に型を決めなければいけないようなコードを書いても動いてくれる点は正直かなりありがたい。エラーを出さずに数値計算の結果を返してくれる。しかし、計算は遅くなる。
コンパイル時にすべての型が適切に決まってしまうようなコードを書くと速い。
タグ: JuliaLang
posted at 00:36:15
#JuliaLang Julia言語のことを忘れて、純粋に数値計算の講義だと思って読んでも面白い点が重要。Julia言語の開発チームはそういうことを楽々できる人たちで構成されている点が重要なポイント。たぶん、自分達が使いたいものを作っている。
タグ: JuliaLang
posted at 00:32:03
非公開
タグ:
posted at xx:xx:xx
#JuliaLang 計算速度だけを強調するとミスリードしてしまう危険性が高いので、私は
nbviewer.jupyter.org/github/steveng...
のようなJulia言語の使い方の解説文を読んでもらうようにした方が誤解が減ると思っています。Julia言語を使った数値計算の講義録全体が有用。
github.com/stevengj/18S09...
タグ: JuliaLang
posted at 00:28:43
#JuliaLang
例えば次のリンク先ではJulia言語で指数積分函数(特殊函数の一つ)の最適化を行ってFortranで書かれたライブラリの5~6倍の計算速度を実現しています。
nbviewer.jupyter.org/github/steveng...
「テキトーに書いた函数」をどのように最適化して行くかが滅茶苦茶わかりやすく解説されています。
タグ: JuliaLang
posted at 00:19:24
#JuliaLang
Julia言語はまだ仕様さえ確定しない未完成の段階なのですが、数値計算用のアルゴリズムの最適化を楽に行うためのツールがかなり揃っています。
テキトーに書いても答えを返してくれるので気楽に使えてかつ、かりかりにチューニングすれば滅茶苦茶速くなる。これがJulia言語の特徴。
タグ: JuliaLang
posted at 00:17:13
#JuliaLang しかし、そういう事情のせいで計算速度が落ちても計算結果を返してくれる点はとてもありがたいです。
計算速度がらみの最適化は必要な部分だけ最小限行えば十分。
Julia言語は計算速度的にFortran, C, C++の代わりに利用できます。
タグ: JuliaLang
posted at 00:14:26
#JuliaLang そして次に f(2.0) を計算させようとすると、2.0の型は-1.0と同じなので、キャッシュされたコンパイル結果を使ってf(2.0)を計算してくれます。
函数f(x)の書き方が悪いと型推論がうまく行かず、効率的なコンパイルができなくなって、実行速度はおちます。
タグ: JuliaLang
posted at 00:12:08
#JuliaLang Julia言語で高速計算したい場合には実行時に型が決まるようにコードを書きます。
Julia言語では函数f(x)のxに数値を代入した例えばf(-1.0)を実行しようとすると、-1.0の型Float64に合わせて型推論を行ってコンパイルと計算を実行してくれます。続く
twitter.com/TR_NN/status/9...
タグ: JuliaLang
posted at 00:10:10
非公開
タグ:
posted at xx:xx:xx
連成振動の3次元。見てるだけで面白い。3次元でもちゃんと右向き+左向きの波の重ね合わせになってるって分かる。 pic.twitter.com/xZaCyEzhdv
タグ:
posted at 00:04:36