放射性物質の半減期を求める問題を考えてみましょう. 17.4.24 原子の崩壊では時間を与えて割合を求めていましたが, 今度は逆に与えられた割合(半減期なので0.5)になるのに要する時間を求めることになります.
このような問題は
のように考えることができます. つまり,
ですから, 関数の定義は次のようになります:
# let rec half_life(n,r) = if r < 0.5 then n else half_life(n+1,r *. (1.0 -. disintegration_per_sec)) ;; val half_life : int * float -> int = <fun>
そして半減期は 0秒後の割合が1.0として求めてやればよいので,
# half_life(0,1.0) ;; - : int = 21636
のように 21636 秒であることが分かります. これは
# 21636.0 /. 60.0 /. 60.0;; - : float = 6.01000000000000068
であるから約6時間ということですね. 前に定義した tc99m_alt を使って検算すると, 確かに 21636 秒後の割合は 0.5になっています.
# tc99m_alt(21636) ;; - : float = 0.5
17.4.26 別の形の繰り返し - その2 | 17.4.27 半減期 | 17.4.28 繰り返しのまとめ | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Sun, 03 Jul 2005 22:01:38 JST (1489d) |