Relative und absolute Toleranzdefinitionen in Matlab Solver

8

Ich versuche die folgenden Matlab-Definitionen für RelTol- und AbsTol-Parameter zu verstehen:

%Vor%

Ich verstehe nicht, warum AbsTol die Genauigkeit bestimmt, wenn die Lösung gegen Null geht (tatsächlich, wenn die Lösung meines Problems eine Kreisbahn von 7000 km Radius ist, erfüllt sie diese nicht) und warum RelTol die Anzahl der korrekten Stellen steuert alle Lösungskomponenten, außer denen, die kleiner als die Schwellenwerte AbsTol (i) sind. Was sind die tatsächlichen Ausdrücke für die Bestimmung jeder Toleranz? Ich möchte einfachere und verständlichere Definitionen bekommen.

    
julian 22.01.2012, 14:39
quelle

1 Antwort

7

Wenn Sie eine Optimierung durchführen, müssen Sie entscheiden, wann Sie aufhören möchten. Eine Möglichkeit zu prüfen, ob Ihre Lösung gut genug ist, ist zu prüfen, ob sich die Lösung noch signifikant ändert. Es gibt zwei Möglichkeiten zu messen, wie stark sich eine Lösung ändert: relative Änderung (d. H.% Änderung) oder absolute Änderung.

Es ist sehr sinnvoll, nach relativen Änderungen zu suchen, da eine Änderung von 5 etwas sehr anderes bedeutet, wenn die Lösung etwa 1 ist, als wenn sie etwa 100000 ist. Daher prüft die Optimierungsroutine bei jeder Iteration i ob abs(1-x(i)/x(i-1))<relTol , dh um welchen Anteil hat sich die neue Lösung seit der letzten Iteration geändert? Beachten Sie, dass x ein Array von Lösungen sein kann, wenn Sie mehrere Parameter gleichzeitig optimieren (die Lösung hat also "mehrere Komponenten"). Natürlich möchten Sie, dass die Bedingung für alle "Lösungskomponenten" erfüllt wird, bevor Sie mit der weiteren Optimierung aufhören.

Die relative Toleranz wird jedoch problematisch, wenn die Lösung ungefähr Null ist, da x/0 nicht definiert ist. Daher ist es sinnvoll, auch die absolute Wertänderung zu betrachten und die Optimierung zu beenden, wenn abs(x(i)-x(i-1))<absTol . Wenn Sie absTol klein genug wählen, zählt nur relTol für große Lösungen, während absTol nur dann relevant wird, wenn die Lösung um 0 herum liegt.

Da der Solver aufhört, wenn eines der beiden Kriterien erfüllt ist, wird die Annäherung an eine (lokal) optimale Lösung durch absTol oder relTol bestimmt. Zum Beispiel, wenn relTol 10% ist, werden Sie nie viel näher als 10% zur optimalen Lösung kommen, es sei denn, Ihre Lösung ist ungefähr Null, in welchem ​​Fall das absTol -Kriterium (von zB 0.0001) vorher erfüllt ist das Kriterium relTol .

    
Jonas 23.01.2012, 04:58
quelle