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

ode Befehl mit if .... sehr langsam

 

mike793
Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.10.2009, 10:12     Titel: ode Befehl mit if .... sehr langsam
  Antworten mit Zitat      
Hallo zusammen

Ich habe ein kleines Problem!!! Ich habe ein Differenzialgleichungssystem in Matlab definert was cool funktioniert! aber nun will ich ein paar if Bedingungen in den Code (in das 2. mFile ) einbauen was ja auch noch wunderbar funktioniert! Nur das Ding wird jetzt so langsam das ich nicht mehr weiß ob er sich da " aufhängt" (der rechner halt!!!) wie kann man sowas umgehen und schneller machen?

Der grund für meine if Bedingung is jener, dass ich eine Bedingung brauche... im folgenden lautet diese:

Code:


if z(1) >=10
  c1=10;
else
  c1=100;
end
 
 


ist ja einfach aber mit den ding dauert es einfach zu lange!!! Gibts da eine lösung?????

Danke
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 19.10.2009, 11:37     Titel:
  Antworten mit Zitat      
Hallo,

das Problem ist, dass damit eine Unstetigkeit in die Ableitung (und ein Knick in die Lösung) gebracht wird. Das ist zum Einen mathematisch ein Problem (gibt es eigentlich eine Lösung an der Stelle?), zum Anderen sind Differentialgleichungslöser immer allergisch auf so etwas Wink.

Mögliche Auswege: hast Du mal mit anderen Differentialgleichungslösern experimentiert? Z.B. ode23 anstatt ode45 oder auch ode15s?
Alternativ: ggf. muss der Solver unterstützt werden durch events, siehe Hilfe zu odeset und da der Abschnitt "Event Location Property".

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
mike793
Themenstarter

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.10.2009, 13:12     Titel:
  Antworten mit Zitat      
Danke!!!

Das mit den Solvern tauschen habe ich schon gemacht aber da kommt auch nicht anderes heraus.

Aber wie funktioniert das mit den Event Location Property !!!! hab da schin in der Hilfe etwas nachgesehen aber komm auf den trick nicht drauf!!!!! Kann mir da jemand helfen!!!
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.