|
|
Problem beim Lösen einer nichtlinearen Gleichung |
|
chrid |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.12.2013, 15:49
Titel: Problem beim Lösen einer nichtlinearen Gleichung
|
|
Hallo zusammen,
ich möchte gerne folgende Gleichung mit Matlab numerisch lösen:
Das Ganze habe ich in eine Scriptfile geschrieben:
Dann habe ich in der Kommandozeile mit
fsolve(@myfun, 0)
versucht die Gleichung lösen zu lassen.
Es kommt jedoch folgende Warnung und das Ergebnis ist Unsinn:
Habe auch versucht mit fzero und roots das Problem zu lösen.
Jedoch ohne Erfolg
Ich hoffe jemand kann mir hier weiterhelfen!
Danke schon einmal
|
|
|
|
|
vega1013 |
Forum-Century
|
|
Beiträge: 162
|
|
|
|
Anmeldedatum: 26.02.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.12.2013, 17:29
Titel:
|
|
Hallo,
was mir auf die schnelle auffällt: du benutzt in deiner Funktion nicht den Übergabeparameter "input_args". Da kann der solver nichts optimieren...
Viele Grüße
|
|
|
chrid |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.12.2013, 22:57
Titel:
|
|
vega1013 hat Folgendes geschrieben: |
Hallo,
was mir auf die schnelle auffällt: du benutzt in deiner Funktion nicht den Übergabeparameter "input_args". Da kann der solver nichts optimieren...
Viele Grüße |
Ups da ist was beim kopieren falsch gelaufen.
In der Originaldatei übergebe ich natürlich ez als input_argument.
Das ganze sieht so aus:
|
|
|
vega1013 |
Forum-Century
|
|
Beiträge: 162
|
|
|
|
Anmeldedatum: 26.02.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2013, 12:28
Titel:
|
|
chrid hat Folgendes geschrieben: |
Es kommt jedoch folgende Warnung und das Ergebnis ist Unsinn: |
Wieso ist das Unsinn und was erwartest du?
Wenn ich deine Funktion plotte erhalte ich durchaus bei 142 eine Nullstelle.
Beschreibung: |
|
Download |
Dateiname: |
funktion.jpg |
Dateigröße: |
35.2 KB |
Heruntergeladen: |
693 mal |
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 19.12.2013, 12:33
Titel:
|
|
Hallo chrid,
Die Funktion hat eine sehr hohe Steigung. Die Fehlermeldung besagt, dass die Nullstelle nicht exakt gefunden werden kann, da die Toleranz dafür nicht geeignet ist. Dann würde ich die Dokumentation von FLSOLVE durchlesen um herauszufinden, wie man die Toleranz anpassen kann.
Gruß, Jan
|
|
|
chrid |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.12.2013, 13:08
Titel:
|
|
|
|
|
vega1013 hat Folgendes geschrieben: |
chrid hat Folgendes geschrieben: |
Es kommt jedoch folgende Warnung und das Ergebnis ist Unsinn: |
Wieso ist das Unsinn und was erwartest du?
Wenn ich deine Funktion plotte erhalte ich durchaus bei 142 eine Nullstelle. |
Also wenn ich 142 einsetze kommt bei mir
heraus.
Ich erwarte eigentlich Nullstellen im Bereich von 10^-5 so in der Richtung.
Das mit dem Plot ist aber eine gute Idee. Damit sehe ich ja, dass irgendwas anderes an der Gleichung falsch sein muss, da die beiden Nullstellen ja jenseits dessen liegen, was ich erwarte.
Jan S hat Folgendes geschrieben: |
Hallo chrid,
Die Funktion hat eine sehr hohe Steigung. Die Fehlermeldung besagt, dass die Nullstelle nicht exakt gefunden werden kann, da die Toleranz dafür nicht geeignet ist. Dann würde ich die Dokumentation von FLSOLVE durchlesen um herauszufinden, wie man die Toleranz anpassen kann. |
Ich habe bereits mit der Option TolFun rumgespielt und habe sie vom standardmäßigen 10^-6 auf 10^-10 hochgesetzt. Brachte leider keinen Erfolg.
Aber wie gesagt der Plot zeigt mir zumindest, dass irgendetwas Grundlegendes schon falsch sein muss.
Danke für eure Hilfe!
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 19.12.2013, 22:05
Titel:
|
|
Hallo chrid,
Zitat: |
Ich habe bereits mit der Option TolFun rumgespielt und habe sie vom standardmäßigen 10^-6 auf 10^-10 hochgesetzt. Brachte leider keinen Erfolg. |
Bitte posten den Code, mit dem Du das versucht hast.
Zitat: |
Aber wie gesagt der Plot zeigt mir zumindest, dass irgendetwas Grundlegendes schon falsch sein muss. |
Wieso zeigt es das? Wir können nicht erraten, was Du hier meinst.
Gruß, Jan
|
|
|
chrid |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.12.2013, 12:50
Titel:
|
|
Jan S hat Folgendes geschrieben: |
Hallo chrid,
Zitat: |
Ich habe bereits mit der Option TolFun rumgespielt und habe sie vom standardmäßigen 10^-6 auf 10^-10 hochgesetzt. Brachte leider keinen Erfolg. |
Bitte posten den Code, mit dem Du das versucht hast.
Zitat: |
Aber wie gesagt der Plot zeigt mir zumindest, dass irgendetwas Grundlegendes schon falsch sein muss. |
Wieso zeigt es das? Wir können nicht erraten, was Du hier meinst.
Gruß, Jan |
Die Größenordnung der Lösung sollte ja wie bereits in meinem vorherigen Post erwähnt bei Werten um 10^-6 liegen.
Die Nullstellen die der Plot aufzeigt liegen ja jenseits von Gut und Böse.
Daher werde ich mich jetzt erstmal mit der Gleichung und den Größen an sich beschäftigen und schauen wo da mein Fehler liegt.
TolFun habe ich mit
geändert.
|
|
|
|
|
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 - 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.
|
|