Gelöste Aufgaben/COVI

Aus numpedia
Zur Navigation springen Zur Suche springen

Aufgabenstellung

Als Ingenieure können wir die COVID-19-Epidemie genauso modellieren, wie technische Systeme.

Wir brauchen dazu "Koordinaten" - also Messgrößen - die die Anzahl der Individuen erfassen, die

  • ansteckbar "a",
  • infiziert "i" - mit und ohne Sympthome - und
  • genesen "r"

sind. Für jede dieser Koordinaten müssen wir nun "Bewegungsgleichungen" - also z.B. Differentialbeziehungen in der Zeit - hinschreiben.

Das nennen wir "Modellbildung".

Hier geht es um die Modellierung
  • der zeitlichen Zusammenhänge,
  • die Interpretation der Zustandsgrößen des Systems und
  • das Verständnis der Abläufe bei der Verbreitung des Virus in Abhängigkeit von zentralen Systemparametern.

Das Modell ist nicht dafür gemacht, um daraus quantitative Schlussfolgerungen zu ziehen.

Diese algebraischen und Differentialgleichungen sind dabei nicht das Ergebnis von Gleichgewichtsbeziehungen wie in der Technischen Mechanik. Wir begnügen uns statt dessen damit, Phänomene der Epidemie mit unserer Mathematik zu erfassen.

Numerische Lösung der COVID-19 Pandemie als Anfangswertproblem.

Und so gehen wir vor:

Wir modellieren eine Grundgesamtheit von n0 = 80 Millionen Individuen.

Die Pandemie soll bei einer Durchseuchung von α=50% zum Stillstand kommen - die Individuen sind dann so weit voneinander entfernt, dass eine Ansteckung unwahrscheinlich ist.

Zum Zeitpunkt t0=0 seien von insgesamt n0 Individuen

i0=1000

infiziert.

Lösung mit Maxima

Header
Wir lösen hier das Anfangswertproblem zu nichtlinearen Bewegungsgleichungen.

Diese Gleichungen haben wir nicht - wir entwickeln sie ad-hoc und achten nur darauf, zentrale Phänomene abzubilden. Eine Abbildung der realen Zahlen ist nicht beabsichtigt.

/*******************************************************/
/* declare variational variables */
declare("δW", alphabetic); /* virtual work */
declare("δA", alphabetic); /* virtual work of implied external forces */
declare("δΠ", alphabetic); /* virtual strain energy */
declare("δu", alphabetic); /* variation of u */
declare("δw", alphabetic);
declare("δφ", alphabetic);
declare("δη", alphabetic);
declare("δθ", alphabetic);
declare("λ" , alphabetic); /* otherwise, this is the lambda fct. */
declare("μ" , alphabetic);
declare("Δr", alphabetic); /*displacement of material point [x,y,z] */
declare("δΔr",alphabetic); /* variation of Δr */
declare("δZ", alphabetic); /* variation of strain */
 
/*******************************************************/
/* parameters */
/* abbreviate: */
geometry  : [h^3 = 12*I[y]/b, b^3 = 12*I[z]/h, b = A/h];
/* Lame's Constants                                */
/* see https://en.wikipedia.org/wiki/Hooke%27s_law */
lameConst : [λ = e*nu/((1+nu)*(1-2*nu)), μ = e/(2*(1+nu))];
 
/* relation: hook's law, modulus of elasticity     */
/* see https://en.wikipedia.org/wiki/Hooke%27s_law */
E :  matrix([2*μ+λ,     λ,     λ,  0,  0,  0],
            [    λ, 2*μ+λ,     λ,  0,  0,  0],
            [    λ,     λ, 2*μ+λ,  0,  0,  0],
            [    0,     0,     0,  μ,  0,  0],
            [    0,     0,     0,  0,  μ,  0],
            [    0,     0,     0,  0,  0,  μ]);
 
/* Strain Displacement Relation */
/* see https://en.wikipedia.org/wiki/Hooke%27s_law */
StrainDispl(arg) := [epsilon[x,x] =      diff(arg[1],x),
                     epsilon[y,y] =      diff(arg[2],y),
                     epsilon[z,z] =      diff(arg[3],z),
                     epsilon[x,y] = 1/2*(diff(arg[1],y) + diff(arg[2],x)),
                     epsilon[x,z] = 1/2*(diff(arg[1],z) + diff(arg[3],x)),
                     epsilon[y,z] = 1/2*(diff(arg[2],z) + diff(arg[3],y))];