Erreur de la fonction de minimisation : « ÉCHEC de convergence : IMPOSSIBLE DE DIMINUER LA FONCTION OBJECTIF »Je travaille sur un projet dans JMP 16, où j'utilise la fonction « Réduire ». Lors de l'exécution de la fonction, je rencontre souvent l'erreur « ÉCHEC de la convergence : NE PEUT PAS DIMINUER L'OBJECTIF ». En regardant les résultats finaux du script, ils sont comme prévu. Il semble donc que l’erreur ait peu d’influence sur les résultats finaux. Cependant, pour garantir la validité du script, j'aimerais quand même connaître le raisonnement derrière l'erreur.J'ai eu des difficultés à trouver de la documentation sur cette erreur spécifique et j'espérais donc que quelqu'un de la communauté JMP pourrait m'aider à en identifier la cause.
En utilisant l'option « << Détails (les deux) » pour la fonction de réduction, l'image ci-dessous du journal a été obtenue :

Cordialement,
Louis
Organisation du contenuPartager et communiquer les résultatsRe : Erreur de la fonction de minimisation : "ÉCHEC de la convergence : IMPOSSIBLE DE DIMINUER LA FONCTION OBJECTIF"Vous pourriez faire un graphique, comme celui-ci :
expression=expr(Log10( (ChiSquare Quantile( alpha, df ) / df - Vratio) ^ 2 ));
alpha = 0.025;
Vratio = 0.39135;
df=2;
Minimize( expression, { df( 2, 1000 ) }, << Use Numeric Deriv( "true" ) );
show(df);
New Window( "Example",
Graph Box(xscale(-1,26),yscale(-10,0),
Pen Color( "red" );
Y Function( expression, df );
)
);
there is a sharp drop at the df found by the minimize function.there is a sharp drop at the df found by the minimize function.il y a une forte baisse du df trouvé par la fonction minimiser.
vous pouvez zoomer sur la forte baisse et voir qu'il sera difficile, sur le plan informatique, d'obtenir une réponse parfaite :
9 significant digits, and more to go.9 significant digits, and more to go.9 chiffres significatifs, et bien plus encore.
minimiser trouvé df = 13.3517718809044 ;
Identifiant deviner que l'algorithme de minimisation atteint un point sur la courbe qui trouve le point suivant de l'autre côté du vrai minimum, et pourrait même être dans un cycle rebondissant sur le minimum. Avec une valeur de départ différente, il pourrait s'en rapprocher suffisamment pour décider de s'arrêter. Assez proche est également un paramètre que vous pouvez transmettre pour minimiser (tolérance).
Re : Erreur de la fonction de minimisation : "ÉCHEC de la convergence : IMPOSSIBLE DE DIMINUER LA FONCTION OBJECTIF"En regardant le profileur de la fonction (voir ci-dessous et le tableau de données ci-joint), il semble que Minimize() donne une bonne réponse.
Peut-être @chris_gotwalt1 peut donner une explication du message d'erreur que vous recevez lors de l'appel à Minimize().

Re : Erreur de la fonction de minimisation : "ÉCHEC de la convergence : IMPOSSIBLE DE DIMINUER LA FONCTION OBJECTIF"J'ai utilisé ce script en fonction de vos réponses.
Names Default to Here( 1 );
alpha = 0.025;
variance ratio = 0.94917 ;
df = 2;
expression = Expr( Log10( (Chi Square Quantile( alpha, df ) / df - variance ratio) ^ 2 ) );
Minimize( expression, { df( 2, 1000 ) }, << Use Numeric Deriv( "true" ) );
J'obtiens ce qui suit en utilisant les deux ratios de variance que vous m'avez donnés :
//:*/
Names Default to Here( 1 );
alpha = 0.025;
variance ratio = 0.39135;
df = 2;
expression = Expr( Log10( (Chi Square Quantile( alpha, df ) / df - variance ratio) ^ 2 ) );
Minimize( expression, { df( 2, 1000 ) }, << Use Numeric Deriv( "true" ) );
/*:
Optimization failed: Failed: Cannot Decrease Objective Function
-19.6490758040614
//:*/
Names Default to Here( 1 );
alpha = 0.025;
variance ratio = 0.94917 ;
df = 2;
expression = Expr( Log10( (Chi Square Quantile( alpha, df ) / df - variance ratio) ^ 2 ) );
Minimize( expression, { df( 2, 1000 ) }, << Use Numeric Deriv( "true" ) );
/*:
-2.91402948948765Re : Erreur de la fonction de minimisation : "ÉCHEC de la convergence : IMPOSSIBLE DE DIMINUER LA FONCTION OBJECTIF"Salut Mark,
Merci pour votre réponse.
Pour répondre à tes questions:
- L’appel de la fonction minimiser est le suivant :
minfun = Minimize (mfun, {df},<<USENUMERICDERIV></USENUMERICDERIV> - L'expression à évaluer est la suivante :
mfun = Expr( Log10( (ChiSquare Quantile( alpha, df ) / df - Vratio) ^ 2 ) );
- Les paramètres de la fonction sont initialisés comme suit :
- df : ceci est défini sur 2 avant d'exécuter la fonction Minimize()
- Alpha et Vratio sont calculés précédemment dans le script. Dans la situation particulière où il échoue, les paramètres ont les valeurs suivantes :
- alpha = 0,025
- Vrapport = 0,39135
- Ici, on peut ajouter qu'en utilisant Vratio = 0,94917, je ne rencontre pas l'avertissement.
Cordialement,
Louis
Re : Erreur de la fonction de minimisation : "ÉCHEC de la convergence : IMPOSSIBLE DE DIMINUER LA FONCTION OBJECTIF"Quel est l’appel de fonction Minimize() que vous avez utilisé ? Quelle est l’expression à évaluer ? Quels sont les paramètres de l’expression et comment sont-ils initialisés ? Y a-t-il plus d'informations disponibles dans le journal JMP lorsque vous appelez cette fonction ?