MATLAB ヘルプ センター
2 次錐制約の作成
socConstraint = secondordercone(A,b,d,gamma)
secondordercone 関数は、不等式
secondordercone
‖A⋅x−b‖≤dT⋅x−γ
を表す 2 次錐制約を入力行列の A、b、d、および gamma から作成します。
A
b
d
gamma
socConstraint = secondordercone(A,b,d,gamma) は、2 次錐制約オブジェクト socConstraint を作成します。
socConstraint
coneprog 関数を使用して、2 次錐制約を含む問題を解きます。複数の錐制約を表すには、例 複数の錐制約 で示すように coneprog に制約の配列を渡します。
coneprog
例
すべて折りたたむ
1 つの 2 次錐制約を含む問題を設定するには、2 次錐制約オブジェクトを作成します。
Asoc = diag([1,1/2,0]); bsoc = zeros(3,1); dsoc = [0;0;1]; gamma = 0; socConstraints = secondordercone(Asoc,bsoc,dsoc,gamma);
目的関数ベクトルを作成します。
f = [-1,-2,0];
この問題には、線形制約がありません。これらの制約用の空行列を作成します。
Aineq = []; bineq = []; Aeq = []; beq = [];
x(3) の上限と下限を設定します。
x(3)
lb = [-Inf,-Inf,0]; ub = [Inf,Inf,2];
coneprog 関数を使用して問題を解きます。
[x,fval] = coneprog(f,socConstraints,Aineq,bineq,Aeq,beq,lb,ub)
Optimal solution found.
x = 3×1 0.4851 3.8806 2.0000
fval = -8.2462
解の要素 x(3) は上限値です。錐制約は次の解においてアクティブです。
norm(Asoc*x-bsoc) - dsoc'*x % Near 0 when the constraint is active
ans = -2.5677e-08
複数の 2 次錐制約を含む問題を設定するには、制約オブジェクトの配列を作成します。時間とメモリを節約するために、最初に、最もインデックスの高い制約を作成します。
Asoc = diag([1,2,0]); bsoc = zeros(3,1); dsoc = [0;0;1]; gamma = -1; socConstraints(3) = secondordercone(Asoc,bsoc,dsoc,gamma); Asoc = diag([3,0,1]); dsoc = [0;1;0]; socConstraints(2) = secondordercone(Asoc,bsoc,dsoc,gamma); Asoc = diag([0;1/2;1/2]); dsoc = [1;0;0]; socConstraints(1) = secondordercone(Asoc,bsoc,dsoc,gamma);
線形目的関数ベクトルを作成します。
f = [-1;-2;-4];
[x,fval] = coneprog(f,socConstraints)
x = 3×1 0.4238 1.6477 2.3225
fval = -13.0089
円錐の線形因子。実数行列として指定されます。A 内の列数は d 内の要素数と一致しなければなりません。A 内の行数は b 内の要素数と一致しなければなりません。
例: diag([1,1/2,0])
diag([1,1/2,0])
データ型: double
double
円錐の中心。実数ベクトルとして指定されます。b 内の要素数は A 内の行数と一致しなければなりません。
例: zeros(3,1)
zeros(3,1)
線形範囲。実数ベクトルとして指定されます。d 内の要素数は A 内の列数と一致しなければなりません。
例: [0;0;1]
[0;0;1]
範囲。実数スカラーとして指定されます。gamma の値が小さいほど、制約は緩くなります。
例: -1
-1
SecondOrderConeConstraint
2 次錐制約。SecondOrderConeConstraint オブジェクトとして返されます。このオブジェクトを coneprog ソルバーの制約として使用します。錐制約が複数存在する場合は、制約のベクトルを coneprog に渡します。複数の錐制約を参照してください。
R2020b で導入
coneprog | SecondOrderConeConstraint
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ