이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。
quadprog
2차계획법
구문
설명
선형제약조건이있는2차목적함수를위한솔버입니다。
Quadprog는다음으로지정된문제의최솟값을구합니다。
H, A, Aeq는행렬이고,f, b, beq, lb, ub, x는벡터입니다。
F, lb및ub를벡터나행렬로전달할수있습니다。행렬marketing수항목을참조하십시오。
참고
quadprog
솔버는솔버기반접근법에만적용됩니다。두가지최적화접근법에대한설명은먼저문제기반접근법또는솔버기반접근법중선택하기항목을참조하십시오。
은x
= quadprog (问题
)问题
에설명되어있는구조체问题
의최솟값을반환합니다。점@ @기법또는结构体
함수를사용하여问题
구조체를만듭니다。또는prob2struct
를사용하여OptimizationProblem
객체에서问题
구조체를만듭니다。
예제
선형제약조건이있는2차계획법
다음함수의최솟값을구합니다。
여기에는다음제약조건이적용됩니다。
quadprog
구문에서이문제는다음함수를최소화하는것입니다。
,
여기서
위의선형제약조건이그대로적용됩니다。
이문제를풀려면먼저계수행렬을입력하십시오。
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
선형등식제약조건이있는2차계획법
다음함수의최솟값을구합니다。
여기에는다음제약조건이적용됩니다。
quadprog
구문에서이문제는다음함수를최소화하는것입니다。
,
여기서
위의선형제약조건이그대로적용됩니다。
이문제를풀려면먼저계수행렬을입력하십시오。
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차최소화
다음2차현식을최소화하는x를구합니다。
여기서
, ,
여기에는다음제약조건이적용됩니다。
, .
이문제를풀려면먼저계수를입력하십시오。
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
디폴트가아닌옵션을이용한2차최소화
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
prob2struct
에서생성한2차문제
문제기반최적화워크플로의절차에따라问题
구조체를만듭니다。선형제약조건이있는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
quadprog
목적함수값반환하기
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
최적화과정검토하기
quadprog
에대한최적화과정이확인될수있도록반복과정을표시하고4개의출력값을반환하도록옵션을설정합니다。다음을최소화하는문제입니다。
여기에는다음조건이적용됩니다。
,
여기서
, .
문제계수를입력합니다。
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: []
quadprog
라그랑주승수반환하기
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수
H
- - - - - -2차목적함수항
대칭실수행렬
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
- - - - - -선형목적함수항
실수형벡터
선형목적함수항으로,실수형벡터로지정됩니다。f
는通讯录현식1/2*x'*H*x + f'*x
에서선형항을나타냅니다。
예:(1; 3; 2)
데이터형:双
一个
- - - - - -선형부등식제약조건
실수 행렬
선형부등식제약조건으로,실수행렬로지정됩니다。一个
는米
×N
행렬입니다。여기서米
은부등식개수이고N
은변수개수(x0
의소개수)입니다。대규모문제의경우,一个
를희소행렬로전달하십시오。
一个
는다음과같이米
개의선형부등식을코딩합니다。
A*x <= b
,
여기서x
는N
개의 변수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
를희소벡터로전달하십시오。
b
는다음과같이米
개의선형부등식을코딩합니다。
A*x <= b
,
여기서x
는N
개의 변수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
- - - - - -선형등식제약조건
실수 행렬
선형등식제약조건으로,실수행렬로지정됩니다。Aeq
는我
×N
행렬입니다。여기서我
는부등식개수이고N
은변수개수(x0
의소개수)입니다。대규모문제의경우,Aeq
를희소행렬로전달하십시오。
Aeq
는다음과같이我
개의선형등식을코딩합니다。
Aeq*x = beq
,
여기서x
는N
개의 변수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
,
여기서x
는N
개의 변수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
- - - - - -초기점
실수형벡터
초기점으로,실수형벡터로지정됩니다。x0
의 길이는H
의행개수또는열개수입니다。
문제에범위제약조건만있는경우x0
이“trust-region-reflective”
알고리즘에적용됩니다。x0
은“激活集”
알고리즘에도적용됩니다。
참고
x0
은“激活集”
알고리즘의필수수입니다。
x0
을지정하지않을경우,quadprog
는x0
의모든성분을범위로정의된상자내부에있는점으로설정합니다。quadprog
는“interior-point-convex”
알고리즘과등식제약조건을사용하는“trust-region-reflective”
알고리즘에서x0
을무시합니다。
예:(1, 2, 1)
데이터형:双
选项
- - - - - -최적화옵션
optimoptions
의 출력값|optimset
등이반환하는구조체
최적화옵션으로,optimoptions
의출력값또는optimset
등이반환하는구조체로지정됩니다。
일부옵션은optimoptions
시에나타나지않습니다。이러한옵션은다음` ` `에서기울임꼴로` ` ` `시되어있습니다。자세한내용은옵션 보기항목을참조하십시오。
모든알고리즘
算法 |
다음과같은알고리즘을선택합니다。
|
诊断 | 최소화하거나풀려는함수에대한진단정보를@ @시합니다。 |
显示 |
시수준입니다(반복과정@ @시참조):
|
MaxIterations |
허용되는최대반복횟수로,양의정수입니다。
|
OptimalityTolerance |
1차최적성에대한종료허용오차로,양의스칼라입니다。
허용오차와중지기준항목을참조하십시오。
|
StepTolerance |
|
“trust-region-reflective”
알고리즘만해당
FunctionTolerance |
함수값에대한종료허용오차로,양의스칼라입니다。디폴트값은문제유형에따라달라집니다。범위제약조건이있는문제는
|
|
헤세행렬의곱셈함수로,함수핸들로지정됩니다。특정구조를가진대규모문제의경우,이함수는 W = hmfun(Hinfo,Y) 여기서 이옵션을사용하는예제는二次最小化与密集,结构化黑森항목을참조하십시오。
|
MaxPCGIter | 최대pcg(선조건적용켤레기울기)반복횟수로,양의스칼라입니다。디폴트값은범위제약조건이있는문제의경우 |
PrecondBandWidth | Pcg에대한선조건자의상부대역폭으로,음이아닌정수입니다。기본적으로, |
SubproblemAlgorithm |
반복스텝이계산되는방식을결정합니다。디폴트 값 |
TolPCG | PCG반복에대한종료허용오차로,양의스칼라입니다。디폴트값은 |
TypicalX |
일반적iot |
“interior-point-convex”
알고리즘만해당
ConstraintTolerance |
제약조건위반에대한허용오차로,양의스칼라입니다。디폴트값은
|
LinearSolver |
알고리즘의내부선형솔버유형입니다。
|
“激活集”
알고리즘만해당
ConstraintTolerance |
제약조건위반에대한허용오차로,양의스칼라입니다。디폴트값은
|
ObjectiveLimit |
허용오차(중지기준)로,스칼라입니다。목적함수값이 |
问题
- - - - - -문제구조체
구조체
문제구조체로,다음필드를가진구조체로지정됩니다。
|
1/2 * x ' * H * x 의대칭행렬 |
|
일차항f ' * x 의 벡터 |
|
선형부등식제약조건Aineq * x ≤bineq 에포함되는행렬 |
|
선형부등식제약조건Aineq * x ≤bineq 에포함되는벡터 |
|
선형등식제약조건Aeq*x = beq 에포함되는행렬 |
|
선형등식제약조건Aeq*x = beq 에포함되는벡터 |
磅 |
하한으로구성된벡터 |
乌兰巴托 |
상한으로구성된벡터 |
|
x 의 초기점 |
|
“quadprog” |
|
optimoptions 또는optimset 을사용하여생성되는옵션 |
필수필드는H
,f
,解算器
및选项
입니다。해를구할때quadprog
는위목록에@ @시되지않은모든필드를问题
에서무시합니다。
참고
웜스타트는问题
수와함께사용할수없습니다。
데이터형:结构体
ws
- - - - - -暖启动객체
optimwarmstart
를사용하여생성되는객체
温暖开始객체로,optimwarmstart
를사용하여생성되는객체로지정됩니다。热启动객체는시작점과옵션,그리고코드생성시메모리크기에대한선택적데이터를포함합니다。热启动最佳实践항목을참조하십시오。
예:Ws = optimwarmstart(x0,options)
출력marketing수
x
-해(解决方案)
실수형벡터
해로,실수형벡터로반환됩니다。x
는모든범위와선형제약조건이적용된1/2*x'*H*x + f'*x
를최소화하는벡터입니다。x
는비볼록문제의경우국소최솟값일수있습니다。볼록문제의경우,x
는전역최솟값입니다。자세한내용은국소최적해와전역최적해항목을참조하십시오。
wsout
-해暖启动객체
QuadprogWarmStart
객체
해温暖开始객체로,QuadprogWarmStart
객체로반환됩니다。해에해당하는점은wsout。X
입니다。
이후quadprog
호출에서wsout
를입력温暖启动객체로사용할수있습니다。
fval
-해에서계산된목적함수값
실수형스칼라
해에서계산된목적함수값으로,실수형스칼라로반환됩니다。fval
은해x
에서1/2*x'*H*x + f'*x
를계산한값입니다。
exitflag
- - - - - -quadprog
가중지된이유
정수
quadprog
가중지된이유로,아래@에설명되어있는정수로반환됩니다。
모든알고리즘 |
|
|
함수가 해 |
|
반복횟수가 |
|
문제가실현가능하지않습니다。또는 |
|
문제가비유계입니다。 |
|
|
|
스텝크기가 |
|
비볼록문제가감지되었습니다。 |
|
스텝방향을계산할수없습니다。 |
|
|
|
국소최솟값을찾았거나,최솟값이고유하지않습니다。 |
|
목적함수값의변화량이 |
|
현재탐색방향이하강방향이아닙니다。더이상진행할수없습니다。 |
|
|
|
참고
실제로문제가비유계경우“激活集”
알고리즘은종료플래그0
을발생시키고중단되기도합니다。반복한도를더높이설정해도종료플래그0
을발생시킵니다。
输出
-최적화과정에대한정보
구조체
최적화과정에대한정보로,다음필드를가진구조체로반환됩니다。
|
수행된반복횟수 |
|
사용된최적화알고리즘 |
|
총PCG반복횟수( |
constrviolation |
제약조건함수의최댓값 |
firstorderopt |
1차최적성에대한측정값 |
linearsolver |
내부선형솔버의유형으로, |
消息 |
종료메시지 |
λ
-해에서의라그랑주승수
구조체
알고리즘
“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。
확장 기능
C/ c++코드생성
MATLAB®Coder™를사용하여C코드나c++코드를생성할수있습니다。
사용법관련참고및제한사항:
quadprog
은codegen
(MATLAB编码器)함수 또는MATLAB®编码器™앱을사용한코드생성을지원합니다。코드를생성하려면MATLAB编码器라이선스가있어야합니다。타깃하드웨어는@ @준배정밀도부동소수점계산을지원해야합니다。단정밀도또는고정소수점계산에대해서는코드를생성할수없습니다。
코드생성대상은matlab솔버와동일한수학커널라이브러리를사용하지않습니다。따라서특히조건이나쁜문제경우에코드생성의해가솔버의해와다를수있습니다。
quadprog
은코드생성시问题
수를지원하지않습니다。[x,fval] = quadprog(问题)%不支持万博1manbetx
一个
,Aeq
,磅
,乌兰巴托
같은quadprog
입력행렬은모두희소행렬이아니라비희소행렬이어야합니다。完整的
함수를사용하여희소행렬을비희소행렬로변환할수있습니다。磅
化学式수와乌兰巴托
化学式수는H
의열개수와동일한개수의소를가지거나비어있어야합니다([]
).임베디드프로세서가사용되는고급코드최적화의경우에는嵌入式编码器®라이선스도필합니다。
quadprog
에대한옵션을포함하고optimoptions
를사용하여옵션을지정해야합니다。옵션에는“激活集”
으로설정된算法
옵션이포함되어야합니다。选项= optimoptions(“quadprog”,“算法”,“激活集”);[x,fval,exitflag] = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options);
코드생성에지원되는옵션은다음과같습니다。
算法
- - - - - -“激活集”
이어야 함ConstraintTolerance
MaxIterations
ObjectiveLimit
OptimalityTolerance
StepTolerance
생성된코드는옵션에대해제한적오류검사를수행합니다。옵션을업데이트할때권장하는방법은점@ @기법이아니라
optimoptions
를사용하는것입니다。Opts = optimoptions(“quadprog”,“算法”,“激活集”);Opts = optimoptions(Opts,“MaxIterations”1 e4);%推荐选择。米axIterations = 1e4;%不推荐
파일에서옵션을불러오지마십시오。파일에서불러오면코드생성이실패할수있습니다。대신코드에서옵션을만드십시오。
지원되지않는옵션을지정하면일반적으로코드생성시에해당옵션이무시됩니다。정된결과를얻기위해,지원되는옵션만지정하십시오。
예제는为quadprog生成代码항목을참조하십시오。
버전 내역
Matlab명령
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。