infeasibility
点における制約違反
説明
infeasibility
を使用して、ある点における制約違反の数値を求めます。
ヒント
完全なワークフローについては、問題ベースの最適化ワークフローまたは方程式を解くための問題ベースのワークフローを参照してください。
例
制約違反の計算
点が制約を満たしているかどうかを確認します。
最適化変数と 2 つの制約を設定します。
x = optimvar('x'); y = optimvar('y'); cons = x + y <= 2; cons2 = x + y/4 <= 1;
点 x = 0
, y = 4
が cons
という名前の制約を満たしているかどうかを確認します。実行不可能性がゼロの場合に、点は実行可能です。
pt.x = 0; pt.y = 4; infeas = infeasibility(cons,pt)
infeas = 2
点は、この制約に関して実行不可能です。
その他の制約に関する実行可能性を確認します。
infeas = infeasibility(cons2,pt)
infeas = 0
点は、この制約に関して実行可能です。
複数の制約違反の計算
点が複数の条件をもつ制約を満たしているかどうかを確認します。
最適化変数と制約のベクトルを設定します。
x = optimvar('x',3,2);
cons = sum(x,2) <= [1;3;2];
点 pt.x = [1,-1;2,3;3,-1]
がこれらの制約を満たしているかどうかを確認します。
pt.x = [1,-1;2,3;3,-1]; infeas = infeasibility(cons,pt)
infeas = 3×1
0
2
0
点は、2 番目の制約に関して実行不可能です。
入力引数
constr
— 最適化制約
OptimizationEquality
オブジェクト | OptimizationInequality
オブジェクト | OptimizationConstraint
オブジェクト
最適化制約。OptimizationEquality
オブジェクト、OptimizationInequality
オブジェクト、または OptimizationConstraint
オブジェクトとして指定します。constr
は単一の制約または制約の配列を表すことができます。
例: constr = x + y <= 1
は、x
と y
がスカラー変数の場合は単一の制約です。
例: constr = sum(x) == 1
は、x
が 2 次元以上の配列の場合は制約の配列です。
pt
— 評価する点
最適化変数名に一致するフィールド名をもつ構造体
評価する点。制約の最適化変数に対して、最適化変数名に一致するフィールド名をもつ構造体として指定します。pt
内の各フィールドのサイズは、対応する最適化変数のサイズと一致していなければなりません。
例: pt.x = 5*eye(3)
データ型: struct
出力引数
infeas
— 制約の実行不可能性
実数配列
制約の実行不可能性。実数配列として返されます。ゼロである各エントリは実行可能な制約を表し、正の各エントリは実行不可能な制約を表します。infeas
のサイズは、制約 constr
のサイズと同じです。非スカラー infeas
の例については、複数の制約違反の計算を参照してください。
警告
問題ベースのアプローチでは、目的関数、非線形等式、および非線形不等式における複素数値はサポートされていません。関数の計算に複素数値が含まれていると、それが中間値としてであっても、最終結果が不正確になる場合があります。
バージョン履歴
R2017b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)