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

Variable wird komplex???

 

blueplasma
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 02.07.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2015, 10:17     Titel: Variable wird komplex???
  Antworten mit Zitat      
Hallo,

ich versuche mit ode15s ein DGL-System zu lösen. Die Variablen sind "Umsatz" und "Temperatur".
Ich habe ein Startskript, in dem ich den Solver aufrufe.

Mein Problem ist folgendes: Ich kann das Skript starten, aber die Rechnung bricht plötzlich ab, weil der Wert für die Temperatur komplex wird (5.729999999996063e+02 + 5.296393341179237e-10i). Ich hab schon versucht mir mit der real-Funktion zu helfen, aber das ist ja nicht das gelbe vom Ei...

Kann mir jemand einen Tipp geben, warum das passiert. Ist das erste mal, dass ich sowas erlebe??? Question

Mit Dank und Gruß
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: 02.07.2015, 10:26     Titel:
  Antworten mit Zitat      
Hallo,

wird in der Funktion z.B. sqrt verwendet, und der Ausdruck darunter wird negativ?
Oder werden asin oder acos verwendet, und der Ausdruck darin betragsmäßig > 1?

Es ist schwer zu sagen, ohne das konkrete Beispiel vor sich zu haben. Ich würde es mal mit einem bedingten Haltepunkt (Im Editor Rechtsklick auf den schwarzen Strich vor der Codezeile) versuchen und dort ~isreal verwenden.

Für weitere Unterstützung bitte reproduzierbaren Code zur Verfügung stellen.

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: 02.07.2015, 10:33     Titel: Re: Variable wird komplex???
  Antworten mit Zitat      
Hallo blueplasma,

Das ist ein fall für den Debugger. Füge in der zu integrierenden Funktion etwas ein wie:
Code:
if ~isreal(d)
  disp('imaginary values')
end

Jetzt setze einen Breakpoint in die Zeile mit dem disp und lasse das Programm nochmal laufen. Sowie imaginäre Werte auftreten, kannst Du nun die lokalen Variablen untersuchen, z.B. indem Du die Ausdrücke auf den rechten Seiten per Copy&Paste im Command Window ausführst.

Das ist eine banalere Methode als der von Harald empfohlene bedingte Breakpoint. Es kommt nicht darauf an, welche Methode Du verwendest, Hauptsache ist der einsatz des Debuggers.

Ohne Deinen Code zu sehen, können wir natürlich nicht sagen, wo diese Werte herkommen. Es ist kaum anzunehmen, dass das ein Bug ist, sondern es stammt aus Deinem Code.

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 - 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.