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

DGL 1. Ordnung mit Parameterabfrage abh. von Geschwindigkeit

 

Soeckle
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2009, 18:09     Titel: DGL 1. Ordnung mit Parameterabfrage abh. von Geschwindigkeit
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem:
Ich möchte eine Differentialgleichung lösen, welche von Parametern abhängt.
Es ist eine Gleichung erster Ordnung, wobei h die Höhe und t die Zeit beschreibt. So weit so gut.
Es ist ja kein Problem über function einen Parameter abhängig von h zu ermitteln.

Wenn nun einer der Parameter in dieser Gleichung von der Geschwindigkeit abhängt, was dann?
Um die momentane Geschwindigkeit zu ermitteln benötige ich nicht nur das aktuelle h(n) und t(n) sondern auch h(n-1) und t(n-1). Diese stehen mir aber nicht zur Verfügung.
Wie könnte man das Problem angehen?

Gruss und danke schonmal für die Hilfe,
Soeckle
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.11.2009, 18:32     Titel:
  Antworten mit Zitat      
Hallo,

kleine Rückfrage: es geht um die vertikale Geschwindigkeit, also etwas in dieser Form?
h' = f(t, h, h')

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Soeckle
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2009, 18:41     Titel:
  Antworten mit Zitat      
Hallo Harald,

ja genau.

Gruss,
Soeckle
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.11.2009, 18:49     Titel:
  Antworten mit Zitat      
Hallo,

probier doch mal, als rechte Seite eine Funktion zu übergeben, die mit fsolve oder fzero die Gleichung f(t, h, h') - h' = 0 löst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Soeckle
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2009, 19:51     Titel:
  Antworten mit Zitat      
Hi,

die Idee kann ich nachvollziehen. Bin allerdings nicht ganz im Klaren, wie ich das einbauen sollte.

Ich habe mir schon gedacht, dass ich bei meiner geringen Schrittweite nur einen vernachlässigen Fehler in die Berechnung einbaue, wenn ich auf die Geschwindigkeit des vorherigen Zeitschrittes zurückgreife.
Gibt es eine Möglichkeit diese innerhalb der Funktion anzugeben - nach dem Prinzip h'(length(h)-1)?

Gruss und schönen Abend,
Soeckle
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.11.2009, 20:01     Titel:
  Antworten mit Zitat      
Hallo,

ich würde gar keine vorherigen Schritte verwenden. Das ist ja das schöne, wenn man die nichtlineare Gleichung löst. In etwa so:

Code:


mit

Code:
function dh = fun(t, h)
dh = fzero(@(dh) f(t, h, dh) - dh, ...);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Soeckle
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 04.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2009, 15:11     Titel:
  Antworten mit Zitat      
Hallo,

aber so verwende ich dh bereits, ohne es zu kennen. Das kann nicht funktionieren. Oder?
Ich habe es jetzt trotzdem probiert, bekomme aber genau das:
"This variable might be used before it is defined."


Gruss,
Soeckle
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.11.2009, 16:37     Titel:
  Antworten mit Zitat      
Hallo,

nicht wenn es so ist, wie ich es sehe.
Wärst du denn bereit, deine Gleichung mal zu posten?

Ansonsten musst du mit dem vorlieb nehmen:

Code:
function dh = fun(t, h)
dh = fzero(@(dh) f(t, h, dh) - dh, 0);
   
function y = f(t,h,dh)
y = t + h * dh; % Hier würde deine Gleichung stehen


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2025 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.