Deterministisches Modell der Lambda-Phagen-Lyse/Lysogenie [MATLAB] [geschlossen]

http://i.imgur.com/CVB3tUT.png

Projekt 1 Basis:

Geben Sie hier die Bildbeschreibung ein

Kann mir bitte jemand helfen zu verstehen, was ich aus dem Basiscode von Project 1 benötige, um die Fragen 1 und 2 aus dem ersten Bild zu erledigen? Ich bin neu bei MATLAB, daher wäre eine gründliche Erklärung großartig.

Dies kann mit der Loop-Methode oder Forward Eulars erfolgen. Ich weiß nicht, welches für diese Frage einfacher ist, noch würde ich wissen, wie ich es selbst machen soll, da ich noch nie einen Programmierkurs besucht habe und irgendwie erwartet wird, dass ich weiß, wie man das alles macht.

Antworten (2)

Bei Fragen zu den Hausaufgaben gilt die Richtlinie, einige Arbeiten vom Poster zu sehen . Da Sie sich nicht mit Programmierung auskennen, habe ich skizziert, was der Code neben den einfachen Operationen (+, -, /, *, ^) tut, um Ihnen den Einstieg zu erleichtern. Ich denke, Sie sollten die Modelle mit diesen Informationen implementieren können, und ich würde gerne Ihre eigenen Antworten bestätigen.


Der beste Weg, um herauszufinden, was eine Codezeile in einer beliebigen Sprache bedeutet, besteht darin, sie einzugeben und zu sehen, was passiert. Um Ihnen den Einstieg in die Programmierung in MATLAB zu erleichtern:

Jeder Text, der auf ein % (in derselben Zeile) folgt, ist ein Kommentar: Er tut nichts im Programm und ist nur dazu da, dass Sie sich selbst Notizen schreiben.

Die ersten beiden Abschnitte, Zeitbezogene Konstanten und Simulationskonstanten, sind nur das Setzen von Variablen. Es ist, als würde man x = 3 sagen, damit man später andere Operationen mit x machen kann.

Das Semikolon am Ende einer Zeile (in MATLAB) unterdrückt die Ausgabe der Zeile. Sehen Sie, was passiert, wenn Sie an der Eingabeaufforderung x = 3;versus eingeben.x = 3

In Iterationskonstanten lengthist dies nur eine Funktion, die Ihnen die Länge des Vektors mitteilt. X_rna_0wurde zuvor initialisiert, um in Schritten von 0,2 von 0 bis 1,4 zu gehen: Die Syntax lautet vector_name = start:step:end.

Der Abschnitt Simulationsvariablen erstellt xyz-Matrizen, wobei alle Werte auf Null initialisiert werden. Die Länge in x ist xr_max und so weiter. Die Idee ist, dass Sie später bei jedem Schritt in Eulers Methode und jedem Wert von xr_max und xp_max den Wert von X_rna speichern.

Die Anfangsbedingungen werden mit gesetzt meshgrid, was hier am besten erklärt wird . Das :bedeutet alle Zeilen/Spalten, die der Position entsprechen: Angenommen, Sie hätten eine 3 x 3-Matrix namens apple. apple[:,1]gibt Ihnen die erste Spalte (1) aller drei Zeilen. apple[1,:]gibt Ihnen die erste Zeile (1) aller drei Spalten. Der .' bedeutet, dass die Matrix transponiert wird: Auch hier ist der beste Weg, um zu sehen, was los ist, eine eigene Matrix zu erstellen, die Operation durchzuführen und zu sehen, ob das Ergebnis das ist, was Sie sich vorgestellt haben.

Für Schleifen können Sie zunächst hier nachlesen . Ich glaube nicht, dass das Verständnis dieser Schleife mehr Informationen erfordert als diese Seite.

Punkt vor ^2 bedeutet, dass jedes Element der Matrix quadriert wird; Sie multiplizieren die Matrix nicht mit sich selbst.

Das sollte den größten Teil des Codes für Sie entschlüsseln. Wenn Sie weitere Fragen haben, können Sie hier gerne einen Kommentar hinterlassen.

EDIT: Frage 2 fordert Sie auf, eine Handlung zu erstellen. Ein Diagramm von y vs. x würde durch Tippen erstellt werdenplot(x,y)

Außerdem kann auf die Hilfe zu einer bestimmten MATLAB-Funktion zugegriffen werden, indem Sie eingeben help name_of_function.

Dies ist ein Satz gewöhnlicher Differentialgleichungen. Gehen Sie so vor

  1. Erstellen Sie eine Matlab-Funktion für die ODEs, die das System definieren (Gleichungen 1,2,3,4). Die Funktion sollte einen 4-dimensionalen Vektor zurückgeben, der im Grunde dy/dt (die Ratengleichung) ist.
  2. im Hauptprogramm deklarieren Sie die Anfangswerte verschiedener Komponenten. Es gibt keine absolute Regel dafür, was es sein sollte, und es basiert auf Ihren Vorkenntnissen des Systems
  3. Schreiben Sie im Hauptprogramm ein Modul, um die Ratenfunktion über ein Zeitintervall zu integrieren. Dafür gibt es mehrere numerische Algorithmen wie Euler, implizites Euler, Runge-Kutta, polynomiale Interpolation, Prädiktor-Korrekturmethoden (Adam Bashworth) usw. Wenn Sie Ihr Wissen über die numerischen Methoden verbessern möchten, schreiben Sie Ihren eigenen Code für jeden Algorithmus . Ein gutes Buch über die Grundlagen numerischer Methoden kann nachgeschlagen werden. Andernfalls können Sie in Matlab integrierte ODE-Solver verwenden .

Ein Hinweis zu numerischen Methoden zum Lösen von ODEs: Was Sie genau tun, ist, die Ratenfunktion in kleinen Zeitintervallen zu addieren und zu aktualisieren. Die sehr grundlegende Methode ist Euler, in der Sie dies einfach implementieren:

y = y + h*f(x,t)....... explicit/forward euler
y = y + h*f(x,t+h)...... implicit/backward euler

wobei dy/dx =f(x,t)und hein kleines Zeitintervall ist

Was Sie also genau tun müssen, ist, eine Schleife auszuführen, die von t=t_initialbis t=t_finalmit kleinen Inkrementen von geht h. Sie können jede grundlegende Schleife wie forSchleife oder whileSchleife verwenden. forSchleifen sind recht einfach zu implementieren. (Die grundlegende Syntax ist - for(Anfangsbedingung; Endbedingung; Inkrementfunktion), was in Matlab so einfach ist wiefor t=t_initial:h:t_final

Innerhalb der Schleife wenden Sie die Integrationsoperation an.

Fortgeschrittenere Techniken verwenden eine variable Schrittgröße, um die Leistung zu verbessern. Sie können die integrierten ODE-Solver verwenden, wenn Sie eine bessere Leistung und Genauigkeit benötigen.

Was Ihre Hausaufgaben angeht.. Sie haben bereits den Code; müssen nur die Parameter setzen.