|
|
iterative Lösung linearer, transzendenter Gleichung |
|
SC |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.06.2014, 17:34
Titel: iterative Lösung linearer, transzendenter Gleichung
|
 |
Hallo zusammen,
ich habe folgendes Problem:
ich muss die Frosteindringtiefe nach Neumann berechnen und dazu eine Gleichung lösen, die einen linearen Anteil und einen transzendenten Anteil hat. Leider bin ich ein Matlab-Neuling und habe nach langem Rumprobieren keine Lösung für mein Problem gefunden.
Die zu lösende Gleichung ist in den Bildern angehängt.
Mir stehen alle Parameter zur Verfügung, sodass p die einzig Unbekannte ist.
Es wäre nett, wenn ihr mir helfen könntet!!
Beschreibung: |
|
 Download |
Dateiname: |
Kellner_2.jpg |
Dateigröße: |
2.76 KB |
Heruntergeladen: |
301 mal |
Beschreibung: |
Dies ist die zu lösende Gleichung |
|
 Download |
Dateiname: |
Kellner_forum.jpg |
Dateigröße: |
8.21 KB |
Heruntergeladen: |
297 mal |
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.06.2014, 10:29
Titel:
|
 |
Hallo,
dafür kannst du fsolve oder fzero verwenden.
Grüße,
Harald
|
|
|
SC |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.06.2014, 14:39
Titel:
|
 |
Hallo Harald, vielen Dank für deine Antwort!
Wenn ich die Gleichung mit fsolve lösen will, und den Startwert variiere kommen bei mir vollkommen unterschiedliche Ergebnisse heraus woran kann das liegen?
Im Folgenden mal die den Code, den ich geschrieben habe:
nehme ich als startwert z.B. 1.2e-4 kommt schon ein ganz anderes Ergebnis raus.
Habe ich etwas falsch gemacht?
Gruss
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.06.2014, 15:07
Titel:
|
 |
Hallo,
es kann ja mehrere Lösungen der Gleichung geben.
fsolve sucht wie alle Algorithmen aus der Optimization Toolbox gradientenbasiert nach einem lokalen Minimum, und das lokale Minimum ist nicht unbedingt das globale.
Hol dir doch das zweite Rückgabeargument zurück, dann siehst du ja ob etwas eine Lösung ist oder nicht.
Grüße,
Harald
|
|
|
SC |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.06.2014, 15:46
Titel:
|
 |
Hallo Harald,
laut Autor kann die Gleichung eindeutig gelöst werden, da sich Gerade und Kurve in genau einem Punkt schneiden sollen. Das wäre ja hier nicht der Fall.
Gibt es evtl. noch andere Möglichkeiten, den Schnittpunkt zu finden?
Gruss
Stefan
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.06.2014, 17:55
Titel:
|
 |
Hallo,
Zitat: |
Gibt es evtl. noch andere Möglichkeiten, den Schnittpunkt zu finden? |
Keine mir bekannte. Aber verwende doch auch den Rest des Beitrags?
Zitat: |
Hol dir doch das zweite Rückgabeargument zurück, dann siehst du ja ob etwas eine Lösung ist oder nicht. |
Also den Solver ruhig mit verschiedenen Startpunkten füttern. Wenn abs(fval) klein ist, handelt es sich bei der Rückgabe um eine Lösung.
Grüße,
Harald
|
|
|
SC |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.06.2014, 19:00
Titel:
|
 |
Hallo danke noch mal für die Antworten. Ich habe vorhin vergessen zu schreiben, dass immer diese Meldung kommt.
No solution found.
fsolve stopped because the relative size of the current step is less than the
default value of the step size tolerance squared, but the vector of function values
is not near zero as measured by the default value of the function tolerance.
ich habe grade mal fval ausprobiert und bekomme da entweder einen Wert von 533233 oder ganz kleinen negativen Wert heraus, wenn ich die Startwerte variiere.
Des Weiteren sollte ich noch dazuschreiben, dass ich absolut nicht auf den Wert komme, der herauskommen sollte, wenn ich die Parameter eingebe, die mir vorliegen.
Danke und einen schönen Abend,
Stefan
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.06.2014, 20:33
Titel:
|
 |
Hallo,
Zitat: |
No solution found.
fsolve stopped because the relative size of the current step is less than the
default value of the step size tolerance squared, but the vector of function values
is not near zero as measured by the default value of the function tolerance. |
Das ist doch recht eindeutig? Heißt, dass der Startwert nicht gut genug war.
Mit x0 = 2e-3 und x0 = -2e-3 bekommt man beispielsweise Lösungen.
Zitat: |
Des Weiteren sollte ich noch dazuschreiben, dass ich absolut nicht auf den Wert komme, der herauskommen sollte, wenn ich die Parameter eingebe, die mir vorliegen. |
Und welcher Wert sollte das sein? Was passiert, wenn du diesen Wert als Startwert verwendest? Was, wenn du dich allmählich davon wegbewegst?
Plotte die Funktion mal im Intervall [-2e-3, 2e-3], dann sollte dir klar werden, warum das mit deinen Startwerten nicht gehen konnte.
Grüße,
Harald
|
|
|
SC |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.06.2014, 08:55
Titel:
|
 |
Guten Morgen,
Danke für die Hilfe...das klappt ja mit 2e-3.
Änder ich die Startwerte aber folgender Maßen, sollte 4,72e-4 rauskommen..das passiert leider nicht.
gibt es eine Möglichkeit dass sich der Startwert selber variiert bis man zu einer Lösung kommt? Ich hab leider keine Ahnung von Informatik....
Gruss
Stefan
|
|
|
SC |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.06.2014, 09:01
Titel:
|
 |
Wenn ich den Wert als Startwert einsetze, kommt leider wieder die selbe Fehlermeldung..
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.06.2014, 09:24
Titel:
|
 |
Hallo,
setze mal 4.72e-4 in deine Funktion ein. Da kommt -1.2068e+05 heraus. Das ist also ganz sicher keine Lösung der vorgegebenen Gleichung.
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.
|
|