WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

mehrdim Differentialgleichung

 

Blaubaer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.09.2008, 09:52     Titel: mehrdim Differentialgleichung
  Antworten mit Zitat      
Hallo!

Ich will ein DGL-system lösen, das leider keine analytische Lsg hat (das Problem hab ich schon im Toolbox-threat diskutiert). Also hab ich es numerisch probiert und bekomme Ergebnisse die mir beim Einsetzen in eine Bondformel nicht die gewünschten Resultate liefern. Damit ich die Matlab-Implementierung als Fehlerquelle ausschliessen kann, wäre es super wenn ihr mir sagen könntet, ob folgende Programmierung richtig ist.

Code:

function dBC = funcBC(t,BC)
    dBC=zeros(3,1);
    dBC(1)=-(delta1+a1*BC(1)+a12*BC(2)-0.5*(BC(1))^2-0.5*beta12*(BC(2))^2);
    dBC(2)=-(delta2+a2*BC(2));
    dBC(3)=-(delta0-theta1*BC(1)-theta12*BC(2)-0.5*(BC(2))^2);
end
for i=1:5
    [t,Y]=ode45(@funcBC, [0 i],[0 0 0]);
    B(i,1)=Y(end,1);
    B(i,2)=Y(end,2);
    C(i)=Y(end,3);
end
 

Dieser Code soll mir die Funktionenwerte B(t) (2dim) und C(t) (1dim) zu den Zeiten t=1:5 liefern mit B(0)=[0;0] und C(0)=0. Dabei sind die Ableitungen nach der Zeit in funcBC gegeben: dB1/dt = dBC(1), dB2/dt=dBC(2), dC/dt=dBC(3)
Ich hoffe echt, dass irgendwo ein Fehler drin ist, sonst passen meine Ergebnisse einfach nicht.
Danke schon mal!

VG
Blaubaer


Blaubaer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2008, 08:23     Titel:
  Antworten mit Zitat      
Hier sind doch einige Profis unterwegs, die mir auf Anhieb sagen könnnen, ob ich mit dem genannten Code tatsächlich B und C zu einer bestimmten Zeit berechne.
Ich kenne mich einfach nicht aus mit DGL in Matlab. Aber soweit ich das nachvollziehen konnte muss ich ode45 einen Ableitungsfunktionen übergeben (in meinem Fall mehrere, die voneinander abhängen) und einen Startwert. Dann kann ich mir zB mit
[t,Y]=ode45(@funcBC, [0 5],[0 0 0]);
Y(end,Smile
die Funktionswerte zum Zeitpunkt 5 ausgeben lassen?! Oder wird dadurch das Integral über die Funktionen berechnet?

Wäre echt super, wenn mir jemand weiterhelfen könnte.

VG
Blaubaer
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 30.09.2008, 08:59     Titel:
  Antworten mit Zitat      
Moin,

prinzipiell sieht mir dein Code richtig aus, allerdings würde ich die for-Schleife eliminieren:
Code:

function dBC = funcBC(t,BC)
    dBC = zeros(3,1);
    dBC(1) = -(delta1+a1*BC(1)+a12*BC(2)-0.5*(BC(1))^2-0.5*beta12*(BC(2))^2);
    dBC(2) = -(delta2+a2*BC(2));
    dBC(3) = -(delta0-theta1*BC(1)-theta12*BC(2)-0.5*(BC(2))^2);
end

[t,Y] = ode45(@funcBC, [0:1:5],[0 0 0]);
B = Y(:,1:2);
C = Y(:,3);
 


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Blaubaer

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2008, 10:21     Titel:
  Antworten mit Zitat      
Danke Steve!
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.