新しい物理定数

SI単位
本日からSI単位の定義が新しくなる.カンデラを除く6つの基本単位の内,秒とメートルの定義は変わらなかったが,残りの4つの基本単位が,4つの物理定数から定義されることになった.これらの物理定数の値は,今後はほぼ変わることが無いだろうから,記憶しておく価値が高まったと言えるだろう.そこで,日本人に覚えやすいように語呂合わせを考えてみた.いくつか考えた中で,まともそうなものを一つずつ紹介する.ちなみに,マイナスは「の」と読むことにしている.

プランク定数(6.62607015e-34) 室に群れ生れ,苺の実よ.

ボルツマン定数(1.380649e-23) 遺産はゼロ,無欲の罪.

電気素量(1.602176634e-19) 広間に避難路,武蔵野一区.

アボガドロ定数(6.02214076e23) 六列に石,オセロ詰み.

2022.4.7追記 電気素量(1.602176634e-19) 人群れに避難路,武蔵野一区. の方がマシかな.後半をもう少しなんとかしたいけど. 電気素量(1.602176634e-19) 人群れに避難路,無残,死の一苦. とかはなんか酷い.

Read more...

多面体の描画

rglで多面体

正十二面体や正二十面体はややこしい形をしているので、描くのが困難である。rglでこれらを描画しようと思ったら、結構簡単だった。

open3d()
shade3d(dodecahedron3d(col='red'))

のようにすると良いようです。任意の多面体を描くには、tmesh3dを使うと良いようです。ただ、頂点の座標を求めたり、面を定義したりするのが、面倒な気がします。

Read more...

新しい時代

様々な定数
来月から,一つの新しい時代が始まろうとしている。これまで,SI単位は,七つの基本単位が定義され,それらを元に様々な単位が定義されていた。 これが五月二十日から,新しい定義に移行するのである。新しい定義では,三つの基本単位については変更はないが,四つの基本単位は,プランク定数,ボルツマン定数,アボガドロ定数,電気素量から定義されることになった。これまでも光速からメートルが定義されていたが,これで五つの基本的な物理定数が真の意味で定数となり,ここから五つの基本単位ができることとなる。カンデラはなぜ必要なのかはよく分からないが,秒はこれまで通りセシウムを使って定義されている。基本的な物理定数で一定の周期をもつものがあれば,秒もこれを使って定義できるのかも知れないが,今のところそれは難しいようである。また,いずれは精度の高いストロンチウムに置き換えられるのでは無いかと予想している。 これらの物理定数をRを使って使うことも多くなるかも知れないので,以下に定義を書いておこう。 完全な定数になったわけなので、覚えないといけないかな。

nucs<-9192631770 #1/s hyperfine structure transition frezuency of 133Cs
cl<-299792458 #m/s speed of light
hp<-6.62607015e-34 #Js Plank constant
ec<-1.602176634e-19 #C elementary charge
kb<-1.380649e-23 #J/K Boltzmann constant
na<-6.02214076e23 #1/mol Avogadro constant
kcd<-683 #W/sr luminous efficacy of radiation of frequency 540e12Hz
Read more...

Rの行列

diagの挙動
Rで角運動量演算子を行列表現するときに、diag(seq(j,-j,-1))というようにしていた。しかし、jが0のときには、エラーが出ることが分かった。調べてみると、diagは、成分が二個以上配列を渡されたときには、それを対角成分とする行列を返すが、成分が一個のときには、それをスカラーとみなして、そのスカラーの次元を持つ単位行列を返すことが分かった。そして、0に対しては、0次元の行列をつくろうとする。これがエラーの原因であることが分かった。臨む結果を得るために、if文で条件分岐することにしたが、良い書き方がないかな。

Read more...

fillの挙動

ruby/tkの互換性

昔ruby/tkで作ったプログラムを動かそうと思ったら、エラーが出て動かなかった。rubyのversionによる違いを修正しても動かないので、tk部分だと予想した。エラー箇所をよくよく見てみると、

t=TkcOval.new(@area,x-r,y-r,x+r,y+r,'fill'=>'black')

のところのfillが問題だということが分かった。これを

t=TkcOval.new(@area,x-r,y-r,x+r,y+r)
t.fill='black'
と直したら動くようになったが、一度変数を定義しないと属性を指定できないのは面倒に感じる。
Read more...

pdfの結合

imagemagickではダメだった

複数のpdfを結合して一つのpdfにしたいと思い調べてみた。convertを使って

convert c*.pdf out.pdf
とすれば良いらしいので、やってみたが、長い時間がかかってout.pdfを作ったが、エラーが出てうまくいかなかった。そこで、pdftkを使うことにした。インストールしようとしたら、すでに入っていた。コマンドラインで
pdftk c*.pdf cat output out.pdf
としたら、短時間でファイルが生成された。こちらはうまく読めた。少しコマンドが複雑だが、pdftkは便利そうだ。
Read more...