최소화 기능 오류: "수렴 실패: 목표 기능을 감소시킬 수 없습니다."저는 JMP 16에서 "최소화" 기능을 사용하는 프로젝트를 진행하고 있습니다. 함수를 실행할 때 "Convergence FAILURE: CANNOT DECREASE OBJECTIVE" 오류가 자주 발생합니다. 스크립트의 최종 결과를 보면 예상대로입니다. 따라서 오류가 최종 결과에 거의 영향을 미치지 않는 것으로 보입니다. 그러나 스크립트의 유효성을 보장하기 위해 오류의 원인을 알고 싶습니다.이 특정 오류에 대한 문서를 찾는 데 어려움을 겪었으므로 JMP 커뮤니티의 누군가가 원인을 식별하는 데 도움을 줄 수 있기를 바랍니다.
최소화 기능에 "<< Details( Both )" 옵션을 사용하여 아래 로그 이미지를 얻었습니다.

친애하는,
루이스
콘텐츠 구성결과 공유 및 전달Re: 최소화 기능 오류: "수렴 실패: 목표 기능을 감소시킬 수 없습니다."다음과 같이 그래프를 만들 수 있습니다.
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.최소화 기능으로 발견된 df에 급격한 하락이 있습니다.
급격한 하락을 확대하면 완벽한 답을 얻기가 계산적으로 어려울 것임을 알 수 있습니다.
9 significant digits, and more to go.9 significant digits, and more to go.유효 숫자 9개, 그리고 더 많은 숫자가 필요합니다.
발견된 df = 최소화 13.3517718809044 ;
ID 추측하다 최소화 알고리즘은 실제 최소값의 먼 쪽에서 다음 점을 찾는 곡선의 점에 도달하고 심지어 최소값을 가로질러 튀는 주기에 있을 수도 있습니다. 다른 시작 값을 사용하면 중지하기로 결정할 만큼 가까워질 수 있습니다. 충분히 가까운 것도 최소화(공차)를 위해 전달할 수 있는 매개변수입니다.
Re: 최소화 기능 오류: "수렴 실패: 목표 기능을 감소시킬 수 없습니다."함수에 대한 프로파일러(아래 및 첨부된 데이터 테이블 참조)를 보면 Minimize()가 좋은 대답을 제공하는 것처럼 보입니다.
아마도 @chris_gotwalt1 Minimize() 호출로 인해 수신되는 오류 메시지에 대한 설명을 제공할 수 있습니다.

Re: 최소화 기능 오류: "수렴 실패: 목표 기능을 감소시킬 수 없습니다."귀하의 답변을 바탕으로 이 스크립트를 사용했습니다.
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" ) );
나는 당신이 나에게 준 두 가지 분산 비율을 사용하여 다음을 얻습니다.
//:*/
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: 최소화 기능 오류: "수렴 실패: 목표 기능을 감소시킬 수 없습니다."안녕 마크,
당신의 응답을 주셔서 감사합니다.
귀하의 질문에 답변하려면:
- 최소화 함수 호출은 다음과 같습니다.
minfun = Minimize (mfun, {df},<<USENUMERICDERIV></USENUMERICDERIV> - 평가할 표현식은 다음과 같습니다.
mfun = Expr( Log10( (ChiSquare Quantile( alpha, df ) / df - Vratio) ^ 2 ) );
- 함수의 매개변수는 다음과 같이 초기화됩니다.
- df: Minimize() 함수를 실행하기 전에는 2로 설정됩니다.
- 알파와 Vratio는 모두 스크립트에서 미리 계산됩니다. 실패하는 특정 상황에서 매개변수의 값은 다음과 같습니다.
- 알파 = 0.025
- Vratio = 0.39135
- 여기에 Vratio = 0.94917을 사용하면 경고가 발생하지 않는다는 점을 추가할 수 있습니다.
친애하는,
루이스
Re: 최소화 기능 오류: "수렴 실패: 목표 기능을 감소시킬 수 없습니다."사용한 Minimize() 함수 호출은 무엇입니까? 평가할 표현은 무엇입니까? 표현식의 매개변수는 무엇이며 어떻게 초기화됩니까? 이 함수를 호출할 때 JMP 로그에서 사용할 수 있는 추가 정보가 있습니까?