J'utilise fréquemment la fonction Minimize dans JSL pour résoudre une équation non linéaire et une chose que j'ai remarquée est que parfois, la fonction peut ne pas atteindre la convergence.Existe-t-il un moyen d'obtenir ces résultats à partir du script ?
J'écris un script pour résoudre le modèle pour de nombreux sous-ensembles de données différents et bien que je puisse obtenir les paramètres, l'objectif minimisé et le nombre d'itérations pour chaque modèle résolu, je ne sais pas s'il a abouti à un résultat car il a atteint le nombre maximal d'itérations, a convergé ou n'a pas réussi à converger.Vous trouverez ci-dessous un exemple de la fonction et les résultats d'un excellent article de Milo, de JMP.
https://community.jmp.com/t5/JMPer-Cable/Minimize-and-Maximize-Functions-in-JSL/ba-p/36355
x = 0;
y = 0;
{objVal, iters, gradient, hessian} =
Minimize(
((2 * x ^ 2 + 12 * x * y - y * 3)),
{x( -1, 1 ), y( -1, 1 )},
<<MAXITER></MAXITER>
Ces détails ci-dessous sont affichés dans la fenêtre du journal, et j'aimerais obtenir le "SUCCÈS de la convergence" pour les résultats de chaque modèle que j'exécute.Toute suggestion serait appréciée.
nParm=2 Newton ************************************************* ********
Iter nFree Objectif RelGrad NormGrad2 Crête nObj nGrad nHess Parm0 Parm1
0 2 0 0,125 0,5 0 1 1 1 0 0
1 1 -0,23568 29,52863 0,514107 2048 16 1 1 0,282987 -1
2 1 -1,92154 26,15693 0,310463 16 1 1 1 0,442808 -1
3 1 -6,6297 16,7406 0,002094 4 1 1 1 0,954236 -1
4 0 -7 . 0 1 1 1 1 1 -1
SUCCÈS de la convergence : dégradé
Temps : 0.0166666666627862
x = 1 ;
y = -1 ;
objVal = -7 ;
itères = 4 ;
gradient = [-8, 9] ;
toile de jute = [4 12, 12 0] ;
remercier @Mark_Bailey C'est ce que j'ai fini par faire.J'efface le journal, puis j'utilise get log() pour saisir la fenêtre, puis je fais défiler pour extraire l'élément avec le terme "convergence".J'espère qu'il existe un moyen plus direct de l'obtenir.
Après le retour de Minimize(), vous pouvez appeler la fonction Get Log(). La syntaxe est list = Get Log( < n > ). Le résultat est une liste de lignes de la fenêtre Journal. L'argument optionnel entier permet de sélectionner les n premières lignes (n positives) ou les n dernières lignes (n négatives).
Ensuite, vous pouvez examiner le résultat de la convergence.