Frecuentemente uso la función Minimizar en JSL para resolver una ecuación no lineal y una cosa que he notado es que, ocasionalmente, la función puede no alcanzar la convergencia.¿Hay alguna manera de obtener esos resultados del script?
Estoy escribiendo un script para resolver el modelo para muchos subconjuntos de datos diferentes y, aunque puedo obtener los parámetros, el objetivo minimizado y la cantidad de iteraciones para cada modelo resuelto, no sé si terminó en un resultado porque alcanzó el máximo de iteraciones, convergió o no logró converger.A continuación se muestra un ejemplo de la función y los resultados de una excelente publicación de Milo, de JMP.
https://community.jmp.com/t5/JMPer-Cable/Minimizar-y-Maximizar-Funciones-en-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>
Estos detalles a continuación se muestran en la ventana de registro, y me gustaría obtener el "ÉXITO de convergencia" para los resultados de cada modelo que ejecuto.Cualquier sugerencia sera apreciada.
nParm=2 Newton ********************************************** ********
Iter nFree Objetivo RelGrad NormGrad2 Cresta 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
ÉXITO de convergencia: Gradiente
Hora: 0.0166666666627862
x = 1;
y = -1;
objVal = -7;
iters = 4;
gradiente = [-8, 9];
arpillera = [4 12, 12 0];
agradecer @Mark_Bailey Eso es lo que terminé haciendo.Borro el registro, luego uso get log() para tomar la ventana y luego hago un ciclo para extraer el elemento con el término "convergencia".Sin embargo, espero que haya una forma más directa de obtenerlo.
Después de que Minimize() regrese, puede llamar a la función Get Log(). La sintaxis es list = Get Log( < n > ). El resultado es una lista de líneas de la ventana Registro. El argumento entero opcional le permite seleccionar las primeras n líneas (n positivas) o las últimas n líneas (n negativas).
Luego puede examinar el resultado de la convergencia.