主要内容

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

quadprog

2차계획법

설명

선형제약조건이있는2차목적함수를위한솔버입니다。

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

最小值 x 1 2 x T H x + f T x 这样 一个 x b 一个 e x b e l b x u b

H, A, Aeq는행렬이고,f, b, beq, lb, ub, x는벡터입니다。

F, lb및ub를벡터나행렬로전달할수있습니다。행렬marketing수항목을참조하십시오。

참고

quadprog솔버는솔버기반접근법에만적용됩니다。두가지최적화접근법에대한설명은먼저문제기반접근법또는솔버기반접근법중선택하기항목을참조하십시오。

x= quadprog (Hf1/2*x'*H*x + f'*x를최소화하는벡터x를반환합니다。문제가유한최솟값을가지려면입력값H가양의정부호여야합니다。H가양의정부호경우해x = H\(-f)입니다。

예제

x= quadprog (Hf一个b1/2*x'*H*x + f'*x를최소화하며,여기에는제한사항* xb가적용됩니다。입력marketing수一个는双형으로구성된행렬이고,b는双형으로구성된벡터입니다。

예제

x= quadprog (Hf一个bAeq说真的는위의문제를풀되,여기에는제한사항Aeq*x = beq가추가로적용됩니다。Aeq는双형으로구성된행렬이고,说真的는双형으로구성된벡터입니다。부등식이존재하지않는경우A = []B = []을설정하십시오。

예제

x= quadprog (Hf一个bAeq说真的乌兰巴托는위의문제를풀되,여기에는제한사항x乌兰巴托가추가로적용됩니다。입력값乌兰巴托는加倍형으로구성된벡터이고,제한사항은각x성분에대해성립됩니다。등식이존재하지않는경우Aeq = []Beq = []을설정하십시오。

참고

문제의지정된입력값범위에모순이있는경우출력값xx0이되고출력값fval[]이됩니다。

quadprog는 범위x乌兰巴托를위반하는x0의성분을그범위로정의된상자의내부로재설정합니다。quadprog는범위를충족하는성분은변경하지않습니다。

x= quadprog (Hf一个bAeq说真的乌兰巴托x0은 벡터x0에서시작하여위의문제를풉니다。범위가존재하지않는경우Lb = []Ub = []로설정하십시오。일부quadprog알고리즘에서는x0을무시합니다。x0을참조하십시오。

참고

x0“激活集”알고리즘의필수수입니다。

예제

x= quadprog (Hf一个bAeq说真的乌兰巴托x0选项选项에지정된최적화옵션을사용하여위의문제를풉니다。optimoptions를사용하여选项를만들수있습니다。초기점을제공하지않으려면X0 = []을설정하십시오。

예제

x= quadprog (问题问题에설명되어있는구조체问题의최솟값을반환합니다。점@ @기법또는结构体함수를사용하여问题구조체를만듭니다。또는prob2struct를사용하여OptimizationProblem객체에서问题구조체를만듭니다。

예제

xfval= quadprog(___는임의의입력변수에대해x에서의목적함수값fval도반환합니다。

fval = 0.5*x'*H*x + f'*x

예제

xfvalexitflag输出= quadprog(___quadprog의종료상황을설명하는정수exitflag와최적화에대한정보가포함된구조체输出도반환합니다。

예제

xfvalexitflag输出λ= quadprog(___는해x에서의라그랑주승수가필드에포함된구조체λ도반환합니다。

예제

wsoutfvalexitflag输出λ= quadprog(Hf一个bAeq说真的乌兰巴托ws는温暖启动객체ws의옵션을사용하여ws의데이터에서quadprog를시작합니다。반환된수wsout는해에해당하는점을wsout。X에포함합니다。이후솔버호출에서wsout를초기温暖启动객체로사용하여quadprog이더빠르게동작할수있습니다。

예제

모두 축소

다음함수의최솟값을구합니다。

f x 1 2 x 1 2 + x 2 2 - x 1 x 2 - 2 x 1 - 6 x 2

여기에는다음제약조건이적용됩니다。

x 1 + x 2 2 - x 1 + 2 x 2 2 2 x 1 + x 2 3.

quadprog구문에서이문제는다음함수를최소화하는것입니다。

f x 1 2 x T H x + f T x

여기서

H 1 - 1 - 1 2 f - 2 - 6

위의선형제약조건이그대로적용됩니다。

이문제를풀려면먼저계수행렬을입력하십시오。

H = [1 -1;1 2];F = [-2;6);A = [1 1;1 - 2;2 1];B = [2;2;3);

quadprog를호출합니다。

[x, fval exitflag、输出λ)=...quadprog (H f A、b);
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。

최종점,함수값,종료플래그를검토합니다。

x fval exitflag
x =2×10.6667 - 1.3333
Fval = -8.2222
Exitflag = 1

종료플래그가1이면결과가국소최솟값임을의미합니다。H가양의정부호행렬이기때문에이문제는볼록문제이며따라서최솟값은전역최솟값입니다。

고유값을검사하여H가양의정부호임을확합니다。

eig (H)
ans =2×10.3820 - 2.6180

다음함수의최솟값을구합니다。

f x 1 2 x 1 2 + x 2 2 - x 1 x 2 - 2 x 1 - 6 x 2

여기에는다음제약조건이적용됩니다。

x 1 + x 2 0

quadprog구문에서이문제는다음함수를최소화하는것입니다。

f x 1 2 x T H x + f T x

여기서

H 1 - 1 - 1 2 f - 2 - 6

위의선형제약조건이그대로적용됩니다。

이문제를풀려면먼저계수행렬을입력하십시오。

H = [1 -1;1 2];F = [-2;6);Aeq = [1 1];Beq = 0;

입력marketing수一个b에 대해[]을입력하여quadprog를호출합니다。

[x, fval exitflag、输出λ)=...quadprog (H f [] [], Aeq, beq);
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。

최종점,함수값,종료플래그를검토합니다。

x fval exitflag
x =2×1-0.8000 - 0.8000
Fval = -1.6000
Exitflag = 1

종료플래그가1이면결과가국소최솟값임을의미합니다。H가양의정부호행렬이기때문에이문제는볼록문제이며따라서최솟값은전역최솟값입니다。

고유값을검사하여H가양의정부호임을확합니다。

eig (H)
ans =2×10.3820 - 2.6180

다음2차현식을최소화하는x를구합니다。

1 2 x T H x + f T x

여기서

H 1 - 1 1 - 1 2 - 2 1 - 2 4 f 2 - 3. 1

여기에는다음제약조건이적용됩니다。

0 x 1 x 1 / 2

이문제를풀려면먼저계수를입력하십시오。

H = [1,-1,1 -1,2,-2 1,-2,4];F = [2;-3;1];Lb = 0 (3,1);Ub =个位(大小(lb));Aeq = ones(1,3);Beq = 1/2;

입력marketing수一个b에 대해[]을입력하여quadprog를호출합니다。

x = quadprog(H,f,[],[],Aeq,beq,lb,ub)
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
x =3×10.0000 0.5000 0.0000

quadprog의진행률을모니터링하는옵션을설정합니다。

选项= optimoptions(“quadprog”“显示”“通路”);

2차목적함수와선형부등식제약조건을갖는문제를정의합니다。

H = [1 -1;1 2];F = [-2;6);A = [1 1;1 - 2;2 1];B = [2;2;3);

quadprog함수호출작성에도움이되도록불필한입력값을[]로설정합니다。

Aeq = [];Beq = [];Lb = [];Ub = [];X0 = [];

quadprog을호출하여문제를풉니다。

x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
Iter Fval primary Infeas Dual Infeas Complementarity 0 -8.884885e+00 3.214286e+00 1.071429e-01 1.000000e+00 8.331868e+00 1.321041e-01 4.403472e-03 1.910489e-01 2 -8.212804e+00 1.676295e-03 5.587652e-05 1.009601e-02 3 -8.222204e+00 8.381476e-07 2.793826e-08 1.809485e-05 4 -8.222222e+00 3.019807e-14 1.352696e-12 7.525735e-13发现满足约束的最小值。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
x =2×10.6667 - 1.3333

문제기반최적화워크플로의절차에따라问题구조체를만듭니다。선형제약조건이있는2차계획법과동일한최적화문제를만듭니다。

X = optimvar(“x”2);objec = x (1) ^ 2/2 + x (2) ^ 2 - x (1) * (2) - 2 * x (1) - 6 * x (2);问题=优化问题(“目标”, objec);prob.Constraints。con1 = sum(x) <= 2;prob.Constraints。con2 = -x(1) + 2*x(2) <= 2;prob.Constraints。con3 = 2*x(1) + x(2) <= 3;

概率问题구조체로변환합니다。

Problem = prob2struct(probb);

quadprog를사용하여문제를풉니다。

[x,fval] = quadprog(问题)
警告:你的黑纱不是对称的。重置H = (H + H) / 2。
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
x =2×10.6667 - 1.3333
Fval = -8.2222

2차계획법을풀고해와목적함수값을모두반환합니다。

H = [1,-1,1 -1,2,-2 1,-2,4];F = [-7;-12;-15];A = [1,1,1];B = 3;[x,fval] = quadprog(H,f,A,b)
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
x =3×1-3.5714 2.9286 3.6429
Fval = -47.1786

반환되는목적함수값이quadprog목적함수정의에서계산된값과일치하는지확합니다。

fval2 = 1/2*x'*H*x + f'*x
Fval2 = -47.1786

quadprog에대한최적화과정이확인될수있도록반복과정을표시하고4개의출력값을반환하도록옵션을설정합니다。다음을최소화하는문제입니다。

1 2 x T H x + f T x

여기에는다음조건이적용됩니다。

0 x 1

여기서

H 2 1 - 1 1 3. 1 2 - 1 1 2 5 f 4 - 7 12

문제계수를입력합니다。

H = [2 1 -1 1 3 1/2 -1 /2 5];F = [4;-7;12];Lb = 0 (3,1);Ub = ones(3,1);

솔버의반복과정을@ @시하는옵션을설정합니다。

选项= optimoptions(“quadprog”“显示”“通路”);

4개의출력값을사용하여quadprog를호출합니다。

[x fval exitflag,输出]= quadprog (H, f ,[],[],[],[], 磅,乌兰巴托,[]选项)
Iter Fval primary Infeas Dual Infeas Complementarity 0 2.691769e+01 1.582123e+00 1.712849e+01 1.680447e+00 1 -3.889430e+00 0.000000e+00 8.564246e-03 9.971731e-01 2 -5.451769e+00 0.000000e+00 4.282123e-06 2.710131e-02 3 -5.499997e+00 0.000000e+00 1.221938e-10 6.939689e-07 4 -5.500000e+00 0.000000e+00 5.842173e-14 3.469847e-10发现满足约束的最小值。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
x =3×10.0000 1.0000 0.0000
Fval = -5.5000
Exitflag = 1
输出=带字段的结构:消息:“……算法:'内点-凸' firstorderopt: 1.5921e-09 constrviolation: 0迭代:4线性求解器:'密集' cgiterations: []

2차계획법문제를풀고라그랑주승수를반환합니다。

H = [1,-1,1 -1,2,-2 1,-2,4];F = [-7;-12;-15];A = [1,1,1];B = 3;Lb = 0 (3,1);[x, fval exitflag、输出λ)= quadprog (H f A、b[],[],磅);
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。

라그랑주승수구조체λ를검토합니다。

disp(λ)
Ineqlin: 12.0000 eqlin: [0x1 double] lower: [3x1 double] upper: [3x1 double]

선형부등식제약조건에는연결된라그랑주승수12가있습니다。

하한과연결된승수를@ @시합니다。

disp (lambda.lower)
5.0000 0.0000 0.0000

lambda.lower의첫번째성분에만0이아닌승수가있습니다。이는일반적으로x의첫번째성분만하한tmp 0에있다는의미입니다。x의성분을시하여확합니다。

disp (x)
0.0000 1.5000 1.5000

이후quadprog호출속도를높이기위해温暖启动객체를만듭니다。

选项= optimoptions(“quadprog”“算法”“激活集”);X0 = [1 2 3];Ws = optimwarmstart(x0,options);

ws를사용하여2차계획법을풉니다。

H = [1,-1,1 -1,2,-2 1,-2,4];F = [-7;-12;-15];A = [1,1,1];B = 3;Lb = 0 (3,1);抽搐(ws、fval exitflag、输出λ)= quadprog (H f A、b[],[],磅,[],ws);toc
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。运行时间为0.021717秒。

목적함수를변경하고문제를다시풉니다。

F = [-10;-15;-20];抽搐(ws、fval exitflag、输出λ)= quadprog (H f A、b[],[],磅,[],ws);toc
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。运行时间为0.018485秒。

입력marketing수

모두 축소

2차목적함수항으로,대칭실수행렬로지정됩니다。H는通讯录현식1/2*x'*H*x + f'*x에서2차목적함수항을나타냅니다。H가대칭행렬이아닌경우quadprog는경고를발생시키고대칭화된식(h + h ')/2를대신사용합니다。

2차행렬H가희소행렬경우에는기본적으로“interior-point-convex”알고리즘은H가조밀행렬일때와는약간다른알고리즘을사용합니다。일반적으로,희소알고리즘은대규모희소문제에서더빠르고조밀알고리즘은조밀문제나소규모문제에서더빠릅니다。자세한내용은LinearSolver옵션설명과Quadprog의内点凸알고리즘항목을참조하십시오。

예:(2, 1, 1, 3)

데이터형:

선형목적함수항으로,실수형벡터로지정됩니다。f는通讯录현식1/2*x'*H*x + f'*x에서선형항을나타냅니다。

예:(1; 3; 2)

데이터형:

선형부등식제약조건으로,실수행렬로지정됩니다。一个×N행렬입니다。여기서은부등식개수이고N은변수개수(x0의소개수)입니다。대규모문제의경우,一个를희소행렬로전달하십시오。

一个는다음과같이개의선형부등식을코딩합니다。

A*x <= b

여기서xN개의 변수x (:)으로구성된열벡터이고,b개의소를갖는열벡터입니다。

예를들어,다음부등식을살펴보겠습니다。

x1+ 2倍2≤10
3 x1+ 4 x2≤20
5倍1+ 6 x2≤30日

다음제약조건을입력하여부등식을지정합니다。

A = [1,2;3,4;5,6];B = [10;20;30];

예:X성분의합이1이하가되도록지정하려면A = ones(1,N)B = 1을사용하십시오。

데이터형:

선형부등식제약조건으로,실수벡터로지정됩니다。b一个행렬과관련된,소를개가진벡터입니다。b를행벡터로전달하면솔버는내부적으로b를 열 벡터b (:)으로변환합니다。대규모문제의경우,b를희소벡터로전달하십시오。

b는다음과같이개의선형부등식을코딩합니다。

A*x <= b

여기서xN개의 변수x (:)으로구성된열벡터이고,一个는 크기가×N행렬입니다。

예를들어,다음부등식을살펴보겠습니다。

x1+ 2倍2≤10
3 x1+ 4 x2≤20
5倍1+ 6 x2≤30。

다음제약조건을입력하여부등식을지정합니다。

A = [1,2;3,4;5,6];B = [10;20;30];

예:X성분의합이1이하가되도록지정하려면A = ones(1,N)B = 1을사용하십시오。

데이터형:

선형등식제약조건으로,실수행렬로지정됩니다。Aeq×N행렬입니다。여기서는부등식개수이고N은변수개수(x0의소개수)입니다。대규모문제의경우,Aeq를희소행렬로전달하십시오。

Aeq는다음과같이개의선형등식을코딩합니다。

Aeq*x = beq

여기서xN개의 변수x (:)으로구성된열벡터이고,说真的개의소를갖는열벡터입니다。

예를들어,다음부등식을살펴보겠습니다。

x1+ 2倍2+ 3 x3.= 10
2 x1+ 4 x2+ x3.= 20,

다음제약조건을입력하여부등식을지정합니다。

Aeq = [1,2,3;2,4,1];Beq = [10;20];

예:X성분의합이1이되도록지정하려면Aeq = ones(1,N)Beq = 1을사용하십시오。

데이터형:

선형등식제약조건으로,실수벡터로지정됩니다。说真的Aeq행렬과관련된,소를개가진벡터입니다。说真的를행벡터로전달하면솔버는내부적으로说真的를 열 벡터说真的(:)으로변환합니다。대규모문제의경우,说真的를희소벡터로전달하십시오。

说真的는다음과같이개의선형등식을코딩합니다。

Aeq*x = beq

여기서xN개의 변수x (:)으로구성된열벡터이고,Aeq는 크기가×N행렬입니다。

예를들어,다음등식을살펴보겠습니다。

x1+ 2倍2+ 3 x3.= 10
2 x1+ 4 x2+ x3.= 20。

다음제약조건을입력하여등식을지정합니다。

Aeq = [1,2,3;2,4,1];Beq = [10;20];

예:X성분의합이1이되도록지정하려면Aeq = ones(1,N)Beq = 1을사용하십시오。

데이터형:

하한으로,실수형벡터나실수형배열로지정됩니다。x0의소개수가의소개수와같은경우는다음을지정합니다。

모든에 대해X (i) >= lb(i)

数值(lb) <数值(x0)이면는다음을지정합니다。

1 <= I <= number (lb)에 대해

X (i) >= lb(i)

의소개수가x0의소개수보다적으면솔버가경고를발생시킵니다。

예:모든x성분이양수가되도록지정하려면Lb = 0 (size(x0))을사용하십시오。

데이터형:

상한으로,실수형벡터나실수형배열로지정됩니다。x0의소개수가乌兰巴托의소개수와같은경우乌兰巴托는다음을지정합니다。

모든에 대해X (i) <= ub(i)

Numel (ub) < Numel (x0)이면乌兰巴托는다음을지정합니다。

1 <= I <= numel(ub)에 대해

X (i) <= ub(i)

乌兰巴托의소개수가x0의소개수보다적으면솔버가경고를발생시킵니다。

예:모든x성분이1보다작도록지정하려면Ub = ones(size(x0))을사용하십시오。

데이터형:

초기점으로,실수형벡터로지정됩니다。x0의 길이는H의행개수또는열개수입니다。

문제에범위제약조건만있는경우x0“trust-region-reflective”알고리즘에적용됩니다。x0“激活集”알고리즘에도적용됩니다。

참고

x0“激活集”알고리즘의필수수입니다。

x0을지정하지않을경우,quadprogx0의모든성분을범위로정의된상자내부에있는점으로설정합니다。quadprog“interior-point-convex”알고리즘과등식제약조건을사용하는“trust-region-reflective”알고리즘에서x0을무시합니다。

예:(1, 2, 1)

데이터형:

최적화옵션으로,optimoptions의출력값또는optimset등이반환하는구조체로지정됩니다。

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

모든알고리즘

算法

다음과같은알고리즘을선택합니다。

  • “interior-point-convex”(디폴트값)

  • “trust-region-reflective”

  • “激活集”

“interior-point-convex”알고리즘은볼록문제만처리합니다。“trust-region-reflective”알고리즘은범위와선형등식제약조건중하나만있는문제를처리합니다。“激活集”알고리즘은Aeq의공간에H를경우부정문제를처리합니다。자세한내용은알고리즘선택하기항목을참조하십시오。

诊断

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

显示

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

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

  • “最后一次”은최종출력값만` ` ` ` `시합니다(디폴트값)。

“interior-point-convex”알고리즘및“激活集”알고리즘은다음과같은추가값을허용합니다。

  • “通路”은반복과정을@ @시합니다。

  • “iter-detailed”는상세종료메시지와함께반복과정을@ @시합니다。

  • 最后详细的는상세종료메시지와함께최종출력값만@ @시합니다。

MaxIterations

허용되는최대반복횟수로,양의정수입니다。

  • “trust-region-reflective”등식제약조건이있는문제의경우,디폴트값은2*(numberOfVariables - numberofetraits)입니다。

  • “激活集”의디폴트값은10*(numberOfVariables + numberOfConstraints)입니다。

  • 기타모든알고리즘과문제의경우,디폴트값은200입니다。

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

OptimalityTolerance

1차최적성에대한종료허용오차로,양의스칼라입니다。

  • “trust-region-reflective”등식제약조건이있는문제의경우,디폴트값은1 e-6입니다。

  • “trust-region-reflective”범위제약조건이있는문제의경우,디폴트값은100 *每股收益,약2.2204 e-14입니다。

  • “interior-point-convex”알고리즘및“激活集”알고리즘의경우,디폴트값은1 e-8입니다。

허용오차와중지기준항목을참조하십시오。

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

StepTolerance

x에대한종료허용오차로,양의스칼라입니다。

  • “trust-region-reflective”의경우,디폴트값은100 *每股收益,약2.2204 e-14입니다。

  • “interior-point-convex”의경우,디폴트값은1 e-12입니다。

  • “激活集”의경우,디폴트값은1 e-8입니다。

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

“trust-region-reflective”알고리즘만해당

FunctionTolerance

함수값에대한종료허용오차로,양의스칼라입니다。디폴트값은문제유형에따라달라집니다。범위제약조건이있는문제는100 *每股收益를사용하고,선형등식제약조건이있는문제는1 e-6을사용합니다。허용오차와중지기준항목을참조하십시오。

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

HessianMultiplyFcn

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

W = hmfun(Hinfo,Y)

여기서Hinfo(그리고추가될수있는일부파라미터)는H * Y를계산하는데사용되는행렬을포함합니다。

이옵션을사용하는예제는二次最小化与密集,结构化黑森항목을참조하십시오。

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

MaxPCGIter

최대pcg(선조건적용켤레기울기)반복횟수로,양의스칼라입니다。디폴트값은범위제약조건이있는문제의경우马克斯(1楼(numberOfVariables / 2))입니다。등식제약조건이있는문제의경우,quadprogMaxPCGIter을무시하고MaxIterations를사용하여PCG반복횟수를제한합니다。자세한내용은선조건적용켤레기울기법(预条件共轭梯度法)항목을참조하십시오。

PrecondBandWidth

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

SubproblemAlgorithm

반복스텝이계산되는방식을결정합니다。디폴트 값“重心”“分解”보다더빠르지만정확도가떨어지는스텝을실행합니다。Quadprog의trust-region-reflective알고리즘항목을참조하십시오。

TolPCG

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

TypicalX

일반적iotx값입니다。TypicalX의소개수는시작점x0의소개수와같습니다。디폴트값은的(numberOfVariables, 1)입니다。quadprog는스케일링에내부적으로TypicalX를사용합니다。TypicalXx에비유계성분이있고비유계성분의TypicalX값이1보다큰경우에만유효합니다。

“interior-point-convex”알고리즘만해당

ConstraintTolerance

제약조건위반에대한허용오차로,양의스칼라입니다。디폴트값은1 e-8입니다。

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

LinearSolver

알고리즘의내부선형솔버유형입니다。

  • “汽车”(디폴트값)-H행렬이희소행렬이면“稀疏”를사용하고,그렇지않으면“密集”를사용합니다。

  • “稀疏”-희소선형대수를사용합니다。희소 행렬항목을참조하십시오。

  • “密集”-조밀한선형대수를사용합니다。

“激活集”알고리즘만해당

ConstraintTolerance

제약조건위반에대한허용오차로,양의스칼라입니다。디폴트값은1 e-8입니다。

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

ObjectiveLimit

허용오차(중지기준)로,스칼라입니다。목적함수값이ObjectiveLimit아래로떨어지고현재점이실현가능하면반복이중단됩니다。문제가비유계이기때문일수있습니다。디폴트값은1 e20입니다。

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

H

1/2 * x ' * H * x의대칭행렬

f

일차항f ' * x의 벡터

Aineq

선형부등식제약조건Aineq * xbineq에포함되는행렬

bineq

선형부등식제약조건Aineq * xbineq에포함되는벡터

Aeq

선형등식제약조건Aeq*x = beq에포함되는행렬

说真的

선형등식제약조건Aeq*x = beq에포함되는벡터
하한으로구성된벡터
乌兰巴托 상한으로구성된벡터

x0

x의 초기점

解算器

“quadprog”

选项

optimoptions또는optimset을사용하여생성되는옵션

필수필드는Hf解算器选项입니다。해를구할때quadprog는위목록에@ @시되지않은모든필드를问题에서무시합니다。

참고

웜스타트는问题수와함께사용할수없습니다。

데이터형:结构体

温暖开始객체로,optimwarmstart를사용하여생성되는객체로지정됩니다。热启动객체는시작점과옵션,그리고코드생성시메모리크기에대한선택적데이터를포함합니다。热启动最佳实践항목을참조하십시오。

예:Ws = optimwarmstart(x0,options)

출력marketing수

모두 축소

해로,실수형벡터로반환됩니다。x는모든범위와선형제약조건이적용된1/2*x'*H*x + f'*x를최소화하는벡터입니다。x는비볼록문제의경우국소최솟값일수있습니다。볼록문제의경우,x는전역최솟값입니다。자세한내용은국소최적해와전역최적해항목을참조하십시오。

해温暖开始객체로,QuadprogWarmStart객체로반환됩니다。해에해당하는점은wsout。X입니다。

이후quadprog호출에서wsout를입력温暖启动객체로사용할수있습니다。

해에서계산된목적함수값으로,실수형스칼라로반환됩니다。fval은해x에서1/2*x'*H*x + f'*x를계산한값입니다。

quadprog가중지된이유로,아래@에설명되어있는정수로반환됩니다。

모든알고리즘

1

함수가 해x로수렴되었습니다。

0

반복횟수가选项。麦克斯特ations를초과했습니다。

-2

문제가실현가능하지않습니다。또는“interior-point-convex”의경우스텝크기가选项。StepTolerance보다작지만,제약조건이충족되지않았습니다。

3

문제가비유계입니다。

“interior-point-convex”알고리즘

2

스텝크기가选项。StepTolerance보다작고제약조건이충족되었습니다。

6

비볼록문제가감지되었습니다。

8

스텝방향을계산할수없습니다。

“trust-region-reflective”알고리즘

4

국소최솟값을찾았거나,최솟값이고유하지않습니다。

3.

목적함수값의변화량이选项。FunctionTolerance보다작습니다。

4

현재탐색방향이하강방향이아닙니다。더이상진행할수없습니다。

“激活集”알고리즘

6

비볼록문제가감지되었습니다。Aeq의공간에H를한결과가양의준정부호가아닙니다。

참고

실제로문제가비유계경우“激活集”알고리즘은종료플래그0을발생시키고중단되기도합니다。반복한도를더높이설정해도종료플래그0을발생시킵니다。

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

迭代

수행된반복횟수

算法

사용된최적화알고리즘

cgiterations

총PCG반복횟수(“trust-region-reflective”알고리즘만해당)

constrviolation

제약조건함수의최댓값

firstorderopt

1차최적성에대한측정값

linearsolver

내부선형솔버의유형으로,“密集”또는“稀疏”“interior-point-convex”알고리즘만해당)

消息

종료메시지

해에서의라그랑주승수로,다음필드를가진구조체로반환됩니다。

较低的

하한

상한乌兰巴托

ineqlin

선형부등식

eqlin

선형 등식

자세한내용은라그랑주승수구조체항목을참조하십시오。

알고리즘

모두 축소

“interior-point-convex”

“interior-point-convex”알고리즘은엄밀하게제약조건내에있는경로를따르려고시도합니다。이알고리즘은중복된항목을제거하려는경우와간단한성분을구하여문제를단순화하려는경우에풀이전처리모듈을사용합니다。

이알고리즘은희소헤세행렬H와조밀행렬에대해각각다르게구현됩니다。일반적으로,희소구현(稀疏实现)은대규모희소문제에서더빠르고조밀구현(密集实现)은조밀문제나소규모문제에서더빠릅니다。자세한내용은Quadprog의内点凸알고리즘항목을참조하십시오。

“trust-region-reflective”

“trust-region-reflective”알고리즘은室内反射뉴턴방법([1]에설명되어있음)을기반으로하는부분공간trust-region방법입니다。각반복에는선조건적용켤레기울기(PCG)방법을사용한대규모선형시스템의근사해풀이작업이포함됩니다。자세한내용은Quadprog의trust-region-reflective알고리즘항목을참조하십시오。

“激活集”

“激活集”알고리즘은[2]에서설명한것과유사한법입니다。이알고리즘은대규모알고리즘이아닙니다。대규모알고리즘과중간규모알고리즘비교항목을참조하십시오。자세한내용은Quadprog의active-set알고리즘항목을참조하십시오。

웜 스타트

暖启动객체는이전에푼문제의활성제약조건목록을유지합니다。솔버는현재문제를풀기위해가능한한많은활성제약조건정보를전달합니다。이전문제가현재문제와너무다른경우,활성세트정보가재사용되지않습니다。이경우,솔버는활성제약조건의목록을재빌드하기위해콜드스타트를효과적으로실행합니다。

대체 기능

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

참고 문헌

[1]科尔曼,t.f.和李阳。二次函数服从某些变量上界的一个反射牛顿方法SIAM优化期刊。第6卷第4期,1996年,第1040-1058页。

[2]吉尔,p.e., W.默里和M. H.赖特。实际的优化。伦敦:学术出版社,1981。

[3]古尔德,N.和P. L.托因特。二次规划的预处理数学规划。B辑,Vol. 100, 2004, pp. 95-132。

확장 기능

버전 내역

R2006a이전에개발됨