Last time, I presented a question that I had been given by PrettyGreen, a PR company that asked me to get involved with their Halloween publicity campaign for the mobile network operator GiffGaff. We also saw how I modelled the problem and this week I present the results and also the Matlab codes that I used, should you want to recreate, or play around, with the solutions.
The advert presenting the characters involved can be found below.
The advert presenting the characters involved can be found below.
________________________________________
Results
The survival  time of each character in ascending order can be found in the table below. This  is further complemented by Figure 1, in which we illustrate the health  of each combatant over a 60 minute time span.
The  first two characters to die are the Dead Girl and Skin Face. Although  these two characters are relatively strong their low initial healths  mean that the other combatants are able to dispatch them with relative  ease. Thus, neither of them last longer than a minute demonstrating that  neither of them are able to use their aggression to its fullest.  Similarly, Baby Man is next to die, because although he is able to  defend himself better, lasting just over a minute, the combatants once  again go after the weakest.
| Name | Survival time | 
|---|---|
| Dead Girl | 3 secs | 
| Skin Face | 13 secs | 
| Baby Man | 1 mins 44 secs | 
| Pumpkin Head | 7 mins 9 secs | 
| Tall Guy | 10 mins 7 secs | 
| Hero Girl | 55 mins 37 secs | 
| Evil Clown | Survivor | 
The next two  to die are quite interesting, these are Pumpkin Head and Tall Guy,  lasting approximately 7 and 10 minutes respectively. Up until this point  the group has simply been killing the current weakest. At the five  minute marker this would be Tall Guy, however, as seen in Figure 1, he  is able to outlast Pumpkin Head because Tall guys higher agility allows  him to defend better.
Eventually,  only Evil Clown and Hero Girl are the surviving combatants. This is  interesting as it is often the plot of a horror film to have the heroine  survive up until the last few moments, when the final kill is unleashed  during extended scenes of heightening tensions. This is exactly what is  seen in Figure 1. Initially, things are looking good for Hero Girl as  she begins the final battle with much more health than Evil Clown.  Furthermore, the agility of the Hero Girl and Evil Clown are equal and  the highest out of the group. This has kept them safe up until this  point because they were able to run away from danger. Similarly, for the  30 minutes after Tall Guy’s death the two characters are able to  capably defend themselves and escape each others attacks.
These tropes are used in many horror films: although the heroine is no physical match for the villain, she is able to make up for the lack of strength in terms of speed. It is also a standard horror trend that it should look like the heroine will survive, but then she is subjected to escalating bouts of terror. Although she is able to put up a valiant fight Hero Girl’s life is slowly drained by Evil Clown’s higher strength, ultimately leading to his victory after 55 minutes and with 45 health remaining.
These tropes are used in many horror films: although the heroine is no physical match for the villain, she is able to make up for the lack of strength in terms of speed. It is also a standard horror trend that it should look like the heroine will survive, but then she is subjected to escalating bouts of terror. Although she is able to put up a valiant fight Hero Girl’s life is slowly drained by Evil Clown’s higher strength, ultimately leading to his victory after 55 minutes and with 45 health remaining.
Who'd have thought that the  Evil Clown was so dangerous?! And who could have foreseen where such a  simple piece of mathematics, based on the modelling of zombies, would  take us?
This brings us to the end of this current set of posts. Next time: something completely different.
________________________________________________________________
________________________________________
function Battle_Royale
%Clear computer memory and plots.
clear
close all
clc
options = odeset('RelTol',1e-4,'AbsTol',1e-5); %Options set for the ODE solver.
S=[9 7 6 8 3 8 9]; %Vector of strength values.
A=[7 8 4 3 8 6 3]; %Vector of agility values.
H=[45 65 60 40 90 10 20];%Vector of initial health.
C=S.*A; %The interaction function is scaled by the strength multiplied by the agility.
[T,Y] = ode45(@(t,y) ODES(t,y,C),[0 7000],H,options); % Solve the ODE.
cc=lines(7); % Set the legend colours.
for i=1:7
%Find the last moment alive.
YY=Y(:,i);
YY(YY<0.1)=0;
index=find(YY,1,'last');
YY(YY==0)=nan;
YY(index)=0;
plot(T/60,YY,'linewidth',3,'color',cc(i,:)); %Plot results.
t(i)=T(index)/60;
hold on
end
t %Print out the times of death.
axis([0 60 0 90]) %Set axes.
%Make the plot look nice.
legend('Tall guy','Evil Clown','Pumpkin Head','Baby Man','Hero Girl','Dead Girl','Skin Face','location','northoutside','orientation','horizontal')
xlabel('Time in minutes')
ylabel('Combatant Health')
function dy = ODES(t,y,C)
Terms=y.*C'; %The value of the each combatant's attack.
dy=zeros(7,1); %Preallocation of the variables.
for i=1:7
indices=[1:i-1,i+1:7]; %Indices to be summed over.
dy(i)=-heaviside(y(i))/((1+y(i)^2)*2*C(i))*sum(Terms(indices)); %Differential equation.
end
%Clear computer memory and plots.
clear
close all
clc
options = odeset('RelTol',1e-4,'AbsTol',1e-5); %Options set for the ODE solver.
S=[9 7 6 8 3 8 9]; %Vector of strength values.
A=[7 8 4 3 8 6 3]; %Vector of agility values.
H=[45 65 60 40 90 10 20];%Vector of initial health.
C=S.*A; %The interaction function is scaled by the strength multiplied by the agility.
[T,Y] = ode45(@(t,y) ODES(t,y,C),[0 7000],H,options); % Solve the ODE.
cc=lines(7); % Set the legend colours.
for i=1:7
%Find the last moment alive.
YY=Y(:,i);
YY(YY<0.1)=0;
index=find(YY,1,'last');
YY(YY==0)=nan;
YY(index)=0;
plot(T/60,YY,'linewidth',3,'color',cc(i,:)); %Plot results.
t(i)=T(index)/60;
hold on
end
t %Print out the times of death.
axis([0 60 0 90]) %Set axes.
%Make the plot look nice.
legend('Tall guy','Evil Clown','Pumpkin Head','Baby Man','Hero Girl','Dead Girl','Skin Face','location','northoutside','orientation','horizontal')
xlabel('Time in minutes')
ylabel('Combatant Health')
function dy = ODES(t,y,C)
Terms=y.*C'; %The value of the each combatant's attack.
dy=zeros(7,1); %Preallocation of the variables.
for i=1:7
indices=[1:i-1,i+1:7]; %Indices to be summed over.
dy(i)=-heaviside(y(i))/((1+y(i)^2)*2*C(i))*sum(Terms(indices)); %Differential equation.
end

 
I was diagnosed with Idiopathic Pulmonary Fibrosis (IPF) four years ago. For over two years, I relied on prescription medications and therapies, but unfortunately, the symptoms continued to worsen. My breathing became more laboured, and I experienced increasing fatigue and shortness of breath with even minimal activity.Last year, out of desperation and hope, I decided to try an herbal treatment program from NaturePath Herbal Clinic.Honestly, I was skeptical at first, but within a few months of starting the treatment, I began to notice real changes. My breathing became easier, the tightness in my chest eased, and I felt more energetic and capable in my daily life. Incredibly, I also regained much of my stamina and confidence. It’s been a life-changing experience I feel more like myself again, better than I’ve felt in years.If you or a loved one is struggling with IPF, I truly recommend looking into their natural approach. You can visit their website at www.naturepathherbalclinic.com
ReplyDelete