ich bin neu hier im Forum und etwas verzweifelt. Ich habe einen Beleg in Matlab zu lösen, in dem ich an einer bestimmten Stelle nicht weiter komme.
Gegeben ist mir ein Differentialgleichungssystem, dass ich mal als JPEG in den Anhang einfügen werde.
Nun soll ich zunächst die Gleichgewichtsszustände des Systems bestimmen. Dazu lasse ich Matlab x(1,2,3) [Punkt] gleich 0 setzten und nach x(1,2,3) auflösen.
Soweit, so gut. Anschließend soll ich das Systemverhalten plotten. Dies geht auch noch relativ einfach über den ode45 Befehl.
Nun soll ich aber in einer weiteren Aufgabe das Stabilitätsverhalten (Erreichen der Gleichgewichtsszustände) plotten.
Ich meine die Lösung bereits gesehen zu haben und es ist dort ein Diagramm mit vielen Graphen (die mir wie Feldlinien oder Trajektorienverläufe scheinen) zu sehen und die Gleichgewichtsstellen sind durch schwarze Punkte markiert.
f = [xp1;xp2;xp3]; % Alle drei Funktionen zu einem Vektor vereint
sol = solve(f==0,x1,x2); % Ableitungen = 0 und umstellen nach x1, x2
a = [sol.x1,sol.x2]; % Lösungsteile für x1 und x2 zusammensetzen zu a
e = 0.05; %Erosionslimit in Ressourceneinheiten [normiert]
g = 1; %jährliches Produktionsziel [Ressourceneinheiten/Jahr]
k = 1.0; %maximale Ressourcenkapazität [Ressourceneinheit]
m = 1.0; %Preis für Ressource [Geldeinheit/Ressourceneinheit]
r = 0.1; %Ressourcengenerationsrate [1/Jahr]
p = 1; %Produktionsrate [1/(Kapital*Jahr)]
q = 0.1; %Kapital-Arbeitskosten [Geldeinheiten/(Kapital*Jahr)]
i = 0.1; %Kapitalinvestitionsrate [1/Jahr]
n=1;
while n<=size(a,1)% Substitution der symbolischen Var. mit konkreten Werten
Würde es helfen, wenn ich mal den Code poste, den ich bisher habe?
Das ist hier im Forum immer eine gute Idee :)
Zitat:
Ich packe den erspähten Graphen mal in den Anhang.
Vielleicht könnten Sie mir ja sagen, wie sich dieser Graph plottet..
Ich würde wie gesagt quiver versuchen. Die Gleichgewichtspunkte kann man dann ja noch zusätzlich einzeichnen.
Alternativ kann man mehrere Trajektorien mit ode45 erzeugen und diese dann zeichnen lassen - das wurde vermutlich im Bild gemacht, da die Abstände recht ungleichmäßig sind.
Könnten Sie mir - nachdem ich ja nun den Code geposted habe - erklären wie genau ich vorgehen muss, um ein solches Bild zu erhalten und wie ich die Gleichgewichtspunkte danach noch einzeichne?
Habe wirklich schon vieles probiert und bekomme es einfach nicht hin
die "Alternative" ist zunächst wohl der einfachere Weg.
Du (hier wird allgemein 'Du' verwendet - ich hoffe, das ist okay) hast ja mit ode45 schon eine Trajektorie erzeugt. Dies musst du jetzt noch wiederholen und für mehrere Startszenarien durchführen.
Die Gleichgewichtspunkte können z.B. geplottet werden mit
das kann ich dir nicht sagen, da ich die Intention des Aufgabenstellers nicht kenne.
Ich vermute mal, dass in der Vorlesung besprochen wurde, wie das Stabilitätsverhalten analysiert werden soll.
Hier eine Möglichkeit:
Code:
p1 = 0.2:0.4:2;
p2 = 0.002:0.004:0.02;
p3 = 0.002:0.004:0.02;
hold on
for k1 = p1
for k2 = p2
for k3 = p3
[t,x] = ode45(@ressourcen_fkt, [0100], [k1 k2 k3]); % Die Anfangszustände waren gegeben plot3(x(:,1), x(:,2), x(:,3));
end end end view(3)
Erstmal vielen Dank für den Tipp wie es funktionieren könnte!
Ich habe es jetzt mal versucht in meinen Code einzubauen und komme zu folgendem Ergebnis .. (Bild im Anhang)
Allerdings verstehe ich noch nicht ganz, was mir das Bild nun aussagen soll.. Die roten Punkte sind die Stabilitätszustände.. Diese habe ich einfach zusätzlich in das Bild eingezeichnet..
Welche Aussage kann ich aber nun über das Stabilitätsverhalten anhand der geplotteten Linien treffen?
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
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.