Juliaのメモリー管理がよく分からなくて、GCが頻繁に発生してしまうんだけど、しょうがないねえ。Julia以外で書こうという気にならんからねえ、もはや
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:54:05
Stats | Twitter歴 5,100日(2010/04/13より) |
ツイート数 315,589(61.8件/日) |
表示するツイート :
Juliaのメモリー管理がよく分からなくて、GCが頻繁に発生してしまうんだけど、しょうがないねえ。Julia以外で書こうという気にならんからねえ、もはや
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:54:05
逃避行動として研究のプログラム書いてました。こういうことをするのは久しぶりです。楽しい。
Juliaのメモリー消費を減らすための勘所がいまひとつわかりませんね。Cなら全部自分で管理できるのだけどね。GCが発生しちゃうのがなあ。でも、Juliaのほうが圧倒的に便利だとなのよねえ
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:53:58
Cと違って、いつ作業配列が作られるのか、いまだにわからん。ガベージコレクションしてるから、作ってるんだよなー。勘所がねえ
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:53:47
Juliaの高速化はなかなか勘所がわからないな。グローバル変数を一切参照せずに、全部引数で渡すのはずいぶんだいじなの
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:53:41
ふぅー。
「a≦b」を「a≤b」と大学入試の答案で書いてあるのを見て減点したことのある大学の教員の方いますか。いらっしゃったら手を挙げてください! https://twitter.com/yy_kamen/status/1279066826593325056…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:52:27
「減点したことあります」と手を挙げた大学教員は今んとこいない(もちろんわしも減点しない)。 https://twitter.com/f_sei/status/1279070597276790785…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:52:20
ゲットしました😃 1から始めるJuliaプログラミング https://bit.ly/3iE2W30 https://pic.twitter.com/t2f3nQtYGo
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:45:17
ごまふあざらし(GomahuAzarashi)@MathSorcerer
@mitsuomi_miyata こんなのでOKできゅ? https://pic.twitter.com/DRlw1Iet9u
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:41:37
ごまふあざらし(GomahuAzarashi)@MathSorcerer
@mitsuomi_miyata できたできゅー。文字小さくてちゅらいできゅ https://pic.twitter.com/s7B0ziQSnX
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:41:30
ごまふあざらし(GomahuAzarashi)@MathSorcerer
Julia側のデータをRのplot関数に渡すのが添付の図のようにできて初回の描画実行も(Plots.jlにくらべて)さくっと描画できる。しらなかった〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 https://pic.twitter.com/Chwm4nkpFs
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:41:23
ごまふあざらし(GomahuAzarashi)@MathSorcerer
おおおお〜〜〜〜〜〜
Ubuntuマシーンで RCall うごいた
$マークで R> Rの REPL モードに移動できる。
PyCall しっていればすぐ慣れそう。 https://pic.twitter.com/9tqlq1l9My
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:41:19
julia(seedR=-0.0787, seedR=-0.0435, zoom=2.7660)
https://fractals.azurewebsites.net/api/createFractal?type=julia&juliar=-0.40146974896522325&juliai=-0.589394423323768&w=1280&h=768&zoom=2.766009894050925&bright=123.82432696389145&hue=120.45761385189245&iter=393.53049539045276&r=-0.0786658636265598&i=-0.04353659974623114&hueLoops=3.75352219493638&innerBright=21.85153090195726… https://pic.twitter.com/53mpcxf0Ls
Retweeted by 黒木玄 Gen Kuroki
retweeted at 23:39:44
将棋AIの棋力計測時のノウハウについて記事にまとめました。
将棋AIの棋力計測、こんな方法は駄目だぞ
http://yaneuraou.yaneu.com/2020/07/04/rating-measurement/…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 21:51:41
awkで実装されたJVM。わいわい。リンク先のHow to write a (toy) JVMが参考になる。 / “GitHub - rethab/awk-jvm: a toy jvm in awk” https://htn.to/2ce3313TaL
Retweeted by 黒木玄 Gen Kuroki
retweeted at 21:43:21
今日登校時にまず連絡帳でやりとりし、今できることは一段落かなとなりました
共感や励ましのお言葉ありがとうございます
ただ、学校や先生には今まで良く対応して貰った感謝/信頼もあり、前述のようにこれだけで反発/敵対するつもりはありません
一緒に子供に向き合えるよう一緒にがんばります
Retweeted by 黒木玄 Gen Kuroki
retweeted at 21:40:18
理不尽すぎる!と一瞬思ったけど、ここで敵対するのは本意ではないし
先生にも狙いがあるんでしょうが、それが伝わってないようなので、申し訳ないけど今後なにとぞ丁寧に説明を、お手数かけるけど電話くれれば親からも説明するんで、学校嫌いにさせないようにどうかどうか、という感じで伝えるかな
Retweeted by 黒木玄 Gen Kuroki
retweeted at 21:40:15
学校とトラブった…
自粛期間中に渡されたプリント、一部だけやっとくやつだったらしくて、指示してない箇所までやってあるのはおかしいと言われて泣きながらプリントぐしゃぐしゃにしながら消したって…
その消した箇所を書き直すのが宿題だって…
まじかー…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 21:40:11
@keno_ss @389jan @N_Y_Big_Apple @designpatterngf #数楽 特異点解消後の分配函数と対応するゼータ函数の計算の概略については
https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/A04%20zeta%20functions%20of%20partition%20functions.ipynb…
を参照。多分、この私のノートが関連の解説で一番易しい。
特異点解消後の計算は易しい。逆に言えば特異点解消の具体的遂行が重要な問題になるということ。 https://pic.twitter.com/CxTf9DZcVA
Retweeted by 黒木玄 Gen Kuroki
retweeted at 21:39:28
@keno_ss @389jan @N_Y_Big_Apple @designpatterngf #数楽 特異点解消後の分配函数と対応するゼータ函数の計算の概略については
https://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/A04%20zeta%20functions%20of%20partition%20functions.ipynb…
を参照。多分、この私のノートが関連の解説で一番易しい。
特異点解消後の計算は易しい。逆に言えば特異点解消の具体的遂行が重要な問題になるということ。 https://pic.twitter.com/CxTf9DZcVA
posted at 21:39:21
算数プリントの解答欄の「式 答え 」の形式に従うことは子供にとって非常に有害だと思います。
使えるのは常識とちょっとした計算力だけ。
公式は暗記していない。
先生が説明したやり方も覚えていない。
しかし、どんな場合でも自力で対応可能。
こうなる方向を目指さないと辛い。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:44:41
一発で答えを出せる必要は皆無。
途中でちょっとした計算ミスをしても責める必要はない。
単に訂正すればいいだけ。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:44:39
12秒で16m進むとする。
倍の24秒で32m進む。
24秒は15秒より長い。
12秒の半分の6秒で16mの半分の8m進む。
さらに半分にすると3秒で4m進む。
3倍すると9秒で12m進む。
5倍すると15秒で20m進む。
解答欄が「式 答え 」の形式なら、式の字を二重戦で消して、以上の議論を全部書けばよい。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:44:35
数学の極意の1つは問題文にない問題も沢山解いてしまうこと。
例えば「12秒で16メートル進むと、15秒で何メートル進むか?」では15秒以外の場合の問題もたくさん解いてその過程でついでに15秒の場合もわかる、というのが良いのです。
公式に当てはめるだけだと積むべき経験が大量に失われる。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:44:32
これは良記事。
速さや割合が絡む問題では右側に書いてある方法で子供に解いてもらうことが非常に良い経験になります。
最悪なのが公式に当てはめて解く方法。
新聞記事にある方法ならば予備知識は常識だけでよい。色々計算するうちに数と量について、子供の心の中に良質の回路ができて行きます。 https://twitter.com/conoki69/status/1279039151371718661… https://pic.twitter.com/ZgNmfzDSQb
Retweeted by 黒木玄 Gen Kuroki
retweeted at 20:44:27
#統計 Y-Ŷ=(I-P)Eが平均が0分散共分散行列がσ²(I-P0の多変量正規分布に従うことより、その成分の二乗和 ||(I-P)E||² の1/σ²倍が自由度n-2のχ²分布に従う。
自由度のn-2はYを射影する先のIm Xの直交補空間の次元。
Im Xからはみ出す揺らぎの自由度がn-2.
χ²分布の自由度は揺らぎの自由度になる。
posted at 20:39:40
#統計 これらの式はŶ-Xβ=PE, Y-Ŷ=(I-P)Eの成分達の分散共分散の公式とみなされる。
ゆえに、E_i達が平均0分散σ²の正規分布に従う確率変数達であるとき、Ŷ-Xβ, Y-Ŷは期待値0で分散共分散行列がそれぞれP=X(X^T X)⁻¹X^T, I-Pのσ²倍の多変量正規分布に従う独立なベクトル値確率変数になる。続く
posted at 20:39:39
#統計 訂正: 𝔼[E_i]=0という仮定を追加。𝔼[]は期待値汎函数。
続き。
Im Xへの直交射影X(X^T X)⁻¹ X^TをPと書く: P^T=P, P²=P.
このとき、
Ŷ - Xβ = PE
Y - Ŷ = (I-P)E.
𝔼[EE^T] = σ²Iより、
𝔼[(PE)(PE)^T] = σ²P
𝔼[((I-P)E)((I-P)E)^T] = σ²(I-P)
𝔼[(PE)((I-P)E)^T] = 0.
続く https://twitter.com/genkuroki/status/1279314079169908736…
posted at 20:39:39
日本のJulia言語の第一人者(「・ω・)「ガオー @bicycle1885 さんが書かないと。 https://twitter.com/bicycle1885/status/1279254721086160899…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:44:32
#JuliaComputing #Julia言語 #Julialang
(「・ω・)「ガオー @bicycle1885 さんが書くんです。 https://twitter.com/bicycle1885/status/1279252948611067905…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:44:31
ワシが書くしか…!
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:44:21
#Julia言語
ただのうなり
目がチカチカする
https://nbviewer.jupyter.org/github/pppp314592/UNARI_anim/blob/master/%E3%81%86%E3%81%AA%E3%82%8A.ipynb… https://pic.twitter.com/Nb2sO8Uf1f
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:43:57
ごまふあざらし(GomahuAzarashi)@MathSorcerer
はい1.6.0 はいりました。(ふつうののーとPCでです) https://pic.twitter.com/BqLWfDIzkX
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:43:15
Gabriel D Weymouth@gabrielweymouth
WaterLily (Julia) seems to be roughly as fast as Lotus (Fortran) for these small problems. WaterLily is bare-metal, whereas Lotus has a bunch of extra features which will slow it down. But this is still impressive for #JuliaLang.
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:42:35
Gabriel D Weymouth@gabrielweymouth
WaterLily (Julia) is a port of LilyPad (Processing/Java) and Lotus (Fortran) so I've been trying to compare them directly, but it's proving to be annoying to get a 1-to-1 comparison.
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:42:21
Gabriel D Weymouth@gabrielweymouth
Ok, some benchmarks. Scaling with total number of point on a single CPU is better than linear (yay geometric multigrid!)
N | (2^5)^3 | (2^6)^3 | (2^7)^3
T (s/it) | 0.0086 | 0.062 | 0.47
Factor | 1 | 7.2 | 7.8
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:42:12
Gabriel D Weymouth@gabrielweymouth
WaterLily.jl update! We have achieved 3D turbulence in pure Julia. This is not a drill...😉 Taylor-Green vortex using 2.2M points. @JuliaLanguage https://pic.twitter.com/jDEzzo0pyj
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:41:35
プログラミング言語Juliaを知っている時点で,0から始めるプログラミングではない気がする.
2020年7月4日時点の観測
そういえば,高校生が初めて知るプログラミング言語って,いまなら何なのだろうか?
Pythonかなぁ・・・
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:41:21
そう言えば・・・
#情報工学科 で指定している環境 2019年以降は
Julia「も」入れてあるのよ.特に宣伝もしていなかったけど.
他にも言語,色々と入れてあるからね :-) https://pic.twitter.com/5q3s3jHTkq
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:41:13
juliaでの速度ダウンの鬼門は、interpolation.jlと逆行列計算だな。それがアルゴリズムに含まれてなければ、他言語を凌駕、書き方次第ではC++に肉薄。ただinterpolationに関しては、マクロの人がより賢い書き方知ってそうな気もする。あと多変量cdfのパッケージが薄い、ってのも同期と話した。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:40:54
ヒカルリ(ハイパー都内勤務エンジニア)@hika_ruriruri
やるべき言語はJulia
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:40:29
Unification in Julia. ~ Philip Zucker (@SandMouth). https://www.philipzucker.com/unification-in-julia/… #Logic #JuliaLang
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:38:37
頭痛を和らげるためにYouTubeで平沢進をかけ続けているが途中で入るWrikeの広告が邪魔
Retweeted by 黒木玄 Gen Kuroki
retweeted at 19:21:53
とりあえずこんな感じでカテゴライズしてみた。まだ編集中です。
http://www.cml-office.org/wwatch/alkalli/comment-ph-20…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 18:31:28
僕も昔小学校で、こういう感じの問題があった時に、手前の面積求めてから奥行き掛けて計算(6×7-3×3)×3したら、先生に「縦に3つに切ってちゃんと(底面積)×(高さ)で計算しなさい」と言われて修正させられて、算数嫌いになりかけたことがある。 https://twitter.com/conoki69/status/1279039151371718661… https://pic.twitter.com/vSMMShTx4F
Retweeted by 黒木玄 Gen Kuroki
retweeted at 18:30:01
#Julia言語 runで実行できる`~`の内側で
files = ["abc0004", "abc0005", "abc0006", "abc0007"]
に対する $ files は
`foo $files`
→ `foo abc0004 abc0005 abc0006 abc0007`
のように展開されます。これはshell scriptでやっていたことをJuliaにやらせたい場合に便利な仕様です。 https://pic.twitter.com/tSX2usPdOn
posted at 17:41:04
#Julia言語
例えば「4個ずつに分割する」には、Iterator.partitionを使う。
collect(Iterators.partition(collect(1:10), 4))
→ [[1,2,3,4], [5,6,7,8], [9,10]]
collect(Iterators.partition(1:10, 4))
→ [1:4, 5:8, 9:10]
よくできている。
https://gist.github.com/genkuroki/2bdf5999454c176ffb27d85e3e9d8b7b… https://pic.twitter.com/6MBEYfACYv
posted at 17:28:54
先日の、神奈川かどっかの難関(らしい)高校の子も教員に与えられた呪いを自信満々で吹聴してたが(大学教員が否定してるのに自分のところの教諭がそう言ったからそれが正しいと言い張っていた)、そう考えると指導者は自分の発言にもっと慎重になったほうがいいと思うね
Retweeted by 黒木玄 Gen Kuroki
retweeted at 17:07:26
原理的に考えて入試でa≤bみたいなのを減点できるわけないのに、教員や塾予備校講師が無責任に「リスクを避ける」や「減点される『かもしれない』」という不安につけ込むような呪いをかけて受験生に無用な縛りを与えるのはほんと良くないよね https://twitter.com/yy_kamen/status/1279066826593325056…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 17:07:24
#数楽 Vが1個でV*が0個のVの場合の「テンソル」はただのベクトル。
V⊗V*の元(これも「テンソル」)は Σ_{i,j} aᵢʲ vⁱ⊗vⱼは線形写像V→V
vʲ ↦ Σ_i aᵢʲ vⁱ
と同一視でき、a ᵢʲ はその表現行列の成分だと思える。
こんな感じで上で説明した「テンソル」はベクトルや線形写像を含みます。
posted at 17:04:13
#数楽 続き。V達とV*達のテンソル積を考える。簡単のためVが2個とV*が1個のテンソル積
V⊗V⊗V*
を考える。これの基底として
vⁱ⊗vʲ⊗v_k
が取れるので、その元はスカラーaᵢⱼᵏによって
Σ_{i,j,k} aᵢⱼᵏ vⁱ⊗vʲ⊗v_k
と一意に表されます。これらを「テンソル」と呼ぶ習慣だと思う。続く
posted at 17:04:12
#数楽 ベクトルのかけ算のボスキャラのテンソル積について理解すると、テンソル積と「テンソル」の関係が気になると思う。大雑把には以下のような話だと思っておけばよい。
ベクトル空間 Vの基底を vⁱ と書き、その双対空間V*の双対基底を vᵢと書く: vᵢとvʲの内積はi=jのとき1で他のとき0. 続く
posted at 17:04:09
#統計 テンソル積の具体的な場合の例については以下のリンク先を参照
https://twitter.com/toyo9/status/1279317188764033024…
posted at 16:44:57
関連:Ŷとかの入力の仕方
https://twitter.com/genkuroki/status/1277211885574578178…
posted at 16:23:52
#数楽
̅ バー
̂ ハット
̌ チェック
̃ チルダ
を X, y, ζの次に書くと
X̅, y̅, ζ̅
X̂, ŷ, ζ̂
X̌, y̌, ζ̌
X̃, ỹ, ζ̃
これはちょっと便利‼️
辞書に登録した‼️
使用例:
* X̅ = (X_1 + … + X_n)/n
* f̂(p) = ∫ f(x) exp(-2πipx) dx
Retweeted by 黒木玄 Gen Kuroki
retweeted at 16:22:55
#統計 これに気付けば最小二乗法がらみの事柄が、直交射影の線形代数ですっきり理解できそうなことがわかる。
posted at 16:20:21
#統計 E =
E_1
…
E_n
とおくと、
Y = Xβ + E
β̂ = (X^T X)⁻¹ X^T Y = β + (X^T X)⁻¹ X^T E
Ŷ = Xβ̂ = Xβ + X(X^T X)⁻¹ X^T E
なので、
Ŷ - Xβ
= X(X^T X)⁻¹ X^T E
= (EのIm Xへの直交射影)
Y - Ŷ
= (I - X(X^T X)⁻¹ X^T)E
= (EのIm Xの直交補空間への直交射影)
となっている。続く
posted at 16:20:19
#統計 続き~直交射影をŶ=
Ŷ_1
Ŷ_2
…
Ŷ_n
と書く。これは
Ŷ = X(X^T X)⁻¹ X^T Y
と書ける。β=
a
b
の推定量(X^T X)⁻¹ X^T Y∈ℝ²をβ̂=
â
b̂
と書く。以上の計算は最小二乗法そのものである。
posted at 16:20:17
#統計 Y_1,…,Y_nは確率変数で
E[Y_i] = a + bx_i
を満たすものとし、
E_i = Y_i - (a + bx_i)
とおき、
E[E_i E_j] = σ²δ_{ij}
と仮定する。このとき、線形写像X:ℝ²→ℝⁿを行列
1 x_1
1 x_2
……
1 x_n
で定め、rank X=2と仮定する。ベクトルŶ=
Y_1
Y_2
…
Y_n
のIm Xへの~続く
posted at 16:20:14
OokuboTact おおくぼ中2病中年@OokuboTact
#超算数
算数教育専門雑誌のバックナンバーがキンドル読み放題に入っているのは朗報
「新しい算数研究」
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:08:09
非公開
retweeted at xx:xx:xx
全くのプログラミング初心者向けのJuliaの本…!誰か書いて。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:05:55
「1から始めるJuliaプログラミング」ざっと読んでしまった。知らないことはそんなに書いてなかったけど、不必要な応用例にページを割いてないのはいいかも。本の位置付けとしてはいささか半端で、完全なプログラミング初心者には勧め難い。Juliaに乗り換えようという人向けだな、やはり
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:05:40
「1から始めるJuliaプログラミング」、0からじゃないだけあって、全くのプログラミング初心者には厳しそう。
ということは「0から始めるJuliaプログラミング」という本の需要もあるわけだなー
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:05:38
「1から始めるJuliaプログラミング」を1から読み始めた。これまでは完全に我流で、必要なことしか学んでこなかったので、文字列処理は全然理解してない。
でも、もうJuliaじゃないと計算できないんである
Retweeted by 黒木玄 Gen Kuroki
retweeted at 14:05:32
@vecchio_ciao 60×6とすべきと、60×3としちゃったんですが、翌日の夕刊あたりに訂正記事は出ていますかね?
Retweeted by 黒木玄 Gen Kuroki
retweeted at 13:55:33
保護者は基本的に学校では正しいことを教えていると思っているので、こういう情報が拡散されることは大事。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 13:55:30
この時に、どうやら小学校での算数教育がおかしなことになっているらしいと知り、そこから次男が高学年になるにつれて出会うさまざまなトラップに、嵌まらず警戒しながら見守ることができた。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 13:55:29
積分定数 @sekibunnteisuu さんが東京新聞に寄稿された記事が、中日新聞(7/2 夕刊)にも掲載されました。
6年前、次男の単元テストに疑問を持った私のツイートが積分定数さんとの出会いのきっかけ。
#超算数 #掛算 https://twitter.com/vecchio_ciao/status/466752273163362304… https://pic.twitter.com/gpcAwr6VNV
Retweeted by 黒木玄 Gen Kuroki
retweeted at 13:55:19
山本太郎支持者は、山本太郎氏の原発デマやワクチンデマはどのように捉えているのだろうか?
反◯◯無罪
消費減税無罪
などの臭いがする
景気が悪くなると極端な思想に走る人が増えるという
労働者の味方をやめた政党…
その反動か更に極端な思想に走る人が増えている気がしてます
経済安定化不足
Retweeted by 黒木玄 Gen Kuroki
retweeted at 13:53:05
@valeriazolota @bettinaschroed5 @akpolyme @NkViktori42 @ANASTALYA @AmI3580 @AraiEij @marienassar_ @habibisilvia @marie_nassar ( ͡°❥ ͡°)🌿🍇🍒🍏@valeriazolota
( ͡°❥ ͡°)🍇🍒🍏@marie_nassar
( ͡°❥ ͡°)🍒🍏@bettinaschroed5
( ͡°❥ ͡°)🍇🍒🍏@akpolyme
( ͡°❥ ͡°)🍒🍏@ANASTALYA
( ͡°❥ ͡°)🍇🍒🍏@AraiEij
( ͡°❥ ͡°)🌿🍇🍒🍏@NkViktori42
( ͡°❥ ͡°)🍇🍒🍏@habibisilvia
( ͡°❥ ͡°)🍒🍏Good day
( ͡°❥ ͡°)🍏All frends https://pic.twitter.com/WvNE87yFMe
Retweeted by 黒木玄 Gen Kuroki
retweeted at 13:45:55
#Julia言語 Julia自体のリポジトリを見ると、OffsetArrays.jl を使用するテストも書かれていることがわかります。
これより、1始まりでもなく0始まりでもない自由にインデックスの付け方を選べる配列もサポートする意思がJuliaの開発者達にあることがわかります。
https://github.com/JuliaLang/julia/blob/master/test/offsetarray.jl…
posted at 13:23:11
#Julia言語 Taylor展開を扱う場合には0始まりが便利です(添付画像1)。a_n/n^sの和は1始まりがうれしい。
Juliaの場合には多項式計算を高速にやってくれるevalpolyという函数があって、1始まりを前提としています。
evalpolyを使うと素朴なsumよりもとても速くなります(添付画像2)。 https://pic.twitter.com/OE84YS1ocV
posted at 13:19:46
#Julia言語 配列のインデックスは0始まりでも1始まりでも困る場合があって、自由に選べて欲しいといつも思います。
Juliaの場合には多くの基本ライブラリが1始まりを前提に書かれています。
それが「嫌い」になる自由はあるが、頭の硬くなっていることを疑われる覚悟する必要はあると思う。
posted at 13:19:46
#Julia言語 0始まりのインデックスを過学習していても恥じることがない人達がものすごくたくさんいる(恥じるのではなく「嫌い」と言う)ことには驚きなのだが、Fortranでは配列のインデックスの付け方を自由に選べるし、JuliaでもOffsetArrays.jlを使えば自由に選べます。
https://github.com/JuliaArrays/OffsetArrays.jl…
posted at 13:19:46
#Julia言語
-2から始めるJulia(笑)
添付画像中でインデックスが-2から始まるOffsetArrayを扱っている。Fortranと同様にインデックスの付け方を自由に選べるOffsetArrays.jlというパッケージがあります。
https://gist.github.com/genkuroki/3ccd6f6e294d35d0d319f5df5a641851…
https://twitter.com/phasetrbot/status/1279250817694855175… https://pic.twitter.com/N0eqFDXu74
posted at 13:19:45
全くのプログラミング初心者向けのJuliaの本…!誰か書いて。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 12:18:52
ごまふあざらし(GomahuAzarashi)@MathSorcerer
ビルドを速くするために64Core CPU 欲しくなってきた,ガクブル.
Retweeted by 黒木玄 Gen Kuroki
retweeted at 12:13:31
友達が OptimalTransport.jl のパッケージを作っててこれを身近で経験した
使ってみたい人どうぞ
私も研究で使い倒してる
https://github.com/zsteve/OptimalTransport.jl… https://twitter.com/genkuroki/status/1279240669312122882…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 12:05:36
#Julia言語 あと、Juliaのパワーユーザーは数学強者であることが多いので、Juliaのパッケージの情報を通して、プログラミングではなく、数学の勉強になっている部分もかなりあります。
おそらく、Juliaに触れなければ一生触れることができなかった可能性が高い数学にも触れることができた。
posted at 11:28:37
#Julia言語 「どんどん改良されて行くことの実感」は現在進行中のJuliaのような技術に触れなければなかなか経験できないことだと思います。
リポジトリを見に行って頑張って探せば具体的にどのように改良されたかも知ることができる。
posted at 11:28:37
#Julia言語 そして、v1.0以前からJuliaいじめの遊びを続けていると、
「あれ?以前のJuliaでは激遅になっていたはずなのに、遅くならない!」
と気付きます。末端一般ユーザーには容易に見えないところで、コンパイラの地道な改良が進んでいる。
これはユーザー的には非常にうれしいところです。
posted at 11:28:37
#Julia言語 その過程で気付くことの①は「Juliaは相当にひどく速度的に劣化する場合であっても動いてくれる」です。とにかく動いてくれないと困る場合にはありがたいです。
posted at 11:28:36
#Julia言語 を使い始める人は「堅苦しくなく、高速に動くプログラムを書きたい」という動機の人が多いと思います。そして、速度的に劣化する場合があることを知り、「Juliaをいじめて計算が激遅になるようにする遊び」を始めます。
posted at 11:28:36
暗算できるレベルのものも公式を使う必要があって、公式を覚えるのが大変だったしかえって時間かかるっていうね。
そして、現場では私は公式なんて一切使っていない😅
Retweeted by 黒木玄 Gen Kuroki
retweeted at 11:17:34
驚くことなかれ。🇦🇺も同じ。
投薬量を算出するテストで、公式を使わないと答があっていてもダメと言われた(白目) https://twitter.com/genkuroki/status/1279078295410098178…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 11:17:32
˙˚ʚ💖ɞ˚˙pianoyumi ˙˚ʚ💖ɞ˚˙@gotothejaeside
私も学生時代に数学がとても苦手でした。それはこういうことか。答えがあっていてもバツがつくからやる気をなくして文系進学コースに変更して、今に至る・・・笑
(今は理系の仕事www) https://twitter.com/genkuroki/status/1279078295410098178…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 11:11:51
数学を使うときにも、目的に合わせて、目的のために必要最小限の予備知識の範囲内で、上手に問題をこなせれば困らない。
#Julia言語 は「面倒だから手抜きでいいや」という方針で書かれたコードも動く設計になっているので(もちろん速度的劣化は起こり得る)、数学と同じような感じで使い易いです。
posted at 11:10:14
#Julia言語 しかし、Juliaを超高級電卓として利用している場合にはそこまで細かいことを気にして使うのは合理的ではないと思います。
自分の知識に応じて、例えば、Int64型やFloat64のような基本的な型のみを心にとめて、それらを明瞭に区別するようなコードを書くのでもよいと思います。
posted at 11:07:34
#Julia言語 以上のように、函数の引数 x の型が様々な場合に、xの型から他のものの型が順番に適切に決まって行くようにコードを書けば、その様々な場合のすべてに適用できる函数ができあがります。
posted at 11:07:33
#Julia言語 SymPyによる数式処理の場合に、
using SymPy
@ vars a
g(a, -2)
とするとまたしてもドメインエラーになる。そこで、Base.:^(::Sym, ::Integer)をオーバーライドすれば、
g(a, -2) → Sym型の1/a^2
となってくれます(添付画像)。
以上のソースコード↓
https://gist.github.com/genkuroki/6bcfa3c7fce417a4eae1bc31f243cdad… https://pic.twitter.com/YobfhKpEG7
posted at 11:07:33
#Julia言語
g(3, -2) → Float64型の0.1111111111111111
となります。inv(Int64型)の型はFloat64になります。
g(3//1, -2) → 1//9
行列の場合も大丈夫です(添付画像2)。 https://pic.twitter.com/v5XDyXFwWZ
posted at 11:07:32
#Julia言語 型の伝搬の例
f(x, k) = x^k
と定義すると、当然
f(3, 2) → 9
となるのですが、
f(3, -2) → DomainError with -2
となります。「整数^負の整数」はドメインエラーになる。そこで、
g(x, k) = typeof(inv(one(x)))(x)^k
とxをinv(one(x))の型に変更するようにすると~続く
posted at 11:07:32
#Julia言語 このようにしておけば、
x = Foo(123, "hoge")
はFoo{Int64, String}型になり、
y = Foo([1, 2, 3], Float64[1 2; 3 4])
はFoo{Array{Int64, 1}, Array{Float64, 2}}型になり、中身の具体的な型が外部に見えるようになって、型推論がうまく働くようになります。
posted at 10:08:33
#Julia言語 Juliaの型システムを全然理解していない段階では、自前の型を定義するときに、内容の型の指定を忘れたり、内容の型を抽象型で指定して、速度的劣化を招く可能性があります。この問題の初心者向けにシンプルな解決策は
struct Foo{Ta, Tb}
a::Ta
b::Tb
end
のように書くことです。
posted at 10:04:36
#Julia言語 失敗例の追加。
f(K) = Σ_{k∈K} k^2
を
f(K::Array{Int64, 1}) = sum(k^2 for k ∈ K)
と定義すると
f(1:10)
を実行できない函数fが出来上がります。この問題のシンプルな解決法は、引数に型注釈を付けずに、
f(K) = sum(k^2 for k ∈ K)
と書くことです。速度的劣化は一切ない。
posted at 10:00:12
#Julia言語
Juliaで函数を定義するときには「定義域と値域を固定して、その間の写像を作る」という発想は通用しません。
Juliaの函数では引数の型から型推論によって返り値の型が決まる!
Juliaの函数は定義域が可変で値域は定義域ごとにダイナミックに変わり得る。
posted at 09:55:06
#Julia言語 続き。これ、初心者だとかなり悩みます。
この問題の最もシンプルな解決法は、函数の引数に型注釈を付けずに、
function f(x)
~
end
と書くことです。
へたに函数の引数に型注釈をつけると、適用範囲が無用に狭くなって部品として使えない函数ができてしまいます。
posted at 09:50:03
#Julia言語 例えば、そのように定義された函数fに、Array{Float64, 2}型のuの境界部分を除いてできる
ũ = @ view(u[2:end-1, 2:end-1])
(@ の後の空白を消す)
をf(ũ)と適用しようとすると、エラーが出ます。その理由はũはSubArray型であり、もはやArray型ではないからです。
続く
posted at 09:50:03
#Julia言語 Int64やFloat64のような型であればシンプルに理解できますが、配列のようなものの型は大量に種類があってややこしい。
だから、Float64型の2次元配列のようなものを引数とする函数を
function f(x::Array{Float64, 2})
~
end
と定義すると、初心者は後で苦しむ可能性が高い。続く
posted at 09:40:46
#Julia言語 例えば函数中で
y = 2x
と書くと、xがInt64型ならyもInt64型になり、xがFloat64型ならyもFloat64型になります。xがArray{Float32, 2}型ならyもその型になる。
z = 2.0k
と書くと、kがInt64型でもFloat64型でも、2.0に合わせた型の自動プロモートによって、zはFloat64型になります。
posted at 09:40:46
#Julia言語 函数の定義では、引数の型から他のものの型が順番に一意的に決まるように書くことが基本になります。
しかし、数式中では適当に型を自動プロモートしてくれるので、新たな変数を函数内で作るときにのみ型の伝搬に注意すればよいです。
posted at 09:40:45
#Julia言語 函数の実行時に引数の型はすでに確定済みなので、Juliaは引数の型から他のモノの型を推測して、コンパイルを実行します。
そのときに、型推論が一意に確定しないと、複数の型に対応できるようなコードにコンパイルされるので、速度的な劣化が起こり得ます。
posted at 09:40:45
#Julia言語 続き。上の例では、函数f(k)にInt64型のk=34を渡してf(34)を実行するときに、函数fがネイティブコードにコンパイルされます。
そのとき、引数kに型注釈が付いていなくても、コンパイラは引数kの型を知ることになります。
函数の引数の型注釈はmuliriple dispatchのために利用されます。
posted at 09:40:44
#Julia言語 続き~のように書かず、型注釈を
function f(k)
kがInt64型のとき、Float64型のyを計算
(kが他の型のときも計算できてもよい)
return y
end
と完全に省略して、例えば
f(34)
を実行しても、速度的劣化は皆無です。
続く
posted at 09:19:26
#Julia言語
Juliaの型システムの理解は結構大変です。
理解するまでは「multiple dispatch以外で型宣言(型注釈)を無理してしない」とするのは十分に合理的だと思う。
函数の引数や値の型注釈を例えば
function f(k::Int64)::Float64
Int64型のkからFloat64型のyを計算
return y
end
続く
posted at 09:19:25
非公開
retweeted at xx:xx:xx
1から始めるJulia, 近所の本屋にさっぱりなくて入手難度が謎に高い
Retweeted by 黒木玄 Gen Kuroki
retweeted at 09:08:23
ごまふあざらし(GomahuAzarashi)@MathSorcerer
そういえばInterface6月号,PythonとJulia学べるんだっけ?
Retweeted by 黒木玄 Gen Kuroki
retweeted at 09:07:41
旦那が、息子の持ち帰ったプリントをみて激怒。
息子の書いたピリオドが楕円だからと綺麗な丸に直されてた。ほか、Uの左右が1ミリ揃ってないなど1ミリで直しが多数。
先生にいじめられているのか?
学校の摩訶不思議を知らないと、そう思うのか!
次の個人面談は俺が行く。
行ってらっしゃい!
Retweeted by 黒木玄 Gen Kuroki
retweeted at 02:40:02
Turing (https://bayes.club/@TuringLang)@TuringLang
Check out the latest episode of Learning Bayesian Statistics by @alex_andorra without our own @cameron_pfiffer!
https://open.spotify.com/episode/34AH8mNOB2kZQxyXXyRc0Y?si=iWT2ooJnTP-KEd3kn6__ow…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 02:38:20
非公開
retweeted at xx:xx:xx
ごまふあざらし(GomahuAzarashi)@MathSorcerer
Plots.jlイライラする場合はこっちを使って Julia カーネル導入するできゅ〜
#Julia言語
https://gist.github.com/terasakisatoshi/7278f26b74f2407bbbd177e883698c48…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 02:23:47
ごまふあざらし(GomahuAzarashi)@MathSorcerer
このツイートのスレッドで出てきたノートブックの話は
https://github.com/ageron/julia_notebooks…
からとってきた物です.ipynb のリンクをクリックすればブラウザ上で遊べます.
Retweeted by 黒木玄 Gen Kuroki
retweeted at 02:23:37
え? https://twitter.com/minahigamath/status/1279006671776305153…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 02:20:11
@f_sei それ僕去年減点されました
Retweeted by 黒木玄 Gen Kuroki
retweeted at 02:20:00
高校の教科書にないからダメという人は、例えば「a≦b」を「a≤b」と書いたら×にするっていうことなの?
Retweeted by 黒木玄 Gen Kuroki
retweeted at 02:19:57
ごまふあざらし(GomahuAzarashi)@MathSorcerer
やった〜Google Colab で GPU リソース使えるようになったできゅ〜.(実はCuArrays自体はdeprecatedになってるので
using CUDA をするのが良いできゅ.) https://pic.twitter.com/d3uWeBcaqJ
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:51:23
ごまふあざらし(GomahuAzarashi)@MathSorcerer
こうすると多少マシになるらしい.
#Julialang https://pic.twitter.com/aTRGOOZ1OK
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:51:19
ごまふあざらし(GomahuAzarashi)@MathSorcerer
using Plots を爆速 https://pic.twitter.com/S9ZA5i1e3b
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:51:05
ごまふあざらし(GomahuAzarashi)@MathSorcerer
ここで PackageCompiler.jl の時間です. https://pic.twitter.com/6dvOPn4AmC
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:50:49
ごまふあざらし(GomahuAzarashi)@MathSorcerer
キューン https://pic.twitter.com/ECWuskgodP
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:50:34
ごまふあざらし(GomahuAzarashi)@MathSorcerer
あああああああああああああああああああ https://pic.twitter.com/Fb7UoN9wMs
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:50:24
これ「コロコロ」って呼ぶ人正直にRT https://pic.twitter.com/uQ7MsD0wyK
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:45:44
小学生の時に友達が塾に通ってたんで、夏期講習に参加してみた。
この、"はやさ, じかん, きょり"を
"はじきの公式"
と称して当てはめて解く方法を延々と教えていたので、塾の存在意義がよく分からなくて辞めた。
自分は普通の小学生に通っていたが、この点は学校の先生の方が真っ当な教え方だった。 https://twitter.com/genkuroki/status/1279078295410098178…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 01:44:45
算数プリントの解答欄の「式 答え 」の形式に従うことは子供にとって非常に有害だと思います。
使えるのは常識とちょっとした計算力だけ。
公式は暗記していない。
先生が説明したやり方も覚えていない。
しかし、どんな場合でも自力で対応可能。
こうなる方向を目指さないと辛い。
posted at 01:01:21
一発で答えを出せる必要は皆無。
途中でちょっとした計算ミスをしても責める必要はない。
単に訂正すればいいだけ。
posted at 00:57:42
12秒で16m進むとする。
倍の24秒で32m進む。
24秒は15秒より長い。
12秒の半分の6秒で16mの半分の8m進む。
さらに半分にすると3秒で4m進む。
3倍すると9秒で12m進む。
5倍すると15秒で20m進む。
解答欄が「式 答え 」の形式なら、式の字を二重戦で消して、以上の議論を全部書けばよい。
posted at 00:56:34
数学の極意の1つは問題文にない問題も沢山解いてしまうこと。
例えば「12秒で16メートル進むと、15秒で何メートル進むか?」では15秒以外の場合の問題もたくさん解いてその過程でついでに15秒の場合もわかる、というのが良いのです。
公式に当てはめるだけだと積むべき経験が大量に失われる。
posted at 00:49:23
これは良記事。
速さや割合が絡む問題では右側に書いてある方法で子供に解いてもらうことが非常に良い経験になります。
最悪なのが公式に当てはめて解く方法。
新聞記事にある方法ならば予備知識は常識だけでよい。色々計算するうちに数と量について、子供の心の中に良質の回路ができて行きます。 https://twitter.com/conoki69/status/1279039151371718661… https://pic.twitter.com/ZgNmfzDSQb
posted at 00:43:24
「掛け算の順序」問題 根底にあるもの(西沢宏明さん)東京新聞7月2日夕刊より。この間読んだ湯川秀樹さんの「旅人」を思い出した。自分で考えた解き方に丸をもらえなくて、湯川さんが数学の道を選ばず、物理学に進んだとのこと。 https://pic.twitter.com/GY3SlIMLaG
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:35:49
@igarashi_hideo @1027stesc @428sk1_guardian = に3つの意味なんてありません。左右が等しい、という意味しかありません。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:32:43
こういうふうに「算数教育の理論体系」を構築してしまうのは、「わり算には包含除と等分除がある」とか「量分数と割合分数は違います」など、いわゆる #超算数 と同様の発想であり、教育的によろしくないと思います。 https://twitter.com/igarashi_hideo/status/1278911584610344960…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:32:30
一方で深海のクモヒトデは『平泳ぎ』を編み出した。
どういうことなの‥
https://www.youtube.com/watch?v=FW4M_rIn-4s…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:31:51
データサイエンティストを志す若者の98%は、最初の環境構築で32bit版のPythonをインストールしてしまって死亡すると言われています https://pic.twitter.com/s0VIfXbvat
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:31:15
そして、「{a_n}や(a_n)と書け」という主張もおかしく、a_nで問題ありません。(a_n)が数列なら、一般項a_nはnの関数なので単調増加と言って何も問題ありません。この誤解はおそらく大学では単調増加列などという言葉を使うので、一般項をもってくると違和感があることから生じるのでしょうが。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:24:45
また、この採点者の意図を「a_nは一般項であって数列を表さないから単調増加を言いたいなら{a_n}と書くべき」と解釈する人もいるようです(真相はわかりませんが違う気がしています)。この数列の表記についてはいっこういい加減に扱われることが多く、それは高校だけでなく大学でもそうでしょう。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:24:42
非公開
retweeted at xx:xx:xx
「今の若者は堪え性が無くすぐに仕事をやめる」と言われるが、高校の先生が卒業後すぐに仕事をやめちゃった卒業生に会って話を聞くとたいていの場合「そんな職場はやめることが出来て良かった」事例なんだとか。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:07:43
これは別の本なのですが、「90年ごろまでは日本の学校は嫌な場所でも通って卒業すればそれなりの就職が出来たけど今は出来なくなったので学校に通うメリットが無くなり不登校が増えた。不登校は労働問題」という記述があった。
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:07:37
非公開
retweeted at xx:xx:xx
数学に限らず、どの教科でも同じこと言えるなあ。 https://twitter.com/genkuroki/status/1278844343265095680…
Retweeted by 黒木玄 Gen Kuroki
retweeted at 00:04:41
#Julia言語 REPLから出ずにちょっとだけ変更したコードを再実行することを楽にできるツールが、Jupyter (IJulia.jl) や Juno です。VS Code 対応も便利らしい(まだ試していない)。
REPLも幾つかパッケージを使えばかなり便利です。
試行錯誤の段階が終わったら julia foo.jl も便利です。
posted at 00:03:50
#Julia言語 一般に、試行錯誤が必要でコードのちょっとした変更を繰り返す段階では、julia foo.jl を繰り返すと繰り返し同じコードをコンパイルする時間が消費されて、ひどく損をします。
REPL内からincludeする方が勝ります。
しかし、手動でそれを行うのは面倒なので自動化する方が合理的。
posted at 00:03:49