主要内容

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

fminunc

비제약조건다변수함수의최솟값구하기

설명

비선형 계획법 솔버입니다.

다음으로 지정된 문제의 최솟값을 구합니다.

最小值 x F ( x )

여기서 f(x)는 스칼라를 반환하는 함수입니다.

x는 벡터 또는 행렬입니다.행렬 인수항목을참조하십시오。

예제

x= fminunc (有趣的,x0)은점x0에서 시작하여有趣的에정의된함수의국소최솟값x를 구하려고 시도합니다. 점x0은스칼라,벡터또는행렬일수있습니다。

참고

추가 파라미터 전달하기에는필요한경우추가파라미터를목적함수와비선형제약조건함수에전달하는방법이설명되어있습니다。

fminunc는제약조건이없는비선형문제에사용할수있습니다。문제에제약조건이있는경우,일반적으로fmincon을 사용하십시오.최적화 의사 결정표항목을참조하십시오。

예제

x= fminunc (有趣的,x0,选择权)选择权에지정된최적화옵션을사용하여有趣的을 최소화합니다. 이 옵션을 설정하려면最佳选择를 사용하십시오.

예제

x= fminunc (问题)问题에 설명되어 있는 구조체인问题의 최솟값을 구합니다.

예제

[x,未来值]=fminunc(___)는모든구문에서해x에서의목적함수有趣的의값을반환합니다。

예제

[x,未来值,出口滞后,输出]=fminunc(___)fminunc의종료상황을설명하는값出口滞后와최적화과정에대한정보가포함된구조체输出을 추가로 반환합니다.

[x,未来值,出口滞后,输出,毕业生,黑森]=fminunc(___)는 추가로 다음을 반환합니다.

  • 毕业生— 해x에서의有趣的의기울기입니다。

  • 黑森— 해x에서의有趣的의헤세행렬입니다。fminunc헤세행렬항목을참조하십시오。

예제

모두 축소

함수 F ( x ) = 3. x 1. 2. + 2. x 1. x 2. + x 2. 2. - 4. x 1. + 5. x 2. 를 최소화합니다.

이를 위해 목적 함수를 계산하는 익명 함수有趣的을 작성합니다.

乐趣=@(x)3*x(1)^2+2*x(1)*x(2)+x(2)^2-4*x(1)+5*x(2);

fminunc를 호출하여[1,1]근방에서有趣的의 최솟값을 구합니다.

x0=[1,1];[x,fval]=fminunc(fun,x0)
局部最小值。由于梯度的大小小于最优性公差的值,优化完成。
x=1×22.2500 -4.7500
fval = -16.3750

fminunc는 사용자가 도함수를 제공하는 경우 더 빠르고 더 안정적일 수 있습니다.

기울기는물론,함수값도반환하는목적함수를작성합니다。기울기와 헤세 행렬 포함시키기에설명되어있는조건화된형식을사용합니다。목적함수는다음과같은로젠브록함수(。函数)이며,

F ( x ) = 1. 0 0 ( x 2. - x 1. 2. ) 2. + ( 1. - x 1. ) 2. ,

기울기는 다음과 같습니다.

F ( x ) = [ - 4. 0 0 ( x 2. - x 1. 2. ) x 1. - 2. ( 1. - x 1. ) 2. 0 0 ( x 2. - x 1. 2. ) ] .

기울기가 있는 목적 함수의 코드는이 예제의 마지막 부분에 나와 있습니다.

목적 함수의 기울기를 사용하도록 옵션을 만듭니다. 또한, 알고리즘을“信赖域”으로 설정합니다.

选项=最佳选项(“fminunc”,“算法”,“信赖域”,“SpecificyObjectiveGradient”,真正的);

초기점을[-1,2)로설정합니다。그런다음,fminunc를 호출합니다.

x0 = [1, 2];有趣= @rosenbrockwithgrad;x = fminunc(有趣,x0,选项)
局部最小值。由于梯度的大小小于最优性公差的值,优化完成。
x=1×21.0000 - 1.0000

다음 코드는 기울기를 두 번째 출력값으로 포함하는rosenbrockwithgrad함수를 생성합니다.

函数[f,g]=rosenbrockwithgrad(x)%计算目标fF = 100*(x(2) -x(1) ^2)^2 + (1-x(1))^2如果nargout>1%所需梯度g=[-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)];终止终止

개별 인수 대신 문제 구조체를 사용하여기울기 제공하기에 나와 있는 것과 동일한 문제를 풉니다.

기울기는물론,함수값도반환하는목적함수를작성합니다。기울기와 헤세 행렬 포함시키기에설명되어있는조건화된형식을사용합니다。목적함수는다음과같은로젠브록함수(。函数)이며,

F ( x ) = 1. 0 0 ( x 2. - x 1. 2. ) 2. + ( 1. - x 1. ) 2. ,

기울기는 다음과 같습니다.

F ( x ) = [ - 4. 0 0 ( x 2. - x 1. 2. ) x 1. - 2. ( 1. - x 1. ) 2. 0 0 ( x 2. - x 1. 2. ) ] .

기울기가 있는 목적 함수의 코드는이 예제의 마지막 부분에 나와 있습니다.

목적 함수의 기울기를 사용하도록 옵션을 만듭니다. 또한, 알고리즘을“信赖域”으로 설정합니다.

选项=最佳选项(“fminunc”,“算法”,“信赖域”,“SpecificyObjectiveGradient”,真正的);

초기점x0 = [1, 2]를 포함하는 문제 구조체를 만듭니다. 이 구조체의 필수 필드는问题항목을참조하십시오。

problem.options=options;problem.x0=[-1,2];problem.objective=@rosenbrockwithgrad;problem.solver=“fminunc”;

문제를 풉니다.

x = fminunc(问题)
局部最小值。由于梯度的大小小于最优性公差的值,优化完成。
x=1×21.0000 - 1.0000

다음 코드는 기울기를 두 번째 출력값으로 포함하는rosenbrockwithgrad함수를 생성합니다.

函数[f,g]=rosenbrockwithgrad(x)%计算目标fF = 100*(x(2) -x(1) ^2)^2 + (1-x(1))^2如果nargout>1%所需梯度g=[-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)];终止终止

비선형 함수가 최소가 되는 위치와 그 위치에서의 함수 값을 모두 구합니다. 목적 함수는 다음과 같습니다.

F ( x ) = x ( 1. ) E - x 2. 2. + x 2. 2. / 2. 0 .

乐趣=@(x)x(1)*经验(-(x(1)^2+x(2)^2))+(x(1)^2+x(2)^2)/20;

x0=[1,2]에서시작하여최소점의위치와목적함수값을구합니다。

x0=[1,2];[x,fval]=fminunc(fun,x0)
局部最小值。由于梯度的大小小于最优性公差的值,优化完成。
x=1×2-0.6691 0.0000
fval = -0.4052

풀이 과정을 검토하려면fminunc옵션과 출력값을 선택해야 합니다.

반복과정을표시하고“拟牛顿”알고리즘을 사용하도록 옵션을 설정합니다.

选项=最佳选项(@fminunc,“显示”,“国际热核实验堆”,“算法”,“拟牛顿”);

목적 함수는 다음과 같습니다.

F ( x ) = x ( 1. ) E - x 2. 2. + x 2. 2. / 2. 0 .

乐趣=@(x)x(1)*经验(-(x(1)^2+x(2)^2))+(x(1)^2+x(2)^2)/20;

x0=[1,2]에서최소화를시작하고해의품질과풀이과정을검토할수있는출력값을얻습니다。

x0=[1,2];[x,fval,exitflag,output]=fminunc(fun,x0,options)
一阶迭代函数计数f(x)步长最优性0 3 0.256738 0.173 1 6 0.222149 1 0.131 2 9 0.15717 1 0.158 3 18-0.227902 0.438133 0.386 4 21-0.299271 1 0.46 5 30-0.404028 0.102071 0.0458 6 33-0.404868 1 0.0296 7 36-0.405236 1 0.00119 8 8 39-0.405237 1 0.000252 9 42-0.405237 1 7 1 7 1 7 7 7 7-0.97e-07找到局部最小值。由于梯度的大小为les,优化完成s大于最优性公差的值。
x=1×2-0.6691 0.0000
fval = -0.4052
exitflag=1
输出=带字段的结构:firstderopt: 7.9721e-07 algorithm: '拟牛顿' message: '…'
  • 종료 플래그1.은 해가 국소 최적해임을 보여줍니다.

  • 输出구조체는반복횟수와함수실행횟수,그리고기타정보를표시합니다。

  • 반복 횟수와 함수 실행 횟수도 반복 과정에 표시됩니다.

입력 인수

모두 축소

최소화할함수로,함수핸들이나함수이름으로지정됩니다。有趣的은 벡터 또는 배열x를받고실수형스칼라F를반환하는함수입니다。즉,x에서 계산되는 목적 함수입니다.

다음과 같이有趣的을파일에대한함수핸들로지정합니다。

x = fminunc (x0 @myfun)

여기서myfun은 다음과 같은 MATLAB®함수입니다.

函数f = myfun(x)%计算函数在x处的值

다음과 같이有趣的을 익명 함수에 대한 함수 핸들로 지정할 수도 있습니다.

x = fminunc (@ (x)规范(x) ^ 2, x0);

有趣的의 기울기를 계산할 수 있고다음 설정처럼指定对象半径옵션이真正的로 설정된 경우

options=optimoptions('fminunc','SpecifyObjectiveGradient',true)
有趣的은 두 번째 출력 인수에 기울기 벡터g(x)를반환해야합니다。

헤세행렬도계산할수있고选择= optimoptions(“fminunc”、“HessianFcn”,“客观”)를 통해HessianFcn옵션이“目标”로 설정되어 있고算法옵션이“信赖域”으로 설정된 경우,有趣的은 세 번째 출력 인수로 대칭 행렬인 헤세 행렬 값H(x)를반환해야합니다。有趣的은희소헤세행렬을제공할수있습니다。자세한 내용은fminunc의 信任区알고리즘 또는 铁铬镍铁合金의 信赖域反射알고리즘에 대한 헤세 행렬항목을참조하십시오。

信赖域알고리즘에서는사용자가헤세행렬의곱셈함수를제공할수있습니다。이함수는헤세행렬을직접계산하지않고헤세행렬과벡터의곱에대한결과를제공합니다。따라서메모리를절약할수있습니다。헤세 행렬의 곱셈 함수항목을참조하십시오。

예:有趣= @ (x) sin (x (1)) * cos (x (2))

데이터형:烧焦|功能手柄|一串

초기점으로, 실수형 벡터나 실수형 배열로 지정됩니다. 솔버는x0의 요소 개수와x0의 크기를 사용하여有趣的이 받는 변수의 개수와 크기를 확인합니다.

예:x0 =(1、2、3、4)

데이터형:双重的

최적화 옵션으로,最佳选择의 출력값 또는优化集등이반환하는구조체로지정됩니다。

옵션에따라모든알고리즘에적용되는옵션이있고특정알고리즘에만유효한옵션이있습니다。자세한 내용은최적화 옵션 참조항목을참조하십시오。

일부 옵션은最佳选择표시에 나타나지 않습니다. 이러한 옵션은 다음 표에서 기울임꼴로 표시되어 있습니다. 자세한 내용은옵션보기항목을참조하십시오。

모든 알고리즘

算法

fminunc알고리즘을 선택합니다.“拟牛顿”(디폴트 값) 또는“信赖域”을선택할수있습니다。

“信赖域”알고리즘을 사용하는 경우 기울기를 제공해야 하며(有趣的의 설명 참조), 그렇지 않을 경우fminunc“拟牛顿”알고리즘을 사용합니다. 알고리즘을 선택하는 방법에 대한 자세한 내용은알고리즘 선택하기항목을참조하십시오。

检查梯度

사용자제공도함수(목적함수의기울기)를유한차분도함수와비교합니다。错误的(디폴트 값) 또는真正的를 선택할 수 있습니다.

优化集의경우,이이름은DerivativeCheck이고 값은“开”또는“关”입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

诊断学

최소화하거나풀려는함수에대한진단정보를표시합니다。“关”(디폴트 값) 또는“开”을선택할수있습니다。

DiffMaxChange

유한 차분 기울기에 대한 변수의 최대 변화량입니다(양의 스칼라). 디폴트 값은Inf입니다。

DiffMinChange

유한차분기울기에대한변수의최소변화량입니다(양의스칼라)。디폴트값은0입니다。

陈列

표시 수준입니다(반복 과정 표시참조):

  • “关”또는“没有”은 출력값을 표시하지 않습니다.

  • “国际热核实验堆”는 각 반복마다 출력값을 표시하고 디폴트 종료 메시지를 제공합니다.

  • “国际热核实验堆详细说明”는 각 반복마다 출력값을 표시하고 기술적인 종료 메시지를 제공합니다.

  • “通知”는 함수가 수렴하지 않는 경우에만 출력값을 표시하고 디폴트 종료 메시지를 제공합니다.

  • “通知详细信息”는함수가수렴하지않는경우에만출력값을표시하고기술적인종료메시지를제공합니다。

  • “决赛”(디폴트 값)은 최종 출력값만 표시하고 디폴트 종료 메시지를 제공합니다.

  • “最终详细说明”는최종출력값만표시하고기술적인종료메시지를제공합니다。

FiniteDifferenceStepSize

유한 차분에 대한 스칼라 또는 벡터 스텝 크기 인자입니다.FiniteDifferenceStepSize를벡터v로 설정하는 경우 전향 유한 차분δ는 다음과 같습니다.

δ= v *标志的(x) *马克斯(abs (x)、TypicalX);

여기서符号′(x)=符号(x)입니다(단标志' (0)= 1임). 중심 유한 차분은 다음과 같습니다.

delta=v.*max(绝对值x,典型值x);

스칼라FiniteDifferenceStepSize는 벡터로 확장됩니다. 디폴트 값은 전향 유한 차분의 경우sqrt(每股收益)이고 중심 유한 차분의 경우每股收益^(1/3)입니다。

信赖域알고리즘은检查梯度真正的로 설정된 경우에만FiniteDifferenceStepSize를 사용합니다.

优化集의경우,이이름은FinDiffielstep입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

FiniteDifferenceType

기울기를추정하는데사용되는유한차분으로,“前进”(디폴트 값) 또는“中央”(중심화됨)입니다.“中央”은 함수 실행 횟수가 2.배 더 많지만 더 정확합니다. 信任区알고리즘은检查梯度真正的로 설정된 경우에만FiniteDifferenceType을 사용합니다.

优化集의경우,이이름은FinDiffType입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

FunValCheck

목적 함수 값이 유효한지 여부를 확인합니다. 디폴트 설정“关”는검사를수행하지않습니다。“开”설정은 목적 함수가复杂的,Inf또는값을 반환하는 경우에 오류를 표시합니다.

最大函数求值

허용되는최대함수실행횟수로,양의정수입니다。디폴트값은100 * numberOfVariables입니다。허용오차와 중지 기준항목과반복 횟수와 함수 실행 횟수항목을참조하십시오。

优化集의경우,이이름은MaxFunEvals입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

最大迭代次数

허용되는최대반복횟수로,양의정수입니다。디폴트값은400입니다。허용오차와 중지 기준항목과반복 횟수와 함수 실행 횟수항목을참조하십시오。

优化集의경우,이이름은麦克斯特입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

OptimalityTolerance

1.차 최적성에 대한 종료 허용오차입니다(양의 스칼라). 디폴트 값은1e-6입니다。1.차 최적성 측정값항목을참조하십시오。

优化集의경우,이이름은托尔芬입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

输出FCN

각반복마다최적화함수가호출하는하나이상의사용자정의함수를지정합니다。함수핸들또는함수핸들셀형배열을전달합니다。디폴트값은없음([])입니다.输出函数和绘图函数语法항목을참조하십시오。

绘图仪

알고리즘이 실행되는 동안 다양한 진행률 측정값을 플로팅합니다. 미리 정의된 플롯에서 선택하거나 사용자가 직접 작성할 수 있습니다. 내장 플롯 함수 이름, 함수 핸들 또는 내장 플롯 함수 이름이나 함수 핸들로 구성된 셀형 배열을 전달하십시오. 사용자 지정 플롯 함수의 경우, 함수 핸들을 전달하십시오. 디폴트 값은 없음([])입니다.

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

  • '最佳打印功能计数'는 함수 실행 횟수를 플로팅합니다.

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

  • “最佳步长”는 스텝 크기를 플로팅합니다.

  • “optimplotfirstorderopt”는 1.차 최적성 측정값을 플로팅합니다.

사용자 지정 플롯 함수는 출력 함수와 동일한 구문을 사용합니다.优化工具箱的输出函数™항목과输出函数和绘图函数语法항목을참조하십시오。

优化集의경우,이이름은绘图仪입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

指定对象半径

사용자가 정의하는 목적 함수의 기울기입니다.有趣的에기울기를정의하는방법을보려면有趣的에 대한 설명을 참조하십시오.fminunc가목적함수에대한사용자정의기울기를사용하도록하려면真正的로 설정하십시오. 디폴트 값错误的를 사용하면fminunc가 유한 차분을 사용하여 기울기를 추정합니다. 信任区알고리즘을 사용하려면 기울기를 제공하고指定对象半径真正的로 설정해야 합니다. 拟牛顿알고리즘에는 이 옵션이 필요하지 않습니다.

优化集의경우,이이름은格拉多布이고 값은“开”또는“关”입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

阶跃公差

x에 대한 종료 허용오차로, 양의 스칼라입니다. 디폴트 값은1e-6입니다。허용오차와 중지 기준항목을참조하십시오。

优化集의경우,이이름은TolX입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

TypicalX

일반적인x값입니다。TypicalX의요소개수는시작점x0의요소개수와같습니다。디폴트값은一(numberofvariables,1)입니다。fminunc는기울기추정을위해유한차분을스케일링하는데TypicalX를 사용합니다.

信赖域알고리즘은检查梯度옵션에대해서만TypicalX를 사용합니다.

信赖域알고리즘
功能公差

함수 값에 대한 종료 허용오차로, 양의 스칼라입니다. 디폴트 값은1e-6입니다。허용오차와 중지 기준항목을참조하십시오。

优化集의경우,이이름은托尔芬입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

HessianFcn

[](디폴트값)로설정된경우,fminunc는유한차분을사용하여헤세행렬의근삿값을계산합니다。

“目标”로 설정된 경우,fminunc는목적함수에대해사용자정의헤세행렬을사용합니다。헤세행렬은목적함수의세번째출력값입니다(有趣的참조)。

优化集의경우,이이름은HessFcn입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

HessianMultiplyFcn

헤세행렬의곱셈함수로,함수핸들로지정됩니다。특정구조를가진대규모문제의경우,이함수는H를 실제로 구성하지 않고 헤세 행렬 곱H*Y를계산합니다。이함수의형식은다음과같습니다。

W = hmfun (Hinfo, Y)

여기서欣福H*Y를 계산하는 데 사용되는 행렬을 포함합니다.

첫 번째 인수는 목적 함수有趣的이반환하는세번째인수와같습니다。예를들어다음과같습니다。

[f,g,Hinfo]=fun(x)

Y는 문제의 차원과 동일한 개수의 행을 갖는 행렬입니다. 행렬W=H*Y입니다. 단,H가명시적으로구성되지는않습니다。fminunc欣福를사용하여선조건자를계산합니다。嗯哼에필요한추가파라미터의값을제공하는방법에대한자세한내용은추가 파라미터 전달하기항목을참조하십시오。

참고

HessianMultiplyFcn옵션을사용하려면HessianFcn[]로 설정되어야 합니다.

예제는稠密结构Hessian线性等式的极小化항목을참조하십시오。

优化集의경우,이이름은赫斯穆特입니다。현재옵션이름과이전옵션이름항목을참조하십시오。

海斯帕滕

유한 차분에 대한 헤세 행렬의 희소성 패턴입니다. ∂2.有趣的/∂十(一)x(j)≠ 0이 성립하는 경우HessPattern(i,j)=1을 설정합니다. 그렇지 않은 경우HessPattern(i,j)=0을설정합니다。

海斯帕滕有趣的의 헤세 행렬H를계산하는것이번거롭고有趣的의 기울기의번째성분이x(j)에종속된다는사실은(조사를통해)확인할수있는경우에사용합니다。H희소성 구조海斯帕滕의 값으로 제공하는 경우fminunc는 (기울기의) 희소 유한 차분을 통해H의 근삿값을 계산할 수 있습니다. 다시 말해서 0이 아닌 성분의 위치를 제공합니다.

구조를 알 수 없는 경우海斯帕滕을 설정하지 마십시오. 이 경우 기본적으로海斯帕滕이 1.로 구성된 조밀 행렬인 것처럼 동작합니다. 그러면fminunc가 각 반복마다 비희소 유한 차분 근삿값을 계산합니다. 이 계산 과정은 대규모 문제의 경우 시간이 오래 걸릴 수 있으므로 희소성 구조를 확인하는 것이 일반적으로 더 좋습니다.

MaxPCGIter

최대선조건적용켤레기울기(PCG)반복횟수로,양의스칼라입니다。디폴트값은最大值(1,楼层(numberOfVariables/2))입니다. 자세한 내용은신뢰 영역 알고리즘항목을참조하십시오。

PrecondBandWidth

PCG에대한선조건자의상부대역폭으로,음이아닌정수입니다。기본적으로,fminunc는 대각 선조건 지정을 사용합니다(상부 대역폭: 0). 일부 문제에서는 대역폭을 늘리면 PCG반복 횟수가 줄어듭니다.PrecondBandWidthInf로 설정하면 켤레 기울기(CG)가 아닌 직접 분해(촐레스키)가 사용됩니다. 직접 분해는 CG보다 계산량이 더 많지만 해에 다가가는 데 있어 더 나은 품질의 스텝을 생성합니다.

子问题算法

반복 스텝이 계산되는 방식을 결정합니다. 디폴트 값“cg”“因式分解”보다 더 빠르지만 정확도가 떨어지는 스텝을 실행합니다.fminunc의信赖域알고리즘항목을참조하십시오。

托尔普克

PCG반복에 대한 종료 허용오차로, 양의 스칼라입니다. 디폴트 값은0.1입니다。

拟牛顿法알고리즘
海桑

拟牛顿알고리즘에서 탐색 방향을 선택하는 방법입니다. 선택 가능한 설정은 다음과 같습니다.

客观限度

허용오차(중지 기준)로, 스칼라입니다. 반복에서 계산된 목적 함수 값이客观限度보다작거나같으면반복이중단됩니다。문제가비유계이기때문일수있습니다。디폴트값은-1e20입니다。

使用并行

真正的인경우fminunc는기울기를병렬로추정합니다。디폴트값错误的로 설정하면 비활성화됩니다.信赖域에서는 목적 함수에 기울기를 제공해야 하므로,使用并行이적용되지않습니다。병렬 연산항목을참조하십시오。

예:options=optimoptions('fminunc','SpecifyObjectiveGradient',true)

문제 구조체로, 다음 필드를 가진 구조체로 지정됩니다.

필드이름 항목

客观的

목적 함수

x0

x의초기점

解算器

“fminunc”

选择权

最佳选择로생성되는옵션

데이터형:结构

출력인수

모두 축소

해로, 실수형 벡터나 실수형 배열로 반환됩니다.x의 크기는x0의크기와같습니다。일반적으로x出口滞后가 양수인 경우 문제에 대한 국소해입니다. 해의 품질에 대한 자세한 내용은当解算器成功时항목을참조하십시오。

해에서 계산된 목적 함수 값으로, 실수로 반환됩니다. 일반적으로未来值=有趣的(x)입니다。

fminunc가 중지된 이유로, 정수로 반환됩니다.

1.

기울기 크기가OptimalityTolerance허용오차보다 작습니다.

2.

x의 변화량이阶跃公差허용오차보다 작습니다.

3.

목적함수값의변화량이功能公差허용오차보다 작습니다.

5.

목적함수의예측된감소량이功能公差허용오차보다 작습니다.

0

반복 횟수가最大迭代次数를 초과하거나, 함수 실행 횟수가最大函数求值를 초과했습니다.

-1

출력 함수에 의해 알고리즘이 종료되었습니다.

-3

현재 반복에서 목적 함수가客观限度아래로 떨어졌습니다.

최적화 과정에 대한 정보로, 다음 필드를 가진 구조체로 반환됩니다.

迭代

수행된 반복 횟수

功能计数

함수실행횟수

第一顺序选择

1.차 최적성에 대한 측정값

算法

사용된 최적화 알고리즘

cgiterations

총 PCG반복 횟수(“信赖域”알고리즘만해당)

lssteplength

탐색 방향을 기준으로 한 직선 탐색 스텝의 크기(“拟牛顿”알고리즘만해당)

stepsize

x의 최종 변위

消息

종료 메시지

해에서의 기울기로, 실수 벡터로 반환됩니다.毕业生는 점x (:)에서有趣的의 기울기를 제공합니다.

근사 헤세 행렬로, 실수 행렬로 반환됩니다.黑森의의미는헤세행렬출력값항목을참조하십시오。

알고리즘

모두 축소

拟牛顿알고리즘

拟牛顿法알고리즘은3차직선탐색절차와함께bfg준뉴턴(拟牛顿)방법을사용합니다。이준뉴턴방법은헤세행렬의근삿값을업데이트하는데bfg ([1],[5],[8],[9])식을사용합니다。海桑옵션을“dfp”로(그리고算法옵션을“拟牛顿”으로) 설정하여 DFP([4],[6],[7])식을선택할수있습니다。이식은역헤세행렬의근삿값을계산합니다。海桑“陡坡”로(그리고算法“拟牛顿”으로) 설정하여 최속강하법을 선택할 수 있습니다. 하지만 이 설정은 일반적으로 비효율적입니다.fminunc의 拟牛顿알고리즘항목을참조하십시오。

신뢰 영역 알고리즘

信赖域알고리즘을 사용하는 경우有趣的에 기울기를 제공하고最佳选择를 사용하여指定对象半径真正的로 설정해야 합니다. 이 알고리즘은 부분공간 信任区방법이며 内部反光뉴턴 방법([2][3]에 설명되어 있음)을 기반으로 합니다. 각 반복에는 선조건 적용 켤레 기울기(PCG)방법을 사용한 대규모 선형 시스템의 근사해 풀이 작업이 포함됩니다.fminunc의信赖域알고리즘,비선형 최소화를 위한 信任区방법,선조건적용켤레기울기법(预处理共轭梯度法)항목을참조하십시오。

대체 기능

최적화라이브편집기작업은fminunc에대한시각적인터페이스를제공합니다。

참고문헌

[1] Broyden,C.G.“一类双秩极小化算法的收敛性”,《应用数学研究所杂志》,1970年第6卷,第76-90页。

[2] Coleman,T.F.和Y.Li.“受边界约束的非线性最小化的内部信赖域方法”,《暹罗优化杂志》,第6卷,1996年,第418-445页。

[3] Coleman, t.f.和Y. Li。关于有界大规模非线性极小化的反射牛顿方法的收敛性《数学规划》,第67卷第2期,1994年,第189-224页。

[4] Davidon, W. C. <最小化的可变度量法>A.E.C.研究与发展报告,ANL-5990, 1959。

[5] 变尺度算法的新方法〉,《计算机杂志》,第13卷,1970年,第317-322页。

[6] 优化的实用方法〉,第一卷,无约束优化,约翰·威利和儿子,1980年。

R.弗莱彻和M. J. D.鲍威尔。“一种快速收敛的下降法最小化。”计算机学报,第6卷,1963年,163-168页。

[8] 通过变分方法导出的一系列可变度量更新〉《计算数学》,1970年第24卷,第23-26页。

[9] 函数最小化的拟牛顿方法的条件化〉,《计算数学》,第24卷,1970年,第647-656页。

확장 기능

R2006a이전에개발됨