이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

플롯 함수

플롯 함수란?

options 구조체의 PlotFcns 필드는 각 반복에서 최적화 함수가 다양한 진행률 측정값을 플로팅하도록 호출하는 하나 이상의 함수를 지정합니다. 함수 핸들 또는 함수 핸들로 구성된 셀형 배열을 전달합니다. 플롯 함수의 구조는 출력 함수의 구조와 동일합니다. 이 구조에 대한 자세한 내용은 출력 함수 항목을 참조하십시오.

PlotFcns 옵션은 다음과 같은 MATLAB® 최적화 함수에 사용할 수 있습니다.

이러한 최적화 함수를 위해 미리 정의된 플롯 함수는 다음과 같습니다.

  • @optimplotx는 현재 점을 플로팅합니다.

  • @optimplotfval은 함수 값을 플로팅합니다.

  • @optimplotfunccount는 함수 실행 횟수를 플로팅합니다(fzero에는 사용할 수 없음).

미리 정의된 플롯 함수를 보거나 수정하려면 MATLAB 편집기에서 함수 파일을 여십시오. 예를 들어, 현재 점을 플로팅하기 위한 함수 파일을 보려면 다음을 입력하십시오.

edit optimplotx.m

예제: 플롯 함수

fminsearch를 사용한 최소화 진행 상황을 플롯 함수 @optimplotfval을 사용하여 확인할 수 있습니다.

  1. 목적 함수를 위한 파일을 작성합니다. 이 예제에서는 다음을 사용합니다.

    function f = onehump(x)
    
    r = x(1)^2 + x(2)^2;
    s = exp(-r);
    f = x(1)*s+r/20;
  2. 플롯 함수를 사용하도록 options를 설정합니다.

    options = optimset('PlotFcns',@optimplotfval);
  3. [2,1]에서부터 fminsearch를 호출합니다.

    [x ffinal] = fminsearch(@onehump,[2,1],options)
  4. MATLAB에서 다음이 반환됩니다.

    x =
       -0.6691    0.0000
    
    ffinal =
       -0.4052

관련 항목