헤세 행렬 출력값
fminunc
솔버 및 fmincon
솔버는 근사 헤세 행렬을 선택적 출력값으로 반환합니다.
[x,fval,exitflag,output,grad,hessian] = fminunc(fun,x0)
% or
[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
이 항목에서는 반환된 헤세 행렬의 의미와 기대할 수 있는 정확도에 대해 설명합니다.
솔버가 입력 헤세 행렬 인수에 사용할 헤세 행렬 유형도 지정할 수 있습니다. fminunc
는 기울기와 헤세 행렬 포함시키기 항목을 참조하십시오. fmincon
은 입력값 헤세 행렬 항목을 참조하십시오.
fminunc
헤세 행렬
제약 조건이 없는 문제에 대한 헤세 행렬은 목적 함수 f의 2계 도함수로 구성된 행렬입니다.
Quasi-Newton 알고리즘 —
fminunc
는 해에서 추정된 헤세 행렬을 반환합니다.fminunc
는 유한 차분으로 추정값을 계산하기 때문에, 추정값이 대체로 정확합니다.Trust-Region 알고리즘 —
fminunc
는 끝에서 두 번째 반복에서 헤세 행렬을 반환합니다.목적 함수에 헤세 행렬을 제공하고
HessianFcn
옵션을'objective'
로 설정할 경우fminunc
는 이 헤세 행렬을 반환합니다.HessianMultiplyFcn
함수를 제공할 경우fminunc
는HessianMultiplyFcn
함수에서Hinfo
행렬을 반환합니다. 자세한 내용은fminunc
options
표의trust-region
섹션에서HessianMultiplyFcn
를 참조하십시오.그렇지 않은 경우,
fminunc
는 기울기에 대한 희소 유한 차분 알고리즘에서 근삿값을 반환합니다.
이 헤세 행렬은 끝에서 두 번째 반복에 대해 정확합니다. 하지만 끝에서 두 번째 반복이 최종점에 가깝지 않을 수 있습니다.
trust-region
알고리즘은 효율성을 위해 끝에서 두 번째 반복에서 헤세 행렬을 반환합니다.fminunc
는 내부적으로 헤세 행렬을 사용하여 그 다음 단계를 계산합니다.fminunc
가 중지 조건에 이르면 다음 단계를 계산할 필요가 없으므로 헤세 행렬을 계산할 필요도 없습니다.
fmincon
헤세 행렬
제약 조건이 적용된 문제에 대한 헤세 행렬은 라그랑주 함수의 헤세 행렬입니다. 목적 함수 f, 비선형 부등식 제약 조건 벡터 c, 비선형 등식 제약 조건 벡터 ceq의 경우, 라그랑주 함수는 다음과 같습니다.
λi는 라그랑주 승수입니다. 1차 최적성 측정값 및 라그랑주 승수 구조체 항목을 참조하십시오. 라그랑주 함수의 헤세 행렬은 다음과 같습니다.
fmincon의 Trust Region Reflective 알고리즘, fmincon의 Active-Set 알고리즘, fmincon의 Interior Point 알고리즘에 설명되어 있듯이, fmincon
에는 헤세 행렬을 위한 다양한 옵션과 함께 여러 가지 알고리즘이 있습니다.
active-set
,sqp
또는sqp-legacy
알고리즘 —fmincon
은 끝에서 두 번째 반복에서 계산하는 헤세 행렬 근삿값을 반환합니다.fmincon
은 반복 과정 중에 해에서 헤세 행렬의 준뉴턴 근삿값을 계산합니다. 일반적으로, 이 근삿값은 모든 성분에서 실제 헤세 행렬과 일치하지는 않으며, 특정 부분공간에서만 일치합니다. 따라서fmincon
에서 반환되는 헤세 행렬이 부정확할 수 있습니다.active-set
계산에 대한 자세한 내용은 SQP 구현 항목을 참조하십시오.trust-region-reflective
알고리즘 —fmincon
은 끝에서 두 번째 반복에서 계산하는 헤세 행렬을 반환합니다.목적 함수에 헤세 행렬을 제공하고
HessianFcn
옵션을'objective'
로 설정할 경우fmincon
는 이 헤세 행렬을 반환합니다.HessianMultiplyFcn
함수를 제공할 경우fmincon
는HessianMultiplyFcn
함수에서Hinfo
행렬을 반환합니다. 자세한 내용은fmincon
options
에서 Trust-Region-Reflective 알고리즘을 참조하십시오.그렇지 않은 경우,
fmincon
은 기울기에 대한 희소 유한 차분 알고리즘에서 근삿값을 반환합니다.
이 헤세 행렬은 끝에서 두 번째 반복에 대해 정확합니다. 하지만 끝에서 두 번째 반복이 최종점에 가깝지 않을 수 있습니다.
trust-region-reflective
알고리즘은 효율성을 위해 끝에서 두 번째 반복에서 헤세 행렬을 반환합니다.fmincon
은 내부적으로 헤세 행렬을 사용하여 그 다음 단계를 계산합니다.fmincon
이 중지 조건에 이르면 다음 단계를 계산할 필요가 없으므로 헤세 행렬을 계산할 필요도 없습니다.interior-point
알고리즘HessianApproximation
옵션이'lbfgs'
또는'finite-difference'
이거나HessianMultiplyFcn
함수를 제공할 경우,fmincon
은 헤세 행렬에 대해[]
을 반환합니다.HessianApproximation
옵션이'bfgs'
(디폴트 값)인 경우,fmincon
은 최종점에서 헤세 행렬에 대한 준뉴턴 근삿값을 반환합니다. 이 헤세 행렬은active-set
또는sqp
알고리즘에서의 헤세 행렬과 마찬가지로 부정확할 수 있습니다.HessianFcn
옵션이 함수 핸들인 경우fmincon
은 최종점에서 이 함수를 헤세 행렬로 반환합니다.