|
|
Kleines Problem mit DGL-Berechnung |
|
gluck |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.06.2011, 17:38
Titel: Kleines Problem mit DGL-Berechnung
|
 |
Hallo zusammen!
Ich schreibe gerade eine Pflichtaufgabe in Matlab. Eigenltihc sunktioniert das Programm auch allerdings erhalte ich immer folgende Fehlermeldung:
und haupt in Zeile 73 sieht so aus:
Die relative Toleranz ist eine Vorgabe und muss verwendet werden.
Kann mir da jemand helfen?
Danke![/code]
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.06.2011, 21:57
Titel:
|
 |
Hallo,
ohne genauere Informationen, was 'G' ist, kann man dazu wenig sagen.
Wenn bei expliziten Lösern wie ode45 die Schrittweite in die Knie geht, kann man ode23s oder ode15s versuchen. Alternativ besteht die Möglichkeit, dass die Lösung gegen unendlich läuft.
Grüße,
Harald
|
|
|
gluck |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2011, 13:17
Titel:
|
 |
danke für deine Antwort! Es scheint, dass das Problem aus einem Tippfehler stammte, aber nun habe ich ein weiteres was ich mir nicht erklären kann:
In meinem Hauptprogramm habe ich folgendes Codestück (Tut mir leid das ich nicht mit dem ganzen Code raus rücken kann, aber da das ein öffentliches Forum ist und ich meinem Prof. keine Erklärung liefern möchte, wenn jemand den selben Code hat wie ich, poste ich nur Auszüge. Ich hoffe ihr könnt das nachvollziehen... )
In der Funktion G steht nun folgendes drin:
Das Problem ist nun, dass phi1 aus irgendeinem Grund manchmal komplex wird und ich keine Ahnung habe weshalb. Wenn ich mir die Zahlen ausgeben lasse steht da z.B. 4.3453 +0.0000i
Da phi1 sonst net wirklich vorkommt müsste der gepostete Code ausreichen.
Danke für eure Hilfe!
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.06.2011, 16:52
Titel:
|
 |
Hallo,
nein, reicht leider nicht. Zumindest muss man wissen, was Ein- und Ausgabeargumente von G sind.
Meine Empfehlung wäre, das Problem mit dem Debugger zu untersuchen; insbesondere:
Grüße,
Harald
|
|
|
gluck |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2011, 17:58
Titel:
|
 |
wie kann ich das denn genau mit dem debugger machen? hab ich leider noch nie gemacht^^
meinst du das:
Zp = G(t,Z)
Zp = [phi1p; phi1pp; x2p; x2pp];
dazwischen werden die werte in Zp ausgerechnet...
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.06.2011, 18:39
Titel:
|
 |
Hallo,
gib mal das ein, was ich geschrieben habe. Dann bleibt MATLAB automatisch in der Zeile stehen, in der das erste NaN auftritt.
Und ja, das meinte ich. Das Problem ist aber vermutlich irgendwo im restlichen Code zu finden. Irgendwo sqrt, acos oder sowas?
Und lies doch mal die Doku zum Debugger?
Grüße,
Harald
|
|
|
gluck |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2011, 20:42
Titel:
|
 |
Bin jetzt nimmer zu Hause und kann Net genau gucken aber es gibt eine Stelle an der asin(phi1) vorkommt... Allerdings ist die nach der Stelle die den Fehler verursacht.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.06.2011, 22:50
Titel:
|
 |
... und welche Stelle genau verursacht den Fehler?
Wenn das Argument von asin betragsmäßig minimal größer als 1 ist, könnte das zu den merkwürdigen komplexen Ergebnissen führen.
Grüße,
Harald
|
|
|
gluck |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2011, 23:12
Titel:
|
 |
Das mit dem asin werd ich morgen mal überprüfen.
Diese Stelle, welche aus dem obigen codeauszug stammt, verursacht das problem:
n = mod(floor(phi1/pi),4);
Phi1 wird wie gesagt teilweise Komplex. Das seltsame ist halt das phi1 durch den ode- Solver komplex Zu werden scheint, da es vorher gar Net benutzt wird...
|
|
|
gluck |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.06.2011, 17:38
Titel:
|
 |
also das asin hat ein anderes argument...
der winkel phi1 wird von mir gar nicht generiert sondern muss durch den odesolver und das TSpan seine werte erhalten... ich versteh das net...
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.06.2011, 19:31
Titel:
|
 |
Hallo,
meine Empfehlung wäre wie gesagt
Falls du das Problem damit nicht aufspüren kannst, fürchte ich, dass wir um ein Minimalbeispiel, bei dem das Problem auftritt, nicht herumkommen.
Alternativ kannst du mir deinen Code per PN schicken.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|