|
isomer |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 21.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.03.2009, 20:30
Titel: Intergration von DGL
|
 |
Hallo!
Ich hätte mal eine Frage bezüglich Differrenzialgleichungen.
Ich hab hier eine DGL die die Insulinregulierung beschreibt.
dy/dt = a*(M-y)-b*y + p/v
als angaben für p hab ich w fälle
p(t)= -40(t^2-4t+3) 1 < t < 3
im anderen fall ist p(t) Null
Wie kann ich das im m-file definieren um die Integration der DGL zu ermöglichen?
Danke
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.03.2009, 11:07
Titel:
|
 |
Wenn ich die Frage richtig verstehe, folgendermaßen:
Natürlich müssten a, b, M und v noch definiert werden.
Das ganze dann z.B. in ODE45 stecken und fertig.
Viele Grüße,
Harald
|
|
|
isomer |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 21.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.03.2009, 14:44
Titel:
|
 |
Hallo!
Danke für die schnelle Antwort.
Ich hab aber noch eine frage.
Ich hab da jetzt noch eine zweite DGL und die beiden DGL hängen zusammen.
DIe zweite DGL wäre
dx/dt = c*[y-M]-d-q/v
Ich hab die Variablen c,d q im m-file definiert. Aber irgendwie bekomme ich den zusammenhang der DGL nicht hin. Ich weiß nicht, wie man das im m-file schreibt.
Weiters muss ich auch noch die Anfangsbedingungen definieren für ode45, aber da hab ich auch irgendwie ein problem.
Die Anfangsbedingungen sind y(0)=0.75, und x(0)= 0.
Wäre super wenn mir wer helfen kann.
Danke
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.03.2009, 16:39
Titel:
|
 |
Das ist in der MATLAB-Hilfe an einem Beispiel beschrieben, wenn man nach ode45 sucht (erster Treffer, etwa zur Hälfte scrollen)
Für den vorliegenden Fall würde das so aussehen:
Aufruf wäre dann unter Berücksichtigung der Anfangsbedingungen
wobei Tmax die Simulationszeit ist.
|
|
|
isomer |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 21.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.03.2009, 20:51
Titel:
|
 |
vielen Dank!
Hab es eh auch so ähnlich probiert. Hat aber irgendwie nicht funktioniert.
|
|
|
isomer |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 21.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.03.2009, 21:28
Titel:
|
 |
Wenn ich das so eintippe, wie es oben ist dann komm immer folgende fehlermeldung oder meldungen
??? Undefined function or variable "c".
Error in ==> versuch at 2
dy(1)=[c*(y-m)-d+q/v];
Error in ==> odearguments at 111
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
ich hab aber die einzelnen werte im m-file angegeben.
Was kann ich da noch falsch machen?
Danke
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.03.2009, 21:38
Titel:
|
 |
Die Variable c ist offensichtlich nicht definiert. Darauf achten, dass c definiert wird, BEVOR es verwendet wird.
Empfehlung: Bei Fehlermeldungen immer den Anfang und das Ende lesen. Der Rest ist meist Folgefehler.
|
|
|
isomer |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 21.12.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.03.2009, 01:06
Titel:
|
 |
Hallo
Den Fehler hab ich jetzt beseitigt, jetzt hab ich aber die nächste Fehlermeldung bekommen.
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
Error in ==> versuch at 14
dy(1)=[c*(y-m)-d+q/v];
Error in ==> odearguments at 111
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.03.2009, 10:10
Titel:
|
 |
Sehe ich nicht auf Anhieb.
Vermutung: y kommt als Vektor rein. Es müsste also heissen:
Ist in dem Fall weder dx noch dy direkt von x abhängig? Falls doch, müsste man dafür y(1) verwenden.
Am besten auch mal den bisherigen Code posten, oder per PN schicken, wenn es noch Probleme gibt.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|