@c-xy
2016-10-09T14:29:38.000000Z
字数 1144
阅读 226
双原子衰变
Python源代码如下:
import pylabclass decay_problem:def __init__(self, number_of_nuclei_A = 100, number_of_nuclei_B = 0 , time_constant = 1, time_of_duration = 5, time_step = 0.05):self.n_uranium_A = [number_of_nuclei_A]self.n_uranium_B = [number_of_nuclei_B]self.t = [0]self.tau = time_constantself.dt = time_stepself.time = time_of_durationself.nsteps = int(time_of_duration // time_step + 1)print("Initial number of nuclei A ->", number_of_nuclei_A)print("Initial number of nuclei B ->", number_of_nuclei_B)print("Time constant ->", time_constant)print("time step -> ", time_step)print("total time -> ", time_of_duration)def calculate(self):for i in range(self.nsteps):tmp_A = self.n_uranium_A[i] - self.n_uranium_A[i] / self.tau * self.dt+self.n_uranium_B[i] / self.tau * self.dttmp_B = self.n_uranium_B[i] - self.n_uranium_B[i] / self.tau * self.dt+self.n_uranium_A[i] / self.tau * self.dtself.n_uranium_A.append(tmp_A)self.n_uranium_B.append(tmp_B)self.t.append(self.t[i] + self.dt)def show_results(self):pylab.plot(self.t, self.n_uranium_A)pylab.plot(self.t, self.n_uranium_B)pylab.xlabel('time ($s$)')pylab.ylabel('Number of Nuclei A and B')pylab.show()a = decay_problem()a.calculate()a.show_results()
从图片中可以看出,两种原子数目在一段时间后达到平衡,数量都等于50.