2019年1月26日土曜日

Juliaでパズル(3)

Juliaでパズル(2)からの続き)

世の中で流布している数学パズルだと,4つの数字と加減乗除を組み合わせて10をつくる Make 10 が有名らしい。もちろん,この手の問題では計算結果はすべて整数となるのが普通であるが,今回は,実数の範囲で計算して最後に整数化できるものを探している。

とりあえず,2項演算だけを組み合わせた結果をすべて探すプログラムを作ってみた。

(1) findfirst()のように,ある目的の数に一致する数をコレクション(配列またはタプル)の中から探すとともに,その位置の添字を返すことができれば有り難い。いまのところ「タプルの配列に対して1コマンドである数字を見つける方法」がわからない。

(2) 2次元配列ならば融通がききそうなのであるが,「タプルの配列を1コマンドで多次元配列に展開する方法」がわからない。もちろん地道にやればできることなのだが。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
function cc(a,b)
  return 10*a+b
end

function me(op, op1, op2)
  expr = Expr(:call,Symbol(op), op1, op2)
  return expr
end

function dop1(a,b,c)
# ((a,b),(cd))
    x=me(a,1,1)
    y=me(c,1,1)
    z=me(b,x,y)
    if b=="cc"
      z=:0
    end
    return (z,eval(z))
end

function dop2(a,b,c)
# (((a,b),c),d)
    x=me(a,1,1)
    y=me(b,x,1)
    z=me(c,y,1)
    if  (a!="cc" && b=="cc") || ((a!="cc" || b!="cc") && c=="cc")
      z=:0
    end
    return (z,eval(z))
end

function dop3(a,b,c)
# ((a,(b,c)),d)
    x=me(b,1,1)
    y=me(a,1,x)
    z=me(c,y,1)
    if a=="cc" || c=="cc"
      z=:0
    end
    return (z,eval(z))
end

function dop4(a,b,c)
# (a,((b,c),d))
    x=me(b,1,1)
    y=me(c,x,1)
    z=me(a,1,y)
    if a=="cc" || (b!="cc" && c=="cc")
      z=:0
    end
    return (z,eval(z))
end

function dop5(a,b,c)
# (a,(b,(c,d)))
    x=me(c,1,1)
    y=me(b,1,x)
    z=me(a,1,y)
    if a=="cc" || b=="cc"
      z=:0
    end
    return (z,eval(z))
end

pz=[]
uno=["+","-","*","/","cc"]
for a in uno, b in uno, c in uno
    d,e = dop1(a,b,c)
    if e>0.5 && e<Inf
      push!(pz,(d,e))
    end
    d,e = dop2(a,b,c)
    if e>0.5 && e<Inf
      push!(pz,(d,e))
    end
    d,e = dop3(a,b,c)
    if e>0.5 && e<Inf
      push!(pz,(d,e))
    end
    d,e = dop4(a,b,c)
    if e>0.5 && e<Inf
      push!(pz,(d,e))
    end
    d,e = dop5(a,b,c)
    if e>0.5 && e<Inf
      push!(pz,(d,e))
    end
end

qz=[]
sort!(pz, by=x->x[2])
pl=length(pz)
for i in 1:pl
    push!(qz,Int(ceil(pz[i][2])))
end

for i in 1:121
  if in(i,qz)==true
    j=findfirst(isequal(i),qz)
    rz=repr(pz[j][1])
    rz=replace(rz,":"=>"")
    rz=replace(rz,"cc(1, 1)"=>"11")
    rz=replace(rz,"cc(11, 1)"=>"111")
    println(i," -> ",rz," = ",pz[j][2])
  end
end
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 -> (1 - 1 / 11) = 0.9090909090909091
2 -> (1 + 1 / 11) = 1.0909090909090908
3 -> ((1 + 1) + 1 * 1) = 3
4 -> ((1 + 1) + (1 + 1)) = 4
6 -> (11 / (1 + 1)) = 5.5
9 -> (11 - (1 + 1)) = 9
10 -> (1 * 11 - 1) = 10
11 -> ((1 + 11) - 1) = 11
12 -> (1 + 1 * 11) = 12
13 -> ((1 + 1) + 11) = 13
22 -> ((1 + 1) * 11) = 22
110 -> (111 - 1) = 110
111 -> (1 * 111) = 111
112 -> (1 + 111) = 112
121 -> (11 * 11) = 121


「冬麗の不思議をにぎる赤ン坊」(野澤節子 1920-1995)

2019年1月25日金曜日

Juliaでパズル(2)

Juliaでパズル(1)からの続き)

4つの数字から整数をつくるパズルをコンピュータで処理させるためには,式に対応する文字列を,プログラム内で式として評価する必要がある。これは,JuliaドキュメントのMetaprogrammingのところに詳しいが,ここでのポイントは,Juliaでは,Juliaプログラムの中で,Juliaコードを生成したり操作したりすることができるということである。具体例としては次のような例文が示されている。

julia> function math_expr(op, op1, op2)
           expr = Expr(:call, op, op1, op2)
           return expr
       end
math_expr (generic function with 1 method)

julia>  ex = math_expr(:+, 1, Expr(:call, :*, 4, 5))
:(1 + 4 * 5)

julia> eval(ex)
21

そこで(1, 1, 1, 1)パズルで上記を用い,2項演算子を3つ与えた場合の5つのパターンの構文とその値を出力する関数を書いてみる。cc(a, b) = 10*a + bは2つの数字を並べて2桁の数(例えば a=1, b=1 なら cc(1,1) = 11である)を作る関数である。funcion me() においてSymbol(op)は文字列として与えた2項演算子を Expr型に変換する関数である(注:Ver 0.6以前の資料では symbol と小文字で始まっているので,Ver. 1.0 以降では大文字にすること)。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function cc(a,b)
  return 10*a+b
end

function me(op, op1, op2)
  expr = Expr(:call,Symbol(op), op1, op2)
  return expr
end

function dop1(a,b,c)
# ((a,b),(cd))
    x=me(a,1,1)
    y=me(c,1,1)
    z=me(b,x,y)
    println((z,eval(z)))
end

function dop2(a,b,c)
# (((a,b),c),d)
    x=me(a,1,1)
    y=me(b,x,1)
    z=me(c,y,1)
    println((z,eval(z)))
end

function dop3(a,b,c)
# ((a,(b,c)),d)
    x=me(b,1,1)
    y=me(a,1,x)
    z=me(c,y,1)
    println((z,eval(z)))
end

function dop4(a,b,c)
# (a,((b,c),d))
    x=me(b,1,1)
    y=me(c,x,1)
    z=me(a,1,y)
    println((z,eval(z)))
end

function dop5(a,b,c)
# (a,(b,(c,d)))
    x=me(c,1,1)
    y=me(b,1,x)
    z=me(a,1,y)
    println((z,eval(z)))
end
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

dop1("cc","/","+")
dop2("cc","+","*")
dop3("-","*","/")
dop4("+","\\","^")
dop5("+","-","*")

(:(cc(1, 1) / (1 + 1)), 5.5)
(:((cc(1, 1) + 1) * 1), 12)
(:((1 - 1 * 1) / 1), 0.0)
(:(1 + (1 \ 1) ^ 1), 2.0)
(:(1 + (1 - 1 * 1)), 1)

Juliaでパズル(3)に続く)

2019年1月24日木曜日

Juliaでパズル(1)

4つの同じ数字に演算をほどこして,1から順に整数を作るというパズルがある。
例えば,6÷6+6-6 = 1,  6÷6+6÷6=2,  (6+6+6)/6 = 3,  などなど。
これを,Juliaの基本演算子や基本関数だけを使って実行してみると,

1 1+1-1*1
2 1+1-1+1
3 1+1*1+1
4 1+1+1+1
5 Int(floor(11/(1+1)))
6 Int(ceil(11/(1+1)))
7 Int(floor(exp(1*1+1*1)))
8 Int(ceil(exp(1*1+1*1)))
9 11-1-1
10 11-1*1
11 11+1-1
12 11+1*1
13 11+1+1
14 Int(ceil(sqrt(sqrt(exp(11)))-1-1))
15 Int(floor(exp(1+sqrt(1+1+1))))
16 Int(ceil(exp(1+sqrt(1+1+1))))
17 Int(floor(exp((1+1)*sqrt(1+1))))
18 Int(ceil(exp((1+1)*sqrt(1+1))))
19 Int(floor(exp(1+1+1)-1))
20 Int(floor(exp(1+1*1+1)))
21 Int(floor(exp(1+1+1)+1))
22 Int(ceil(exp(1+1+1)+1))
23 Int(floor(exp(sqrt(1+1)*cbrt(11))))
24 Int(ceil(exp(sqrt(1+1)*cbrt(11))))
25 Int(floor(exp(sqrt(11))-1-1))
26 Int(floor(exp(sqrt(11))-1*1))
27 Int(floor(exp(sqrt(11))+1-1))
28 Int(ceil(exp(sqrt(11))+1-1))
29 Int(ceil(exp(sqrt(11))+1*1))
30 Int(ceil(exp(sqrt(11))+1+1))
31 Int(floor(sqrt(sqrt(exp(11)))*(1+1)))
32 Int(floor(cbrt(exp(sqrt(111)))-1))
33 Int(floor(cbrt(exp(sqrt(111)))*1))
34 Int(floor(cbrt(exp(sqrt(111)))+1))
35 Int(ceil(cbrt(exp(sqrt(111)))+1))
36 Int(floor(exp(sqrt(11+1+1))))
37 Int(floor(cbrt(exp(11))-1-1))
38 Int(ceil(cbrt(exp(11))-1-1))
39 Int(ceil(cbrt(exp(11))-1*1))
40 Int(ceil(cbrt(exp(11))+1-1))
41 Int(ceil(cbrt(exp(11))+1*1))
42 Int(ceil(cbrt(exp(11))+1+1))
43 Int(floor(cbrt(sqrt(1+1)*exp(11))))
44 Int(ceil(cbrt(sqrt(1+1)*exp(11))))
45 Int(ceil(exp(cbrt(111)-1)))
46 Int(ceil(exp(sqrt(sqrt(11))+1+1)))
47 Int(ceil(sqrt(exp(11-sqrt(11)))))
などなど

(1)もし,ユーザ定義関数が使えるならば,任意の n に対して,すべての整数を作り出すことが簡単にできるのであった・・・

f(n1,n2,n3,n4)=Int(n1/n2+n3-n4)
f(n)=Int(ceil(n+1/n))

f(1,1,1,1)
1
f(f(1,1,1,1))
2
f(f(f(1,1,1,1)))
3

(2)juliaドキュメントの算術的演算と基本関数から主な演算と関数を選んで使うことにする。例えば,2項演算ならば,+, -, *, / の4種とする(ここでは,整数ゼロ除算をさけるために÷と%は含めない)。数字を2〜4桁並べる操作が必要なのでこれに対応する2項演算を1つ付け加えると5種になる。この2項演算は cc(a,b)=10*a+b で実現できる(例えば3桁並べるには,cc(cc(a, b), c)とすればよい),ただし適応できる位置に制限があることに注意する。次に単項演算を選ぶ。ここでは,+, sqrt(abs()), qbrt(abs()), exp(), log(abs()) の5種とする(+は恒等演算子)。

(3)4つの数字(a, b, c, d,  a = b = c = d)に対応する2項演算のパターンは5つある。
2項演算を(a, b)などで表し,ふつうのカッコの優先順位で計算するものとして,
((a, b),(c, d)),(((a, b), c), d),(a,(b,(c,  d))),
((a,(b, c)), d),(a,((b, c), d))の5パターンである。1パターンあたりの2項演算の数は3であるから,パターンあたりの総数は$5^3$通りである。

(4)上記の各数字や2項演算の結果に対して5種の単項演算を任意の階数だけ作用することができる。単項演算のエントリーポイントは1パターンにつき$n$個あるとする。単項演算子の種類を$m$個とし,エントリーポイントに$k$個まで入るならば,パターンあたりの配位の数は,$\sum_{j=0}^k  {}_{n+j-1}C_j m^k$となる。

したがって,この他に条件をつけなければ,総数で $5 \times 5^3 \times (5^k \dfrac{n^k}{k!}+\cdots) $個の式が得られる。これをしらみつぶしに調べるのだろうか・・・

Juliaでパズル(2)に続く)

2019年1月23日水曜日

円周率が22/7より小さいことの証明

というタイトルのWikipedia記事がある(円周率が22/7より小さいことの証明)。

証明は次の通りである。
\begin{equation}
\begin{aligned}
0 &< \int_0^1 \dfrac{x^4(1-x)^4}{1+x^2} dx \\
& = \int_0^1\dfrac{x^4-4x^5+6x^6-4x^7+x^8}{1+x^2} dx\\
&= \int_0^1x^6 -4x^5 + 5x^4 -4x^2 +4 -\dfrac{4}{1+x^2} dx\\
&=\frac{x^7}{7}-\frac{2 x^6}{3}+x^5-\frac{4 x^3}{3}+4 x-4 \tan^{-1} x\  \Big|_0^1\\
&= \frac{1}{7}-\frac{2}{3}+1-\frac{4}{3}+4-\pi\\
&=\frac{22}{7}-\pi
\end{aligned}
\end{equation}

同様にして円周率が355/113より小さいことも証明される。
\begin{equation}
\begin{aligned}
0 &< \int_0^1 \dfrac{x^8(1-x)^8(25+816x^2)}{3164(1+x^2)} dx \\
&= \cdots\\
&= \frac{12 x^{17}}{791}
-\frac{102 x^{16}}{791}
+\frac{3151 x^{15}}{6780}
-\frac{703 x^{14}}{791}
+\frac{393 x^{13}}{452}
-\frac{23 x^{12}}{113}\\
&-\frac{145 x^{11}}{452}
-\frac{5 x^{10}}{791}
+\frac{1409 x^9}{3164}
-\frac{4 x^7}{7}
+\frac{4 x^5}{5}
-\frac{4 x^3}{3}
+4 x−4 \tan^{-1}x \Bigr|_0^1 \\
&= \cdots\\
&=\frac{355}{113}-\pi
\end{aligned}
\end{equation}

 えーっ,3164と816と25はどこから連れてきたのだ・・・という方は上記記事から参考文献をたどってみよう。この世界にはまだまだ自分が知らないことが沢山埋もれている。

2019年1月22日火曜日

角運動量の合成への道(4)

角運動量の合成への道(3)からの続き)

次に,スピン1の粒子の軌道角運動量$\boldsymbol{L}$とスピン角運動量$\boldsymbol{T}$の合成を考える。$\boldsymbol{J}=\boldsymbol{L}+\boldsymbol{T}$であり,前回までの手順と同様に,$(\boldsymbol{J}^2, J_z) | J M \rangle = (J(J+1)\hbar^2, M\hbar ) | J M \rangle$ となる状態は,$| \ell m \rangle | t \rangle$ の線形結合で表されるとする。

(1)$J_z$を$| \ell m \rangle | t \rangle$に作用させる。
$J_z | \ell m \rangle | t \rangle = (m + t) \hbar  | \ell m \rangle | t \rangle = M  | \ell m \rangle | t \rangle$。したがって,$m=M-t$となる。

(2)$\boldsymbol{J}^2$を$| \ell M-t \rangle | t \rangle$に作用させる。
\begin{equation}
\begin{aligned}
(\boldsymbol{L}^2+\boldsymbol{T}^2+2L_zT_z &+L_{+}T_{-}+L_{-}T_{+})| \ell M-t \rangle | t \rangle \\
= & \sqrt{\ell(\ell+1)-m(m-1)} \sqrt{2-t(t+1)}\ \hbar^2 | \ell m-1 \rangle | t+1 \rangle\\
+ & (\ell(\ell+1)+2+2 m t )\ \hbar^2 | \ell m \rangle | t \rangle \\
+ & \sqrt{\ell(\ell+1)-m(m+1)}\sqrt{2-t(t-1)}\ \hbar^2   | \ell m+1 \rangle | t-1 \rangle
\end{aligned}
\end{equation}
ここで,$\boldsymbol{J}^2$の固有値を決める固有値方程式は次のようになる。
\begin{equation}
\boldsymbol{J}^2 \sum_{t=-1}^1 \alpha_t  | \ell m-t \rangle | t \rangle
= \lambda \sum_{t=-1}^1 \alpha_t  | \ell m-t \rangle | t \rangle
\end{equation}
ここで$\ell(\ell+1)=j$, $m(m\pm 1)=\mu_{\pm}$と略記する。
\begin{equation}
\begin{pmatrix}j+2m & \sqrt{2(j-\mu_{-})} & 0 \\
\sqrt{2(2(j-\mu_{-})} & j+2 & \sqrt{2(j-\mu_{+})}\\
0& \sqrt{2(j-\mu_{+})}&j-2m \end{pmatrix}
\begin{pmatrix} \alpha_{+1} \\ \alpha_0 \\ \alpha_{-1}\end{pmatrix}
= \lambda \begin{pmatrix} \alpha_{+1} \\ \alpha_0 \\ \alpha_{-1} \end{pmatrix}
\end{equation}
この固有値方程式を解くと,$\lambda=(\ell+1)(\ell+2), \ell(\ell+1), \ell(\ell-1)$となる。
また,固有ベクトルの係数は,
\begin{array}{c|ccc}
  \lambda  & \alpha_{+1} & \alpha_{0} & \alpha_{-1} \\
  \hline
 \ell(\ell-1)
& \sqrt{\frac{(\ell-m)(\ell-m+1)}{2\ell(2\ell+1)}}
& -\sqrt{\frac{(\ell+m)(\ell-m)}{\ell(2\ell+1)}}
& \sqrt{\frac{(\ell+m)(\ell+m+1)}{2\ell(2\ell+1)}}  \\
  \hline
 \ell(\ell+1)
& -\sqrt{\frac{(\ell+m)(\ell-m+1)}{2\ell(\ell+1)}}
& \sqrt{\frac{m}{\ell(\ell+1)}}
&\sqrt{\frac{(\ell-m)(\ell+m+1)}{2\ell(\ell+1)}} \\
 \hline
 (\ell+1)(\ell+2)
& \sqrt{\frac{(\ell+m)(\ell+m+1)}{2(\ell+1)(2\ell+1)}}
& \sqrt{\frac{(\ell+m+1)(\ell-m+1)}{(\ell+1)(2\ell+1)}}
&\sqrt{\frac{(\ell-m)(\ell-m+1)}{2(\ell+1)(2\ell+1)}} \\
  \hline
\end{array}


2019年1月21日月曜日

角運動量の合成への道(3)

角運動量の合成への道(2)からの続き)

2つの独立な自由度からなる系の別の例として,1つの粒子が軌道角運動量$\boldsymbol{L}$とスピン角運動量$\boldsymbol{S}$を持つ場合を考える。これらを合成した全角運動量を $\boldsymbol{J}=\boldsymbol{L}+\boldsymbol{S}$とする(2粒子系の場合と同様,より正確には通常の3次元空間とスピン空間に作用する演算子のテンソル積 $\boldsymbol{J}=\boldsymbol{L}\otimes \boldsymbol{1}_S+\boldsymbol{1}_L\otimes\boldsymbol{S}$)。

軌道角運動量$\boldsymbol{L}$の固有状態を$|\ell m \rangle$,スピン角運動量$\boldsymbol{S}$の固有状態を$| s \rangle$とし,その積$|\ell m \rangle | s \rangle$を考える。このとき,次の関係が成り立っている。
\begin{equation}
\begin{aligned}
\boldsymbol{L}^2 |\ell m\rangle = \ell(\ell+1)\hbar^2 |\ell m\rangle, \quad &
\boldsymbol{S}^2 | s\rangle = \frac{3}{4} \hbar^2 |s \rangle, \\
L_z |\ell m\rangle = m \hbar |\ell m\rangle, \quad &
S_z | s\rangle = s \hbar |s \rangle, \\
L_\pm |\ell m\rangle = \sqrt{\ell(\ell+1)-m(m\pm 1)} \ \hbar |\ell m \pm 1 \rangle, \quad &
S_\pm | s\rangle = \sqrt{\frac{3}{4}-s(s\pm 1)} \ \hbar |s \pm 1 \rangle
\end{aligned}
\end{equation}
また,合成角運動量$\boldsymbol{J}$も一般の角運動量の交換関係,$[J_i, J_j]=i\hbar \epsilon_{ijk} J_k$を満足するので,$\boldsymbol{J}^2$と$J_z$の同時固有状態を$|j\mu \rangle$とすると,次の関係が成り立つ。
\begin{equation}
\boldsymbol{J}^2 |j \mu \rangle = j(j+1)\hbar^2 |j \mu \rangle, \quad
J_z |j \mu\rangle = \mu \hbar |j \mu\rangle
\end{equation}
$[\boldsymbol{J}^2,\boldsymbol{L}^2]=0, [\boldsymbol{J}^2,\boldsymbol{S}^2]=0, [J_z,L_z]=0,[J_z,S_z]=0$などが成立するので,$|j\mu\rangle$を$|\ell m \rangle | s \rangle$から構成することができる($[\boldsymbol{J}^2,L_z]\neq 0$や$[\boldsymbol{J}^2,S_z]\neq 0$なので,一般には単独の$|\ell m \rangle | s \rangle$は$\boldsymbol{J}^2$の固有状態ではない)。

(1)$J_z$を$|\ell m \rangle | s \rangle$に作用させる。
\begin{equation}
J_z |\ell m \rangle | s \rangle = (L_z+S_z) |\ell m \rangle | s \rangle = (m+s)\hbar |\ell m \rangle | s \rangle
\end{equation}
したがって,$|\ell m \rangle | s \rangle$は,$J_z$の固有値$\mu\hbar = (m+s)\hbar$の固有状態である。以下,$m=\mu-s$と表記することもある。

(2)$\boldsymbol{J}^2$を$|\ell \mu-s \rangle | s \rangle$に作用させる。
\begin{equation}
\begin{aligned}
\boldsymbol{J}^2 &= \boldsymbol{L}^2+ \boldsymbol{S}^2 + 2 \boldsymbol{L}\cdot\boldsymbol{S} = \boldsymbol{L}^2+ \boldsymbol{S}^2 + 2 L_z S_z + L_{+} S_{-} + L_{-} S_{+} \\
\boldsymbol{J}^2 |\ell \mu-s \rangle |s \rangle &= \{ \ell(\ell+1)+\frac{3}{4} + 2 (\mu-s) s \} \hbar^2 |\ell \mu-s \rangle |s \rangle \\
&+ \sqrt{\ell(\ell+1)-(\mu-s)(\mu+s)} \ \hbar^2 |\ell \mu+s \rangle | -s \rangle\\
&= \{ j^2+2s\mu \}\ \hbar^2 |\ell \mu-s \rangle |s \rangle
+ \sqrt{j^2-\mu^2}\ \hbar^2 |\ell \mu+s \rangle | -s \rangle\\
\end{aligned}
\end{equation}
ここで,$j=\ell+\frac{1}{2}$とし,$s^2=\frac{1}{4}$を用いた。これから,$\boldsymbol{J}^2$の固有状態を構成するために,$|\mathscr{j} \mu\rangle = \alpha |\ell \mu-\frac{1}{2} \rangle |\frac{1}{2} \rangle + \beta |\ell \mu+\frac{1}{2} \rangle | -\frac{1}{2} \rangle$ とする。ただし規格化条件より$|\alpha|^2+|\beta|^2 = 1$である。この2つの独立な状態に対する固有値方程式は $\boldsymbol{J}^2 | \mathscr{j} \mu\rangle = \lambda \hbar^2  | \mathscr{j} \mu\rangle$ であり,$\alpha, \beta$を用いると次のように行列形式で表される。
\begin{equation}
\begin{pmatrix} j^2+\mu & \sqrt{j^2-\mu^2} \\ \sqrt{j^2-\mu^2} & j^2-\mu \end{pmatrix}
\begin{pmatrix} \alpha \\ \beta \end{pmatrix}
= \lambda \begin{pmatrix} \alpha \\ \beta \end{pmatrix}
\end{equation}
この$\alpha, \beta$に対する連立方程式が自明でない解を持つための条件は,右辺を移行して0にしたときの左辺の行列式が0になることであり,$(j^2+\mu -\lambda)(j^2-\mu -\lambda)-(j^2-\mu^2)=0$という$\lambda$の2次方程式になる。$\therefore (\lambda -j(j+1))(\lambda -j(j-1)) = 0$から$\boldsymbol{J}^2$の固有値$\lambda \hbar^2$は,$j(j+1)\hbar^2$と$j(j-1)\hbar^2$である(したがって,$\mathscr{j}=j$ と $j-1$)。

(3)固有状態の構成
上記の$\alpha$と$\beta$の連立方程式に,固有値$\lambda$を代入して,規格化条件とともに$\alpha$と$\beta$を求めると次のようになる。
\begin{array}{c|cc||cc}
  \lambda  & \alpha & \beta & \alpha & \beta\\
  \hline
 j(j+1) & \sqrt{\dfrac{j+\mu}{2j}} & \sqrt{\dfrac{j-\mu}{2j}}
 &\sqrt{\dfrac{\ell+m}{2\ell+1}}  & \sqrt{\dfrac{\ell-m+1}{2\ell+1}} \\
  \hline
 j(j-1)  & \sqrt{\dfrac{j-\mu}{2j}} & -\sqrt{\dfrac{j+\mu}{2j}}
&\sqrt{\dfrac{\ell-m+1}{2\ell+1}}  & -\sqrt{\dfrac{\ell+m}{2\ell+1}}
\end{array}
まとめると,
\begin{equation}
\begin{array}{l}
  \begin{array}{|l|}
  \hline

  \quad |\ j\quad\ \mu\rangle = \sqrt{\dfrac{j+\mu}{2j}} |\ell \mu-\frac{1}{2} \rangle |\frac{1}{2} \rangle+\sqrt{\dfrac{j-\mu}{2j}} |\ell \mu+\frac{1}{2} \rangle | -\frac{1}{2} \rangle \quad (\lambda = j(j+1)) \quad \\
  \quad |j-1\mu\rangle = \sqrt{\dfrac{j-\mu}{2j}} |\ell \mu-\frac{1}{2} \rangle |\frac{1}{2} \rangle-\sqrt{\dfrac{j+\mu}{2j}} |\ell \mu+\frac{1}{2} \rangle | -\frac{1}{2} \rangle \quad (\lambda = j(j-1) ) \quad \\

  \hline
  \end{array} \\
\end{array}
\end{equation}

角運動量の合成へ道(4)に続く)

2019年1月20日日曜日

角運動量の合成への道(2)

角運動量の合成への道(1)の続き)

2つの独立な自由度がある系の例として,スピン$\frac{1}{2}$を持った2粒子の系を考え,この系の合成スピン$\boldsymbol{S}=\boldsymbol{S}_1+\boldsymbol{S}_2$を考える(より正確にいうと,2つの状態ベクトルのテンソル積の状態に作用する演算子のテンソル積を考えるので,$\boldsymbol{S}=\boldsymbol{S}_1 \otimes \boldsymbol{1}_2+\boldsymbol{1}_1 \otimes \boldsymbol{S}_2$が $|s_1\rangle_1 \otimes |s_2\rangle_2$ に作用する。ここでは,演算子は $\boldsymbol{S}=\boldsymbol{S}_1+\boldsymbol{S}_2$とし,状態の方も,$|s_1\rangle  |s_2\rangle$と表記する)。

スピン$\frac{1}{2}$演算子の固有状態を$|\frac{1}{2}s\rangle$ として$\frac{1}{2}$を省略すると,2粒子状態は,$|s_1\rangle |s_2\rangle$と表わされ,次の関係が成立する($ |\pm \frac{3}{2} \rangle = 0$ とする)。
\begin{equation}
\begin{aligned}
\boldsymbol{S}_1^2 |s_1\rangle |s_2 \rangle = \frac{3}{4}\hbar^2 |s_1\rangle |s_2 \rangle,
\quad & \boldsymbol{S}_2^2 |s_1\rangle |s_2 \rangle = \frac{3}{4}\hbar^2 |s_1\rangle |s_2 \rangle \\
S_{1z} |s_1\rangle |s_2 \rangle = s_1\hbar |s_1\rangle |s_2 \rangle,\
\quad & S_{2z} |s_1\rangle |s_2 \rangle = s_2 \hbar |s_1\rangle |s_2 \rangle \\
S_{1\pm} |s_1 \rangle |s_2 \rangle = \hbar |s_1 \pm 1 \rangle |s_2 \rangle,\quad  & S_{2\pm} |s_1\rangle |s_2 \rangle = \hbar |s_1\rangle |s_2 \pm 1 \rangle \\
\end{aligned}
\end{equation}

$\boldsymbol{S}=\boldsymbol{S}_1+\boldsymbol{S}_2$については,一般の角運動量の交換関係$[S_i, S_j]=i\hbar\epsilon_{ijk}S_k$が成立するので,合成スピン角運動量の大きさとz成分の同時固有状態$|S M\rangle$とすると,次の関係が成り立つ。
\begin{equation}
\begin{aligned}
\boldsymbol{S}^2 |S M\rangle &= S(S+1) \hbar^2 |S M\rangle \\
S_z |S M\rangle &= M \hbar |S M\rangle
\end{aligned}
\end{equation}
一方,$[\boldsymbol{S}^2,  \boldsymbol{S}_i^2]=0$, $[S_z, S_{iz}]=0 $などが成り立つので,$|S M\rangle$を2粒子状態から構成することができる(ただし,$[\boldsymbol{S}^2, S_i]\neq0$ なので,一般の $|s_1\rangle |s_2\rangle$ は $\boldsymbol{S}^2$ の固有状態とは限らない)。

(1)$S_z$ を $|s_1\rangle |s_2\rangle$ に作用させる。
\begin{equation}
S_z |s_1\rangle |s_2\rangle = (S_{1z}+S{2z}) |s_1\rangle |s_2\rangle = (s_1+s_2)\hbar |s_1\rangle |s_2\rangle
\end{equation}
したがって, $|s_1\rangle |s_2\rangle$ は,$S_z$ の固有値 $M \hbar =(s_1+s_2)\hbar$ の固有状態である。

(2)$\boldsymbol{S}^2$ を $|s_1\rangle |s_2\rangle$ に作用させる。
  (注: $s_i \neq \pm\frac{1}{2}$の場合は状態ベクトル$ |s_i\rangle$ は0とする)
\begin{equation}
\begin{aligned}
\boldsymbol{S}^2 &= \boldsymbol{S}_1^2+ \boldsymbol{S}_2^2 + 2 \boldsymbol{S}_1\cdot\boldsymbol{S}_2 = \boldsymbol{S}_1^2+ \boldsymbol{S}_2^2 + 2 S_{1z}S_{2z} + S_{1+} S_{2-} + S_{1-} S_{2+} \\
\boldsymbol{S}^2 |s_1\rangle |s_2\rangle &= (\frac{3}{2}\hbar^2 + 2 s_1 s_2 \hbar^2) |s_1\rangle |s_2\rangle  + \hbar^2 |s_1+1\rangle |s_2-1\rangle + \hbar^2 |s_1-1\rangle |s_2+1\rangle
\end{aligned}
\end{equation}
簡単のために,$|s \rangle \rightarrow |+\rangle$ ($s=\frac{1}{2}$の場合),  $|-\rangle$ ($s=-\frac{1}{2}$の場合) と表記すると,
\begin{equation}
\begin{aligned}
\boldsymbol{S}^2  | + \rangle  | + \rangle &= 2\hbar^2  | + \rangle  | + \rangle\\
\boldsymbol{S}^2  | + \rangle  | - \rangle &= \hbar^2  | + \rangle  | - \rangle +  \hbar^2  | - \rangle  | + \rangle \\
\boldsymbol{S}^2  | - \rangle  | + \rangle &= \hbar^2  | - \rangle  | + \rangle +  \hbar^2  | + \rangle  | - \rangle \\
\boldsymbol{S}^2  | - \rangle  | - \rangle &= 2\hbar^2  | - \rangle  | - \rangle
\end{aligned}
\end{equation}
したがって,次のようにして$\boldsymbol{S}^2$の固有状態を構成できる。
\begin{equation}
\begin{aligned}
\boldsymbol{S}^2 ( | + \rangle  | - \rangle +  | - \rangle  | + \rangle) &= 2\hbar^2  ( | + \rangle  | - \rangle +  | - \rangle  | + \rangle)\\
\boldsymbol{S}^2 ( | + \rangle  | - \rangle - | - \rangle  | + \rangle) &= 0  ( | + \rangle  | - \rangle -  | - \rangle  | + \rangle)\\
\end{aligned}
\end{equation}
まとめると,$\boldsymbol{S}^2, S_z$の固有値 $S(S+1)\hbar^2, M\hbar$の同時固有状態 $ | S M \rangle $に対して,
\begin{equation}
\begin{array}{l}
  \begin{array}{|l|}
  \hline

  \quad  | 1 +1 \rangle = |+ \rangle |+ \rangle \quad \\
  \quad  | 1 \quad 0 \rangle = \frac{1}{\sqrt{2}} ( |+ \rangle |- \rangle + |- \rangle |+ \rangle ) \quad \\
  \quad  | 1 -1 \rangle = |- \rangle |- \rangle \quad \\
  \quad  | 0  \quad 0 \rangle = \frac{1}{\sqrt{2}} ( |+ \rangle |- \rangle - |- \rangle |+ \rangle ) \quad\\

  \hline
  \end{array} \\
\end{array}
\end{equation}
$ | 1 M \rangle $がスピン3重項(トリプレット)状態,$| 0 0 \rangle $がスピン1重項(シングレット)状態である。

「人の世の窓打ちにけり冬の雨」(西嶋あさ子 1938-)



2019年1月19日土曜日

角運動量の合成への道(1)

(MathJaxの記号一覧は,このEasy Copy MathJax が便利である。)

 角運動量演算子については,次の交換関係から出発して,固有値と固有状態の議論ができる。一般化された角運動量演算子$\boldsymbol{J}$はエルミート演算子であり,その成分は交換関係$[J_i, J_j] = i \hbar \epsilon_{ijk}J_k$を満足すると仮定する。このとき,$\boldsymbol{J}^2=\sum_{i} J_i^2=\sum_i J_i^\dagger J_i$も固有値が正のエルミート演算子となり,$[\boldsymbol{J}^2, J_i]=0$であることから,$\boldsymbol{J}^2$と$J_z$の同時固有状態$|\lambda \mu \rangle$が存在し,その固有値$\lambda \hbar^2, \mu \hbar $は実数となる($\lambda \ge 0$)。
\begin{equation}
\begin{aligned}
\boldsymbol{J}^2 |\lambda \mu \rangle &= \lambda  \hbar^2 |\lambda \mu \rangle\\
J_z |\lambda \mu \rangle &= \mu  \hbar  |\lambda \mu \rangle
\end{aligned}
\end{equation}
$J_x^\dagger J_x + J_y^\dagger J_y = \boldsymbol{J}^2- J_z^2$の左辺の $|\lambda \mu \rangle$による期待値が正であることから,固有値 $\lambda - \mu^2 \ge 0$が成り立つ。すなわち,$-\sqrt{\lambda} \le \mu \le \sqrt{\lambda}$である。

また,昇降演算子,$J_{\pm}\equiv J_x \pm i J_y$を定義すると,$J_{\pm}\dagger=J_{\mp}$, $[\boldsymbol{J}^2, J_{\pm}]=0$,$ [J_z, J_{\pm}]=\pm \hbar J_{\pm}$, $ [J_+, J_-]=2\hbar J_z$などが成り立つ。

ここで,$J_{\pm} |\lambda \mu \rangle$ がどんな状態かを調べると次のことがわかる。
\begin{equation}
\begin{aligned}
\boldsymbol{J}^2 J_{\pm} |\lambda \mu \rangle &= \lambda \hbar^2 J_{\pm} |\lambda \mu \rangle\\
J_z J_{\pm}|\lambda \mu \rangle &= (\mu\pm1) \hbar J_{\pm} |\lambda \mu \rangle
\end{aligned}
\end{equation}
すなわち,$J_{\pm} |\lambda \mu \rangle = C_{\lambda\mu}^{\pm}\hbar  |\lambda \mu\pm 1 \rangle$。ここで,$C_{\lambda\mu}^{\pm}$は比例定数であり,規格化条件を用いて,$\langle \lambda \mu| J_{\mp} J_{\pm} |\lambda \mu \rangle = |C_{\lambda\mu}^{\pm}|^2  \langle \lambda \mu\pm 1  |\lambda \mu\pm 1 \rangle$ より,$C_{\lambda\mu}^{\pm} = \sqrt{\lambda -\mu(\mu\pm 1)}$
ただし,$J_\mp J_\pm = \boldsymbol{J}^2-J_z^2 \mp \hbar J_z$であることに注意する。

ある固有状態から出発して,昇降演算子$J_{\pm}$を繰り返して作用すると,$\boldsymbol{J}^2$の固有値を共有し,$J_z$の固有値が離散的に変化する一連の固有状態のシリーズが得られるが,これは,固有値$\mu$に対する条件と矛盾することから,$\mu$の上限$\mu_max$と下限$\mu_min$においては比例定数$C_{\lambda\mu}^{\pm}$が0となって,シリーズが中断される必要がある。すなわち,
\begin{equation}
\begin{aligned}
J_{+} |\lambda \mu_{max} \rangle = 0, \quad &C_{\lambda\mu_{max}}^+ = \sqrt{\lambda-\mu_{max}(\mu_{max}+1)} = 0\\
J_{-} |\lambda \mu_{min} \rangle = 0, \quad &C_{\lambda\mu_{min}}^- = \sqrt{\lambda-\mu_{min}(\mu_{min}-1)} = 0
\end{aligned}
\end{equation}
これから,$\mu_{max}(\mu_{max}+1)= \mu_{min}(\mu_{min}-1)$が成り立ち,因数分解すると,$(\mu_{max}-\mu_{min}+1)(\mu_{max}+\mu_{min})=0$となる。$\mu_{max}$と$\mu_{min}$の差は整数$n=0,1,2,\cdots$となることから,$\frac{n}{2}=j$とおいて,この半整数 $j=0, \frac{1}{2}, 1, \frac{3}{2}, 2, \cdots$に対して,$\mu_{max}=j, \mu_{min}=-j, \lambda=j(j+1)$となる。そこでこの場合の$\mu$を$m=-j, -j+1, \cdots j-1, j$と書くことにする。

そこで,固有状態と固有値を表すシンボルを$\lambda, \mu$から$j, m$に変えてまとめると,
\begin{equation}
\begin{array}{l}
  \begin{array}{|l|}
  \hline

  \quad \boldsymbol{J}^2 | j m \rangle &= j(j+1) \hbar^2  | j m \rangle \quad \\
  \quad J_z | j m \rangle &= m \hbar  | j m \rangle \quad \\
  \quad J_{\pm} | j m \rangle &= \sqrt{j(j+1)-m(m \pm 1)}\ \hbar  | j m \pm1 \rangle \quad \\

  \hline
  \end{array} \\
\end{array}
\end{equation}





2019年1月18日金曜日

日本古典籍データセット

Yahoo!知恵袋データ(第3版)  からの続き)


国立情報学研究所(NII)の情報研究データリポジトリの末尾には,提供を完了したデータセットとして,国文研データセットがあげられており,情報・システム研究機構 人文学オープンデータ共同利用センターに移管されたとされている。

それがこちら,人文学オープンデータ共同利用センター日本古典籍データセットである。このセンターにはこれ以外にも下記のような7種のデータセット等が提供されている。日本古典籍データセットの方は,2017年12月現在で(最近は滞っているのだろうか・・・)1767点(329,702コマ)のデータが集積されている。すべてのzipデータを合計すると665GB以上とのことで取り扱い注意だ。その内容は以下のとおり。

古典籍画像データ 
 各作品の画像データをJPEG形式で保存したものです。国文学分野のほか、国文学研究資料館が所蔵する医学や理学、産業など多分野の古典籍、さらに味の素 食の文化センターが所蔵する料理本等で、国文学研究資料館が撮影した古典籍を含みます。

書誌データ 
 各作品の書誌データをCSV形式でまとめたものです。国文学研究資料館で公開している「新日本古典籍総合データベース」より、書誌ID/書名/著者名/巻数/刊写の別/出版事項/形態/注記などを抽出したものとなっています。なお一部の作品には国文学研究資料館にて付与した略解題も含まれています。

本文テキストデータ 
 翻刻した本文テキストデータをプレーンテキストまたはDOCX形式で保存したものです。一部の作品に限ります。

タグデータ 
 国文学研究資料館で付与作業を行っている、1枚1枚の画像に対する文中の固有名詞のタグ情報をCSV形式でまとめたものです。一部の作品に限ります。

こちらはライセンスが, なので,ちょっと安心である。
本文テキストデータを充実させてほしいかな。浄瑠璃の床本データとか。


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(1) 江戸料理レシピデータセット
(2) 日本古典籍くずし字データセット
(3) KMNISTデータセット
(4) 武鑑全集
(5) 顔貌コレクション
(6) 近代雑誌データセット
(7) Geoshapeリポジトリ

P. S. 「国文研の古典籍オープンデータセットであそぶ

2019年1月17日木曜日

Yahoo!知恵袋データ(第3版)

国立情報学研究所(NII)が,情報学研究データリポジトリとして,様々なデータセットを公開している(下記リスト参照)。最近公開されたのが,Yahoo!知恵袋データ(第3版)だ。Yahoo!知恵袋は,Yahoo株式会社が2004年から公開している利用者参加によるQ&A型のコミュニケーションサイトで,現時点の質問総数が 2.0 億件,回答総数が 4.9 億件,利用登録数が 0.47 億件である。ここには,研究機関への研究データ提供に関する注意も掲載されている。

「Yahoo! JAPANでは投稿者のYahoo! JAPAN IDを暗号化するなど、個人を特定することができない情報に処理したうえで投稿内容、投稿日時などの投稿に関する情報を大学、独立行政法人などの研究機関に提供します。Yahoo! JAPANが提供する情報によって、当該大学、独立行政法人などが投稿者が誰であるかを知ることはありません。」

一般に,Yahoo!知恵袋の回答の信頼度はあまり高くないといわれているような気がするが(実証データを見たことはない),ある分野でどんな質問が出されており,何が問題とされているのかについては,一定の知見を得ることができる。これをある種のeラーニングシステムや,自学自習システムのベースとして利用することは可能かもしれない。

10年ほど前に教育学部理科の卒業研究で「小学校教員のための理科質問検索システムの構築について」というテーマを取り上げたときに,質問のデータベース構築のために,インターネット上のQ&Aシステムでよく取り上げられる質問を参考にしたり,附属学校で子どもたちにアンケートをとったりしたことがあったのを思い出した。


ところで,Yahoo!知恵袋データ(第3版)の利用条件はかなりきつい。基本的に大学等の研究機関の研究者に限定されているため,企業との共同研究なども難しそうである。

「申請の単位は大学の研究室等とし,申請者は研究室等を代表する常勤の職員(大学の場合は教員等,研究機関の場合は研究員等)の方として下さい。また,契約締結者は法人を代表してデータ利用契約書を締結する権限のある方で,データ利用に関する同意書に押印いただく公印をお持ちの方(通常は学部長相当以上の方)としてください。
 本データを利用できるのは,申請者自身および申請者と同一機関に所属(職員,在学生など正規の在籍に限る)し,かつ同一研究室等において申請者の管理の下で研究活動を行う方のみです。たとえ共同研究で使用する場合あっても,他機関や他の独立した研究室の方が使用する場合は,別途に申請して下さい。」となっている。


Yahoo!知恵袋の場合は年齢情報はないが,学習者の抱く疑問(Q&AのQのみで良いかもしれない)のデータベースが,完全なオープン・リソースとして,学校教育の各分野や領域で整備されるとおもしろいことができそうな気がするのだが・・・


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(1) Yahoo!データセット
 ・Yahoo!知恵袋データ(第3版)
(2) 楽天データセット
 ・楽天市場の全商品データ,レビューデータ
 ・楽天トラベルの施設データ,レビューデータ
 ・楽天GORAのゴルフ場データ,レビューデータ
 ・楽天レシピのレシピ情報,レシピ画像
 ・PriceMinisterのユーザレビュー,レビュー有効性情報アノテーション付きデータ
(3) ニコニコデータセット
 ・ニコニコ動画コメント等データ
 ・ニコニコ大百科データ
(4) リクルートデータセット
 ・ホットペッパービューティーデータ
(5) クックパッドデータセット
 ・レシピデータ,献立データ
(6) LIFULL HOME'Sデータセット
 ・賃貸物件スナップショットデータ(賃貸物件データ+画像データ)
 ・高精細度間取り図画像データ
 ・賃貸・売買物件月次データ
(7) 不満調査データセット
 ・投稿された不満データ,ユーザ情報
 ・カテゴリ別不満特徴語辞書
(8) Sansanデータセット
 ・サンプル名刺データ
(9) インテージデータセット
 ・i-SSPデータ
 ・みんレポデータ


日本古典籍データセットに続く)

2019年1月16日水曜日

Juliaの四捨五入

Juliaの実数を整数に丸めたいので,a=1.5 b=Int(a) とするとダメなのであった,ここでつまづくのは何回目(カプレカ数の項をみる)。documentをちゃんと読むと,実数に対して丸め関数を作用させた後に型変換せよとある。丸め関数に型指定を含むものもある。V1.03ドキュメントの数学的操作と基本関数を参照。

round(x)  round x to the nearest integer typeof(x)
round(T, x) round x to the nearest integer T
floor(x)  round x towards -Inf typeof(x)
floor(T, x) round x towards -Inf T
ceil(x)     round x towards +Inf typeof(x)
ceil(T, x) round x towards +Inf T
trunc(x)  round x towards zero typeof(x)
trunc(T, x) round x towards zero T

こんな感じ。

2019年1月15日火曜日

Juliaで積分

(1)数式処理の場合
Juliaのバージョンが古いが,たけしの忘備録「Julia+SymPyの勝手なまとめ」に設定やその他の数式処理の例についても書いてある。最低限の部分は以下のとおりである。

import PyCall
import SymPy

@syms x
(x,)
f(x)=1/x
f (generic function with 1 method)
integrate(f)
log(x)


(2)数値計算の場合
Juliaの具体的な活用例については,黒木さんのページが最も充実していると思う。

import QuadGK

f(x)=1/x
f (generic function with 1 method)
quadgk(f, 1.0, 2.0)
(0.6931471805599453, 1.9931833961095435e-11)


2019年1月14日月曜日

Juliaにおける変数のクリア

Jupyter 上の Juliaでいろいろな作業をしていると,使用している変数や関数の名前が重なってしまうことがある。Ver. 0.6には,workspace() というコマンドがあって,変数のバインディングをクリアできたようだが,Ver. 1.0ではこの機能がなくなっている。対処法を調べてみたのだが・・・

(1) Revise.jl を用いる。ちょっと違うような感じ。

(2) a=nothing  とする。ちょっと違うような感じ。

(3) 以下のコードを実行する(Startup.jl に導入),ちょっと違うような感じ。

function workspace()
 atexit() do
  run(`$(Base.julia_cmd())`)
 end
 exit()
end

これならば,Kernelの再起動でよいのか。


2019年1月13日日曜日

献灯使:多和田葉子

講談社文庫の献灯使(多和田葉子)を読了。中編小説の「献灯使」と3つの短編小説1つの戯曲からなる短編集。「韋駄天どこまでも」に稲垣足穂のフレーバーを感じる。斎藤美奈子の岩波新書の「日本の同時代小説」の2010年代の項では,ディストピア小説に向う純文学として,佐藤友哉の「ベッドサイド・マーダーケース(未読)」,吉村萬壱の「ボラード病(未読)」と並んで多和田葉子の上記短編集の中から「不死の島」が取り上げられている。最近の純文学は半分くらいSFフレーバーな作品によって占められているのか・・・。

多和田葉子の献灯使は書評でかなり好意的に取り上げられていたので,期待が大きかった分だけ少し残念かもしれない。もう少し他の本も読んでみよう。




P. S. 「日本の同時代小説」に登場しなかった作家で気になったのは,三枝和子。たぶん,一定の広がりを持った作品を中心に構成しているためだろう。

P. P. S. 「日本の同時代小説」では,主に1960年代から2010年代に渡る350名程度の作家が取り上げられているが,自分が読んだことがある作家は,そのうち約1/4の90名程度か。知らない世界が多すぎる。

2019年1月12日土曜日

Juliaにおける変数のスコープ

2つのソートされた配列を比較する練習問題プログラムを実行しようとしてひっかかった。

#3 function main()
  a=sort(rand(1:100,30))
  b=sort(rand(1:100,30))
  j=1
  k=1
  while j<=30 && k<=30
#2  global j
    if a[j] > b[k]
#1    j=j+0
      k=k+1
    elseif a[j] < b[k]
      j=j+1
    else
      println((j,a[j],k,b[k]))
      j=j+1
      k=k+1
    end
  end
#3 end
#3 main()

UndefVarError: j not defined

Stacktrace:
 [1] top-level scope at ./In[25]:8

Whileの中の変数 j が未定義だというエラーである。調べてみると,これが Julia 1.0の仕様であるらしい。そこで,上記のプログラムにおいて,コメント#1,#2,#3をのいずれかをはずすとエラーは回避された。

このあたりの Scope of Variables をちゃんと読んでおけということですね。




2019年1月11日金曜日

元号の予想(4)

元号の予想(3)の続き)

こんなことをしていていいのだろうか?新元号の予想を,過去の日本の元号に用いられた既出漢字の組み合わせで考えるという課題。可能な組み合わせから,既存の各国の元号を消去するコードをJuliaで書いてみた(既存の元号と重なる組み合わせは出現率を0にリセット)。

日本の元号との文字列比較をすることから,中国の元号は簡体字を含んだ中国語版ではなく,日本語版Wikipediaの元号一覧(中国)に変更した(満州国の2つの元号を含む)。元号の数が約1200から約840に縮小した。両言語版でこれだけ違うため,採用されている範囲や基準が統一されていないと思われる。また,信頼性も不十分であることに留意しよう。これに,元号一覧(朝鮮),元号一覧(ベトナム)元号一覧(台湾)を加えたセットを考える。必要に応じて,漢字2文字セットで表現される他の制約条件を簡単に追加することができる。

P. S. 昭和の「昭」や平成の「成」は日本の元号使用漢字としては初出で採用されているので,頻度リストにこだわることにはほとんど意味がないことを改めて注意する。


function gfrq(c,n,r,m)
#
# c input array of kanji char
# n size of c  
# r output array of sorted (kanji, count)
# m size of r
#
  sort!(c)
  k=0
  for j=2:n
    k=k+1
    if c[j]!=c[j-1]
      push!(r,(c[j-1],k))
      k=0
    end
  end
  sort!(r, by=x->x[2], rev=true)
  m=length(r)
#  println((m,r))
end

#japan
g1="大化,白雉,朱鳥,大宝,慶雲,和銅,霊亀,養老,神亀,天平,感宝,勝宝,宝字,神護,景雲,宝亀,天応,延暦,大同,弘仁,天長,承和,嘉祥,仁寿,斉衡,天安,貞観,元慶,仁和,寛平,昌泰,延喜,延長,承平,天慶,天暦,天徳,応和,康保,安和,天禄,天延,貞元,天元,永観,寛和,永延,永祚,正暦,長徳,長保,寛弘,長和,寛仁,治安,万寿,長元,長暦,長久,寛徳,永承,天喜,康平,治暦,延久,承保,承暦,永保,応徳,寛治,嘉保,永長,承徳,康和,長治,嘉承,天仁,天永,永久,元永,保安,天治,大治,天承,長承,保延,永治,康治,天養,久安,仁平,久寿,保元,平治,永暦,応保,長寛,永万,仁安,嘉応,承安,安元,治承,養和,寿永,元暦,文治,建久,正治,建仁,元久,建永,承元,建暦,建保,承久,承応,元仁,嘉禄,安貞,寛喜,貞永,天福,文暦,嘉禎,暦仁,延応,仁治,寛元,宝治,建長,康元,正嘉,正元,文応,弘長,文永,建治,弘安,文永,建治,弘安,正応,永仁,正安,乾元,嘉元,徳治,延慶,応長,正和,文保,元応,元亨,正中,嘉暦,元徳,元弘,正慶,建武,延元,興国,正平,建徳,文中,天授,弘和,元中,暦応,康永,貞和,観応,文和,延文,康安,貞治,応安,永和,康暦,永徳,至徳,嘉慶,康応,明徳,応永,正長,永享,嘉吉,文安,宝徳,享徳,康正,長禄,寛正,文正,応仁,文明,長享,延徳,明応,文亀,永正,大永,享禄,天文,弘治,永禄,元亀,天正,文禄,慶長,元和,寛永,正保,慶安,承応,明暦,万治,寛文,延宝,天和,貞享,元禄,宝永,正徳,享保,元文,寛保,延享,寛延,宝暦,明和,安永,天明,寛政,享和,文化,文政,天保,弘化,嘉永,安政,万延,文久,元治,慶応,明治,大正,昭和,平成,"
#china
g2="建元,元光,元朔,元狩,元鼎,元封,太初,天漢,太始,征和,後元,始元,元鳳,元平,本始,地節,元康,神爵,五鳳,甘露,黄龍,初元,永光,建昭,竟寧,建始,河平,陽朔,鴻嘉,永始,元延,綏和,建平,太初,元将,元寿,元始,居摂,初始,始建,天鳳,地皇,更始,建武,建武,中元,永平,建初,元和,章和,永元,元興,延平,永初,元初,永寧,建光,延光,永建,陽嘉,永和,漢安,建康,永憙,本初,建和,和平,元嘉,永興,永寿,延熹,永康,建寧,熹平,光和,中平,光熹,昭寧,永漢,初平,興平,建安,延康,黄初,太和,青龍,景初,正始,嘉平,正元,甘露,景元,咸熙,章武,建興,延熙,景耀,炎興,黄武,黄龍,嘉禾,赤烏,太元,神鳳,建興,五鳳,太平,永安,元興,甘露,宝鼎,建衡,鳳凰,天冊,天璽,天紀,泰始,咸寧,太康,太熙,永熙,永平,元康,永康,永寧,太安,永安,建武,永興,光熙,永嘉,建興,建武,大興,永昌,太寧,咸和,咸康,建元,永和,升平,隆和,興寧,太和,咸安,寧康,太元,隆安,大亨,元興,義熙,元熙,桓玄,天康,永鳳,河瑞,光興,嘉平,建元,麟嘉,漢昌,光初,太和,建平,延熙,建武,太寧,青龍,永寧,永興,元璽,光寿,建熙,建初,建興,晏平,玉衡,玉恒,漢興,太和,嘉寧,建興,和平,升平,皇始,寿光,永興,甘露,建元,太安,太初,延初,元光,燕元,建興,永康,建始,延平,青龍,建平,長楽,光始,建始,燕興,更始,昌平,建明,建平,建武,中興,建平,太上,正始,太平,太興,白雀,建初,皇初,弘始,永和,建義,太初,更始,永康,建弘,永弘,龍昇,鳳翔,昌武,真興,承光,勝光,太安,麟嘉,龍飛,承康,咸寧,神鼎,太初,建和,弘昌,嘉平,庚子,建初,嘉興,永建,神璽,天璽,永安,玄始,承玄,義和,承和,承平,真興,承陽,縁禾,太縁,永初,景平,元嘉,太初,孝建,大明,永光,景和,泰始,泰豫,元徽,昇明,建元,永明,隆昌,延興,建武,永泰,永元,中興,天監,普通,大通,大通,大同,大同,太清,大宝,天正,太始,承聖,天成,紹泰,太平,天啓,大定,天保,広運,永定,天嘉,天康,光大,太建,至徳,禎明,登国,皇始,天興,天賜,永興,神瑞,泰常,始光,神䴥,延和,太延,太平,真君,正平,承平,興安,興光,太安,和平,天安,皇興,延興,承明,太和,景明,正始,永平,延昌,熙平,神亀,正光,孝昌,武泰,建義,永安,建明,普泰,中興,太昌,永興,永熙,天平,元象,興和,武定,大統,天保,乾明,皇建,太寧,河清,天統,武平,隆化,徳昌,承光,武成,保定,天和,建徳,宣政,大成,大象,大定,開皇,仁寿,大業,義寧,皇泰,武徳,貞観,永徽,顕慶,龍朔,麟徳,乾封,総章,咸亨,上元,儀鳳,調露,永隆,開耀,永淳,弘道,嗣聖,文明,光宅,垂拱,永昌,載初,神龍,景龍,唐隆,景雲,太極,延和,先天,開元,天宝,至徳,乾元,上元,宝応,広徳,永泰,大暦,建中,興元,貞元,永貞,元和,長慶,宝暦,大和,開成,会昌,大中,咸通,乾符,広明,中和,光啓,文徳,龍紀,大順,景福,乾寧,光化,天復,天祐,天授,如意,長寿,延載,証聖,天冊,万歳,万歳,登封,万歳,通天,神功,聖暦,久視,大足,長安,仁安,大興,宝暦,中興,正暦,永徳,朱雀,太始,建興,咸和,建初,承平,義熙,甘露,章和,永平,和平,建昌,延昌,延和,義和,重光,延寿,賛普,長寿,見龍,上元,元封,応道,龍興,全義,大豊,保和,天啓,建極,法尭,貞明,大同,嵯耶,中興,安国,始元,天瑞,景星,安和,貞祐,初歴,孝治,天応,尊聖,興聖,大明,鼎新,光聖,文徳,神武,文経,至治,明徳,広徳,順徳,明政,広明,明応,明統,明聖,明治,明啓,乾興,明通,正治,聖明,天明,保安,正安,正徳,保徳,明侯,上徳,広安,上明,保定,建安,天祐,上治,天授,開明,天政,文安,日新,文治,永嘉,保天,広運,永貞,大宝,龍興,盛明,建徳,利貞,盛徳,嘉会,元亨,安定,鳳歴,元寿,天開,天輔,仁寿,道隆,利正,興正,天定,彝泰,開平,乾化,鳳歴,貞明,龍徳,同光,天成,長興,応順,清泰,天福,開運,天福,乾祐,広順,顕徳,天復,天祐,武義,順義,乾貞,大和,天祚,昇元,保大,中興,交泰,天宝,宝大,宝正,龍啓,永和,通文,永隆,天徳,乾亨,白龍,大有,光天,応乾,乾和,大宝,天復,武成,永平,通正,天漢,光天,乾徳,咸康,明徳,広政,乾祐,天会,広運,応天,同慶,天尊,中興,天興,天寿,建隆,乾徳,開宝,太平,興国,雍熙,端拱,淳化,至道,咸平,景徳,大中,祥符,天禧,乾興,天聖,明道,景祐,宝元,康定,慶暦,皇祐,至和,嘉祐,治平,熙寧,元豊,元祐,紹聖,元符,建中,靖国,崇寧,大観,政和,重和,宣和,靖康,建炎,紹興,隆興,乾道,淳熙,紹熙,慶元,嘉泰,開禧,嘉定,宝慶,紹定,端平,嘉熙,淳祐,宝祐,開慶,景定,咸淳,徳祐,景炎,祥興,神冊,天賛,天顕,会同,大同,天禄,応暦,保寧,乾亨,統和,開泰,太平,景福,重熙,清寧,咸雍,太康,太安,寿昌,乾統,天慶,保大,甘露,建福,徳興,神暦,延慶,康国,咸清,紹興,崇福,天禧,収国,天輔,天会,天眷,皇統,天徳,貞元,正隆,大定,明昌,承安,泰和,大安,崇慶,至寧,貞祐,興定,元光,正大,開興,天興,顕道,開運,広運,大慶,天授,礼法,延祚,延嗣,寧国,天祐,垂聖,福聖,承道,奲都,拱化,乾道,天賜,礼盛,国慶,大安,天安,礼定,天儀,治平,天祐,民安,永安,貞観,雍寧,元徳,正徳,大徳,大慶,人慶,天盛,乾祐,天慶,応天,皇建,光定,乾定,宝義,中統,至元,元貞,大徳,至大,皇慶,延祐,至治,泰定,致和,天順,天暦,至順,元統,至元,至正,至正,宣光,天元,洪武,建文,永楽,洪熙,宣徳,正統,景泰,天順,成化,弘治,正徳,嘉靖,隆慶,万暦,泰昌,天啓,崇禎,弘光,隆武,紹武,永暦,天命,天聡,崇徳,順治,康熙,雍正,乾隆,嘉慶,道光,咸豊,祺祥,同治,光緒,保慶,宣統,民国,洪憲,大同,康徳,"
#korea
g3="永楽,延寿,建元,開国,大昌,鴻済,建福,仁平,太和,慶雲,正開,武泰,聖冊,水徳,万歳,政開,天授,光徳,天開,開国,建陽,光武,光武,隆熙,大韓,民国,"
#vietnam
g4="天徳,太平,天福,興統,応天,景瑞,順天,天成,通瑞,乾符,有道,明道,天感,聖武,崇興,大宝,龍瑞,太平,彰聖,嘉慶,龍彰,天嗣,天貺,宝象,神武,太寧,英武,昭勝,広祐,会豊,龍符,会祥,大慶,天符,睿武,天符,慶寿,天順,天彰,宝嗣,紹明,大定,政隆,宝応,天感,至宝,貞符,天資,嘉瑞,天嘉,宝祐,治平,龍応,建嘉,天彰,有道,建中,天応,政平,元豊,紹隆,宝符,紹宝,重興,興隆,大慶,開泰,開祐,紹豊,大治,大定,紹慶,隆慶,昌符,光泰,建新,聖元,紹成,開大,興慶,重光,天慶,順天,紹平,大宝,大和,延寧,天興,光順,洪徳,景統,泰貞,端慶,洪順,光紹,統元,明徳,大正,広和,永定,景暦,光宝,淳福,崇康,延成,端泰,興治,洪寧,武安,宝定,康佑,乾統,隆泰,順徳,元和,順平,天祐,正治,洪福,嘉泰,光興,慎徳,弘定,永祚,徳隆,陽和,福泰,慶徳,盛徳,永寿,万慶,景治,陽徳,徳元,永治,正和,永盛,保泰,永慶,龍徳,永佑,景興,昭統,泰徳,光中,景盛,宝興,嘉隆,明命,紹治,嗣徳,協和,建福,咸宜,同慶,成泰,維新,啓定,保大,"
#taiwan
g5="永暦,康熙,永和,雍正,乾隆,順天,天運,嘉慶,光明,道光,咸豊,祺祥,同治,光緒,永清,大靖,民国,"
#east-asia
g=g1*g2*g3*g4*g5
println((div(length(g1),3),div(length(g2),3),div(length(g3),3),div(length(g4),3),div(length(g5),3)))
m=div(length(g),3)
c=fill((" ",0),m)
for i=1:7:m*7
  c[div(i,7)+1]=(g[i]*g[i+3],div(i,7)+1)
end
#
n=div(length(g1),3)
a=fill(' ',n)
b=fill(' ',n)
for i=1:7:n*7
  a[div(i,7)+1]=g1[i]
  b[div(i,7)+1]=g1[i+3]
end
p=[ ]
q=[ ]
mp=0
mq=0
gfrq(a,n,p,mp)
gfrq(b,n,q,mq)
mp=length(p)
mq=length(q)
#
r=[ ]
for j in 1:mp
  for k in 1:mq
    if p[j][1]!=q[k][1]
      push!(r,[string(p[j][1],q[k][1]),p[j][2]*q[k][2]/(mp*mq)])
    end
  end
end
mr=length(r)
#
for i in 1:mr, j in 1:m
  if r[i][1] == c[j][1]
    r[i][2]=0
  end
end
sort!(r, by=x->x[2],rev=true)
for k in 1:10
 println((r[k][1],r[k][2]))
end


(250, 839, 26, 159, 17)
("嘉治", 0.0860082304526749)
("延治", 0.0860082304526749)
("永応", 0.08559670781893004)
("嘉和", 0.08148148148148149)
("寛暦", 0.08065843621399177)
("元安", 0.08024691358024691)
("文元", 0.07901234567901234)
("承治", 0.07818930041152264)
("寛安", 0.07489711934156379)
("寛応", 0.07489711934156379)
("正永", 0.07489711934156379)
("元保", 0.07407407407407407)
("天久", 0.0662551440329218)
("嘉徳", 0.06337448559670782)
("延永", 0.06337448559670782)
("長永", 0.06337448559670782)
("嘉安", 0.0588477366255144)
("延安", 0.0588477366255144)
("長応", 0.0588477366255144)
("承永", 0.05761316872427984)
("応治", 0.05473251028806585)
("延保", 0.05432098765432099)
("建応", 0.053497942386831275)
("文仁", 0.05267489711934156)
("文長", 0.05267489711934156)
("元長", 0.04938271604938271)
("天亀", 0.047325102880658436)
("寛長", 0.04609053497942387)
("宝和", 0.044444444444444446)
("正仁", 0.04279835390946502)


2019年1月10日木曜日

元号の予想(3)

元号の予想(2)の続き)

中国の元号は维基百科(Wikipedia)の中国年号列表に,周辺地域も含めて詳しい。

中華人民共和国が成立して元号が廃止されるまでに約1200くらいの元号が存在した(なんだかダブルカウントしているような気もするが,まあだいたいの雰囲気です。日本の5倍の歴史かな)。3文字とか4文字とか6文字の元号も見られ,複数の元号が繰り返して使われる場合もあるようだ。日本の元号と重なっているものもある。こんな感じ・・・

建元,元光,元朔,元狩,元鼎,元封,太初,天汉,太始,征和,後元,始元,元凤,元平,本始,地节,元康,神爵,五凤,甘露,黄龙,初元,永光,建昭,竟宁,建始,河平,阳朔,鸿嘉,永始,元延,绥和,建平,太初,元将,元寿,元始,居摄,初始,新朝,王莽,建国,天凤,地皇,更始,更始,汉复,龙兴,建世,東漢,建武,中元,永平,建初,元和,章和,永元,元兴,延平,永初,元初,永宁,建光,延光,永建,阳嘉,永和,汉安,建康,永憙,本初,建和,和平,元嘉,永兴,永寿,延熹,永康,建宁,熹平,光和,中平,光熹,昭宁,永汉,中平,初平,兴平,建安,延康,神上,黄初,太和,青龙,景初,正始,嘉平,正元,甘露,景元,咸熙,绍汉,章武,建兴,延熙,景耀,炎兴,黄武,黄龙,嘉禾,赤烏,太元,神凤,建興,五鳳,太平,永安,元兴,甘露,宝鼎,建衡,凤凰,天册,天玺,天纪,泰始,咸寧,太康,太熙,永熙,永平,元康,永康,永宁,太安,永安,建武,永兴,光熙,永嘉,建兴,太平,建始,神凤,建武,大兴,永昌,太宁,咸和,咸康,建元,永和,升平,隆和,兴宁,太和,咸安,宁康,太元,隆安,元兴,大亨,义熙,元熙,建康,凤凰,永始,天康,元熙,永凤,河瑞,光兴,嘉平,建元,麟嘉,汉昌,光初,太和,平赵,建初,建兴,晏平,玉衡,大武,玉恒,汉兴,太和,嘉宁,建兴,建兴,建兴,建兴,和平,建兴,升平,升平,凤凰,太和,建平,延熙,建武,太宁,永熙,延兴,青龍,永宁,永兴,龙兴,燕元,元玺,光寿,建熙,皇始,寿光,永兴,甘露,建元,太安,太初,延初,建昌,黑龙,元光,白雀,建初,皇初,弘始,永和,燕元,建興,永康,建平,長樂,光始,建始,建光,定鼎,建始,延平,青龍,燕兴,更始,昌平,建明,建平,建武,中興,建义,太初,更始,永康,建弘,永弘,太安,麟嘉,龍飛,承康,咸寧,神鼎,太初,建和,弘昌,嘉平,燕平,建平,太上,太平,庚子,建初,嘉兴,永建,龍昇,凤翔,昌武,真興,承光,胜光,正始,太平,太兴,神玺,天玺,永安,玄始,真興,承玄,義和,承陽,緣禾,承和,太緣,建平,承平,永初,景平,元嘉,孝建,大明,永光,景和,泰始,泰豫,元徽,昇明,泰始,建义,太初,建平,永光,義嘉,建元,永明,隆昌,延兴,建武,永泰,永元,中兴,兴平,建义,天监,普通,大通,大通,大同,大同,太清,大宝,天正,承聖,天成,紹泰,太平,上願,永漢,天德,正平,太始,天正,天启,大定,天保,广运,永定,天嘉,天康,光大,太建,至德,禎明,建国,登国,皇始,天兴,天赐,永兴,神瑞,泰常,始光,神䴥,延和,太延,太平,真君,正平,承平,兴安,兴光,太安,和平,天安,皇兴,延兴,承明,太和,景明,正始,永平,延昌,熙平,神龜,正光,孝昌,武泰,建義,永安,建明,普泰,中兴,太昌,永兴,永熙,建平,聖君,正始,建明,圣明,建平,大乘,真王,天建,天启,真王,神嘉,魯興,始建,广安,天授,隆緒,天统,神獸,孝基,建武,更兴,天平,元象,兴和,武定,平都,大统,乾明,北齊,天保,乾明,皇建,太宁,河清,天统,武平,隆化,德昌,承光,武平,安太,武成,武定,保定,天和,建德,宣政,大成,大象,大定,石平,永康,太平,太安,始平,建昌,建初,承平,义熙,甘露,章和,永平,和平,建昌,延昌,延和,义和,重光,延寿,白雀,永樂,开皇,仁寿,大業,义宁,皇泰,白鳥,大世,昌達,始兴,太平,丁丑,五凤,永平,天兴,正平,秦兴,鸣凤,安樂,通聖,永隆,武德,贞观,永徽,显庆,龙朔,麟德,乾封,總章,咸亨,上元,儀鳳,調露,永隆,开耀,永淳,弘道,嗣圣,文明,光宅,垂拱,永昌,载初,天授,如意,长寿,延載,証聖,天冊,萬歲,登封,通天,神功,聖曆,久視,大足,长安,神龍,景龙,唐隆,景雲,太极,延和,先天,开元,天宝,至德,乾元,上元,宝应,广德,永泰,大曆,建中,興元,贞元,永贞,元和,永新,長慶,宝历,大和,開成,会昌,大中,咸通,乾符,广明,中和,光啟,文德,龍紀,大顺,景福,乾宁,光化,天复,天祐,天壽,始兴,法輪,开明,延康,明政,天造,天明,乾德,进通,中元,克復,圣武,载初,天成,应天,顺天,显圣,黃龍,正德,宝胜,应天,天皇,武成,罗平,王霸,金统,建贞,顺天,天壽,彝泰,同慶,天尊,中興,天兴,天壽,仁安,大興,宝历,中興,正曆,永德,朱雀,太始,建兴,咸和,甘露,元興,赞普,长寿,见龙,上元,元封,应道,龙兴,全义,大豐,保和,天启,建极,贞明,承智,大同,嵯耶,中兴,安国,始元,天瑞,景星,安和,贞祐,初历,天应,尊圣,兴圣,大明,鼎新,光圣,文德,神武,文经,至治,明德,广德,顺德,明政,广明,明统,明圣,明德,明治,明法,明应,明运,明启,乾兴,明通,正治,圣明,天明,保安,政安,正德,保德,太安,明侯,上德,广安,上明,保立,建安,天祐,上治,天授,明开,天政,文安,日新,文治,永嘉,保天,广运,永贞,大宝,龙兴,盛明,建德,利贞,盛德,嘉会,元亨,定安,亨时,凤历,元寿,天开,天辅,仁寿,道隆,天定,顺德,兴正,至德,大本,钟元,隆德,永道,開平,乾化,凤历,乾化,贞明,龙德,应天,同光,天成,长兴,应顺,清泰,天福,开运,天福,乾祐,广顺,显德,天复,天祐,武义,顺义,乾貞,大和,天祚,昇元,保大,中兴,交泰,显德,顯德,建隆,乾德,开宝,天祐,天宝,凤历,乾化,贞明,龙德,宝大,宝正,广初,正明,长兴,应顺,清泰,天福,天福,开运,天福,乾祐,广顺,显德,建隆,乾德,开宝,太平,兴国,天成,长兴,长兴,应顺,清泰,天福,开运,天福,乾祐,保大,開平,乾化,贞明,龙德,同光,天成,天成,长兴,龙启,永和,通文,永隆,天德,乾亨,白龙,大有,光天,应乾,乾和,大寶,永乐,天复,武成,通正,天汉,光天,乾德,咸康,明德,广政,同光,天成,乾貞,乾貞,天成,长兴,应顺,清泰,天福,开运,天福,乾祐,乾祐,广顺,显德,建隆,建隆,乾祐,乾祐,天会,广运,建隆,乾德,开宝,太平,兴国,雍熙,端拱,淳化,至道,咸平,景德,大中,祥符,天禧,乾兴,天圣,明道,景祐,宝元,康定,慶曆,皇祐,至和,嘉祐,治平,熙宁,元丰,元祐,紹聖,元符,建中,靖国,崇宁,大观,政和,重和,宣和,靖康,应运,化顺,得圣,景瑞,启历,端懿,大历,隆興,永乐,建炎,紹興,隆興,乾道,淳熙,绍熙,慶元,嘉泰,开禧,嘉定,宝庆,绍定,端平,嘉熙,淳祐,宝祐,开庆,景定,咸淳,德祐,景炎,祥兴,明受,天载,正法,人知,太平,阜昌,大聖,天王,庚戌,罗平,乾貞,罗平,轉運,重德,天战,龙兴,天定,神册,天赞,天显,会同,大同,天祿,應曆,保寧,乾亨,统和,開泰,太平,景福,重熙,清宁,咸雍,大康,大安,寿昌,乾统,天庆,保大,建福,德兴,神曆,天庆,隆基,天复,天嗣,延慶,康國,咸清,感天,绍兴,續興,穆興,崇福,皇德,重德,天禧,显道,开运,广运,大庆,天授,礼法,延祚,广熙,广民,延嗣,宁国,天祐,垂圣,福圣,承道,奲都,拱化,乾道,天赐,礼盛,国庆,大安,天安,礼定,西安,天儀,治平,天祐,民安,永安,貞觀,雍寧,元德,正德,大德,大庆,人慶,天盛,乾祐,天慶,應天,皇建,光定,乾定,寶義,宝庆,广僖,清平,收國,天辅,天会,天眷,皇統,天德,貞元,正隆,大定,兴庆,明昌,承安,泰和,天定,大安,崇慶,至寧,贞祐,興定,元光,正大,開興,天兴,盛昌,天興,天统,天正,身聖,元統,天賜,天順,天泰,大同,興隆,順天,天威,天祐,天德,中統,至元,元贞,大德,至大,皇庆,延祐,至治,泰定,致和,天顺,天历,至顺,元统,至元,至正,宣光,天元,萬乘,昌泰,延康,祥兴,安定,正治,赤符,治平,太平,天启,天定,正朔,天祐,龙凤,大义,大定,德寿,天统,开熙,洪武,建文,永乐,洪熙,宣德,正统,景泰,天顺,成化,弘治,正德,嘉靖,隆庆,万历,泰昌,天启,崇祯,義興,弘光,隆武,绍武,兴业,监国,定武,永曆,东武,天定,龙凤,永寧,永天,泰定,东阳,玄元,添元,天顺,天绣,武烈,德胜,明正,顺德,平定,大順,天渊,造历,龍飛,大宝,洪武,真混,瑞应,玄静,大成,兴胜,永兴,兴武,天運,永昌,义武,大顺,圆明,大宝,宏閏,湧安,天命,天聪,崇德,顺治,康熙,雍正,乾隆,嘉庆,道光,咸丰,祺祥,同治,光绪,宣統,重兴,天定,永昌,清光,中兴,永曆,隆武,兴朝,天正,天顺,大慶,廣德,昭武,利用,洪化,裕民,文兴,元兴,永兴,天德,永和,天运,顺天,天運,万利,大康,晏朝,天運,太平,天國,天德,洪顺,天德,天运,江汉,洪德,顺天,天縱,嗣统,华汉,江汉,永清,明国,漢德,共戴,洪憲,通志,宣統,大同,康德,

例によって,3文字以上の場合はテキトーに折り曲げたりして2文字に縮約している。前回のJuliaプログラムにかけてみると,元号の1文字目と2文字目のそれぞれで用いられる漢字の頻度リストが得られる。



(197, Any[('天', 141), ('建', 81), ('永', 80), ('大', 56), ('太', 50), ('元', 40), ('乾', 37), ('延', 24), ('正', 22), ('明', 20), ('广', 18), ('景', 17), ('光', 16), ('神', 16), ('兴', 15), ('咸', 15), ('开', 15), ('中', 14), ('承', 14), ('嘉', 13), ('至', 13), ('隆', 12), ('宝', 11), ('武', 11), ('皇', 11), ('保', 10), ('应', 10), ('泰', 9), ('长', 9), ('顺', 9), ('贞', 8), ('上', 7), ('凤', 7), ('始', 7), ('文', 7), ('显', 7), ('洪', 7), ('清', 7), ('宣', 6), ('甘', 6), ('真', 6), ('重', 6), ('义', 5), ('同', 5), ('安', 5), ('崇', 5), ('弘', 5), ('德', 5), ('更', 5), ('绍', 5), ('通', 5), ('開', 5), ('初', 4), ('和', 4), ('康', 4), ('昌', 4), ('汉', 4), ('燕', 4), ('白', 4), ('黄', 4), ('龍', 4), ('五', 3), ('仁', 3), ('升', 3), ('圣', 3), ('孝', 3), ('定', 3), ('平', 3), ('河', 3), ('治', 3), ('淳', 3), ('玄', 3), ('盛', 3), ('礼', 3), ('祥', 3), ('章', 3), ('端', 3), ('紹', 3), ('罗', 3), ('義', 3), ('興', 3), ('雍', 3), ('青', 3), ('麟', 3), ('万', 2), ('东', 2), ('人', 2), ('会', 2), ('利', 2), ('嗣', 2), ('地', 2), ('垂', 2), ('宁', 2), ('寿', 2), ('庚', 2), ('慶', 2), ('應', 2), ('政', 2), ('昇', 2), ('昭', 2), ('晏', 2), ('普', 2), ('本', 2), ('江', 2), ('熙', 2), ('玉', 2), ('王', 2), ('登', 2), ('聖', 2), ('萬', 2), ('貞', 2), ('赤', 2), ('载', 2), ('道', 2), ('長', 2), ('阳', 2), ('靖', 2), ('丁', 1), ('久', 1), ('交', 1), ('亨', 1), ('儀', 1), ('先', 1), ('克', 1), ('全', 1), ('共', 1), ('化', 1), ('北', 1), ('华', 1), ('启', 1), ('唐', 1), ('国', 1), ('圆', 1), ('奲', 1), ('如', 1), ('宏', 1), ('寶', 1), ('尊', 1), ('居', 1), ('嵯', 1), ('廣', 1), ('彝', 1), ('征', 1), ('後', 1), ('得', 1), ('感', 1), ('成', 1), ('拱', 1), ('收', 1), ('新', 1), ('日', 1), ('朱', 1), ('東', 1), ('民', 1), ('法', 1), ('添', 1), ('湧', 1), ('漢', 1), ('炎', 1), ('熹', 1), ('瑞', 1), ('监', 1), ('石', 1), ('祺', 1), ('禎', 1), ('福', 1), ('秦', 1), ('穆', 1), ('竟', 1), ('緣', 1), ('總', 1), ('續', 1), ('统', 1), ('绥', 1), ('胜', 1), ('致', 1), ('裕', 1), ('西', 1), ('见', 1), ('証', 1), ('調', 1), ('赞', 1), ('身', 1), ('轉', 1), ('进', 1), ('造', 1), ('金', 1), ('钟', 1), ('阜', 1), ('順', 1), ('顯', 1), ('魯', 1), ('鸣', 1), ('鸿', 1), ('黃', 1), ('黑', 1), ('鼎', 1)])

(215, Any[('平', 75), ('兴', 64), ('德', 59), ('和', 45), ('元', 36), ('安', 34), ('始', 28), ('明', 28), ('定', 26), ('祐', 26), ('光', 24), ('初', 23), ('武', 23), ('康', 22), ('熙', 22), ('昌', 21), ('興', 18), ('泰', 17), ('天', 16), ('宁', 16), ('顺', 16), ('成', 14), ('庆', 13), ('福', 13), ('运', 13), ('隆', 13), ('历', 11), ('嘉', 11), ('统', 11), ('凤', 10), ('化', 10), ('国', 10), ('圣', 10), ('寿', 10), ('正', 10), ('治', 10), ('宝', 9), ('道', 9), ('建', 8), ('曆', 8), ('义', 7), ('同', 7), ('启', 7), ('大', 7), ('慶', 7), ('汉', 7), ('露', 7), ('龙', 7), ('寧', 6), ('聖', 6), ('通', 6), ('亨', 5), ('复', 5), ('政', 5), ('統', 5), ('贞', 5), ('中', 4), ('封', 4), ('应', 4), ('授', 4), ('朔', 4), ('清', 4), ('玺', 4), ('瑞', 4), ('符', 4), ('貞', 4), ('運', 4), ('鼎', 4), ('龍', 4), ('乐', 3), ('会', 3), ('凰', 3), ('國', 3), ('壽', 3), ('新', 3), ('朝', 3), ('樂', 3), ('法', 3), ('王', 3), ('皇', 3), ('禧', 3), ('胜', 3), ('雀', 3), ('上', 2), ('世', 2), ('丰', 2), ('乘', 2), ('保', 2), ('册', 2), ('君', 2), ('嗣', 2), ('基', 2), ('延', 2), ('开', 2), ('弘', 2), ('徽', 2), ('拱', 2), ('文', 2), ('极', 2), ('民', 2), ('淳', 2), ('漢', 2), ('炎', 2), ('熹', 2), ('盛', 2), ('祚', 2), ('禾', 2), ('義', 2), ('耀', 2), ('衡', 2), ('观', 2), ('象', 2), ('赐', 2), ('辅', 2), ('都', 2), ('順', 2), ('飛', 2), ('鳳', 2), ('䴥', 1), ('丑', 1), ('业', 1), ('乾', 1), ('侯', 1), ('僖', 1), ('儀', 1), ('冊', 1), ('利', 1), ('功', 1), ('受', 1), ('命', 1), ('啟', 1), ('太', 1), ('威', 1), ('子', 1), ('宅', 1), ('寶', 1), ('将', 1), ('尊', 1), ('常', 1), ('復', 1), ('志', 1), ('恒', 1), ('意', 1), ('憙', 1), ('憲', 1), ('懿', 1), ('戌', 1), ('战', 1), ('戴', 1), ('摄', 1), ('时', 1), ('昇', 1), ('星', 1), ('昭', 1), ('显', 1), ('普', 1), ('智', 1), ('有', 1), ('本', 1), ('業', 1), ('歲', 1), ('混', 1), ('渊', 1), ('烈', 1), ('烏', 1), ('爵', 1), ('狩', 1), ('獸', 1), ('玄', 1), ('用', 1), ('监', 1), ('眷', 1), ('知', 1), ('祥', 1), ('祯', 1), ('祿', 1), ('立', 1), ('章', 1), ('紀', 1), ('緒', 1), ('緣', 1), ('縱', 1), ('纪', 1), ('经', 1), ('绣', 1), ('绪', 1), ('翔', 1), ('耶', 1), ('聪', 1), ('节', 1), ('莽', 1), ('視', 1), ('觀', 1), ('豐', 1), ('豫', 1), ('賜', 1), ('赞', 1), ('赵', 1), ('足', 1), ('載', 1), ('輪', 1), ('载', 1), ('造', 1), ('達', 1), ('閏', 1), ('阳', 1), ('陽', 1), ('雍', 1), ('雲', 1), ('霸', 1), ('靖', 1), ('静', 1), ('願', 1), ('鳥', 1), ('齊', 1)])

元号の予想(4)に続く)

2019年1月9日水曜日

金門五三桐

大阪松竹座の壽初春大歌舞伎の夜の部の演目は,並木五瓶の金門五三桐の通し狂言である。二幕目の南禅寺山門の返しの浅葱幕前で,細棹の三味線弾きが白木の台に片足を乗せ,正本を片手に持つ唄い手が朗詠する。調べてみると大薩摩節(おおざつまぶし)の独唱とあり,その後,石川五右衛門と真柴久吉のお馴染の場面が始まる。

絶景かな,絶景かな。春の眺めは値千金とは小せえ,小せえ。この五右衛門には値万両,最早陽も西に傾き,誠に春の夕暮れに花の盛りもまた一入,はて,うららかな眺めじゃなぁ。ハテ心得ぬ,われを忘れずこのところに羽根を休むるとは。なになに,某もとは大明十二代神宗皇帝の臣下宋蘇卿と言いし者,本国に一子を残し,この土に渡り謀叛の企て今月ただいま露顕なし,たとえ空しく相果つるとも,かの地に残せし倅,われを慕うて日本へ渡りしとほぼ聞けど,いまだ対面は遂げず形見に与えし蘭麝待という名香を証拠になにとぞ尋ね出し,わが無念を語り,力を合わせ,久吉を討ち取るべきものなり。すりゃ此村大炒之助と言いしは,わが父宋蘇卿にありつるか,父の無念,光秀公の恨み,たとえこの身は油で煮られ,肉はとろけ,骨は微塵に砕くるとも,おのれ久吉,今にぞ思い知らせてくれん。

 



2019年1月8日火曜日

ラグランジュ点(3)

ラグランジュ点(2)の続き)

$\rm{L}_3$についての補足:

ウィキペディア日本語版のラグランジュ点では,$\rm{L}_3$について次のように書かれている。「3 番目のラグランジュ点である $\rm{L}_3$ は地球から見て太陽の裏側にあり、太陽からの距離は太陽から地球までよりもやや遠い。」

ウィキペディア英語版のLagrangian Pointsではどうだろうか。
L3 in the Sun–Earth system exists on the opposite side of the Sun, a little outside Earth's orbit and slightly further from the Sun than Earth is. (This apparent contradiction is because the Sun is also affected by Earth's gravity, and so orbits around the two bodies' barycenter, which is, however, well inside the body of the Sun.)
いずれも,地球の軌道の外側ということになっている。しかし,太陽と地球の距離を$R$とすると,太陽と$\rm{L}_3$の距離は$R$より小さくなる。英語版の説明にあるように,太陽−地球系の重心から地球までの距離と比較すれば,太陽と$\rm{L}_3$の距離のほうが大きいという意味のようだ。

なお,太陽−地球系の重心は太陽の中心から 449km 地球寄り(太陽内部)にあり,$\rm{L}_3$は太陽を挟んだ地球の対蹠点から 262km 太陽寄り(太陽を中心として太陽-地球距離$R$を半径とする円内)にある。

2019年1月7日月曜日

大学の情報教育と商用検定

Julia言語が大学の正規授業でどのくらい使われているか。粗いサーベイの範囲ではインターネット空間上で観測される事例はそれほど多くない。

シラバスだけでなく資料まで確認できる例としては,
・京都大学の櫻川貴司さんの情報基礎演習(全学部・全回生,Python,R,Rubyとの選択)
・大阪大学の降旗大介さんの応用数理学9(理学部数学科4年)
・法政大学の宮崎憲治さんの応用マクロ経済学B(経済学研究科,2016年)
など

関連資料としては,
・東京芸術大学の丸井さんの「なぜ僕らはJuliaを作ったか(訳)」(音声信号処理が本体)
・筑波大学の武内修さんのプログラミング/Julia(Mathematicaとの比較がある)
など

なお,ac.jp以外で日本語の充実したページは,
・広井誠さんのお気楽Juliaプログラミング超入門(その他の言語も盛りだくさん)

本題はそこではなくて,櫻川さんのページを見ていて気がついたところ。京大の一般教養の情報教育科目では,NTT コミュニケーションズのインターネット検定ドットコムマスターを取り入れているのか。もう少し探してみると2017年段階で試行中との論文が見つかった。

大学入試における商用検定の導入と並び,今後の動向が注目されるところ。大学教育の展開過程と見るのか解体過程と捉えるのか,評価がわかれるのかもしれない。

2019年1月6日日曜日

ラグランジュ点(2)

ラグランジュ点(1)の続き)

地球−月系のラグランジュ点の位置を実際に計算してみる。$x \equiv \frac{r}{R}$,$a \equiv \frac{M_2}{M_1}$ とすると,次の式の解がそれぞれ $\rm{L}_1, \rm{L}_2, \rm{L}_3$ を与える。
\begin{equation*}
\begin{aligned}
\frac{1}{(1-x)^2}=\frac{a}{x^2}+ 1 -x*(1+a)\\
\frac{1}{(1-x)^2}+\frac{a}{x^2}= 1 +x*(1+a)\\
\frac{1}{(1-x)^2}+\frac{a}{(2-x)^2}= a +(1-x)*(1+a)
\end{aligned}
\end{equation*}
これは$x$の5次方程式であるが,Mathematicaならば,NSolve[]でもよいけれど,複素数解は不要なので,FindRoot[]を使うところだ。

Juliaではどうするのか調べてみたところ,NLsolveという非線形方程式の求解パッケージがあったが,GitHubのオリジナルサイトをみてもJacobian がなんたらかんたらでと五月蝿くて分かりにくい。阪大サイバーメディアセンターの降旗大介さんのページがたいへん親切な解説をつけてくれていたので参考にする。

using NLsolve

function nls(func, params...; ini = [0.0])
    if typeof(ini) <: Number
        return nlsolve((vout,vin)->vout[1]=func(vin[1],params...), [ini]).zero[1]
    else
        return nlsolve((vout,vin)->vout .= func(vin,params...), ini).zero
    end
end

function lagrange(x,a,i)
    if i==1
        1.0/(1.0-x)^2-a/(x^2)-1.0+x*(1+a)
    elseif i==2
        1.0/(1.0+x)^2+a/(x^2)-1.0-x*(1+a)
    elseif i==3
        1.0/(1.0-x)^2+a/(2-x)^2-a-(1-x)*(1+a)
    end
end

# earth - moon system  M2/M1=0.0123
L1=nls(lagrange, 0.0123, 1, ini=0.1)
L2=nls(lagrange, 0.0123, 2, ini=0.1)
L3=nls(lagrange, 0.0123, 3, ini=0.1)
println([L1,L2,L3]," ",[L1,L2,L3]*38.4)

# sun - earth system  M2/M1=0.000003
S1=nls(lagrange, 0.000003, 1, ini=0.1)
S2=nls(lagrange, 0.000003, 2, ini=0.1)
S3=nls(lagrange, 0.000003, 3, ini=0.1)
println([S1,S2,S3]," ",[S1,S2,S3]*14960)


[0.150934, 0.167833, 0.00708792] [5.79587, 6.44477, 0.272176]
[0.00996655, 0.0100332, 1.74999e-6] [149.1, 150.097, 0.0261799]

ということで,無事に鵲橋のハロー軌道の元になる地球−月系の$\rm{L}_2$点の6.4万kmが得られた。ここでは,ラグランジュ点の安定性の議論はすっとばしているが,京大の三宅雄紀さんの「ラグランジュ点の安定性を調べてみた」もたいへん参考になる。



「わが十指われにかしずく寒の入り」(岡本眸 1928-2018)

ラグランジュ点(3)に続く)

2019年1月5日土曜日

ラグランジュ点(1)

嫦娥4号月裏面着陸からの続き)

ラグランジュ点Lagrangian Points)というのは,天体力学における制限3体問題の平衡解を表している。つまり,2つの天体がその重心の回りに回転運動しているときに,その2つの天体との相対位置を保ったままで運動できる5つの点である。これらの点は,回転座標系において小物体に働く2天体の重力と遠心力の合力が0になるという条件で求めることができ,3つの直線解と2つの正三角形解から成り立つ。下図に基づいて考えてみよう。



まず2天体の重心の周りの角速度$\omega$を求める。質量$M_1$と$M_2$の2つの天体がOとPの位置にあり,距離$R$を保ちながら重心Gの周りを回転している。換算質量を$\mu=\frac{M_1 M_2}{M_1+M_2}$とすると,相対運動に対する運動方程式 $\mu R \omega^2 = \frac{G M_1 M_2}{R^2}$ より,$\omega^2 = \frac{G (M_1+M_2)}{R^3}$である。

次に,小物体の質量を$m$とすると,$\rm{L}_i$における各遠心力は$\ell \equiv \rm{GL}_i$として$m \ell \omega^2$で与えられる。また,重心から各天体までの距離は,GO=$\frac{M_2 R}{M_1+M_2}$,GP=$\frac{M_1 R}{M_1+M_2}$である。

【直線解について】
$a \equiv \frac{M_2}{M_1}$とおき,力の釣り合いの式を求めた後,両辺を$GmM_1$で割る。
L1:  $\rm{PL}_1=r$とすると,$\omega$での回転系における力の釣り合いの式より,
\begin{equation}
\begin{aligned}
\frac{G m M_1}{(R-r)^2}=\frac{G m M_2}{r^2}+ m(\frac{M_1 R}{M_1+M_2}-r)\omega^2\\
\frac{1}{(R-r)^2}=\frac{a}{r^2}+ \frac{1}{R^2}-\frac{r(1+a)}{R^3}
\end{aligned}
\end{equation}

L2: $\rm{PL}_2=r$とすると,$\omega$での回転系における力の釣り合いの式より,
\begin{equation}
\begin{aligned}
\frac{G m M_1}{(R+r)^2}+\frac{G m M_2}{r^2}=m(\frac{M_1 R}{M_1+M_2}+r)\omega^2\\
\frac{1}{(R-r)^2}+\frac{a}{r^2}= \frac{1}{R^2}+\frac{r(1+a)}{R^3}
\end{aligned}
\end{equation}

L3: $\rm{OL}_3=R-r$とすると,$\omega$での回転系における力の釣り合いの式より,
\begin{equation}
\begin{aligned}
\frac{G m M_1}{(R-r)^2}+\frac{G m M_2}{(2R-r)^2}=m(\frac{M_2 R}{M_1+M_2}+R-r)\omega^2\\
\frac{1}{(R-r)^2}+\frac{a}{(2R-r)^2}= \frac{a}{R^2}+\frac{(R-r)(1+a)}{R^3}
\end{aligned}
\end{equation}

【正三角形解について】



(1)$\underline{解は二等辺三角形の頂点にあること}$。
 遠心力は重心からラグランジュ点の方に向っているので,釣り合いが成立するためには重力の合力も重心方向に向わなければならない。
 2つの天体OとPから$\rm{L}_i$の距離を,$\ell_1$と$\ell_2$すると,OとPからの重力の大きさは,$\frac{GmM_1}{\ell_1^2}$と$\frac{GmM_1}{\ell_1^2}$となる。このとき,$\rm{L}_i\rm{P}$方向と$\rm{L}_i\rm{O}$方向の力ベクトルを合成したものがGに向わなければならない。
 この条件は,$\frac{GmM_1}{\ell_1^2} \times \frac{M_2}{M_1} \times \frac{\ell_2}{\ell_1} =\frac{GmM_2}{\ell_2^2} $であることから,$\ell_1^3=\ell_2^3$,すなわち,ラグランジュ点$\rm{L}_i$はOPを底辺とする二等辺三角形の頂点にある。

(2) $\underline{解は正三角形の頂点になること}$。
 二等辺三角形の底辺から頂点を見込む角を$\theta$として,重力の合力と遠心力をそれぞれ$\theta$の関数として表して等置する。このとき二等辺三角形の等辺$\ell$は,$\ell \cos\theta = \frac{R}{2}$となる。また,ラグランジュ点と重心の距離は,$\sqrt{(\ell \sin \theta)^2+(\frac{R}{2}-\frac{M_2R}{M_1+M_2})^2}$ である。したがって,遠心力の大きさは次式で与えられる。
\begin{equation}
\frac{Gm}{2R^2} \sqrt{(M_1+M_2)^2 \tan^2\theta + (M_1-M_2)^2}
\end{equation}
 一方,合成した重力ベクトルの成分は,$( \frac{Gm}{\ell^2}(M_1-M_2)\cos\theta, \frac{Gm}{\ell^2}(M_1+M_2)\sin \theta )$であるから,重力の大きさは次式のようになる。
\begin{equation}
\frac{Gm \cdot 8\cos^3\theta }{2R^2} \sqrt{(M_1+M_2)^2 \tan^2 \theta + (M_1-M_2)^2}
\end{equation}
 (4)式と(5)式が一致するのは,$\cos\theta=\frac{1}{2}$に限られ,そのときの角度$\theta=\pm 60^\circ$となって,ラグランジュ点$\rm{L}_4$と$\rm{L}_5$は天体Oと天体Pを頂点とする正三角形のもう一つの頂点(とそれを反転させたもの)となる。

等ポテンシャル曲面の断面図については,Lagrange Points of the Earth-Moon Systemが分かりやすい。

ラグランジュ点(2)に続く)

2019年1月4日金曜日

嫦娥4号月裏面着陸

2016年7月の国立文楽劇場夏休み特別公演午前演目(親子劇場)は,「新編西遊記 GO WEST!玉うさぎの涙」だった。月の女王が嫦娥様(じょうがさま)とよばれており,家に帰って調べてみると,中国神話あるいは道教に登場する月の女神のようである。新作文楽の脚本でうさぎと結びつけたのは,セーラームーンの月野うさぎからきているのか,いや,そもそも月にはうさぎがいるというのは,仏教説話を起源としてアジア一帯に拡がっているからか。

ということで,嫦娥様が記憶に刻印されてしまった。そうこうしているうちに,2018年12月8日に中国が打ちげた月探査機嫦娥4号が2019年1月3日に月の裏面に無事到着した。月の裏側は地球から見えないので光や電波は届かない。月探査機をどうやって制御したのかと不思議だったが,調べると,地球-月系のラグランジュ点L(地球から見て月の6.5万km遠方側)のまわりで中継衛星鵲橋がハロー軌道を周回し,地球と裏月面の通信を中継しているようだ。すごいわ。

P. S.  2019年1月4日には月面ローバの玉兎2号が動き出した。


「かささぎの 渡せる橋に おく霜の
   白きを見れば 夜ぞ更けにける」 (大伴家持 718?-785) 

2019年1月3日木曜日

1月1日はパブリックドメインの日

毎年の1月1日はパブリックドメインの日Public Domain Day)になっている。著作権の保護期間が暦年区切りで設定されているため,1月1日になると前年末で著作権の保護期間が終了した著作物が,パブリックドメインになったことを祝うのがその主旨である。

ところが,今年の元旦は,昨年の12月30日に環太平洋連携協定(TPP)が発効したために,改正著作権法にある著作権の保護期間が作者の死後50年から70年へという保護期間の延長部分がスタートした。これにより,今後20年は新たな主要なパブリックドメイン著作物が現れないことになる。

TPP諸国の中では,著作権などの知的財産権保護の強化を積極的に推進してきたのが米国だったので,トランプの政策変更によって米国がTPPを離脱したときには,少し安堵の空気が拡がった。ところが,わけの分からない理由で日本はこの著作権保護期間延長の炎の中に自ら進んで飛び込んでしまった。次の記事(国民を無視して進む「合理性なき著作権保護期間延長」)にこのあたりの事情が詳しく説明されており,必読文献である。

また,著作権の消滅した本を集めたインターネット上の電子化図書館である「青空文庫」からのお知らせ「そらもよう」にも,2018年の12月31日に富田晶子さんから,また,2019年の1月1日には檄文が,寄せられている。著作物の適正な再利用の促進を目的としてCCライセンスを普及させている「クリエイティブ・コモンズ・ジャパン」は,2018年の12月30日にツイッターでメッセージを出している。


2019年1月2日水曜日

初夢

初夢の定義については,複数の説があるようだ。NHKの番組でもやっていた。

(1)節分から立春にかけての夜に見る夢
(2)大晦日から元旦にかけての夜に見る夢
(3)元旦から二日にかけての夜に見る夢
(4)二日から三日にかけての夜に見る夢
その昔は(1)で,江戸時代は(4),最近は(3)が多いとある。

自分が子どものころのお正月は一大行事であって,大晦日の夜のお風呂はかなり緊張して身を清め,全身新しい下着に身を包んで気合いを入れ,妹が9時からの紅白歌合戦を見始める前には就寝し,(2)の初夢を見るべく努力していた(宝船の絵は使いません)。

一富士二鷹三茄子は,一姫二太郎三なすび,の隣に記憶されているが,一は曾我兄弟の仇討ち場所の富士の裾野,二は忠臣蔵の浅野家の紋所の鷹,三は伊賀越鍵屋の辻の地場産物の茄子,の日本三大仇討ちシリーズの暗示だ,などという話は子どもには教えてもらえなかった(親も知らなかったのかもしれない)。

P. S.  長女が1歳の頃,家族で伊賀に旅行したときに,伊賀越の漬物をお土産に買ったような気もするが,今見ると茄子はメインにはなっていない。伊賀では金谷にも行きました。伊賀肉の思い出は他にもある。2005年ごろに教育実習の研究授業の参観指導で,三重県の津あたりまで行ったことがある。実習生のK山君の母上が実習先の中学校までわざわざ差し入れを持ってきて下さった。ありがとうございました。

P. P. S.  今年はぎっくり腰のため,寝返りも夜中のトイレもつらく,初夢どころではない。


画像はWikipedia「初夢」より

「初夢の辻褄合ってしまひけり」(片山由美子 1952-)

2019年1月1日火曜日

元旦


謹  賀  新  年


新しい年を迎え皆様のご健康とご多幸を
心よりお祈り申し上げます
本年もどうぞよろしくお願いいたします


 2019年 1月1日


P. S.  新元号の公表は4月1日になったようだ。
(エイプリルフールなのだろうか?)


「年越の夢路にさへや老の坂」(内藤風虎 1619-1685)