このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
いくつかの最適化ソルバーは線形制約,つまり解xに対する制約を受け入れて,線形等式または線形不等式を満たします。線形制約を受け入れるソルバーには,fmincon
、intlinprog
、linprog
、lsqlin
、quadprog
,多目的ソルバー,一部の全局优化工具箱ソルバーが含まれます。
線形不等式制約はA·x≤bの形式になります。一个が m 行 n 列の場合、n 個の要素をもつ変数 x に対し m 個の制約条件があります。m 行 n 列の行列 A と m 要素のベクトル b を入力します。
引数一个
およびb
での線形不等式制約を渡します。
たとえば,以下の線形不等式不等式を制約として考えてみましょう。
x1+ x3.≤4,
2 x2- x3.≥2,
x1- x2+ x3.- x4≥9。
ここで,m = 3、n = 4です。
以下の行列一个とベクトルbを使用して,これらの制約を記述します。
“大なり”の不等式は1を乗算して”小なり”の不等式の形式に変換されていることに注意してください。MATLAB®構文では次のようになります。
A = [1 0 1 0;0 -2 0;-1 1 -1 1];b =(4; 2、9);
線形制約に勾配を与える必要はありません。ソルバーが自動的に勾配を計算します。線形制約はヘッシアンに影響を与えません。
初期点x0
を行列として渡す場合でも,ソルバーは現在の点xを列ベクトルとして線形制約に渡します。詳細は,行列引数を参照してください。
より複雑な線形制約の例については,線形計画法の設定,ソルバーベースを参照してください。
中間の反復は線形制約に違反する可能性があります。詳細は,反復は制約に違反する可能性ありを参照してください。
線形等式はAeq·x =说真的の形式をもちます。これはn要素のベクトルxをもつm個の等式を表します。m行n列の行列Aeqとm要素のベクトルbeqを入力します。
線形不等式制約で説明した引数一个
およびb
の場合と同じように,引数Aeq
および说真的
での線形等式制約を渡します。