物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

PythonでZIPファイルを作成する

arXivに投稿する時、関連するファイルをZIPファイルで書庫化しておくと楽である。動的にZIPファイルを作るにはPythonが手っ取り早いので、コードを作ってみた。

import sys

tex_filename = sys.argv[1]+".tex"
zip_filename = sys.argv[1]+".zip"

# bibを使うときはbblも必要
import zipfile
import re

# 必要なファイルリスト (例: PTEPのフォーマット)
files = [tex_filename, sys.argv[1]+".bib", sys.argv[1]+".bbl",
         "ptephy_v1.cls", "authblk-TI.sty", "preprint_v1.clo"]

lines = open(tex_filename, encoding="utf-8").readlines()
for line in lines:
    # 図はすべてfigs2ディレクトリにPDFファイルとPNGファイルで存在するので正規表現で探索する
    match = re.search(r"figs2/.+\.((pdf)|(png))", line)
    if match is not None:
        # ファイルリストに追加
        files.append(match.group(0))

# ZIPファイルを定義
zip = zipfile.ZipFile(zip_filename, "w", zipfile.ZIP_DEFLATED)

# ZIPファイルに追記
for file in files:
    zip.write(file, file)

# ZIPファイルを閉じる
zip.close()

IPoE (IP over Ethernet)ルータ 対応機種

下記のブログによると、光のIPoEルータ 対応機種は以下の3種類らしい。

NEC Aterm 2020年10月 8日 発売 Aterm WG1200HS4 PA-WG1200HS4 Wi-Fi 5対応の無線LANルーター(最大867Mbps)

kakaku.com

NEC Aterm 2020年10月 8日 発売 Aterm WG1200HP4 PA-WG1200HP4 メッシュ機能を搭載したWi-Fi 5対応の無線LANルーター(最大867Mbps)

kakaku.com

同時期に発売された Aterm WG2600HS2 PA-WG2600HS2 と Aterm WG2600HP4 PA-WG2600HP4も対応してるかもしれない。

バッファロー AirStation 2020年 3月 発売 AirStation WSR-1166DHPL2 [ブラック]

kakaku.com

参照 ameblo.jp

Woods-Saxon potentialをPythonで描画する

import numpy as np
from matplotlib import pyplot as plt
v0 = 14
A = 15
a = 0.5
r0 = 1.25
R = r0*A**(1/3)
x = np.linspace(0.0, 10.0)
y = -v0/(1+np.exp((x-R)/a))
plt.plot(x, y, "b-")
plt.title(r"Woods-Saxon potential")
plt.text(3, -v0*0.8, 
         r"$V(r)=\frac{-V_0}{1+{\rm exp}(r-R)/a}$"+
         "\n"+
         r"Parameters: A$={}$, $V_0={}$ MeV".format(A,v0)+
         "\n"+
         r"$a={}$ fm, $r_0={}$ fm, $R={:.1f} $fm".format(a,r0,R),
        fontsize=12)
plt.xlabel(r"$r$ [fm]")
plt.ylabel(r"$V(r)$ [MeV]")
plt.show()

f:id:onsanai:20210205111754p:plain

オリジナルコード

http://nucleartalent.github.io/Course2ManyBodyMethods/doc/pub/intro/pdf/intro-print.pdf

ポアソン分布と二項分布をPythonで描画する

Pythonを用いた ポアソン分布の確率分布の描画。適宜meanを変えてね。

from scipy.stats import poisson
import matplotlib.pyplot as plt

mean = 2.3

xs = []
prob = []
for i in range(7):
    print(i,poisson.pmf(i, mean))
    prob.append(poisson.pmf(i, mean))
    xs.append(i)
    
plt.plot(xs,prob,lw=0,marker="o")

for x,p in zip(xs,prob):
    plt.text(x+0.1, p, "{:.4f}".format(p),size=10)

plt.xlim(-0.5,6.5)
plt.ylim(-0.,1.0)
plt.xlabel(r"$\lambda$")
plt.ylabel(r"Probability")
plt.show()

mean=2.30 の確率分布

f:id:onsanai:20210126145402p:plain

二項分布の場合。

from scipy.stats import binom
import matplotlib.pyplot as plt

mean = 2.3
entries = 200

xs = []
prob = []
for i in range(7):
    print(i,binom(entries,mean/entries).pmf(i))
    prob.append(binom(entries,mean/entries).pmf(i))
    xs.append(i)
    
# 以下同

今回はn=200として計算。ポアソン分布とはわずかに異なる。

f:id:onsanai:20210126204224p:plain