Errore della funzione di minimizzazione: "ERRORE DI CONVERGENZA: IMPOSSIBILE DIMINUIRE LA FUNZIONE OBIETTIVO"Sto lavorando a un progetto in JMP 16, dove utilizzo la funzione "Riduci a icona". Durante l'esecuzione della funzione, incontro spesso l'errore "FALLITO CONVERGENZA: IMPOSSIBILE DIMINUIRE L'OBIETTIVO". Guardando i risultati finali della sceneggiatura, sono come previsto. Sembra quindi che l'errore abbia poca influenza sui risultati finali. Tuttavia, per garantire la validità dello script, vorrei comunque conoscere il ragionamento alla base dell'errore.Ho avuto difficoltà a trovare qualsiasi documentazione su questo errore specifico e quindi speravo che qualcuno nella comunità JMP potesse aiutare a identificare la causa.
Usando l'opzione "<< Dettagli( Entrambi )" per la funzione di riduzione a icona, è stata ottenuta l'immagine seguente del registro:

Distinti saluti,
Louis
AnaliticaSceneggiaturaRe: Errore della funzione di minimizzazione: "ERRORE DI CONVERGENZA: IMPOSSIBILE DIMINUIRE LA FUNZIONE OBIETTIVO"Potresti fare un grafico, come questo:
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.c'è un forte calo al df trovato dalla funzione di minimizzazione.
puoi ingrandire il forte calo e vedere che sarà computazionalmente difficile ottenere una risposta perfetta:
9 significant digits, and more to go.9 significant digits, and more to go.9 cifre significative e altro ancora.
minimizza trovato df = 13.3517718809044 ;
Id indovinare che l'algoritmo di minimizzazione raggiunge un punto sulla curva che trova il punto successivo sul lato opposto del minimo reale e potrebbe anche trovarsi in un ciclo che rimbalza sul minimo. Con un valore iniziale diverso, potrebbe avvicinarsi abbastanza da decidere di fermarsi. Abbastanza vicino è anche un parametro che puoi passare per ridurre al minimo (tolleranza).
Re: Errore della funzione di minimizzazione: "ERRORE DI CONVERGENZA: IMPOSSIBILE DIMINUIRE LA FUNZIONE OBIETTIVO"Osservando il Profiler per la funzione (vedi sotto e la tabella dati allegata), sembra che Minimize() stia dando una buona risposta.
Forse @chris_gotwalt1 può fornire una spiegazione del messaggio di errore che stai ricevendo dalla chiamata a Minimize().

Re: Errore della funzione di minimizzazione: "ERRORE DI CONVERGENZA: IMPOSSIBILE DIMINUIRE LA FUNZIONE OBIETTIVO"Ho usato questo script in base alle tue risposte.
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" ) );
Ottengo quanto segue usando i due rapporti di varianza che mi hai dato:
//:*/
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: Errore della funzione di minimizzazione: "ERRORE DI CONVERGENZA: IMPOSSIBILE DIMINUIRE LA FUNZIONE OBIETTIVO"Ciao Mark,
Grazie per la vostra risposta.
Per rispondere alle tue domande:
- La chiamata alla funzione di minimizzazione è la seguente:
minfun = Minimize (mfun, {df},<<USENUMERICDERIV></USENUMERICDERIV> - L'espressione da valutare è la seguente:
mfun = Expr( Log10( (ChiSquare Quantile( alpha, df ) / df - Vratio) ^ 2 ) );
- I parametri della funzione vengono inizializzati come segue:
- df: questo è impostato su 2 prima di eseguire la funzione Minimize()
- Sia alpha che Vratio sono calcolati in precedenza nello script. Nella particolare situazione in cui fallisce i parametri hanno i seguenti valori:
- alfa = 0,025
- Rapporto = 0,39135
- Qui può essere aggiunto che usando Vratio = 0.94917 non incontro l'avviso.
Distinti saluti,
Louis
Re: Errore della funzione di minimizzazione: "ERRORE DI CONVERGENZA: IMPOSSIBILE DIMINUIRE LA FUNZIONE OBIETTIVO"Qual è la chiamata alla funzione Minimize() che hai usato? Qual è l'espressione da valutare? Quali sono i parametri nell'espressione e come vengono inizializzati? Sono disponibili ulteriori informazioni nel registro JMP quando si chiama questa funzione?