|
|
exakte lösung impulsgleichung |
|
ng83 |

Forum-Anfänger
|
 |
Beiträge: 43
|
 |
|
 |
Anmeldedatum: 26.11.12
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.05.2014, 14:09
Titel: exakte lösung impulsgleichung
|
 |
Hallo,
ich möchte die Hodgkin-huxley- Gleichung gern exakt lösen, habe bis jetzt aber nur approximative Algorithmen gesehen.
Meine Frage. Ist dies mit matlab möglich? Wie kann dies aussehen.
Ich habe leider keinen Ansatz, wie ich vorgehen soll.
Die AUsgangsgleichung lautet:
C*dv/dt=I-g(v-E)
Beim schriftlichen lösen würde ich Trennung der Variablen anwenden.
Habt ihr vllt. eine Idee, die mich weiterbringt?
Vielen lieben Dank für Eure Hilfe.
ng
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.05.2014, 15:38
Titel:
|
 |
Hallo,
Da die Gleichung nicht zu kompliziert ist, sollte das klappen.
Grüße,
Harald
|
|
|
ng83 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 43
|
 |
|
 |
Anmeldedatum: 26.11.12
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.05.2014, 07:46
Titel:
|
 |
Hallo Harald,
danke für die Hilfe. Lt. Mathworks gibt es ja verschiedene Möglichkeiten. Ich hätte jetzt spontan diese hier verwendet:
statt eqn wird hier einfach meine Gleichung reingeschrieben?
VG und Lieben dank.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.05.2014, 10:07
Titel:
|
 |
Hallo,
genau, aber vorher die symbolischen Variablen definieren.
Du kannst dich ja an den Beispielen in der Hilfe orientieren.
Grüße,
Harald
|
|
|
ng83 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 43
|
 |
|
 |
Anmeldedatum: 26.11.12
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.05.2014, 21:38
Titel:
|
 |
Hallo,
hab jetzt mal probiert, bekomme es aber nicht hin.
Dankeschön schonmal
LG
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.05.2014, 21:47
Titel:
|
 |
Hallo,
bitte möglichst reproduzierbaren Code liefern und sich auf das nötige beschränken, und vor allem: wenn etwas nicht funktioniert, dann sagen, was nicht funktioniert.
Du verwendest y in verschiedenen Zusammenhängen, wovon ich abraten würde.
In der DGL kommt y nur auf einer Seite und als Ableitung vor, sollte aber doch auf beiden vorkommen?
Eine Zuweisung y(t) = ... ist nicht sinnvoll, ich würde yloesung = ... verwenden.
Hier ein Beispiel mit deiner ursprünglichen DGL:
Grüße,
Harald
|
|
|
ng83 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 43
|
 |
|
 |
Anmeldedatum: 26.11.12
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.05.2014, 07:58
Titel:
|
 |
Hallo,
mein Code sieht folgendermaßen aus.
Die Fehlermeldung dazu:
Error using plot
Conversion to double from sym is not possible.
Error in odeMethode (line 40)
plot(t,v(t));
Hilft mir hier ein typecast oder wo liegt mein Fehler?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.05.2014, 18:28
Titel:
|
 |
Hallo,
was du plotten willst, ist doch die Lösung. Also z.B.
plot arbeitet mit Double-Daten, d.h. du müsstest mit SUBS Werte einsetzen.
Grüße,
Harald
|
|
|
ng83 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 43
|
 |
|
 |
Anmeldedatum: 26.11.12
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.05.2014, 20:09
Titel:
|
 |
Hallo Harald,
ok. mit
erhalte ich die folgende fehlermeldung:
Error using char
Cell elements must be character arrays.
Error in ezplot (line 159)
fmsg = char(f);
Error in sym/ezplot (line 46)
h = ezplot(fhandle(f));
Error in odeMethode (line 40)
ezplot(vloesung);
ich versteh es nicht, sorry.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.05.2014, 21:21
Titel:
|
 |
Hallo,
sorry - ich hatte das nicht vorher ausprobiert, und es kann ja auch nicht gehen:
bei mir kommt die Fehlermeldung
Zitat: |
Error using sym/ezplot (line 45)
Plotting requires not more than 2 variables. |
du nutzt also wohl ein älteres MATLAB?
Sinnvoll wäre also: vorher Werte für die Konstanten in der DGL definieren oder im Nachhinein welche einsetzen, so dass nur t als Variable übrig bleibt.
Grüße,
Harald
|
|
|
ng83 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 43
|
 |
|
 |
Anmeldedatum: 26.11.12
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.05.2014, 08:30
Titel:
|
 |
Hallo Harald,
ich habe es wie folgt gemacht:
Ich bekomme die folgende Lösung:
EL*gL - C2*exp(-(gL*t)/C) + i)/gL , wobei C2 hier die Integrationskonstante sei.
und als Plot eine Gerade.
Ich glaube das ist es, denn die erste Ableitung entspricht ja dem ANstieg einer Geraden.
VG und herzlichen Dank für Deine Mühe
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 22.05.2014, 15:13
Titel:
|
 |
Hallo,
warum denn jetzt wieder ganz anders als bisher?
Die Anfangsbedingung hat hier wohl keine Berücksichtigung gefunden (sonst wäre keine Integrationskonstante enthalten) und eine Gerade als Plot ist m.E. doch eher überraschend, da die Gleichung ja einen Exponentialterm enthält.
Vorschlag ist wie gesagt:
Zitat: |
Sinnvoll wäre also: vorher Werte für die Konstanten in der DGL definieren oder im Nachhinein welche einsetzen, so dass nur t als Variable übrig bleibt. |
Grüße,
Harald
|
|
|
ng83 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 43
|
 |
|
 |
Anmeldedatum: 26.11.12
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.05.2014, 07:49
Titel:
|
 |
Hallo Harald,
das mit der Gerade hatte ich mir im Nachhinein auch nocheinmal überlegt. Ich war nur froh, dass es endlich funktioniert hat...probier es jetzt nochmal mit deinem Vorschlag. Es hat auch nicht mit der Vorabdefinition der Werte funktioniert...
VG Nicole
|
|
|
ng83 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 43
|
 |
|
 |
Anmeldedatum: 26.11.12
|
 |
|
 |
Wohnort: Deutschland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.05.2014, 08:07
Titel:
|
 |
Hallo Harald,
mein Code sieht wie folgt aus
die Lösung, die Matlab ausgibt:
vloesung =
(C2*exp(-(3*t)/1000))/3 - 47/3
und als Plot wieder eine Gerade, aber keine Fehlermeldungen.
Die Matlab-Version ist R2012a.
LG
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.05.2014, 09:02
Titel:
|
 |
Hallo,
bitte der Übersichtlichkeit halber nicht benötigte Codeteile weglassen.
Es mag auf den ersten Blick aussehen wie eine Gerade, ist aber keine.
Ich würde noch die Anfangsbedingung setzen.
Grüße,
Harald
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|
|