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

Warum bricht meine Schleife ab?

 

Deniz
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 90
Anmeldedatum: 31.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2011, 18:01     Titel: Warum bricht meine Schleife ab?
  Antworten mit Zitat      
Hallo,
ich habe eine while Schleife programmiert und diese bricht bei der Berechnung ab, ich weiß aber nicht warum:
Code:

fehler=1000;
Tw_beginn=70;
Pr_w_beginn = XSteam(....)
while fehler > 0.01

if Re<2300
    Nu = (49.37+ (1.615*(Pe*di/L).^(1/3)-0.7).^3).^(1/3)*K;
else
    Nu = (XI/8) *(Re-1000)*Pr/(1+12.7*(Pr.^(2/3)-1)*(XI/8)) * (1+(di/L).^(2/3)) *K;
end

Tw = Tw_beginn-1;
Pr_w = XSteam('pr_pT',1,Tw);
K = (Pr/Pr_w).^0.11;
Nu_neu = (XI/8) *(Re-1000)*Pr/(1+12.7*(Pr.^(2/3)-1)*(XI/8)) * (1+(di/L).^(2/3)) *K;
fehler = Pr_w - Pr_w_beginn
Pr_w_beginn = Pr_w
end
 

Also mit sinkendem Tw wird mein Pr_w immer größer. Und wenn ich es 'händisch' berechne, kommt beim ersten Mal bei Fehler 0.08 raus, und beim zweiten Mal sollte 0.04 rauskommen. Es sollte also noch einen Durchgang durch die Schleife geben. Aber es wird im Command-Window ein Fehler von exakt 0 angezeigt und der Pr_w_beginn-Wert ist bei beiden Durchgängen auch der Gleiche.
Erkennt jemand den Fehler? Es ist ja keine komplizierte Schleife an sich, aber ich sehe den Fehler nicht.

MfG
Deniz

Zuletzt bearbeitet von Deniz am 15.05.2011, 18:32, insgesamt einmal bearbeitet
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: 15.05.2011, 18:17     Titel:
  Antworten mit Zitat      
Hallo,

nutze doch den Debugger und vergleiche Zeile für Zeile, ob das richtige passiert. Für einen Außenstehenden wird es recht schwierig sein, dir zu sagen, wo dein Fehler ist, wenn man nicht mal das Programm bzw. seinen Sinn versteht. Was ist z.B. XSteam? Wozu werden die Nu_... berechnet? Wäre es nicht logisch, bei Nu_neu eine ähnliche Fallunterscheidung zu machen wie bei Nu bzw Nu_af?

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 90
Anmeldedatum: 31.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2011, 18:31     Titel:
  Antworten mit Zitat      
Hallo Harald!
Also XSteam ist ein Programm, dass mir bei bestimmten Parametern einen Wert berechnet.
Es wäre logisch, bei Nu_neu auch eine Fall-Unterscheidung zu machen, ich wollte das Programm jetzt nur nicht ZU komplex darstellen, eben weil es für einen Ausenstehenden schwer sein wird. Und tut mir leid, Nu_af soll auch Nu heißen
Mir geht es eher darum, ob alles an der richtigen Stelle steht. weil 'fehler' sollte immer kleiner werden, aber so ist es ja nicht wirklich.

Gruß
Deniz
Private Nachricht senden Benutzer-Profile anzeigen
 
Deniz
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 90
Anmeldedatum: 31.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2011, 18:35     Titel:
  Antworten mit Zitat      
Ah ok, habe schon einmal rausgefunden, dass ich:
Tw_davor = Tw;

am Ende der Schleife nicht def. habe.
Private Nachricht senden Benutzer-Profile anzeigen
 
Deniz
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 90
Anmeldedatum: 31.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2011, 18:39     Titel:
  Antworten mit Zitat      
Gut, jetzt macht das Programm was ich will, leider kann ich meinen gewünschten Wert doch nicht iterativ berechnen, aber das Programm an sich funktioniert.

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