Verfasst am: 20.08.2013, 15:36
Titel: DGL Lösen mit integriertem Integral
Hallo,
ich möchte eine Differentialgleichunglösen die Folgendeform hat:
[math] dx/dt=\int_a^b \! M(x,F) \, dF [\math]
sprich ich muss eine Funktion (die für sich durchaus Funktioniert) über eine Variable integrieren (und eliminiere sie so) und danach nach einer anderen Variable die DGl lösen.
Im endeffekt wird dx/dt, M, x Vektorwertig sein und F ein Skalaar.
Ich habe schon viel mit quad herum probiert, jedoch nicht wirklich weiter gekommen. darum spare ich mir den code bis dato. das Problem für mich ist, das ich über eine Variable integrieren muss und die anderen aber weiter behalten muss. Sprich wie muss ich diese integration implementieren?
Danke für die antwort aber so einfach scheint es nicht zu Funktionieren, ich hohle wohl mal besser etwas weiter aus:
Ich habe eine Funtion
Bewgl(F,x,my,T) diese Funtion ruft viele anderen Funktionen auf die aber alle Funktionieren wenn ich sie einzeln (oder über Bewgl) aufrufe, sprich Bewgl mit festen Parametern aufrufe.
Bewgl ergibt einen 3x1 Vektor und besteht im Prinzip aus dem Produkt
Bewegl=M(F,x,my,T)*s(F,x)*n, worin M eine 3x2; s ein skalar und n ein 2x1 Vektor ist.
Wenn ich nun quad aufrufe in dieser Form:
dax=quad(@(F) Bewegls(F,x,my,T),-pi,pi);
dann ergibt mir das
Error using /
Matrix dimensions must agree.
sowie viele kleine Fehler, untere anderem in den unteresten Funktionen von M.
Vielen dank für die Hilfe, wie gesagt mich wundert es das ich Bewegls aufrufen kann aber nicht über F integrieren
also da ich mir schon dachte, das es nicht an meinen Funktionen liegt sonder an etwas anderem, habe ich jetzt mal ein kleines mimimalbeispiel gebaut (das ebenfalls nicht funktioniert ;( )
eine beliebige Differentialgleichung (hat keine bedeutung will ja nur einen Funtionierenden Code)
Code:
function[ dy ] = DGL( F,y )
dy=[y(2);-1*y(1)*F];
end
das ist für diese einfache DGl noch möglich aber in meinem richtigen Problem ist das natürlich eine andere, sehr Komplexe DGL, darum kann ich diese dort nicht um schreiben.
"natürlich" ist das vielleicht für dich, aber ich kann es ja schlecht riechen ;)
Spontan fällt mir folgende Alternative ein: Das Integral als Lösung einer DGL betrachten, also statt:
zu sagen
und das mit ode45 lösen.
Grüße,
Harald
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
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.