Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hey Community =)

Bin ganz neu hier (mein erster Beitrag).

Und zwar hab ich mich angemeldet weil ich folgendes Problem habe:

In der Schule lernen wir mit BlueJ Java und gerade sind wir bei Schleifen. Dazu haben wir eine Aufgabe bekommen in der es um eine Epedemie geht. Wir sollen eine Schleife erstellen die jeweils Tageweise die Zahl der Gesunden, der Kranken und der bereits Immunisierten errechnet.

Soweit auch kein Problem, da die Raten für die täglich Infizierten

und die Rate der Immunisierten angegeben sind:

Tägl. Infektionen: a*g*k (a = Infektionsrate [a > 0])

Tägl. Immunisierungen: b*k (b = Immunisierungsrate [b > 0])

g = Gesunde; k = Kranke

So und hier kommt nun das Problem.

Die Infektionen können niemals über diese Formel errechnet werde!

Außerdem müssen für a und b jeweils sehr kleine Werte genommen werden.

In meinem Probebeispiel bin ich von 50.000 Menschen insgesammt ausgegangen.

49.999 Gesunde und 1 Kranker. (Für a und b hab ich jeweils 0,01 genommen)

Tag 1: Infektionen = a*g*k = 0,01*49999*1 = 500 (gerundet) <- kann sein

Tag 2: Infektionen = a*g*k = 0,01*49499*500 = 247495 <- kann NICHT sein!

...

So nun endlich meine Frage:

Gehe ich die Aufgabe falsch an oder ist die Formel für die Infektion falsch?

Wenn die Formel mist ist, kann mir dann vielleicht jemand helfen auf eine ordentliche zu kommen?

Sorry für so viel Text, ich hoffe mir wird geholfen ;)

Gruß und danke schonmal

Kev

Geschrieben

Rechnerisch ist das schon korrekt.

Deine Startparater sind nur falsch:

Aus einem Kranken mache in runde 1 500 Kranke: Also 0,01*49999*1 = 500

Davon werden immun : ,01*1=0,01

In Runde 2 machts du das gleiche: Aus 500 Kranken mache ca. 500*500 = 250000 Kranke (Die Abnahme um 500 bei den Gesunden kann man bei diesen Größenverhältnissen noch vernachlässigen)

Was in deiner Betrachtung nicht eingeht, ist die Immunisierung. Daher denke ich mal, dass du im zweiten Schritt auch auf die bereits neun Erkranken die Imunisierung anrechnen kannst, also statt ,01*1 lieber ,01*500=5, bleiben immer noch 495 Neukranke übrig.

Deine Startparamter mit 0,01 an Neuerkrankungen (also 1% oder jeder 100te Einwohner, sind hier uzu hoch, und deine Immunisierungsrate mit 1% von 500 im Verhältnis zu gering, so dass du im 2 Schritt nur noch Kranke hast (im dritten Schritt sind se alle tot).

Probiere es mal mit einer weniger Ansteckenden Krankheit, also a=0,0001 und b entsprechend ,01. Dann hast du im ersten Schritt 5 Neukranke etc.

Vielleicht ist im gleichen Zuge deine Population zu klein, also statt 50.000 lieber das 100fache, also 5.000.000 und a entsprechend 0,000001, so dass du im ersten Schritt wieder 5 Neukranke hast. Dann wirst du mathematisch die Entwicklung besser beurteilen können. b würde ich bei ca. 0,001 wählen (muss man aber ausprobieren, da sich b nur auf die bereits erkranken auswirkt.)

Geschrieben
Rechnerisch ist das schon korrekt.

Nein, denn dem Beispiel hängen die Parameter multiplikativ zusammen, das ist falsch. Es handelt sich hierbei um einen Wachstumsprozess mit einer Sättigungsgrenze und diese werden als Anfangswerteproblem mit Hilfe einer Exponentialfunktion modelliert. siehe Exponentielles Wachstum ? Wikipedia

Zu Beginn der Epidemie sind die Kranken = 0 und die gesunden maximal, in diesem Fall kann weder Infektions- noch Immunisierungsrate korrekt sein, denn wenn k = 0 folgt, dass die Raten ebenfalls 0 sind. Immunisierungs- und Infektionsraten sind Konstanten, die in den Wachstumsprozess eingehen. Je nach Wahl dieser beiden Parameter kann die gesamte Anfangsmenge an Personen vollständig krank werden bzw das System sich einschwingen, was man dann auch in einem Phasendiagramm sehen kann.

Geschrieben

Zuerst Danke für die schnellen Antworten =)

Ich habe jetzt mal deinen Ratschlag befolgt und die Startwerte nach oben bzw die Raten nach unten geschraubt. Geholfen hat es zwar was, aber nur in dem Sinne, dass meine Werte nichtmehr so schnell "abheben".

Nun tritt mein Problem eben erst nach Tag 8 auf.

Ich denke das Grundproblem ist, dass die Zahl der Infektionen rasant steigt (wie es ja bei einer Epedemie üblich ist), aber dann nichtmehr nach unten geht (weniger Gesunde übrig -> weniger Leute können noch Krank werden).

Außerdem ist ein großes Problem, dass wenn ich die Kranken mit den Gesunden multipliziere immer eine Zahl herausbekommen werde die weit über der Zahl der gesamten Bevölkerung liegt!

Zu der Sache mit den Immunisierten:

Ich habe nun mal die Rechenreihenfolge umgestellt, so dass zuerst die Kranken errechnet werden und dann davon wieder die Immunisierten abgezogen werden. Also:

1. Kranke errechnen

2. Gesunde - neuKranke

3. Kranke + neuKranke

4. Immunisierte ausrechnen (anhand der Kranken)

5. Kranke - neuImmunisierte

6. Immunisierte + neuImmunisierte

Vorher kammen Schritt 1 und 4 zuerst und dann erst die restlichen Rechnungen.

Doch wie oben erklärt klärt das nicht mein Problem. =//

[OK ich war zu langsam^^ flashpixx hat schon geschrieben was ich mein =P]

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...