Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

optimset

최적화 options 구조체 생성 또는 수정

설명

MATLAB® 솔버에 대한 options 구조체를 만들거나 수정합니다.

참고

fzero, fminbnd, fminsearch, lsqnonneg를 제외한 모든 솔버에는 optimset 대신 optimoptions를 사용하는 것이 좋습니다.

예제

options = optimset(Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 설정한 지정된 파라미터를 사용하여 options를 반환합니다.

optimset에 입력 인수나 출력 인수를 지정하지 않으면, 전체 파라미터 목록과 각 항목에 해당하는 유효한 값이 표시됩니다.

options = optimset처럼 입력 인수를 지정하지 않으면 모든 파라미터가 []로 설정된 options 구조체 options가 생성됩니다.

예제

options = optimset(optimfun)은 최적화 함수 optimfun에 알맞은 모든 파라미터 이름과 디폴트 값을 포함하는 options를 생성합니다.

예제

options = optimset(oldopts,Name,Value)oldopts의 복사본을 생성하고 하나 이상의 이름-값 쌍의 인수를 사용하여 지정된 파라미터를 수정합니다.

예제

options = optimset(oldopts,newopts)는 기존 options 구조체 oldopts를 새 options 구조체 newopts와 결합합니다. 비어 있지 않은 값을 갖는 newopts의 모든 파라미터는 이에 대응하는 oldopts의 파라미터를 덮어씁니다.

예제

모두 축소

디폴트 값보다 엄격한 중지 조건과 플롯 함수를 사용하도록 fminsearch에 대한 옵션을 설정합니다.

options = optimset('PlotFcns','optimplotfval','TolX',1e-7);

점 (–1,2)에서 시작하여 로젠브록 함수를 최소화하고 옵션을 사용하여 최소화 과정을 모니터링합니다. 로젠브록 함수는 점 (1,1)에서 최솟값 0을 가집니다.

fun = @(x)100*((x(2) - x(1)^2)^2) + (1 - x(1))^2; % Rosenbrock's function
x0 = [-1,2];
[x,fval] = fminsearch(fun,x0,options)

Figure Optimization Plot Function contains an axes object. The axes object with title Current Function Value: 4.73054e-16, xlabel Iteration, ylabel Function value contains an object of type scatter.

x = 1×2

    1.0000    1.0000

fval = 4.7305e-16

fzero 솔버에 대한 디폴트 옵션을 포함하는 구조체를 만듭니다.

options = optimset('fzero');

fzero에 대한 TolX 옵션의 디폴트 값을 확인합니다.

tol = options.TolX
tol = 2.2204e-16

함수 허용오차 1e-6을 사용하도록 옵션을 설정합니다.

oldopts = optimset('TolFun',1e-6);

'optimplotfval' 플롯 함수와 TolX1e-6을 사용하도록 oldopts의 옵션을 수정합니다.

options = optimset(oldopts,'PlotFcns','optimplotfval','TolX',1e-6);

설정한 3개의 옵션을 확인합니다.

disp(options.TolFun);
   1.0000e-06
disp(options.PlotFcns);
optimplotfval
disp(options.TolX);
   1.0000e-06

optimset을 사용하여 하나의 options 구조체의 대응되는 부분을 다른 options 구조체로 덮어씁니다.

oldopts = optimset('Display','iter','TolX',1e-6);
newopts = optimset('PlotFcns','optimplotfval','Display','off');
options = optimset(oldopts,newopts);

oldoptsnewopts는 모두 Display 옵션의 값을 설정합니다. 이 옵션에 대해 newoptsoldopts를 덮어쓰는지 확인합니다.

options.Display
ans = 
'off'

나머지 두 옵션의 값을 확인합니다.

options.TolX
ans = 1.0000e-06
options.PlotFcns
ans = 
'optimplotfval'

입력 인수

모두 축소

최적화 솔버로, 이름 또는 함수 핸들로 지정됩니다. 반환되는 options 구조체는 지정된 솔버에 대해서만 비어 있지 않은 항목을 갖습니다.

예: options = optimset('fzero')

예: options = optimset(@fminsearch)

데이터형: char | string | function_handle

이전 최적화 옵션으로, 구조체로 지정됩니다. 출력값 options는 지정된 파라미터를 제외하면 oldopts와 동일합니다.

예: options = optimset(oldopts,'TolX',1e-6)

데이터형: struct

새 최적화 옵션으로, 구조체로 지정됩니다. 출력값 optionsnewopts와 동일하며, newopts에서는 비어 있는 oldopts의 비어 있지 않은 파라미터도 포함합니다.

예: options = optimset(oldopts,newopts)

데이터형: struct

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: options = optimset('TolX',1e-6,'PlotFcns',@optimplotfval)

옵션 이름을 고유하게 정의하기에 충분한 만큼의 선행 문자만 입력하면 됩니다. optimset 함수는 옵션 이름의 대/소문자를 무시합니다.

표시 수준으로, 'Display'와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'notify' — 함수가 수렴하지 않는 경우에만 출력값을 표시합니다.

  • 'final' — 최종 출력값만 표시합니다.

  • 'off' 또는 'none' — 출력값을 표시하지 않습니다.

  • 'iter' — 각 반복마다 출력값을 표시합니다(lsqnonneg에는 사용할 수 없음).

Display는 모든 최적화 솔버에 사용할 수 있습니다.

예: options = optimset('Display','iter')

데이터형: char | string

함수 값이 유효한지 여부를 확인하는 플래그로, 'FunValCheck'와 함께 'off' 또는 'on'이 쉼표로 구분되어 지정됩니다. 값이 'on'이면 목적 함수가 복소수 또는 NaN 값을 반환하는 경우에 솔버는 오류를 표시합니다.

FunValCheckfminbnd, fminsearchfzero에 사용할 수 있습니다.

예: options = optimset('FunValCheck','on')

데이터형: char | string

함수 실행의 최대 횟수로, 'MaxFunEvals'와 함께 양의 정수가 쉼표로 구분되어 지정됩니다.

MaxFunEvalsfminbndfminsearch에 사용할 수 있습니다.

예: options = optimset('MaxFunEvals',2e3)

데이터형: single | double

최대 반복 횟수로, 'MaxIter'과 함께 양의 정수가 쉼표로 구분되어 지정됩니다.

MaxIterfminbndfminsearch에 사용할 수 있습니다.

예: options = optimset('MaxIter',2e3)

데이터형: single | double

출력 함수로, 'OutputFcn'과 함께 함수 이름 또는 함수 핸들이 쉼표로 구분되어 지정됩니다. 여러 개의 출력 함수는 함수 핸들로 구성된 셀형 배열로 지정합니다. 출력 함수는 각 반복 후에 실행되어 풀이 과정을 모니터링하거나 반복을 중지할 수 있게 해 줍니다. 자세한 내용은 최적화 솔버 출력 함수 항목을 참조하십시오.

OutputFcnfminbnd, fminsearchfzero에 사용할 수 있습니다.

예: options = optimset('OutputFcn',{@outfun1,@outfun2})

데이터형: char | string | cell | function_handle

플롯 함수로, 'PlotFcns'와 함께 함수 이름 또는 함수 핸들이 쉼표로 구분되어 지정됩니다. 여러 개의 플롯 함수는 함수 핸들로 구성된 셀형 배열로 지정합니다. 플롯 함수는 각 반복 후에 실행되어 풀이 과정을 모니터링하거나 반복을 중지할 수 있게 해 줍니다. 자세한 내용은 플롯 함수 항목과 Output Function and Plot Function Syntax 항목을 참조하십시오.

내장 플롯 함수는 다음과 같습니다.

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

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

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

PlotFcnsfminbnd, fminsearchfzero에 사용할 수 있습니다.

예: options = optimset('PlotFcns','optimplotfval')

데이터형: char | string | cell | function_handle

함수 값에 대한 종료 허용오차로, 'TolFun'과 함께 음이 아닌 스칼라가 쉼표로 구분되어 지정됩니다. 현재 함수 값과 이전 값의 차이가 초기 함수 값을 기준으로 TolFun보다 작으면 반복이 종료됩니다. 허용오차와 중지 기준 항목을 참조하십시오.

TolFunfminsearch에만 사용할 수 있습니다.

예: options = optimset('TolFun',2e-6)

데이터형: single | double

현재 점 x에 대한 종료 허용오차로, 'TolX'와 함께 음이 아닌 스칼라가 쉼표로 구분되어 지정됩니다. 현재 점과 이전 점의 차이가 x의 크기를 기준으로 TolX보다 작으면 반복이 종료됩니다. 허용오차와 중지 기준 항목을 참조하십시오.

TolX는 모든 솔버에 사용할 수 있습니다.

예: options = optimset('TolX',2e-6)

데이터형: single | double

출력 인수

모두 축소

최적화 옵션으로, 구조체로 반환됩니다. 설정하지 않은 파라미터에 대해 반환되는 값은 []입니다. 솔버는 이러한 파라미터에 디폴트 값을 사용하게 됩니다.

제한 사항

  • optimset은 네 가지 MATLAB 최적화 솔버 fminbnd, fminsearch, fzerolsqnonneg에 대해 옵션을 설정합니다. Optimization Toolbox™ 또는 Global Optimization Toolbox 솔버에 대해 옵션을 설정하려면 optimoptions 함수를 사용하는 것이 권장됩니다.

  • optimsetintlinprog와 같은 일부 Optimization Toolbox 솔버에 대한 옵션을 설정할 수 없습니다. optimoptions를 대신 사용하십시오.

  • optimsetGlobal Optimization Toolbox 솔버에 대한 대부분의 옵션을 설정할 수 없습니다. optimoptions를 대신 사용하십시오.

확장 기능

버전 내역

R2006a 이전에 개발됨