|
Autor |
Fehlen Gleichungen oder Anfangswerte? |
|
Caleb
Wenig Aktiv  Dabei seit: 08.04.2014 Mitteilungen: 352
 | Themenstart: 2019-11-08
|
Nabend,
ich habe eine Matlab-Frage.
Ich habe folgendes System von Differentialgleichungen erster Ordnung:
$\displaystyle
x_1' = e^{\lambda(x_{i+1}-x_i)}+e^{\mu(x_i-x_{i-1})}
$
für $i=1,2,3$.
Anfangsbedingungen sind $x_i(0)=y_i$.
Dies modelliert also eine "nearest-neighbour" Interaktion.
Die Werte $\lambda$ und $\mu$ sind konstante Wachstumsraten.
So weit so gut.
Nun kommen in den Gleichungen ja aber auch $x_0$ bzw. $x_4$ vor, für die ich keine Gleichungen habe.
Wie würde man das in Matlab umsetzen?
Bin gerade etwas ratlos.
Viele Grüße!
|
Profil
|
rlk
Senior  Dabei seit: 16.03.2007 Mitteilungen: 11661
Wohnort: Wien
 | Beitrag No.1, eingetragen 2019-11-08
|
Hallo Caleb,
bei Deiner Frage geht es um das Differentialgleichungssystem, Matlab kommt erst später ins Spiel.
Ich nehme an, Du meinst
$$x_i' = e^{\lambda(x_{i+1}-x_i)}+e^{\mu(x_i-x_{i-1})}\quad i\in\{1,2,3\}$$
Woher kommt dieses System, sind dort $x_0$ und $x_4$ definiert? Wenn nicht, gibt es verschiedene Möglichkeiten: man könnte $x_0=x_3$ und $x_4=x_1$ festlegen, oder die äußeren Nachbarn $x_0$ und $x_4$ als Konstanten betrachten.
Servus,
Roland
|
Profil
|
Caleb
Wenig Aktiv  Dabei seit: 08.04.2014 Mitteilungen: 352
 | Beitrag No.2, vom Themenstarter, eingetragen 2019-11-08
|
Hallo, rlk,
ja, genau das meine ich, es geht um das System
$\displaystyle
x_i'= e^{\lambda (x_{i+1}-x_i)} + e^{\mu(x_i-x_{i-1})},\quad i=1,2,3.
$
mit den Anfangsbedingungen $x_i(0)=y_i$ mit $y_1y_3$.
Dieses Modell ist eine starke Vereinfachung für Fronten, die exponentiell langsam miteinander inteagieren.
----
Wie würde man das jetzt in Matlab umsetzen?
Meine Idee wäre, zunächst eine Datei nni.m zu schreiben, die die rechte Seite des System definiert:
\sourceon Matlab
function dXdt = nni(t,x,lambda,mu,y0,y4) % nearest neighbour interaction (nni)
% y0 = linker äußerer Nachbar, konstant
% y4 = rechter äußerer Nachbar, konstant
dXdt = [exp(lambda*(X(2)-X(1)))+exp(mu*(X(1)-y0));exp(lambda*(X(3)-X(2)))+exp(mu*(X(2)-X(1))); exp(lambda*(y4-X(3)))+exp(X(3)-X(2)))];
\sourceoff
Ich denke, dann könnte man zum Beispiel den ODE-Löser ode45 verwenden und anschließend die Lösungen $x_i, i=1,2,3$ plotten:
\sourceon Matlab
% willkürliche Wahl: lambda=mu=1 und y0=0, y4=20 sowie y_1=5, y_2=10, y_3=15
% betrachte die ersten 100 Zeitschritte, d.h. $t\in [0,100]$
[t,X] = ode45(@(t,X) nni(t,X,1,1,0,20),[0 100], [5; 10; 15]);
% Plotte x_1=X(1), x(2)=X(2), x(3)=X(3) gegen t
plot(t,X(:,1),'-o',t,X(:,2),'-o',t,X(:,3),'-o')
xlabel('Time t');
ylabel('Solution x');
legend('x_1','x_2','x_3')
\sourceoff
Wäre das eine Möglichkeit?
Habe noch nie Matlab fürs Lösen von ODE benutzt und mir das mehr oder weniger aus Beispielen aus dem Internet zusammen gereimt.
Viele Grüße
|
Profil
|
Caleb
Wenig Aktiv  Dabei seit: 08.04.2014 Mitteilungen: 352
 | Beitrag No.3, vom Themenstarter, eingetragen 2019-11-12
|
Hallo,
passiert hier noch etwas? :-?
|
Profil
|
rlk
Senior  Dabei seit: 16.03.2007 Mitteilungen: 11661
Wohnort: Wien
 | Beitrag No.4, eingetragen 2019-11-13
|
Hallo Caleb,
in der Funktion nni rechnest Du mit dem Vektor X , das formale Argument hast aber x genannt. Für Matlab sind das zwei verschiede Größen, der Aufruf wird daher nicht funktionieren.
Die Verwendung von ode45 sieht plausibel aus, nur die Wahl des Zeitintervalls $0\leq t\leq 100$ erscheint mir gewagt, weil ich erwarte, dass die Lösung der Differentialgleichung nach endlicher Zeit explodiert.
Es wäre schön, wenn Du den Plot hier zeigst, nicht jeder der Leser hat Zugang zu Matlab oder einer der Alternativen.
Servus,
Roland
|
Profil
|
Caleb hat die Antworten auf ihre/seine Frage gesehen. |
|
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen. Lesen Sie die
Nutzungsbedingungen,
die Distanzierung,
die Datenschutzerklärung und das Impressum.
[Seitenanfang]
|