Epidemie und Mathematik
Aus Wiki1
(Unterschied zwischen Versionen)
(Der Versionsvergleich bezieht 23 dazwischenliegende Versionen mit ein.) | |||
Zeile 20: | Zeile 20: | ||
brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-0.1, 0.5, 1.1, -1.1], grid: true, axis:true}); | brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-0.1, 0.5, 1.1, -1.1], grid: true, axis:true}); | ||
- | Pop = brd.createElement('slider',[[0.10,-0.3],[0.5,-0.3],[1,60, | + | Pop = brd.createElement('slider',[[0.10,-0.3],[0.5,-0.3],[0.1,60,1]],{name:'Mio. Einwohner',snapWidth:0.1}); |
- | id = brd.createElement('slider',[[0.10,-0.4],[0.5,-0.4],[0, | + | id = brd.createElement('slider',[[0.10,-0.4],[0.5,-0.4],[0,10,30]],{name:'Infektionsdauer in Tagen',snapWidth:1}); |
- | ir = brd.createElement('slider',[[0.10,-0.5],[0.5,-0.5],[0, | + | ir = brd.createElement('slider',[[0.10,-0.5],[0.5,-0.5],[0,2,10]],{name:'Infektionrate pro 100 Kontakte',snapWidth:0.1}); |
- | pit0 = brd.createElement('slider',[[0.10,-0.6],[0.5,-0.6],[ | + | 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],[ | + | 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, | + | T = brd.createElement('slider',[[0.10,-0.8],[0.5,-0.8],[0,100,400]],{name:'Tage',snapWidth:1}); |
Zeile 37: | Zeile 37: | ||
Sumit[0]=it[0]; | Sumit[0]=it[0]; | ||
iw=ir.Value()*KT.Value()/100; | iw=ir.Value()*KT.Value()/100; | ||
- | for(i=1;i<t;i++){ | + | for(i=1;i<t+1;i++){ |
if (i>dt) { | if (i>dt) { | ||
- | it[i]=iw*(1-Sumit[i-1]/p)*(Sumit[i-1]-Sumit[i-dt]); | + | it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1]-Sumit[i-dt])); |
} | } | ||
else { | else { | ||
- | it[i]=iw*(1-Sumit[i-1]/p)*(Sumit[i-1]); | + | it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1])); |
} | } | ||
- | Sumit[i]=Sumit[i-1]+it[i]; | + | Sumit[i]=Math.min(Sumit[i-1]+it[i],p); |
} | } | ||
- | + | return Math.round(it[t]); | |
- | + | ||
} | } | ||
Zeile 62: | Zeile 61: | ||
function gesamtinfekt(x){ | function gesamtinfekt(x){ | ||
- | + | 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]); | ||
} | } | ||
Zeile 77: | Zeile 88: | ||
function Rwert_mom(x){ | function Rwert_mom(x){ | ||
p_inf=gesamtinfekt(x); | p_inf=gesamtinfekt(x); | ||
- | Rmom=id.Value()*KT.Value()*ir.Value()/100*(1-p_inf/(Pop.Value()*1000000 | + | Rmom=id.Value()*KT.Value()*ir.Value()/100*(1-p_inf/(Pop.Value()*1000000)); |
return Rmom; | return Rmom; | ||
} | } | ||
Zeile 94: | Zeile 105: | ||
var l_Y=brd.create('line',[py1,py2],{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))+" | + | 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 Math.round | + | 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(g.X()*T.Value()))+" Rwert "+Math.round(g.X()*T.Value()*10)/10+" Tagen bei "+Math.round(Pop.Value()*1000000/10)*10+" Einwohner";}],{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'}); | 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'}); | 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]] | [[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