MATLAB: How can we find the doubling time of a curve

doubling timeMATLABmatlab coder

Lets say I have a graph, how can I find the doubling time of the curve?
Alpha = [1.05 ]; % Initial conditions

x0 = 100; % Initial conditions
figure
n = 1:30;
x = Alpha.^n*x0;
subplot(2,2,1);
plot(n,log2(x));
title('Figure 1A-Alpha=1.05'),xlabel('X-Axis','fontweight','bold'), ylabel('Y-Axis','fontweight','bold')
Note: Doubling time refers to the days it takes for the values to double. Doubling time should stay the same throughout a single curve

Best Answer

There is a formula for doubling time, if (n1,x1) and (n2,x2) are two data points selected, then doubling time Td is given by:
In your case: Follow the below:
Alpha = [1.05 ]; % Initial conditions

x0 = 100; % Initial conditions
figure
n = 1:30;
x = Alpha.^n*x0;
plot(n,log2(x));
title('Figure 1A-Alpha=1.05'),xlabel('X-Axis','fontweight','bold'), ylabel('Y-Axis','fontweight','bold')
% pick any two quantities randomly
idx = [5 15];
x1 = x(idx(1)) ; x2 = x(idx(2)) ;
n1 = n(idx(1)) ; n2 = n(idx(2)) ;
% doubling time
Td = (n2-n1)*log(2)/log(x2/x1)
The doubling time is found to be 14.207. Change the values of (n1,q1) and (n2,q2) you will get the same value for the data picked.