定数の定義
aV:=15.56;
aS:=17.23;
aC:=0.700;
aA:=23.29;
aP:=33.50;
mH:=938.7833;//MeV 電子の結合エネルギーを引いた陽子の質量
mN:=939.5656;//中性子の質量
核の質量公式
M(A,Z)をAとZの関数として近似的に表す。
体積エネルギー 核子1個当たりの結合エネルギーは一定 avA
表面エネルギー 半径がA1/3に比例する球 -asA2/3
クーロンエネルギー -acZ2/A1/3
対称エネルギー Aが大きいとN≒1.6Zで安定となる -aA(A/2-Z)2/A
対エネルギー N,Zが奇数・偶数で安定性に差がある
δ(A,Z)=apA-3/4 Z,Nが偶数 0 Z,Nのどちらかが奇数 -apA-3/4 どちらも奇数
delete A;
delete B;
delete M;
delta:=(N,Z)->piecewise([(N mod 2)=0 and (Z mod 2)=0,aP*(N+Z)^(-3/4)],
[(N mod 2)=1 and (Z mod 2)=1,-aP*(N+Z)^(-3/4)],
[Otherwise,0]);
B:=(A,Z)->aV*A-aS*A^(2/3)-aC*Z^2*A^(-1/3)-aA*(A/2-Z)^2/A+delta(A-Z,Z);//結合エネルギー
M:=(A,Z)->Z*mH+(A-Z)*mN-float(B(A,Z));
以下のコードだと失敗する。Aが自然数でないため
plot(plot::Function2d(float(M(A,round(float(A)/1.6))),A=1..160,Color=RGB::Blue));
Aを自然数のリスト(list)とする。ZとM0は表(table)となる。
A:=i $ i=1..160;
for i from 1 to 160 do
Z[i]:=round(float(i)/1.6);
B0[i]:=float(B(A[i],Z[i]));
M0[i]:=float(M(A[i],Z[i]));
end_for;
表B0とM0の右をリストとして取り出す。
B1:=rhs(B0);
M1:=rhs(M0);
晴れて質量公式をグラフ化
plot(plot::Listplot(B1,x=1..160,Color=RGB::Blue));
plot(plot::Listplot(M1,x=1..160,Color=RGB::Blue));
Aで割ってみました。
for i from 1 to 160 do
B2[i]:=B0[i]/i;
M2[i]:=M0[i]/i;
end_for;
B3:=rhs(B2);
M3:=rhs(M2);
plot(plot::Listplot(B3,x=1..160,Color=RGB::Blue));
plot(plot::Listplot(M3,x=1..160,Color=RGB::Blue));
δ(N,Z)のところが異なる式があるみたいです。
aV:=15.6;
aS:=17.2;
aC:=0.7;
aA:=23.3;
delete A;
delta:=(N,Z)->piecewise([(N mod 2)=0 and (Z mod 2)=0,12*(N+Z)^(-1/2)],
[(N mod 2)=1 and (Z mod 2)=1,-12*(N+Z)^(-1/2)],
[Otherwise,0]);
B:=(A,Z)->aV*A-aS*A^(2/3)-aC*Z^2*A^(-1/3)-aA*(A/2-Z)^2/A+delta(A-Z,Z);//結合エネルギー
for i from 1 to 160 do
B4[i]:=float(B(i,Z[i]))/i;
end_for;
B5:=rhs(B4);
f1:=plot::Listplot(B3,x=1..160,Color=RGB::Blue);
f2:=plot::Listplot(B5,x=1..160,Color=RGB::Red);
plot(f1,f2);