저는 비선형 방정식을 풀기 위해 JSL에서 Minimize 기능을 자주 사용합니다. 한 가지 알아차린 점은 가끔 이 기능이 수렴에 도달하지 못할 수 있다는 것입니다.스크립트에서 해당 결과를 얻을 수 있는 방법이 있습니까?
다양한 데이터 하위 집합에 대한 모델을 해결하기 위해 스크립트를 작성하고 있으며 해결된 각 모델에 대한 매개 변수, 최소화된 목표 및 반복 횟수를 얻을 수 있지만 결과로 끝났는지 여부는 알 수 없습니다. 최대 반복에 도달했거나 수렴했거나 수렴하지 못했습니다.다음은 JMP에서 Milo가 작성한 훌륭한 게시물의 함수 및 결과의 예입니다.
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>
아래의 이러한 내용은 로그창에 출력되며, 내가 실행한 각 모델의 결과에 대해 "Convergence SUCCESS"를 얻고 싶습니다.어떤 제안이라도 감사하겠습니다.
nParm=2 뉴턴 ********************************************** ********
Iter nFree Objective RelGrad NormGrad2 Ridge 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
수렴 성공: 기울기
시간: 0.0166666666627862
x = 1;
y = -1;
objVal = -7;
반복자 = 4;
기울기 = [-8, 9];
헤시안 = [4 12, 12 0];
감사하다 @Mark_Bailey 그것이 내가 결국 한 일입니다.로그를 지운 다음 get log()를 사용하여 창을 가져온 다음 순환하여 "convergence"라는 용어가 있는 항목을 꺼냅니다.나는 그것을 얻을 수있는 더 직접적인 방법이 있기를 바랍니다.
Minimize()가 반환된 후 Get Log() 함수를 호출할 수 있습니다. 구문은 list = Get Log( < n > )입니다. 결과는 로그 창의 행 목록입니다. 선택적 정수 인수를 사용하면 처음 n개 라인(n 양수) 또는 마지막 n개 라인(n 음수)을 선택할 수 있습니다.
그런 다음 수렴 결과를 검토할 수 있습니다.