Dies ist mein erstes Mal, also wenn du mehr Informationen brauchst oder etwas nicht richtig gemacht hast lass es mich wissen!Ein System von ODEs in MATLAB lösen?
Ich möchte ein System von ODES plotten, das wäre kein Problem, wie ich das folgende tun würde;
[email protected](t,x) [
.the RHS of my first order ODES.
];
[t x]=ode45(F,[Range], [Initial conditions]);
Wo ein Vektor x würde erstellt werden, die '(1), X' (2), ..., wobei X (1), x (2) würde die zeitabhängig variabel sein.
Allerdings ist mein System ein wenig komplizierter. Ich habe 6 Differentialgleichungen, die aus Gleichungen bestehen, die Differentialgleichungen und die zeitabhängigen Variablen enthalten. Zum Beispiel sind die RHS meiner ODES so etwas wie 2 * x (2) * x '(1) * f (a)
Wo f (a) könnte eine andere Funktion basierend auf Konstanten sein, a.
Ich habe meinen Code in der folgenden Reihenfolge eingerichtet;
Konstanten, dann Gleichungen der Form f (a), dann meine Differentialgleichungen gefolgt vom ode45 Solver und den Plotbefehlen. Allerdings bekomme ich mehrere Fehler "Undefinierte Funktion oder Variable", da frühe Gleichungen von Variablen/Gleichungen abhängen, die erst später definiert werden.
Vielen Dank schon mal so viel für Sie :)
Wie vorgeschlagen, hier ein Beispiel für die Art meines Codes helfen;
`%Constants
a=34
b=31
c=20
%Equations
A=b*cos(2*pi)
B=a*EQ1
C=c*x(2)
%DifferentialEquations
EQ1=x(1)*A
EQ2=(EQ3-EQ1)*(B-C)
EQ3=x(2)*x(3)
[email protected](t,x) [EQ1;EQ2;EQ3;];[t x]=ode45(F,[0 10], [0 0 0 ]);
Liefert den Fehler. Erzeugt die undefinierte Funktion oder Variable 'DEQ1A'.
Es würde helfen, wenn Sie einen Ausschnitt des Codes zur Verfügung stellen könnten Sie versucht haben, das nicht funktioniert, und die tatsächlichen Fehlermeldungen, die zeigen, was schief läuft (im Kontext). Außerdem sollten Sie bei der Eingabe von Code unbedingt die Schaltfläche {} im Editor verwenden, um sicherzustellen, dass sie korrekt formatiert ist. – Phil
Dank @Jodag jedoch das Hauptproblem bleibt – ODAmatuer
Könnten Sie das Problem mit tatsächlichen MATLAB-Code aktualisieren, die den Fehler wiedergibt, den Sie begegnen? Ich glaube, ich war in der Lage, 'F' richtig zu definieren, basierend auf den Gleichungen, die Sie gegeben haben, und' ode45' hat keine Fehler zurückgegeben. – jodag