Matlab:Gradual dimming population model: Difference between revisions

From Puella Magi Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 10: Line 10:
% If you want to modify the constants, please bear these restrictions in mind:
% If you want to modify the constants, please bear these restrictions in mind:
% -C should be an integer
% -C should be an integer
% -D, B, F, K, P and T should be values in [0,1]
% -D, B, F, K, and T should be values in [0,1]
% -B should be greater than K (or else, the number of witches will be negative)
% -B should be greater than K (or else, the number of witches will be negative)
%
%
Line 19: Line 19:
F = 0.01;  % Proportion of familiars becoming witches
F = 0.01;  % Proportion of familiars becoming witches
K = 0.165;  % Proportion of witches getting killed by MSes
K = 0.165;  % Proportion of witches getting killed by MSes
P = 0.95;  % proportion of MSes fightgins
T = 0.0001; % Number of MSes turning into witches over time
T = 0.0001; % Number of MSes turning into witches over time


Line 28: Line 27:


for t=1:3000
for t=1:3000
     prop = P*min(M(t), W(t));
     prop = min(M(t), W(t));
          
          
     deltaM = C- prop*(D+B) - T*M(t);
     deltaM = C- prop*(D+B) - T*M(t);

Revision as of 06:53, 22 March 2011

%
% REFINED MAGICAL GIRL-WITCH POPULATION MODEL WITH DIMMING OVER TIME
% This file has been produced for FreeMat 4.0
% The syntax of the plot commands may differ from Matlab.
%
% This is the script that simulates the Refined Model, but with an
% additionnal effect of soul gems dimming over time.
%
% If you want to modify the constants, please bear these restrictions in mind:
% -C should be an integer
% -D, B, F, K, and T should be values in [0,1]
% -B should be greater than K (or else, the number of witches will be negative)
%

C = 100;    % Number of girls contracted by QBe
D = 0.4;    % Proportion of girls (who are fighting) that die
B = 0.15;   % Proportion of girls (who are fighting) to become witches
F = 0.01;   % Proportion of familiars becoming witches
K = 0.165;  % Proportion of witches getting killed by MSes
T = 0.0001; % Number of MSes turning into witches over time

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

hold on

for t=1:3000
    prop = min(M(t), W(t));
        
    deltaM = C- prop*(D+B) - T*M(t);
    deltaW = F*W(t) + prop*(B-K) + T*M(t);
    
    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