Matlab:Refined population model

From Puella Magi Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
%
% REFINED MAGICAL GIRL-WITCH POPULATION MODEL
% BASIC MAGICAL GIRL-WITCHES MODEL
% This file has been produced for Matlab 7.4.0
% It is 100% compatible with FreeMat 4.0, however, you may want to change the plot commands to
% plot(M, 'g.-') and plot(W, 'r.-') for aesthetics purpose
%
%
% If you want to modify the constants, please bear these restrictions in mind:
% -C should be an integer
% -D, B, F, K should be values in [0,1]
% -B should be greater than K (or else, the number of witches will be negative)
% -W(1) should be strictly positive. If W(1)=0, no witch appear ever, and MSes grow linearily
%


C = 100;     % Number of girls contracted by QBe
D = 0.200;    % Proportion of girls (who are fighting) that die
B = 0.100;   % Proportion of girls (who are fighting) to become witches
F = 0.015;   % Proportion of familiars becoming witches
K = 0.096;    % Proportion of witches getting killed by MSes

steps = 500; % Number of iterations for the simulation

M(1) = 0;    % Number of magical girls at first
W(1) = 1;    % Number of witches at first

hold on

for t=1:steps
    prop = min(M(t), W(t));
        
    deltaM = C- prop*(D+B);
    deltaW = F*W(t) + prop*(B-K);
    
    M(t+1)=M(t)+deltaM;
    W(t+1)=W(t)+deltaW;
end

title('Evolution of the Magical Girls population over time')
xlabel('time')
ylabel('number of magical girls/witches')
plot(M, 'g-')
plot(W, 'r-')
legend('Magical Girls', 'Witches', 'location', 'northeast')
legend('boxoff')

hold off