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

Integration nur in einem bestimmten intervall

 

vandale
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 10.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2013, 10:32     Titel: Integration nur in einem bestimmten intervall
  Antworten mit Zitat      
Ich habe eine zeitabhängige bewegungsgleichung programmiert, die nun integriert werden soll. das problem ist nur, dass sie sich nicht in dem intervall bewegt, das ich haben will, sondern ausreißt.
wie bekomme ich es hin, dass sich "das teilchen" nur im intervall [0,2*pi] bewegt?


hier dazu meine funktion:

Code:
function dY=diffusion_zeitabh(t,y)
x1=y(1);
x2=y(2);
dY=[sin(x1+sin(t))*cos(x2); -cos(x1+sin(t))*sin(x2)];
end


options = odeset('RelTol',1e-6,'AbsTol',[1e-8 1e-8]);
[t,Y]=ode45(@diffusion_zeitabh, [0:0.03:100], [1 1], options);
 


mfg, vandale
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: 03.07.2013, 10:46     Titel:
  Antworten mit Zitat      
Hallo,

stimmt die Lösung denn, wenn du das auf den Referenzwinkel in [0, 2*pi] zurückrechnest?

Code:


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 10.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2013, 13:06     Titel:
  Antworten mit Zitat      
hmm, iwie nicht.....

ich hab das auch anders geplottet:

plot(Y(:,1),Y(:,2))


gibts dafür ieine einschränkung des intervalls?

danke
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: 03.07.2013, 13:11     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
hmm, iwie nicht.....

Kannst du das etwas genauer beschreiben?

Ich würde die Visualisierung dann so machen:
Code:
Ymod = mod(Y, 2*pi);
Ymod(abs(diff(Ymod)) > 6) = NaN; % vermeidet Striche quer durchs Bild
comet(Ymod(:,1),Ymod(:,2))

Mit comet statt plot sieht man auch schön den Verlauf Smile

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 10.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2013, 17:52     Titel:
  Antworten mit Zitat      
sry, das war nur iwie nicht das was ich wollte, lag aber an meiner falschen formulierung...


kannst du mir sagen, warum du >6 nimmst? kann man dafür dann auch >2*pi schreiben?
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: 17.07.2013, 19:07     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
kannst du mir sagen, warum du >6 nimmst? kann man dafür dann auch >2*pi schreiben?

Das Problem sind ja Übergänge von "etwas kleiner als 2*pi" auf "etwas größer als 0" oder umgekehrt, d.h. Differenzen von "fast 2 pi". Mehr als 2 pi geht ja nach mod genau nicht mehr.
Ja, und "fast 2 pi" habe ich (relativ willkürlich) als "> 6" interpretiert. Man kann aber wohl genausogut ">5" oder ">4" schreiben. Schau einfach mal, ob's bei dir nen Unterschied macht.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 10.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.08.2013, 14:59     Titel:
  Antworten mit Zitat      
ich hab nochmal eine frage...

kann ich mir auch nur bestimmte punkte anzeigen lassen/berechnen lassen bei der integration...

also z.b. für bestimmte zeitpunkte?

mein ich habe iwas mot for-schleifen gelesen...kann damit aber nichts anfangen, weil ich noch recht frisch bin, bei der benutzung von matlab...
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: 21.08.2013, 16:18     Titel:
  Antworten mit Zitat      
Hallo,

eben das erreichst du doch mit der Angabe eines Vektors von Stützpunkten, so wie du das eingangs gemacht hast?

Code:
... , [0:0.03:100], ...

Da das nicht "aufgeht", wird 100 natürlich nicht genau erreicht, sondern nur 99.99.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 10.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2013, 11:07     Titel:
  Antworten mit Zitat      
und wenn ich nur bestimmte zeitpunkte haben will, dann kann ich den vektor einfach dementsprechend umschreiben!?

z.b. für t=1, 5, 12

...[1;5;12]...
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: 22.08.2013, 11:54     Titel:
  Antworten mit Zitat      
Hallo,

Auszug aus der Doku:
Zitat:
A vector specifying the interval of integration, [t0,tf]. The solver imposes the initial conditions at tspan(1), and integrates from tspan(1) to tspan(end). To obtain solutions at specific times (all increasing or all decreasing), use tspan = [t0,t1,...,tf].


Natürlich muss das erste Element von tspan der Zeitpunkt sein, zu dem die Anfangsbedingung gehört.

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.