Epidemie und Mathematik

Aus Wiki1

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „<jsxgraph box="jxgbox" width="700" height="500"> //Eingabe ir=2; it0=1000; KT=2; ipr=1+ir*KT/100; t=100; it2=it0*POT(ipr,t); var p1xy=[0.5,0.5]; var p2xy=[0,0]…“)
 
(Der Versionsvergleich bezieht 194 dazwischenliegende Versionen mit ein.)
Zeile 1: Zeile 1:
-
<jsxgraph box="jxgbox"  width="700" height="500">
+
2020 stellt ein neues [[Leben und Sterben in Zeiten von Corona|Virus]] die Welt vor eine globale Herausforderung. Noch wissen wir nicht wie es ausgeht.
 +
 
 +
Mit der folgenden Grafik kann der Einfluss verschiedener Faktoren auf die Ausbreitung der Pandemie visualisiert werden.
 +
Mit den Schiebereglern können folgende Vorgaben definiert werden:
 +
*Gesamtpopulation (in Mio.)
 +
*Dauer der Infektiosität
 +
*Infektionsrate als Infektionen, die ein Infizierter je 100 Kontakten verursacht
 +
*Zahl der Anfangsinfizierten
 +
*durchschnittliche Kontakte pro Tag eines Infizierten mit unterschiedlichen Personen
 +
*Betrachteter Zeitraum in Tagen
 +
 
 +
Die Kurve zeigt den Verlauf der Infizierten über die Zeit, wobei sich die Infektionwahrschenlichkeit mit zunehmender Zahl Infizierter verringert.
 +
Mit dem schwarzen Messpunkt kann die Kurve abgelesen werden.
 +
 
 +
Reduzierung der Kontakte führt zur [[Leben und Sterben in Zeiten von Corona|Verringerung der Infektionen]] - ob auch zur Reduzierung von schweren Krankheitsverläufen hängt dagegen von ganz anderen Randbedingungen ab.
 +
 
 +
<jsxgraph box="jxgbox"  width="700" height="700">
//Eingabe
//Eingabe
-
ir=2;
 
-
it0=1000;
 
-
KT=2;
 
-
ipr=1+ir*KT/100;
 
-
t=100;
 
-
it2=it0*POT(ipr,t);
 
-
var p1xy=[0.5,0.5];
+
brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-0.1, 0.5, 1.1, -1.1], grid: true, axis:true});
-
var p2xy=[0,0];
+
Pop  = brd.createElement('slider',[[0.10,-0.3],[0.5,-0.3],[0.1,60,1]],{name:'Mio. Einwohner',snapWidth:0.1});
-
var p3xy=[-0.5,-0.5];
+
id = brd.createElement('slider',[[0.10,-0.4],[0.5,-0.4],[0,10,30]],{name:'Infektionsdauer in Tagen',snapWidth:1});
-
var p4xy=[-0.6,-0.6];
+
ir = brd.createElement('slider',[[0.10,-0.5],[0.5,-0.5],[0,2,10]],{name:'Infektionrate pro 100 Kontakte',snapWidth:0.1});
-
var p5xy=[-0.7,-0.7];
+
pit0 = brd.createElement('slider',[[0.10,-0.6],[0.5,-0.6],[1,100,10000]],{name:'Anfangsinfizierte',snapWidth:10});
 +
KT = brd.createElement('slider',[[0.10,-0.7],[0.5,-0.7],[1,20,40]],{name:'unterschiedliche Kontakte je Infizierter pro Tag',snapWidth:1});
 +
T = brd.createElement('slider',[[0.10,-0.8],[0.5,-0.8],[0,100,400]],{name:'Tage',snapWidth:1});
-
brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-1.1, 1.1, 1.1, -1.1], grid: true, axis:true});
 
-
//Punkte
 
-
var p1 = brd.createElement('point',p1xy,{name:'A', style:5});
 
-
var p2 = brd.createElement('point',p2xy,{name:'B', style:5});
 
-
var p3 = brd.createElement('point',p3xy,{name:'C', style:5});
 
-
var p4 = brd.createElement('point',p4xy,{name:'D', style:5});
 
-
var p5 = brd.createElement('point',p5xy,{name:'E', style:5});
 
-
data = [];
 
-
datax = [];
 
-
datax[0] = function(){ return p1.X();};
 
-
datax[1] = function(){ return p2.X();};
 
-
datax[2] = function(){ return p3.X();};
 
-
datax[3] = function(){ return p4.X();};
 
-
datax[4] = function(){ return p5.X();};
 
-
data[0]= function(){ return p1.Y();};
 
-
data[1]= function(){ return p2.Y();};
 
-
data[2]= function(){ return p3.Y();};
 
-
data[3]= function(){ return p4.Y();};
 
-
data[4]= function(){ return p5.Y();};
 
-
s = 1;    
+
function infektionen(x){
-
deg = brd.createElement('slider',[[0.10,-0.3],[0.4,-0.3],[1,2,4]],{name:'Polynomgrad',snapWidth:1});
+
var t=x;
-
 
+
var it=[];
-
curve = brd.createElement('curve',[datax,data],{strokeColor:'gray',dash:2});    
+
var Sumit=[];
-
curve.updateDataArray = function() {
+
p=Pop.Value()*1000000;
-
     var i, len = data.length;
+
dt=id.Value();
-
     for(i=0;i<len;i++) { this.dataY[i] = data[i]; }
+
it[0]=pit0.Value();
 +
Sumit[0]=it[0];
 +
iw=ir.Value()*KT.Value()/100;
 +
for(i=1;i<t+1;i++){
 +
if (i>dt) {
 +
     it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1]-Sumit[i-dt]));
 +
}
 +
else {
 +
     it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1]));
 +
}
 +
Sumit[i]=Math.min(Sumit[i-1]+it[i],p);
 +
}
 +
return Math.round(it[t]);
}
}
-
regressionPolynomial = JXG.Math.Numerics.regressionPolynomial(deg,datax,curve.dataY); 
 
-
// generateFunction();
 
-
reg = brd.createElement('functiongraph',[regressionPolynomial],{strokeColor:'black'});   
 
-
   
 
-
des1 = brd.createElement('text',[-0.4,0.4,function(){ return "x = -1 bis 1";}],{strokeColor:'black',fontSize:'14px'});
 
-
des2 = brd.createElement('text',[-0.4,0.3,function(){ return "y = -1 bis 1";}],{strokeColor:'black',fontSize:'14px'});
 
-
</jsxgraph>
 
-
<jsxgraph box="jxg2box" width="700" height="200">
 
-
brd2 = JXG.JSXGraph.initBoard('jxg2box', {boundingbox:[-1.1, 2.1, 2.1, -1.1], grid: false, axis:false, showCopyright:false, showNavigation:false});
 
-
brd.addChild(brd2);
 
-
H1 = brd2.createElement('text',[-0.8,1.8,"Vorgegebene Punkte"],{strokeColor:'black',fontSize:'14px'});
 
-
xA = brd2.createElement('text',[-0.8,1.4,function(){ return "Ax = " + Math.round(10000*p1.X())/10000;}],{strokeColor:'black',fontSize:'14px'});
+
function maxinfekt(){
-
xB = brd2.createElement('text',[-0.8,1.2,function(){ return "Bx = " + Math.round(10000*p2.X())/10000;}],{strokeColor:'black',fontSize:'14px'});  
+
Maxi=0;
-
xC = brd2.createElement('text',[-0.8,1.0,function(){ return "Cx = " + Math.round(10000*p3.X())/10000;}],{strokeColor:'black',fontSize:'14px'});  
+
                tmax=T.Value();
-
xD = brd2.createElement('text',[-0.8,0.8,function(){ return "Dx = " + Math.round(10000*p4.X())/10000;}],{strokeColor:'black',fontSize:'14px'});  
+
                for(i = 0; i < tmax; i++) {
-
xE = brd2.createElement('text',[-0.8,0.6,function(){ return "Ex = " + Math.round(10000*p5.X())/10000;}],{strokeColor:'black',fontSize:'14px'});
+
                inf=infektionen(i);
-
yA = brd2.createElement('text',[-0.1,1.4,function(){ return "Ay = " + Math.round(10000*p1.Y())/10000;}],{strokeColor:'black',fontSize:'14px'});  
+
                Maxi=Math.max(inf,Maxi);
-
yB = brd2.createElement('text',[-0.1,1.2,function(){ return "By = " + Math.round(10000*p2.Y())/10000;}],{strokeColor:'black',fontSize:'14px'});  
+
                }
-
yC = brd2.createElement('text',[-0.1,1.0,function(){ return "Cy = " + Math.round(10000*p3.Y())/10000;}],{strokeColor:'black',fontSize:'14px'});
+
                return Maxi;
-
yD = brd2.createElement('text',[-0.1,0.8,function(){ return "Dy = " + Math.round(10000*p4.Y())/10000;}],{strokeColor:'black',fontSize:'14px'});  
+
}
-
yE = brd2.createElement('text',[-0.1,0.6,function(){ return "Ey = " + Math.round(10000*p5.Y())/10000;}],{strokeColor:'black',fontSize:'14px'});
+
-
H2 = brd2.createElement('text',[-0.8,-0.4,"Näherungsgleichung"],{strokeColor:'black',fontSize:'14px'});  
+
function gesamtinfekt(x){
-
t = brd2.createElement('text',[-0.8,-0.8,function(){ return "Polynom f(x) = " + regressionPolynomial.getTerm();}],{strokeColor:'black',fontSize:'14px'});  
+
var t=x;
 +
var it=[];
 +
var Sumit=[];
 +
p=Pop.Value()*1000000;
 +
dt=id.Value();
 +
it[0]=pit0.Value();
 +
Sumit[0]=it[0];
 +
iw=ir.Value()*KT.Value()/100;
 +
for(i=1;i<t+1;i++){
 +
if (i>dt) {
 +
    it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1]-Sumit[i-dt]));
 +
}
 +
else {
 +
    it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1]));
 +
}
 +
Sumit[i]=Math.min(Sumit[i-1]+it[i],p);
 +
}
 +
return Math.round(Sumit[t]);
 +
}
 +
 
 +
function Rwert(){
 +
R=id.Value()*KT.Value()*ir.Value()/100;
 +
return R;
 +
}
 +
 
 +
function Rwert_mom(x){
 +
p_inf=gesamtinfekt(x);
 +
Rmom=id.Value()*KT.Value()*ir.Value()/100*(1-p_inf/(Pop.Value()*1000000));
 +
return Rmom;
 +
}
 +
 
 +
var Kurve= brd.createElement('functiongraph', [function(x){return infektionen(Math.round(x*T.Value()+0.5))/Pop.Value()/1000000;},0,1]);
 +
 
 +
 
 +
//Ablesepunkt
 +
var g=brd.create('glider',[0.5,1,Kurve],{color:'black',name:'Messpunkt'});
 +
px1=[0,function(){return g.Y();}];
 +
px2=[function(){return g.X();},function(){return g.Y();}];
 +
py1=[function(){return g.X();},0];
 +
py2=[function(){return g.X();},function(){return g.Y();}];
 +
 
 +
var l_x=brd.create('line',[px1,px2],{strokeColor:'blue',strokeWidth:1,dash:1});
 +
var l_Y=brd.create('line',[py1,py2],{strokeColor:'blue',strokeWidth:1,dash:1});
 +
 
 +
des0 = brd.createElement('text',[0.1,-1.05,function(){ return infektionen(Math.round(g.X()*T.Value()+0.5))+" Neuinfizierte nach "+Math.round(g.X()*T.Value()*10)/10+" Tagen bei "+Math.round(Pop.Value()*1000000/10)*10+" Einwohner";}],{strokeColor:'black',fontSize:'14px'}); 
 +
des2 = brd.createElement('text',[0.1,-0.95,function(){ return gesamtinfekt(Math.round(g.X()*T.Value()+0.5))+" Infizierte nach "+Math.round(g.X()*T.Value()*10)/10+" Tagen bei "+Math.round(Pop.Value()*1000000/10)*10+" Einwohner "+Math.round(gesamtinfekt(Math.round(g.X()*T.Value()+0.5))/(Pop.Value()*1000000)*100)+"%";}],{strokeColor:'black',fontSize:'14px'});  
 +
des3 = brd.createElement('text',[0.1,-0.85,function(){ return Math.round(Rwert_mom(Math.round(g.X()*T.Value()+0.5))*10)/10+" Rwert "+Math.round(g.X()*T.Value()*10)/10+" Tagen bei "+Math.round(Pop.Value()*1000000/10)*10+" Einwohner";}],{strokeColor:'black',fontSize:'14px'});     
 +
des1 = brd.createElement('text',[0.1,0.3,function(){ return Math.round(maxinfekt()/Pop.Value()/10*10)/10+" max. Inzidenz";}],{strokeColor:'black',fontSize:'14px'});   
 +
R1 = brd.createElement('text',[0.1,0.4,function(){ return Math.round(Rwert()*10)/10+" R Wert";}],{strokeColor:'black',fontSize:'14px'});
</jsxgraph>
</jsxgraph>
 +
 +
Eine kritische Bewertung der [[Frau Priesemann und die wunderbare Welt der Mathematik|Corona-Modellierer*innen]]
 +
 +
https://www.monitor-versorgungsforschung.de/abstract/zur-modellierung-der-corona-pandemie-eine-streitschrift/?cookie-state-change=1679087169469
 +
 +
[[Kategorie:Wissen]]

Aktuelle Version vom 21:58, 17. Mär. 2023

2020 stellt ein neues Virus die Welt vor eine globale Herausforderung. Noch wissen wir nicht wie es ausgeht.

Mit der folgenden Grafik kann der Einfluss verschiedener Faktoren auf die Ausbreitung der Pandemie visualisiert werden. Mit den Schiebereglern können folgende Vorgaben definiert werden:

  • Gesamtpopulation (in Mio.)
  • Dauer der Infektiosität
  • Infektionsrate als Infektionen, die ein Infizierter je 100 Kontakten verursacht
  • Zahl der Anfangsinfizierten
  • durchschnittliche Kontakte pro Tag eines Infizierten mit unterschiedlichen Personen
  • Betrachteter Zeitraum in Tagen

Die Kurve zeigt den Verlauf der Infizierten über die Zeit, wobei sich die Infektionwahrschenlichkeit mit zunehmender Zahl Infizierter verringert. Mit dem schwarzen Messpunkt kann die Kurve abgelesen werden.

Reduzierung der Kontakte führt zur Verringerung der Infektionen - ob auch zur Reduzierung von schweren Krankheitsverläufen hängt dagegen von ganz anderen Randbedingungen ab.

Eine kritische Bewertung der Corona-Modellierer*innen

https://www.monitor-versorgungsforschung.de/abstract/zur-modellierung-der-corona-pandemie-eine-streitschrift/?cookie-state-change=1679087169469

Persönliche Werkzeuge