Rで自作関数:mass_defect

関数名: mass_defect

原子の質量欠損と、それに相当するエネルギーを計算する関数です。

Rコード

# ============================================================
# 原子の質量欠損と、それに相当するエネルギーを計算する関数
# ============================================================
#
# 引数:
#   proton   : 陽子の数
#   neutron  : 中性子の数
#   mass_g   : 原子1個の実際の質量(g)
#
# 戻り値:
#   list形式で以下を返します。
#     simple_mass_g       : 陽子・中性子・電子を単純合計した質量(g)
#     mass_defect_g       : 質量欠損(g)
#     energy_J            : 質量欠損に相当するエネルギー(J)
#     energy_eV           : 質量欠損に相当するエネルギー(eV)
#
# 注意:
#   ここでは「中性原子」を想定しているため、
#   電子の数 = 陽子の数
#   としています。
# ============================================================

mass_defect <- function(proton, neutron, mass_g) {
  # ----------------------------------------------------------
  # 1. 陽子・中性子・電子の質量を定義する
  #
  # 質量の元データ(NIST/CODATA)は kg で与えられている。
  # ----------------------------------------------------------
  m_p <- 1.67262192595e-27 # 陽子の質量 [kg]
  m_n <- 1.67492750056e-27 # 中性子の質量 [kg]
  m_e <- 9.1093837139e-31 # 電子の質量 [kg]

  # ----------------------------------------------------------
  # 2. 光速を定義する
  #
  # E = mc^2 に使用する。
  # 光速は SI 単位系で正確に
  # 299,792,458 m/s
  # ----------------------------------------------------------
  c <- 299792458 # 光速 [m/s]

  # ----------------------------------------------------------
  # 3. 1 eV を J に換算するための定数
  #
  # 1 eV = 1.602176634e-19 J
  # ----------------------------------------------------------
  eV_to_J <- 1.602176634e-19

  # ----------------------------------------------------------
  # 4. 中性原子なので電子数を陽子数と同じにする
  # ----------------------------------------------------------
  electron <- proton

  # ----------------------------------------------------------
  # 5. 陽子・中性子・電子を単純に合計した質量を計算する
  #
  # まず kg 単位で計算する。
  #
  # 単純合計質量
  # = 陽子数 × 陽子質量
  # + 中性子数 × 中性子質量
  # + 電子数 × 電子質量
  # ----------------------------------------------------------
  simple_mass_kg <-
    proton * m_p +
    neutron * m_n +
    electron * m_e

  # ----------------------------------------------------------
  # 6. kg → g に単位変換する
  #
  # 1 kg = 1000 g
  # ----------------------------------------------------------
  simple_mass_g <- simple_mass_kg * 1000

  # ----------------------------------------------------------
  # 7. 質量欠損を計算する
  #
  # 質量欠損
  # = 単純合計質量 - 実際の原子質量
  #
  # ここでは単純合計質量と引数 mass_g の両方を
  # g 単位にそろえて計算する。
  # ----------------------------------------------------------
  mass_defect_g <- simple_mass_g - mass_g

  # ----------------------------------------------------------
  # 8. 質量欠損を g → kg に変換する
  #
  # E = mc^2 では質量を kg で扱う必要がある。
  # ----------------------------------------------------------
  mass_defect_kg <- mass_defect_g / 1000

  # ----------------------------------------------------------
  # 9. E = mc^2 によって放出エネルギーを計算する
  #
  # 質量欠損が正の場合、
  # 原子核の形成によってエネルギーが放出された
  # と解釈できる。
  # ----------------------------------------------------------
  energy_J <- mass_defect_kg * c^2

  # ----------------------------------------------------------
  # 10. ジュールを電子ボルトに変換する
  #
  # 1 eV = 1.602176634e-19 J
  #
  # したがって、
  #
  # eV = J / (1.602176634e-19)
  # ----------------------------------------------------------
  energy_eV <- energy_J / eV_to_J

  # ----------------------------------------------------------
  # 11. 計算結果を list として返す
  # ----------------------------------------------------------
  return(
    list(
      simple_mass_g = simple_mass_g,
      mass_defect_g = mass_defect_g,
      energy_J      = energy_J,
      energy_eV     = energy_eV
    )
  )
}

使用例

炭素12について計算する場合、陽子6個、中性子6個、電子6個です。

炭素12原子の質量を

\[
1.9926468827\times10^{-23}\,\mathrm{g}
\]

とすると、次のように実行できます。

mass_defect(
  proton  = 6,
  neutron = 6,
  mass_g  = 1.9926468827e-23
)
$simple_mass_g
[1] 2.009076e-23

$mass_defect_g
[1] 1.642934e-25

$energy_J
[1] 1.476595e-11

$energy_eV
[1] 92161817

炭素12の放出エネルギー(核結合エネルギー)は

\[
92.16\,\mathrm{MeV}
\]

主要原子の質量

Table 1: 主要原子の質量
原子番号元素記号元素名同位体陽子数中性子数電子数原子質量_u原子質量_g
1H水素11011.007825032231.6735328387e-24
2Heヘリウム42224.002603254136.646476866e-24
3Liリチウム73437.01600343661.164919e-23
4Beベリリウム94549.0121830651.496574695e-23
5Bホウ素1156511.009305361.827899e-23
6C炭素1266612.000000000001.9926468827e-23
7N窒素1477714.003074004432.325867099e-23
8O酸素1688815.994914619572.6550189165e-23
9Fフッ素19910918.998403162733.1546864018e-23
10Neネオン2010101019.99244017623.319991e-23
11Naナトリウム2311121122.98976928203.8175407e-23
12Mgマグネシウム2412121223.9850416973.9813397e-23
13Alアルミニウム2713141326.981538534.4807543e-23
14Siケイ素2814141427.976926534654.6458495e-23
15Pリン3115161530.973761998425.1420985e-23
16S硫黄3216161631.97207117445.3062885e-23
17Cl塩素3517181734.9688526825.8069176e-23
18Arアルゴン4018221839.96238312376.6358350e-23
19Kカリウム3919201938.96370648646.4668706e-23
20Caカルシウム4020202039.9625908636.6358694e-23
21Scスカンジウム4521242144.955908287.4630710e-23
22Tiチタン4822262247.947941987.9637440e-23
23Vバナジウム5123282350.943957048.4606970e-23
24Crクロム5224282451.940506238.6254700e-23
25Mnマンガン5525302554.938043919.1229340e-23
26Fe5626302655.934936339.2880310e-23
27Coコバルト5927322758.933194299.7859010e-23
28Niニッケル5828302857.935342419.6202700e-23
29Cu6329342962.929597721.0445240e-22
30Zn亜鉛6430343063.929142011.0611240e-22

以上です。