Relative et absolue de la tolérance définitions dans Matlab solveur
Je suis en train d'essayer de comprendre les éléments suivants Matlab définitions pour RelTol et AbsTol paramètres:
RelTol — Cette tolérance est une mesure de l'erreur par rapport à la taille de chaque composant de la solution. En gros, il contrôle le nombre de chiffres corrects dans tous les les composants de la solution, à l'exception de ceux plus petits que les seuils de AbsTol(i).La valeur par défaut, 1e-3, correspond à 0,1% de précision. AbsTol — AbsTol(i) est un seuil en dessous duquel la valeur de la i ' eme solution composant n'a pas d'importance. L'erreur absolue tolérances de déterminer l'exactitude lorsque la solution est proche de zéro.
Je ne comprends pas pourquoi AbsTol détermine la précision lorsque la solution se rapproche de zéro (en effet, si la solution de mon problème est une orbite circulaire de 7000 km de rayon cela ne veut pas répondre) et pourquoi RelTol contrôle le nombre de chiffres corrects dans tous les composants de la solution, à l'exception de ceux plus petits que les seuils de AbsTol(i). Quelles sont les expressions réelles pour la détermination de chaque tolérance? J'aimerais obtenir plus simple et compréhensible définitions.
OriginalL'auteur julianfperez | 2012-01-22
Vous devez vous connecter pour publier un commentaire.
Lorsque vous effectuez une optimisation, vous devez décider quand arrêter. Une façon de vérifier si votre solution est assez bon est de vérifier si la solution est encore en train d'évoluer de manière significative. Il existe deux façons de mesurer la quantité d'une solution de changements: changement relatif (i.e. variation en%), ou de la modification absolue.
Il fait beaucoup de sens pour vérifier la changer, car un changement de 5 signifie quelque chose de très différent lorsque la solution est d'environ 1 que lorsqu'il est de l'ordre de 100000. Ainsi, l'optimisation des contrôles de routine, à chaque itération
i
siabs(1-x(i)/x(i-1))<relTol
, c'est à dire par quelle fraction de la nouvelle solution a changé depuis la dernière itération. Notez quex
peut être un ensemble de solutions si vous êtes à l'optimisation de plusieurs paramètres en même temps (la solution a donc "plusieurs composants"). Bien sûr, vous voulez que la condition soit satisfaite pour tous les "composants de la solution" avant l'arrêt de l'optimisation des autres.La relative tolérance, cependant, la situation devient problématique lorsque la solution est autour de zéro, depuis
x/0
est pas défini. Ainsi, il est logique de considérer également la variation absolue de la valeur, et de quitter l'optimisation lors de laabs(x(i)-x(i-1))<absTol
. Si vous choisissezabsTol
assez petit, il ne serarelTol
qui compte pour les solutions de grande taille, tandis queabsTol
ne devient pertinente que si la solution vient à se situer aux alentours de 0.Depuis le solveur s'arrête lorsque l'un des deux critère est rempli, comment vous arrivez à un (localement) la solution optimale est déterminée par
absTol
ourelTol
. Par exemple, sirelTol
est de 10%, vous ne serez jamais obtenir beaucoup plus près de 10% de la solution optimale, à moins que votre solution est autour de zéro, auquel cas leabsTol
critère (de, disons, 0.0001) est satisfaite avant larelTol
critère.OriginalL'auteur Jonas