情報更新

last update 03/29 17:18

ツイート検索

 

@genkuroki
サイトメニュー
Twilogユーザー検索

Twilog

 

Stats Twitter歴
5,100日(2010/04/13より)
ツイート数
315,689(61.8件/日)

ツイートの並び順 :

表示するツイート :

2017年08月05日(土)96 tweetssource

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#julialang #数楽 ζ(1/2+it), t∈[0,1000] の値の絶対値はあんまり大きくなりません。「原点を通るため」に何度もぐるぐる回転しまくる動き方をしている。

こういう様子を見ることができたのはつい最近。

posted at 22:41:46

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

@genkuroki 2009年度ということはもうこの授業を受けた人はもう大学を卒業していますよね。「かけ算論争」の内容は数教協独自の話だったのだろうか?独特のこだわりがあるんだよね。遠山啓氏は算数教育界に負の遺産を残してしまったと思う。

Retweeted by 黒木玄 Gen Kuroki

retweeted at 16:24:56

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang 私のパソコンではサンプルサイズ100万の尤度函数のプロットに5時間かかりました。JuliaのDistributions.jlパッケージの混合モデルの定義とlog_liklihood()函数をそのまま使っただけで、スピードアップの工夫は全然していない。

posted at 16:18:14

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 続き。実は、「パラメーターが真のパラメーターの値から大きくずれていてもそのパラメーターが与えるモデルの確率分布が真の確率分布に近い場合がある」ケースの方がベイズ推定では収束が速くなります。パラメーターを推定するという発想では困る場合にベイズ推定は高性能になるわけです。

posted at 16:03:34

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 続き。こういう事情があるので、「真のパラメーターを推定する」という発想には明瞭な限界があることがわかる。しかし、我々が真に必要としているのは「真のパラメーター」ではなく、「真の確率分布」の方です。パラメーターの推定から確率分布の推定に発想を普遍化することはとても重要です。

posted at 15:59:54

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 続き。混合正規分布の単純なモデルでも、パラメーター (a,b) が真のパラメーター(a0,b0)と異なっていても確率密度函数 p(x|a,b) の形はほとんど変わらないということが起こりえます。そのような場合には尤度函数は真のパラメーターの周囲に集中してくれなくなります。

posted at 15:57:29

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 パラメーター (a,b) が異なっていても確率密度函数 p(x|a,b) の形はほとんど変わらないということが起こりえます。指数型分布族をそのまま使う単純なモデルではそういうことは起こらないのですが、複雑なモデルではほぼ確実にそうことが起こります。続く

posted at 15:55:53

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang でも、何をやればよいかについて詳細な説明がある。
それを参考にして、誰かが複素平面全体でE_1(z)を高速数値計算をするコードを公表すれば感謝する人がたくさんいると思う。数学とコンピューターが得意でかつ賢い学生が遊ぶにはとても良さそうな問題。

posted at 15:09:37

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 周囲の紫色の部分(log_{10} n が0.9以下の領域)は、長さ8以下の連分数で必要な精度を出せる領域です。この部分では連分数展開による積分指数函数E_1(z)の計算をかなり高速に可能です。特殊函数の数値計算では函数に関するこの手の詳細な情報が重要になります。

posted at 15:04:42

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 真っ赤っかの領域は n が100以上の領域です。必要な計算速度を出すためにはnはせいぜい30程度に抑えたいので、真っ赤っかの領域は連分数展開で E_1(z) の数値計算を行うのに適さない領域になっています。

右図は等高線も表示させていますが、ぎざぎざ過ぎ。

posted at 14:54:08

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#JuliaLang ちなみに、円周率を求めるモンテカルロ法(これも単純なforループ)のプログラムでJuliaと速度比較した経験から、gccでJuliaに速度競争で勝つには相当に非自明なことをやらないといけません。CythonがJuliaよりも遅いことは意外ではないです。

posted at 12:32:34

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#JuliaLang 「インタラクティブに使える高級言語はさすがにCよりは遅いだろう」という先入観を持っている人は単純なループを回す計算でCythonがJuliaより4倍も遅いことを意外に感じるはずです。なぜならばCythonの速さは実質的にCの速さのはずだからです。

posted at 12:27:21

8月5日

@ShinyaMatsuura

松浦晋也@ShinyaMatsuura

色々調べ、いくら考えても、今は消費税引き上げなんてする局面ではなくて、逆に引き下げ、廃止すべき。かわって法人税所得税相続税累進制強化をすべきって結論に至るんだが、俺、間違っているか? 訳が分からない。

Retweeted by 黒木玄 Gen Kuroki

retweeted at 12:06:26

 

非公開

retweeted at xx:xx:xx

 

表示拒否

retweeted at xx:xx:xx

8月5日

@croce1

Croce/クローチェ@croce1

小学校における #掛算 順序固定強制指導について、「順序があった方が分かりやすいのではないか」というツイートを散見しますが、ある規則に基づく順序で指導することを問題視しているのではなく、ある順序以外の順序で解答すると間違いと指導されることを批判しています。ここは区別が必要です。

Retweeted by 黒木玄 Gen Kuroki

retweeted at 03:48:11

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang 連分数展開とかパデ近似の話はソリトン方程式の佐藤理論におけるτ函数の話ともろに関係があることがわかっています。私はパンルヴェ系のτ函数の量子化の構成に成功したので、なんか新しい数学へのヒントが得られるとうれしいと思っています。(舞台裏の暴露😆)

posted at 03:14:42

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang しかも、自分のプログラミング能力だと、Cで書いてgccでコンパイルすると、Juliaを対話的に使っているよりも遅い函数しか作れないことが判明しているので、「さらに時間を節約するためにはCを使った方がよい」などと思う必要がまったくない。😝

posted at 03:10:47

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang 収束の速さを色分けしてプロットするためには、すべての「点」について(典型的な場合には10^4~10^6個)自分で書いた函数の値を計算させなければいけません。これって時間がかかって当然の計算なんですが、Juliaはとても速いので快適。

posted at 03:08:26

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang 数学関係者であれば、特殊函数の教科書で「連分数展開が数値計算に使われる」という事実を知っている人は多いと思う。しかし、決められた精度で連分数展開がどの領域まで有効かについて、自分で数値計算して確認している人は少ないと思う。Juliaを使えば簡単です。

posted at 03:03:04

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang まとめ:青色の領域では連分数展開で E_1(z) を数値計算できます。赤い領域ではTaylor展開を使えば数値計算できる。素数定理で使われている li(x) 函数の数値計算には赤い領域での数値計算が必要になる。

posted at 03:00:29

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang 例えば、素数定理で有名な li(x)=PV∫_0^x dt/log(t) の数値計算には件の領域の実部が負の部分が使われます。赤い領域での数値計算を何とかしなければいけない。原点および原点以外を中心とするべき級数展開を使っていたりするようです。

posted at 02:57:51

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang 添付画像は件の連分数の16桁程度の精度での複素平面での「収束」の様子です。赤い部分が「収束」が遅過ぎるもしくは「収束」しない領域です。実部が負の部分では連分数で数値計算できない領域が結構広い。実分が正の部分にはちょっとしかありません。 pic.twitter.com/mnOQ4jlhJ9

posted at 02:54:29

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang つい先ほどの画像中の連分数は16桁の精度で良ければ、Re z が負であっても、|z| が37程度以上であれば「収束」します。紹介したE1函数の構成では Re z が正である場合に制限しているので、その制限を取り払うことをやると楽しめると思います。

posted at 02:47:04

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang 最も重要なポイントは、「原理的に高速化できる」という話ではなくて、「小さな手間で高速化できる」という話であることです。高速化は一般に重い作業が伴うので要注意だとされているのですが、Juliaならその作業をかなり軽くできます。

posted at 02:37:26

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang

基本的にやろうと思えばなんでもできるマクロ機能
他言語の便利なライブラリをそのまま利用できる仕組み
(PyPlotやSciPyが特に便利)
Juliaで書かれた各種ライブラリ

などなどを縦横に駆使すれば小さな手間で函数の高速化が可能になります。

posted at 02:35:35

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang Julia言語には多項式を扱うライブラリや数値計算の常套手段である a+x(b+c(x+d(x+e)))の形式のコードをはいてくれる便利なマクロがあります。LaTeX使いならマクロ抜きに文書を書く気にはなれないはず。プログラムでも同様です。

posted at 02:33:28

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang 数式処理ができるんで、数値計算もできる函数に文字変数 z = Sym(:z) を代入できたりします。その函数が連分数展開で数値計算するために書かれたものなら、文字変数 z を代入すると連分数の数式を返します。こういうことができる点が強い。

posted at 02:31:06

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang まず、スピードアップに必要な情報を得るためのプロットにはJuliaからPythonのライブラリである、matplotlib.pyplotを呼び出して使っています。さらに、数式処理のためにPythonのscipyを呼び出して使っている。

posted at 02:29:25

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang あと
quadgk
を使っているので、
using QuadGK
しておいて、
quadgk

QuadGK.quadgk
に書き換えるなどしないといけません。

Julia言語は激しく細かい仕様が変化して来ました。その様は結構圧巻。

posted at 02:26:01

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang 数学動画を作成した場合には作成するために使ったプログラムのコードも公開してほしいといつも思うのですが、公開してもらっても高価なソフトを使ったものだとがっかりしますよね。Juliaを使ってくれればみんな大助かりだと思う。計算が速いし。

posted at 02:06:28

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang Julia内部からPythonの機能をかなり自由に使えるだけではなく、GNU R の機能も使えます。例えば、Pythonのmatplotlibだけではなく、Rのggplot2もプロットのために利用できます。Rubyも使える。総合デパートみたいな感じ。

posted at 01:53:09

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang マイナーな言語を使用するときに心配なのはライブラリが少ないことです。Juliaの場合にはPythonを呼び出す機能が充実しているので、プロットに関してはPython関係の情報を検索すれば困りません。GIFアニメーションもJuliaで作っている。

posted at 01:51:29

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang Juliaで書かれた函数はCやFortranなみに速いです。これ最初信用してなかったのですが、gccと比較してみたら本当にそうでした。既存のライブラリより速い函数もJuliaで容易に書ける場合があります。習得が易しい言語です。

posted at 01:46:02

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang

以前、平衡状態がガンマ分布になるような富の再分配ルールを問う問題を出したことがありましたが、おそらく、これが一つの解答になっていると思います。

作画にはJuliaからPythonのmatplotlibを使用しました。

posted at 01:42:56

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang

訂正。平行状態→平衡状態。

面白いのは強制徴収する最大割合を小さくした方がより平等な分布に近付くことです。例えば、最大100%強制徴収する可能性がある場合には平衡状態は添付図のようになります。これは指数分布よりも不平等な分布です。 pic.twitter.com/5M195U9KTt

posted at 01:36:47

8月5日

@genkuroki

黒木玄 Gen Kuroki@genkuroki

#数楽 #JuliaLang

KL情報量の意味で出て平行状態の分布をもっともよく近似するガンマ分布を重ね描きすると a=0.5 の場合には添付画像のようになります。ガンマ分布でよく近似されているように見えます。他の場合のプロットが一つ前のツイートのリンク先にあります。 pic.twitter.com/1FDqKuMHYP

posted at 01:33:39

このページの先頭へ

×