matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMathematicaGleichungssystem mit Mutatione
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Mathematica" - Gleichungssystem mit Mutatione
Gleichungssystem mit Mutatione < Mathematica < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Gleichungssystem mit Mutatione: Hilfe zur Programmierung
Status: (Frage) beantwortet Status 
Datum: 12:18 Mi 24.02.2010
Autor: Daidalus

Hallo,

zwecks Simulation möchte ich in Mathematica eine Virusinfektion simulieren. Das Problem ist, daß zunehmend neue Mutationen entstehen. Um das umzusetzen, habe ich die folgende Schleife programmiert:


...
v1[0] = 1;
v2[0] = 0;
v3[0] = 0;
  ...

Do[o[t_] = RandomReal[]; a[t_] = RandomReal[];
   v1[t_] =
    v1[t - 1] + h v1[t - 1] (r (1 + ix) - p x1[t - 1] - q z[t - 1]);
   w2[t_] =
    v2[t - 1] + h v2[t - 1] (r (1 + ix) - p x2[t - 1] - q z[t - 1]);
   w3[t_] =
    v3[t - 1] + h v3[t - 1] (r (1 + ix) - p x3[t - 1] - q z[t - 1]);
   x1[t_] =
    x1[t - 1] +
     h (c v1[t - 1] -  
        u  x1[t - 1]  (1 + v1[t - 1] + v2[t - 1] + v3[t - 1]));
   x2[t_] =
    x2[t - 1] +
     h (c v2[t - 1] -  
        u  x2[t - 1]  (1 + v1[t - 1] + v2[t - 1] + v3[t - 1]));
   x3[t_] =
    x3[t - 1] +
     h (c v3[t - 1] -  
        u  x3[t - 1]  (1 + v1[t - 1] + v2[t - 1] + v3[t - 1]));
   z[t_] = z[t - 1] + h (( 1 - ix) k - u z[t - 1]);
   v2[t_] = If[ w2[t] <= 0 && o[t] > 0.95, a[t], w2[t]];
   v3[t_] =
    If[ w3[t] <= 0 && ö[t] > 0.95 &&  w2[t] > 0, ä[t], w3[t]];
   X1[t] = x1[t]; X2[t] = x2[t]; X3[t] = x3[t]; V1[t] = v1[t];
   V2[t] = v2[t]; V3[t] = v3[t]; W2[t] = w2[t]; W3[t] = w3[t];
   Z[t] = z[t]; U[t] = o[t]; A[t] = a[t], {t, 1, T}];

Das Problem ist, daß ich somit jede mögliche Virusmutation v[t] and die zugehörigen Antigene x[t] zuvor programmieren muß, Null setze und dann beim Eintreffen der Bedingung auf einen höheren Wert setze. In dem Beispiel sind nur 3 Mutationen angeben, sollten es aber mehr sein, wird es sehr schnell umständlich.

Weiß jemand wie es möglich ist, daß Mathematica innerhalb der Do-Funktion neue Funktionen anhängt? Mit append kann man leider keine Funktionen anhängen.

Danke für die Hilfe!


Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
http://www.matheplanet.com/default3.html?call=viewforum.php?forum=41004&ref=http%3A%2F%2Fwww.google.com%2Fsearch%3Fhl%3Dde%26safe%3Doff%26client%3Dfirefox-a%26hs%3D1MZ%26rls%3Dorg.mozilla%253Ade%253Aofficial%26q%3Dmathematica%2Bhilfe%2Bforum%26btnG%3DSuche%26lr%3D%26cts%3D1267006033985%26aq%3Df%26oq%3D

        
Bezug
Gleichungssystem mit Mutatione: Antwort
Status: (Antwort) fertig Status 
Datum: 12:46 Mi 24.02.2010
Autor: Peter_Pein

Hallöle,

wie wäre es, wenn Du v und x als Listen implementierst ({v1,v2....} bzw {x1,x2,...}?

Da es sich augenscheinlich um einen iterativen Prozess handelt, wäre es eventuell auch lohnend, sich in der Hilfe auch mal NestList bzw. NestWhileList anzuschauen.

Allerdings verstehe ich nicht, warum a und o als Funktionen mit Parameter definiert sind (a=o=RandomReal verhielte sich genau so) und warum Du die Funktionen v1,v2 etc  in jedem Schleifendurchlauf neu definierst, aber ich kenne ja auch nicht das ganze Programm.

Gruß,
Peter

Bezug
                
Bezug
Gleichungssystem mit Mutatione: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:10 Mi 24.02.2010
Autor: Daidalus

Danke für die Antwort,

möglicherweise ist NestList auch ein Option, jedoch handelt es sich hier um ein Gleichungssystem. Nest scheint sich nur auf eine Funktion, wenn auch mit mehreren Argumenten zu beziehen.

Die Funktionen für v2, v3 werden als w2 und w3 neu definiert, da ab einem bestimmten Punkt der Wert exogen von Null auf ein positive Zahl gesetzt wird.

Das System ist eigentlich das folgende:

[mm] v_i[t+1] [/mm] = [mm] v_i[/mm] [t] + h v1[t] (r (1 + ix) - p [mm] x_i[/mm] [t] - q z[t]);

[mm] x_i[t+1] =x_i[/mm] [t] + h (c [mm] v_i[/mm] [t] -u [mm] x_i[/mm] [t] (1 + [mm] Summe_i[v_i[/mm] [t];

z[t+1] = z[t] + h (( 1 - ix) k - u z[t]);

mit i=1,..,n;

und der Wahrscheinlichkeit einer neue Mutation bei 5% per Periode liegt.

Das Problem ist, daß ich nicht die n Gleichungen für [mm] v_i [/mm] und [mm] x_i [/mm] zuvor programmieren möchte, sondern daß Mathematica jeweils zwei neue Funktionen dazu setzen sollte mit der entsprechenden Wahrscheinlichkeit.

Bezug
                        
Bezug
Gleichungssystem mit Mutatione: Antwort
Status: (Antwort) fertig Status 
Datum: 20:28 Mi 24.02.2010
Autor: Peter_Pein

Nenn mich stur, aber ich bin der festen Überzeugung, dass es für neue Mutationen keine Funktionen, sondern Daten braucht.

Ich habe das mal fix hingetippselt. Leider weiss ich nicht genau, welche Werte für die Konstanten typisch sind und habe mental gewürfelt ;-)

Auch war mir unklar, wie neue Mutationen ihre Startwerte gesetzt bekommen müssen; hier lasse ich Mathematica würfeln.

Ein Testlauf brachte mir folgendes Schaubild (sieht eigentlich plausibel aus):
[Dateianhang nicht öffentlich]

Das [a]Notebook ist im Anhang.

Gruß,
Peter


Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
Anhang Nr. 2 (Typ: nb) [nicht öffentlich]
Bezug
                                
Bezug
Gleichungssystem mit Mutatione: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 22:04 Mi 24.02.2010
Autor: Daidalus

Vielen Dank für die Mühe! Leider ist mir ein Fehler bei der Notation unterlaufen. In der Darstellung ist das v1[t] ein [mm] v_i[/mm] [t]. Das Problem ist, daß die Mutation nicht nur Perturbationen der Werte sind, sondern eigenständige Funktioen. Vielleicht noch mal ein einfacheres Bespiel:

Nehmen wir an, das System ist wie folgt:

gegeben [mm] $x_1(0)$ [/mm] und [mm] $x_1(0)$ [/mm]
[mm] $v_1(t+1) [/mm] = a [mm] v_1(t) [/mm] + b [mm] x_1(t)$; [/mm]
[mm] $x_1(t+1) [/mm] = c [mm] v_1(t) [/mm] + d [mm] x_1(t)$; [/mm]

Angenommen, die Mutationswahrscheinlichkeit liegt bei 5%.Jetzt gibt es z.B. 30 Iterationen, ohne daß ein Wert RandomReal größer 0.95 erscheint. Die Ausgabe beinhaltet also 2 x 30 Werte.

In Periode 31 ist der Wert wird RandomReal > 0.95 erzeugt, somit kommt ein Mutant hinzu. Das Gleichungssystem lautet dann:

[mm] $v_1(t+1) [/mm] = a [mm] v_1(t) [/mm] + b [mm] x_1(t)$; [/mm]
[mm] $x_1(t+1) [/mm] = c [mm] v_1(t) [/mm] + d [mm] x_1(t)$; [/mm]
[mm] $v_2(t+1) [/mm] = a [mm] v_2(t) [/mm] + b [mm] x_2(t)$; [/mm]
[mm] $x_2(t+1) [/mm] = c [mm] v_2(t) [/mm] + d [mm] x_2(t)$; [/mm]

Mit de Wert [mm] $v_2(30)= [/mm] Z$ [mm] $x_2(30) [/mm] = W$, wobei Z und W irgendwelche Zufallsvariablen sind.

In 45 Periode/Iteration trifft die Bedingung wieder zu.  Wir haben also 2x 30 Werte für die ersten 30 Perioden + 15 x 4Werte für Periode 30 bis 45 (zuzüglich der Ursprungsbedingungen). Jetzt kommen wieder 2 weitere Gleichungen für [mm] v_3(t) [/mm] und [mm] x_3(t) [/mm] hinzu. Ich möchte also, daß Mathematica automatisch zwei Funktionen anfügt, sobald die bedigung erfüllt ist.

Bezug
                                        
Bezug
Gleichungssystem mit Mutatione: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:20 Di 02.03.2010
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]