Twitter APIの仕様変更のため、「いいね」の新規取得を終了いたしました

黒木玄 Gen Kuroki

@genkuroki

  • いいね数 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 を見て下さい。
並び順 : 新→古 | 古→新

2021年01月13日(水)

ウエダミカン @miso_soup901

21年1月13日

制服も「私服考えなくて済むから楽」って高校の頃は思ってた。大学生になって、最初は適当に周りと同じような服を着てたんだけど、途中から自分らしい服を着るようになって、毎日が楽しくなった。高校はもっと自分らしさを表現できる場所であってもいいんじゃないかな。
#学校ゆるくていいじゃん

タグ: 学校ゆるくていいじゃん

posted at 23:53:23

ウエダミカン @miso_soup901

21年1月13日

校則って合理的な存在意義を明確にして守るからこそ教育的な意味があるのであって、生徒側も先生側も「とりあえず守ってたら面倒ごとにならなくて楽」みたいになると、将来柔軟な発想が求められる時に上手な身のこなし方が身についていなかったりするんじゃないかなって思う。
#学校ゆるくていいじゃん

タグ: 学校ゆるくていいじゃん

posted at 23:41:43

天むす名古屋 Temmus @temmusu_n

21年1月13日

#超算数
Cajori, Florian. _A History of Mathematical Notations: Two Volumes Bound as One_. New York: Dover Publications. 1993 [1928, 9].
第1巻274ページで、24÷4×2の構文解析が二義的であることを認め、曖昧さを回避するために括弧の使用を推奨。 pic.twitter.com/laXNG0TfSF

タグ: 超算数

posted at 21:38:00

天むす名古屋 Temmus @temmusu_n

21年1月13日

#超算数 Launay, Mickaël. _Le calcul qui divise : 6÷2(1+2) - Micmaths_. 2020-11-17. www.youtube.com/watch?v=tYf3Cp...
は併置積の曖昧さについての動画。ロネーさん、フロリアン・カジョリの著作に言及していた。これ、もっと早くに見ておくべきでした。(このツイは次の著作を知った経緯を記録するもの)

タグ: 超算数

posted at 21:37:58

勝川 俊雄 @katukawa

21年1月13日

野党は、西浦先生のシミュレーションに基づく提言を無視したことについて、与党を非難すればよいのに。

タグ:

posted at 20:38:19

非公開

タグ:

posted at xx:xx:xx

砂___の___女 @vecchio_ciao

21年1月13日

「知らないのにテキトーなこと言っちゃいました、すみません」って言えないんでしょう、職業柄。

タグ:

posted at 18:54:56

積分定数 @sekibunnteisuu

21年1月13日

@hsugisak @osuke0208 @genkuroki >掛け算なら入れ替えると意味は変わる

変わりません。式が表しているのは数であって場面・状況ではありません。

足し算にも掛け算にも順序はありません。学校で間違ったことが教えられているのです。

タグ:

posted at 18:51:25

黒木玄 Gen Kuroki @genkuroki

21年1月13日

日本語 LaTeX の新常識 2021 qiita.com/wtsnjp/items/7... #Qiita

タグ: Qiita

posted at 18:49:48

黒木玄 Gen Kuroki @genkuroki

21年1月13日

@TomiyaAkio #Julia言語 そのベンチマークテストの結果については以下のリンク先のスレッドを見て下さい。

元々のコードが余りにも遅過ぎるので「意味のある結果ではない」と評価するのが妥当だというのが私の結論です。

わざわざ遅いコードを書いてテストしても実践的には意味が無いです。 twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 18:39:27

砂___の___女 @vecchio_ciao

21年1月13日

【これ、学習指導要領か指導書で決まっているんじゃないかな?】

法的位置付けも内容も全く違うものを同列に扱って、書いてあるかどうかも定かでないのにテキトーなことを放言したことには変わりない。

そういう人でも「教育系の講演」できるんですね、凄ーい。 pic.twitter.com/l8lzxXCmoT

タグ:

posted at 18:33:08

砂___の___女 @vecchio_ciao

21年1月13日

憶測でデマ流しといて、それを指摘されると「うるさい」とか「無礼」とか…(失笑)

小学校のことはテキトーなデマ流していいと思ってる人多すぎ。

#掛算 #超算数 twitter.com/travel_jarna_b...

タグ: 掛算 超算数

posted at 18:05:48

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 Julia側からstructの中身の型がどう見えているかは、fieldtypes(typeof(foo)) のようにすれば分かります。AnyやRealのような抽象型があると速度的劣化が生じる場合が出て来る。

Chain.jl 結構便利。

|> という記号法にこだわるのをやめた方がスッキリする場合がある。 pic.twitter.com/KcMteoFTTC

タグ: Julia言語

posted at 17:48:13

USHIHARA @H_USHIHARA

21年1月13日

多少マシになったか. pic.twitter.com/PLlFv8Ad7T

タグ:

posted at 17:29:59

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

a = Real[1, 2, 3.0, 4.0]

4-element Vector{Real}:
1
2
3.0
4.0

a = Vector{typeof(a[begin])}(a)

4-element Vector{Int64}:
1
2
3
4 pic.twitter.com/jrwOeLmEqt

タグ: Julia言語

posted at 17:22:56

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 インタラクティブにJuliaを使っていて、Vector{Any}やVector{Real}型の配列を間違って作ってしまっても、内容の具体的な型が全部同じなら、

a = Vector{typeof(a[begin])}(a)

のようにして変換してから、aを使えば速度の劣化を防げます。

タグ: Julia言語

posted at 17:13:26

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 速度が重要でない場合には、細かいことを気にする必要はない。効率の悪いコードを書いてもJuliaはきちんと仕事をしてくれます。←これ、実は結構ありがたい。

タグ: Julia言語

posted at 17:09:03

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

最終サイズが不明の場合は

a = similr([0.0], 0)
for i in 1:n
if c(i)
push!(a, f(i))
end
end

とか

a = [f(i) for i in 1:n if c(i)]

とか。

速度が重要なら

* 最終サイズが既知の場合には一挙に配列を確保。
* 未知の場合はpush!を使う。
* a=[]は避ける。

タグ: Julia言語

posted at 17:09:03

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

作りたい配列のサイズ n が前もって分かっているなら、

a = similar([0.0], n)
for i in 1:n
a[i] = f(i)
end

とか

a = f.(1:n)

のようにした方がお得。

一挙に必要サイズ分の配列を作った方が速い。

タグ: Julia言語

posted at 17:09:02

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

計算速度を気にするときにやってはいけないのは

a = []

よく見るのが、a = [] としてから、push!やappend!で内容を追加しようとする行為。計算速度が重要な場合には良くないです。

a は要素がAny型の空の配列になり、aを使うごとに計算速度の劣化が引き起こされます。

タグ: Julia言語

posted at 16:58:06

富谷(助教);監修 シン仮面ライダー @TomiyaAkio

21年1月13日

twitter.com/TomiyaAkio/sta...
LatticeQCD.jl の開発中のデモモード
```
using Plots
using LatticeQCD
demo()
```
(開発中なので公開版と微妙に異なります)
github.com/akio-tomiya/La... pic.twitter.com/rFvDubOr96

タグ:

posted at 16:13:20

まきゃ @1789aorhow

21年1月13日

わいはPythonを使っててjuliaを勉強したい.

タグ:

posted at 15:49:38

Junichi 'DJ' Nakano @jnakano

21年1月13日

@physics303 なるほど、1番目はrowなんですね。Julia動かして試そうと思っていましたが、DataframeをPkg.addしろと言われてムムムとなってました、、、笑

タグ:

posted at 15:37:30

yudai.jl @physics303

21年1月13日

@jnakano できました!ありがとうございます! pic.twitter.com/TyaR9DH2EE

タグ:

posted at 15:35:14

Junichi 'DJ' Nakano @jnakano

21年1月13日

@physics303 df[target_col]でいけそうな気がしますが確認してません。すみません。 dataframes.juliadata.org/v0.14.1/man/ge...

タグ:

posted at 15:29:44

yudai.jl @physics303

21年1月13日

Juliaでこれどうしたらいいん?
dataframeのある列を取り出したいんだけど,その列の名前(文字列)が変数で与えられている. pic.twitter.com/LUyhtQCdjD

タグ:

posted at 15:26:45

USHIHARA @H_USHIHARA

21年1月13日

append!を使えば良かったな.

タグ:

posted at 15:25:32

USHIHARA @H_USHIHARA

21年1月13日

isinf()で復号失敗を明示した方が良かったか.

タグ:

posted at 15:22:25

USHIHARA @H_USHIHARA

21年1月13日

Reed-Solomon符号のEuclid復号.
#julialang pic.twitter.com/U9QIMB37EY

タグ: julialang

posted at 15:22:25

Sotaro Katayama @mayataka_

21年1月13日

やっぱりPyPlotが安定して良い気がする

タグ:

posted at 15:11:48

Sotaro Katayama @mayataka_

21年1月13日

Julia使いの人は論文の図もPlots+GRで作ってるのか,綺麗な図にはPyPlotを使っているのか,気になる

タグ:

posted at 14:48:44

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

sum(f, X) 型の函数は沢山ある。

mean(f, X)
maximum(f, X)
minimum(f, X)
...

count(f, X)
all(f, X)
any(f, X)
... twitter.com/genkuroki/stat...

タグ: Julia言語

posted at 13:25:17

ケフっち@Deterministic @__cheph__

21年1月13日

Gen.jlを勉強して研究にそのまま利用しようとしているんだけれども、Turing.jlに比べるとなんか難しい?気がする。 #julialang

タグ: julialang

posted at 13:16:21

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 あと

sum([f(x) for x in X])

は [f(x) for x in X] の配列の分だけメモリ割当が起こるのでやめた方がよいです。

sum(f(x) for x in X)

もしくは

sum(f, X)

と書くべき。

メモリ割当が発生する書き方とそうでない書き方があって、理解が伴っていれば暗記は必要なくなる。

タグ: Julia言語

posted at 13:15:19

砂___の___女 @vecchio_ciao

21年1月13日

掛算も足し算も、順番を入れ替えても変わりません。

#掛算 #超算数 twitter.com/osuke0208/stat...

タグ: 掛算 超算数

posted at 12:38:59

Michael Fogleman @FogleBird

21年1月13日

The other ways of deriving the same sequence are interesting.

"Number of ordered partitions of n into n parts. e.g., a(3) = 10: 003, 030, 300, 012, 021, 102, 120, 210, 201, 111"

I wonder if those could map 1-to-1 with a "lawnmower pattern" somehow? (Where is the equivalence?)

タグ:

posted at 12:15:30

天むす名古屋 Temmus @temmusu_n

21年1月13日

英語の勉強上の課題は、英語でやりなさいよ。日本語における主語(それがないという人々は間違っているが)の位置は、英語における主語のそれより格段に難しい。個人的な経験では、英語で5文型とかちゃんと理解していないから、間接疑問文が分からない気がしますよ。

タグ:

posted at 12:07:40

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

基本原則: !付きの函数を利用できるなら、そうした方がメモリ効率が良くなる。

しかし、どういう!付きの函数があるかはすぐにはわからないと思う。現時点では、知っていそうな人に聞いた方が早い場合が少なくないと思う。

タグ: Julia言語

posted at 12:07:10

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 モンテカルロ法でループの内側で配列の乱数を発生させる場合にも同様の注意。

for i in 1:niters
a = rand(n)

end

と書くと、rand(n)の分のメモリ割当がniters回発生します。

処方箋↓

using Random

a = similar([0.0], n)
for i in 1:niters
rand!(a)

end

タグ: Julia言語

posted at 12:03:09

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

function update!(v)
配列vの中身の書き変え
end

function~

v = 初期条件
for i in 1:n
update!(v)
end

end

なら、ループ内でvの中身が書き変わるだけで、配列へのメモリ割当が繰り返されません。

タグ: Julia言語

posted at 11:57:25

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

例えば、配列 v の時間発展を

for i in 1:n
v = update(v)
end

のように書くと、update(v)の結果の配列へのメモリ割当がループ内でn回起こります。

一回限りしか使わないコードならそれでも良いと思いますが、ライブラリとして使うコードだと速度劣化がつらいです。続く

タグ: Julia言語

posted at 11:54:30

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

docs.julialang.org/en/v1/manual/p...

でも in-place というキーワードで軽く説明されていますが、配列などを使う場合には無駄なメモリ割当をループ内ですると速度的な劣化が激しくなる。

それを防ぐ方法はあるのですが、経験がないと対処できない場合が結構あると思います。質問すると良いです。

タグ: Julia言語

posted at 11:51:04

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 Juliaでなくても、共通のパラメータをグローバル変数にしたりせずに、コードの形で

* 問題そのものの記述
* 問題を解く方法の記述

をきちんと行う方が、見易いコードになり、広く使い易える部品ができ上がるので好ましいと思います。

タグ: Julia言語

posted at 11:44:57

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 続き~、問題を解く函数を

using Parameters

function solve(foo::FooProblem, x, y)
@ unpack a, b, c = foo
~a,b,cを使って問題を解くコード~
end

のように書くというスタイルがJulia界では普及していると思います。

タグ: Julia言語

posted at 11:40:55

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

共通のパラメータをグローバル変数で与えたくなる気持ちは分かるのですが、やめた方は良いです。

問題を記述するパラメータを入れておくstructを

struct FooProblem{A,B,C}
a::A
b::B
c::C
end

のように定義しておいて、そこにパラメータを入れておいて~続く

タグ: Julia言語

posted at 11:40:54

非公開

タグ:

posted at xx:xx:xx

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 計算速度が気になる人は、公式ドキュメントの

docs.julialang.org/en/v1/manual/p...
Performance Tips

に忠実なコードを書くのが最も楽な道だと思います。

前もってすべてをコンパイルするという縛りに過剰適応してしまったスタイルを訂正するためにも上のTipsは役に立ちます。

タグ: Julia言語

posted at 11:07:37

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 初期化されていない配列も

A = Array{Float64, 3}(undef, l, m, n)

のように型名を書いて作る必要はなくて、

A = similar([0.0], l, m, n)

のように、Xと似ているサイズ(l, m,n)のモノのsimilar(X, l, m, n)を使える。引数xが配列と期待される函数内なら

A = similar(x)

も可。

タグ: Julia言語

posted at 11:00:13

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 「前もってすべてをコンパイルしておくので、実行時の状況に合わせてコンパイルできない」という状況では「型指定」がどうしても必要になりますが、「実行直前にコンパイルする」という仕様ならば、「型指定」がなくて「型の伝搬」が保証されている方が便利です(structも含めて!)。

タグ: Julia言語

posted at 10:52:43

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 structについても、コンストラクタの引数の具体的な型から型のパラメータが自動的に決まるように(型情報が伝搬するように)書けば、ユーザー側がVector{Float64}のような型名をコード中に書く必要がなくなります。

「型指定」がない部品の方が広く使えるので便利な場合が多いです。

タグ: Julia言語

posted at 10:48:29

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 それは

struct Foo{A}
a::A
end

のように書くことです。

Foo(3)

とすると、3の型Int64が自動的に認識されて

Foo{Int64}(3)

が作られ、

Foo([1.0, 2.0])



Foo{Vector{Float64}}([1.0, 2.0])

になります。

Juliaのコンパイラにstructの中身の型が見えるようになる!

タグ: Julia言語

posted at 10:45:07

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 Juliaでも「型指定」を無駄な制限が起こらないようにすることはできます。しかし、そのためにはJuliaの型システムの深い理解が必要になって、一般ライトユーザーには厳しい。

しかししかし、一般ライトユーザーが手抜きをしながら、計算効率を落とさない方法もあります。続く

タグ: Julia言語

posted at 10:41:58

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

struct Foo
a::Vector{Float64}
end

だと、中身がVector{Float64}型で決め打ちされてしまい、Juliaの多くの便利なパッケージと組み合わせて使えなくなります。

Juliaでは基本的に「型指定」をすると損になることが多いです。

タグ: Julia言語

posted at 10:38:55

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

具体的な型が不明になるモノの2つ目の代表例は中身の型が抽象型(型指定されていない場合を含む)のstructです。例えば

struct Foo
a::Array{Float64}
end

はアウト。

struct Foo
a::Array{Float64, 1}
end

もしくは

struct Foo
a::Vector{Float64}
end

とする必要あり。

タグ: Julia言語

posted at 10:36:52

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 具体的な型が不明のモノが函数のコードに混じっていても、Juliaはその函数を実行してくれます。

速度だけが重要ではなく、速度はどうでもよい場合もあるので、そういう仕様はありがたいと思います。

具体的な型が不明になるモノも代表例がグローバル変数。速度が重要なら使っちゃダメ。

タグ: Julia言語

posted at 10:33:20

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 函数の引数の具体的な型の情報をJuliaのコンパイラは利用できる。

だから、函数の引数以外の変数に型が、函数の引数の方から自動的に決まってしまうようにコードを書けていれば、Juliaはよく最適化されたネイティブコードにコンパイルしてくれます。

これが基本中の基本!

タグ: Julia言語

posted at 10:30:12

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 f(x::Real, y::Real, ...)のx,y,zとして可能なものすべてに対応できるように前もってコンパイルしておくのではなく(一般に非常に大変なことになる!)、具体的な値を持つx,y,zが与えられた後にそのx,y,zの具体的な型に応じて最適化されたコンパイルを実行する仕組みにJuliaはなっています。

タグ: Julia言語

posted at 10:26:33

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 例えば抽象型Realで引数が型指定されている

function f(x::Real) ~ end



f(3.0)

の形で実行するときには、JuliaのコンパイラはRealという抽象型の情報を使ってコンパイルせずに、引数3.0の具体的な型であるFloat64という情報を使ってネイティブコードにコンパイルします。

タグ: Julia言語

posted at 10:21:35

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 「型指定」がないと最適化されたコンパイルが不可能だという誤解が蔓延している。

Juliaのようなjust-in-timeでコンパイルする仕組みなら、実行時の引数の型の情報をコンパイラが利用できるので、函数の引数の「型指定」が無くても、コンパイラは引数の具体的な型の情報を利用できます。

タグ: Julia言語

posted at 10:17:44

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

Juliaでは、初心者が素朴に書きそうな

f(x) = 2x

型のコードの書き方が合理的で

g(x::Float64)::Float64 = 2.0x

のような無駄な「型指定」入りにコードを書くのは不合理です。

タグ: Julia言語

posted at 10:14:03

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

f(x) = 2x



g(x::Float64) = 2.0x

のとき、

f(3.0)



g(3.0)

は完全に同じネイティブコードにコンパイルされてから実行されます。g(x::Float64)の「型指定」はこの場合には意味がないです。

こういう仕組みになっているので、「型指定」は多くの場合に時間の無駄になります。

タグ: Julia言語

posted at 10:11:44

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 しかし、

function f(x)
広く通用するアルゴリズムのコード
end

の段階で十分高速なコードを書ける場合も多いです。

それを可能にするのが、型の伝搬を促すコードの書き方です。

Juliaでは「型指定」ではなく、「引数の型の伝搬」で考える。

タグ: Julia言語

posted at 10:08:57

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語 函数の引数の「型指定」をするのは、multiple dispatchを使うためです。例えば

function f(x)
広く通用するアルゴリズムのコード
end

と定義しておいて、Float64専用の同名の函数を

function f(x::Float64)::Float64
Float64に最適化されたコード
end

と定義するとよい。

タグ: Julia言語

posted at 10:06:19

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#Julia言語

Juliaでの最適化では、函数の定義で

function f(x::Float64)::Float64

end

のように「型指定」しても全然__速くならない__ことを理解しておく必要があります。

function f(x)

end

のままで最適化できることを知らずに、一所懸命「型指定」するのは時間の無駄。

タグ: Julia言語

posted at 10:01:51

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 Hurwitzのゼータ函数と対数ガンマ函数の関係に興味を持った人は

nbviewer.jupyter.org/github/genkuro...
#Julia言語

が楽しめると思います。

「s=0での偏微分係数から対数ガンマが得られ、対数ガンマ2つで対数sinが得られること」を、s=0からs=1-r (rは正の整数)に一般化するとMilnorの多重sinが得られる。

タグ: Julia言語 数楽

posted at 09:42:54

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 上で紹介した微積分のノートは

github.com/genkuroki/Calc...

に置いてあるファイルの一部分です。

教える側は知っているけど、講義では触れることが難しい価値ある題材をまとめたつもり。 #Julia言語 のコード付き。

単に理論的に扱うだけではなく、コンピュータでの計算の仕方もわかる。

タグ: Julia言語 数楽

posted at 09:33:18

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 大学1年生向けの題材にゼータ函数とガンマ函数の両方が入っているのですが、それらの関係に触れる余裕はない。

しかし、明らかに重要な関係があって、頻繁に応用される階乗のStirling近似の究極形の話も含まれている、というようなことは、数学を教えている側にもっと広まるべきだと思います。

タグ: 数楽

posted at 09:29:47

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 Stirlingの公式

log n! = n log n - n + (1/2)log n + log√(2π) + O(1/n)

の究極形の1つは

log Γ(x+1) = ζ_s(0, x+1) + log√(2π)

にHurwitzゼータζ(s,x+1)の積分表示を適用すれば即得らる。

Hurwitzのゼータ函数の積分表示はStirlingの公式を含んでいる!

nbviewer.jupyter.org/github/genkuro... pic.twitter.com/WWtB9VMYmn

タグ: 数楽

posted at 09:25:34

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 対数ガンマ函数 log Γ(s) とその導函数達を扱うことは、そこからHurwitzのゼータ函数ζ(s,x)のs=0での偏微分係数が本質的に対数ガンマ函数になっているという結果

ζ_s(0, x) = log Γ(x) - log√(2π)

が得られるので、数論的にも重要です。

nbviewer.jupyter.org/github/genkuro... pic.twitter.com/1nz3tkbf7z

タグ: 数楽

posted at 09:17:38

(「・ω・)「ガオー @bicycle1885

21年1月13日

Juliaの関数をCで書き直したら遅くなった(´・ω・`)

タグ:

posted at 09:07:51

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 ガンマ函数とベータ函数は大学新入生向けの微積分の講義での定番の題材で、実際に知らないと困る場合が多い特殊函数なのですが、不完全ベータ函数、不完全ガンマ函数、ディガンマ函数などもよく出て来るし、コンピュータでの統計処理で必須なのですが、そこまで触れる時間的余裕はない感じ。

タグ: 数楽

posted at 09:05:06

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 ディガンマ函数は

ψ(s)=(log Γ(s))'=(1/Γ(s))∫_0^∞ e⁻ˣ xˢ⁻¹ log x dx

はガンマ分布における log x の平均(期待値)です。これの導函数はトリガンマ函数で、高階の導函数はポリガンマ函数と呼ばれ、コンピュータで計算できる基本特殊函数達の一族の1つになっています。

タグ: 数楽

posted at 09:00:19

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 ベータ函数やガンマ函数について教える側にとって盲点になり易い応用上重要な事柄は沢山あって、このスレッドではそういう話をしているつもりなのですが、ガンマ函数の対数の導函数であるディガンマ函数もコンピュータで結構気楽に計算できることはもっと知られていてよいと思います。

タグ: 数楽

posted at 08:56:40

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 特殊函数の教科書には漸近展開の公式が沢山書いてあり、コンピュータで計算するときにそれらが使われます。

引数の値ごとに効率的な公式が違うので、場合分けをして計算します。そのときに誤差をきちんと制御する必要がある。

こういう理由で特殊函数の実装は複雑になる場合がある。

タグ: 数楽

posted at 08:53:58

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 多くの確率分布がベータ分布の変種になっているので、不完全ベータ函数=ベータ分布のCDFを効率よくコンピュータで計算できるようにしておくことは重要です。

これ、自分でやってみると分かるのですが、結構大変で、 #Julia言語 ではどうしているのか調べたら、2000行以上のCのコードが!(笑)

タグ: Julia言語 数楽

posted at 08:49:30

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 不完全ベータ函数も超幾何一族の一員です。

現時点ではコンピュータでの不完全ベータ函数の計算は2000行以上もあるコードで行われているようです↓

github.com/JuliaStats/Rma...

この辺を誰か整理して書き直して最適化すればよいのではないかと思います。

タグ: 数楽

posted at 08:45:41

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 大学1年生レベルの微積分の計算をきちんとしておくだけで、ノータイムで「これはデタラメ。相手にする価値がない」と判断できる場合が大幅に増えると思います。

現実の講義ではそこまでやる余裕はないのですが、基礎的な数学の教養+常識だけで相当なことをできることは常識になった方がよい。

タグ: 数楽

posted at 08:38:32

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 #統計 豊田『瀕死本』の著者は放送大学で心理統計の講義をしていたりするので本当に要注意。

大学新入生の段階で、部分積分のちょっと複雑な計算の練習をして、「P値=ベイズ統計での事後分布における確率」を意味する公式を得ておけば、おかしな議論の惑わされる可能性が減ると思います。

タグ: 数楽 統計

posted at 08:35:00

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 #統計 非常に困ったことに、「P値を使うことは有害であり、ベイズ統計における事後分布で測った確率を使おう!」と言っている人達がいます。

例えば豊田『瀕死本』は典型的。そこでの事後分布での確率とP値は数学的には同じものであり、P値を使ってP値を否定するデタラメな議論になっています。

タグ: 数楽 統計

posted at 08:31:00

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 記号が θ,p,q→p,a,bと変わっていることに注意。

二項分布における確率=ベータ分布における確率

負の二項分布における確率=ベータ分布における確率

の形式に公式が得られています。

これは統計学的には

通常のP値 = ベイズ統計での事後分布での確率

を意味する公式になっています。 pic.twitter.com/sLxff1eXmv

タグ: 数楽

posted at 08:30:59

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 ベータ函数を定積分から不定積分に一般化したものには「不完全ベータ函数」という名前が付けられてしまっているのですが、その部分積分を使って得られる公式の導出は高校3年~大学1年での計算練習として価値あるものになります。

ベータ分布と二項分布と負の二項分布の関係が得られます。 pic.twitter.com/GSegTO1FBQ

タグ: 数楽

posted at 08:23:27

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽

B(p,q)=∫_0^∞ t^{p-1}/(1+t)^{p+q} dy

型のベータ函数の表示を知っていれば

Γ(p)Γ(q)=Γ(p+q)B(p,q)

を y = tx (yを直線の傾きtに変数変換)の形の積分変数変換で示せます。その計算の過程も面白いので知っておいて損がないです。

大学新入生向けの計算練習の題材としてもよい。 pic.twitter.com/CVyahjle4E

タグ: 数楽

posted at 08:20:07

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽

B(p,q)=∫_0^∞ t^{p-1}/(1+t)^{p+q} dy

型のベータ函数の表示で t を t²/ν で置き換えて、p=1/2, q=ν/2 とおけば、本質的に自由度 ν のt分布が得られます。

t分布は非常に基本的な確率分布なのですが、ベータ分布の特別な場合(p=1/2)の変種と思えます。F分布はp=1/2の特殊化をやめた場合。 pic.twitter.com/Gs1E1m4mg2

タグ: 数楽

posted at 08:16:24

砂___の___女 @vecchio_ciao

21年1月13日

「本当はあるけど(情報量が増えすぎるので)ここでは言及しない」ものを「存在しない」と嘘をわざわざ教える必要は無いですね。

#掛算 の順序は「本来存在しない」ものを、「ある」ということにして嘘を押しつけていて悪質。 twitter.com/84yame1000/sta...

タグ: 掛算

posted at 07:30:10

shozf @ShozF

21年1月13日

原題は"Introduction to Applied Linear Algebra: Vectors, Matrices, and Least Squares"だそうな

後半、最小二乗法の話らしい。高次元ベクトル空間おける最適化手法の教科書かな。なんでもJuliaによる演習がwebにあるそーな。 twitter.com/ImAI_Eruel/sta...

タグ:

posted at 07:23:29

Michael Fogleman @FogleBird

21年1月13日

Have you ever MOWED A LAWN?

Do you make quarter turns or half turns? Like, do you do a spiral or a serpentine? Or do you switch back and forth?

I have discovered that the # of ways to mow a square of size N matches this sequence: oeis.org/A088218

The Undecided Lawnmower pic.twitter.com/TxxSEGLvlc

タグ:

posted at 07:19:38

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#数楽 そうなんです!ベータ函数や超幾何函数達は非常に面白い!高校で微積分を習っていればめっちゃ楽しめる。

B(p,q)=∫_0^1 x^{p-1}(1-x)^{q-1}dx

がよく使われるが、

B(p,q)=∫_0^∞ t^{p-1}/(1+t)^{p+q} dy

およびさらにt=u^{1/p}やt=u^2とおいた場合も応用上重要な点は盲点になり易い。 twitter.com/amayaki_sdoric... pic.twitter.com/fAgixrqqKp

タグ: 数楽

posted at 06:49:44

黒木玄 Gen Kuroki @genkuroki

21年1月13日

#統計 まさにそれ。

そして、統計学はお墨付きを得るために使える類の道具ではないということを押さえておくことが大事なのだと思います。

分析一発で確定した答えはどうせ得られない。

しかし、どんなに苦しい状況であっても、勝ち目を少し増やせるかもしれない! twitter.com/cowabiko/statu...

タグ: 統計

posted at 06:35:12

Wolfram Japan @WolframJapan

21年1月13日

宇宙空間で物体が回転するときに不思議な動きをしますが、#SystemModeler 12.2を使えばこのようなシミュレーションも簡単に行うことができます。#テニスラケットの定理 (ビデオでは卓球ラケット)等の概念を理解するのにお役立てください。wolfr.am/RQh6WWQA pic.twitter.com/uLy14V1De6

タグ: SystemModeler テニスラケットの定理

posted at 06:02:00

専門性・売上・原稿 @golden_lucky

21年1月13日

若い頃にLaTeXを何となく使い始めて今でも何となく使えている、といったベテランにこそ読んでほしいやつです(なお、紹介されてる話を「使う」のが常識なのではなくて、プロはいろんな都合で取捨選択してやってるから、執筆者側から常識として強制するのは非常識だよ) qiita.com/wtsnjp/items/7...

タグ:

posted at 06:01:11

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

非公開

タグ:

posted at xx:xx:xx

@genkurokiホーム
スポンサーリンク
▲ページの先頭に戻る
ツイート  タグ  ユーザー

User

» More...

Tag

» More...

Recent

Archive

» More...

タグの編集

掛算 統計 超算数 Julia言語 数楽 JuliaLang 十分 と教 モルグリコ 掛け算

※タグはスペースで区切ってください

送信中

送信に失敗しました

タグを編集しました