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

Anfangswertproblem mit Endbedingungen

 

S3r4
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 20.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2013, 09:43     Titel: Anfangswertproblem mit Endbedingungen
  Antworten mit Zitat      
Hallo,

ich habe eine 4 Dimensionale DGl erster Ordung,
der form
\dot{x}=M(x)cdot u(x)

nun habe ich einen Anfangspunkt und eine Endbedingung,
nämlich wenn x(1) einen gewissen Wert erreicht (alle anderen x-werte sind frei), wenn ich das richtig sehe ist das damit kein richtiges Randwertproblem mehr...
sprich ich möchte die Zeit und den Verlauf bis zu diesem Punkt.

Was schon wunderbar funktioniert ist einfach das AWP mit einem festen Zeit intervall.

Ich hatte jetzt 2 Ideen, entweder einfach selber einen Iterativen löser schreiben, der das AWP mit variabler endzeit so oft löst bis ich genau genug an meinem Endwert bin.

oder

es gibt eine elegantere (weniger rechen intesive) Art das zu tun
darum die frage ob es etwas dazu schon in Matlab integriert gibt.

Gruß und danke
Lukas
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.10.2013, 09:54     Titel:
  Antworten mit Zitat      
Hallo,

die Umsetzung dessen ist über Events möglich.

Eine Beschreibung dazu:
http://www.mathworks.com/help/matlab/ref/odeset.html#f92-1017470

Der Code für die Event-Funktion müsste wohl wie folgt aussehen:
Code:
function [value,isterminal,direction] = events(t,x)
% Locate the time when height passes through zero in a
% decreasing direction and stop integration.
value = x(1) - <value>;     % Detect height = specified value
isterminal = 1;   % Stop the integration
direction = 0;   % From either direction

und spezifizieren muss man das dann über odeset.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.10.2013, 11:05     Titel: Re: Anfangswertproblem mit Endbedingungen
  Antworten mit Zitat      
Hallo S3r4,

Für Matlab sind sowohl die Zeit, über die Du iterierst, als auch die Trajektorie einfach nur Zahlen. Du kannst deshalb die DGL so transformieren, dass Du über ein bestimmtes Intervall von x integrierst, statt über ein Zeit-Intervall. Dies nennt man oft "Integration mit freier End-Zeit" (findet man bestimmt etwas dazu im Netz).

Die bereits vorgeschlagene Event-Funktion ist aus mathematischer Sicht sicherlich einfacher, aber weniger spannend.

Gruß, Jan
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 - 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.