최적화 솔버 플롯 함수
플롯 함수란?
options
구조체의 PlotFcns
필드는 각 반복에서 최적화 함수가 다양한 진행률 측정값을 플로팅하도록 호출하는 하나 이상의 함수를 지정합니다. 함수 핸들 또는 함수 핸들로 구성된 셀형 배열을 전달합니다. 플롯 함수의 구조는 출력 함수의 구조와 동일합니다. 이 구조에 대한 자세한 내용은 최적화 솔버 출력 함수 항목을 참조하십시오.
PlotFcns
옵션은 다음과 같은 MATLAB® 최적화 함수에 사용할 수 있습니다.
이러한 최적화 함수를 위해 미리 정의된 플롯 함수는 다음과 같습니다.
@optimplotx
는 현재 점을 플로팅합니다.@optimplotfval
은 함수 값을 플로팅합니다.@optimplotfunccount
는 함수 실행 횟수를 플로팅합니다(fzero
에는 사용할 수 없음).
미리 정의된 플롯 함수를 보거나 수정하려면 MATLAB 편집기에서 함수 파일을 여십시오. 예를 들어, 현재 점을 플로팅하기 위한 함수 파일을 보려면 다음을 입력하십시오.
edit optimplotx.m
예제: 플롯 함수
fminsearch
를 사용한 최소화 진행 상황을 플롯 함수 @optimplotfval
을 사용하여 확인할 수 있습니다.
목적 함수를 위한 파일을 작성합니다. 이 예제에서는 다음을 사용합니다.
function f = onehump(x) r = x(1)^2 + x(2)^2; s = exp(-r); f = x(1)*s+r/20;
플롯 함수를 사용하도록 options를 설정합니다.
options = optimset('PlotFcns',@optimplotfval);
[2,1]에서부터
fminsearch
를 호출합니다.[x ffinal] = fminsearch(@onehump,[2,1],options)
MATLAB에서 다음이 반환됩니다.
x = -0.6691 0.0000 ffinal = -0.4052