@joyphys
2015-08-13T06:57:00.000000Z
字数 1811
阅读 3537
Blog
放射性衰变是指数衰减的典型例子。另外还有化学反应某反应物的减少,RC电路电流的减小,大气压随海拔高度的减小等。
指数衰减的方程:
其中,
方程
这个解可以通过Matlab符号计算求得:
dsolve('DN=-N/tau')ans =C3*exp(-t/tau)
下面写个Matlab 脚本文件,重复出Computational Physics_Giordano 2nd Edition的图1.1,pp11
%% Exponent decay% 'Computational Physics' book by N Giordano and H Nakanishi% Section 1.2 p2% Solve the Equation dN/dt = -N/tau% by Joyful Physics Blog% ------------------------------------------------------------N_nuclei_initial = 100; %initial number of nucleinpoints = 101; % Discretize time into 100 intervalsdt = 0.05; % set time steptau=1; % set time constantN_nuclei = zeros(npoints,1); % initializes N_nuclei, a vector of dimension npoints X 1,to being all zerostime = zeros(npoints,1); % this initializes the vector time to being all zerosN_nuclei(1) = N_nuclei_initial; % the initial condition, first entry in the vector N_nuclei is N_nuclei_initialtime(1) = 0; %Initialise timefor step=1:npoints-1 % loop over the timesteps and calculate the numerical solutionN_nuclei(step+1) = N_nuclei(step) - (N_nuclei(step)/tau)*dt;time(step+1) = time(step) + dt;end% calculate analytical solution belowt=0:0.05:5;N_analytical=N_nuclei_initial*exp(-t/tau);% Plot both numerical and analytical solutionplot(time,N_nuclei,'ro',t,N_analytical,'b'); %plots the numerical solution in red and the analytical solution in bluexlabel('Time (s)')ylabel('Number of nuclei')text(2,80,'Time constant = 1s')text(2,70,'Time step = 0.05s')
运行程序,得到:
