SensitivityAnalysis
説明
SensitivityAnalysis オブジェクトには、線形計画法の解に関する感度解析情報が格納されます。さまざまな係数に対する目的関数値の変化率、および最適基底を保持する係数変化の範囲がオブジェクトのプロパティで提供されます。詳細については、詳細を参照してください。
作成
SensitivityAnalysis オブジェクトは、linprog 関数の 6 番目の出力として sensitivity を指定することで作成します。
[x,fval,exitflag,output,lambda,sensitivity] = linprog(...)
プロパティ
各プロパティは、以下に示す 5 つの列を含む table です。
| 列名 | 説明 |
|---|---|
LowerLimit | モデル パラメーターが現在の最適基底を変えることなく取り得る最小値 |
UpperLimit | モデル パラメーターが現在の最適基底を変えることなく取り得る最大値 |
ObjectiveValueAtLowerLimit | モデル パラメーターが LowerLimit に変更された場合の最適解における目的関数値 |
ObjectiveValueAtUpperLimit | モデル パラメーターが UpperLimit に変更された場合の最適解における目的関数値 |
ObjectiveValueChangeRate | 範囲 (LowerLimit, UpperLimit) のモデル パラメーターに対する目的関数値の変化率 |
この プロパティ は読み取り専用です。
目的関数係数 f の感度。N 行 5 列の table として返されます。ここで、N は問題の変数の数です。
この プロパティ は読み取り専用です。
線形等式制約 beq の感度。Neq 行 5 列の table として返されます。ここで、Neq は問題内の線形等式制約の数です。
この プロパティ は読み取り専用です。
線形不等式制約 b の感度。Nineq 行 5 列の table として返されます。ここで、Nineq は問題内の線形不等式制約の数です。
この プロパティ は読み取り専用です。
線形不等式制約 bl の感度。Nineq 行 5 列の table として返されます。ここで、Nineq は問題内の線形不等式制約の数です。
この プロパティ は読み取り専用です。
下限 lb の感度。N 行 5 列の table として返されます。ここで、N は問題の変数の数です。
データ型: table
この プロパティ は読み取り専用です。
上限 ub の感度。N 行 5 列の table として返されます。ここで、N は問題の変数の数です。
例
線形計画法を作成します。
f = [-2,-1];
A = [-1 -1;
1 -1/2;
-1 1];
bl = [-5 -Inf -Inf];
b = [Inf 2 3];
lb = [0 0];
ub = [];
Aeq = [];
beq = [];線形計画法を解き、感度を要求します。
[x,fval,exitflag,output,lambda,sensitivity] = ...
linprog(f,A,b,Aeq,beq,lb,ub)Optimal solution found.
x = 2×1
7
10
fval = -24
exitflag = 1
output = struct with fields:
iterations: 0
constrviolation: 0
message: 'Optimal solution found.'
algorithm: 'dual-simplex-highs'
firstorderopt: 0
lambda = struct with fields:
lower: [2×1 double]
upper: [2×1 double]
eqlin: [0×1 double]
ineqlinLower: [3×1 double]
ineqlin: [3×1 double]
sensitivity =
SensitivityAnalysis with properties:
Variables Sensitivity:
ObjectiveCoefficient: [2×5 table]
LowerBound: [2×5 table]
UpperBound: [2×5 table]
Constraints Sensitivity:
InequalityLHS: [3×5 table]
InequalityRHS: [3×5 table]
EqualityRHS: [0×5 table]
感度を確認します。
sensitivity.ObjectiveCoefficient
ans=2×5 table
LowerLimit UpperLimit ObjectiveValueAtLowerLimit ObjectiveValueAtUpperLimit ObjectiveValueChangeRate
__________ __________ __________________________ __________________________ ________________________
-Inf 1 -Inf -3 7
-Inf 1 -Inf -4 10
sensitivity.LowerBound
ans=2×5 table
LowerLimit UpperLimit ObjectiveValueAtLowerLimit ObjectiveValueAtUpperLimit ObjectiveValueChangeRate
__________ __________ __________________________ __________________________ ________________________
-Inf 7 -24 -24 0
-Inf 10 -24 -24 0
sensitivity.InequalityLHS
ans=3×5 table
LowerLimit UpperLimit ObjectiveValueAtLowerLimit ObjectiveValueAtUpperLimit ObjectiveValueChangeRate
__________ __________ __________________________ __________________________ ________________________
-Inf -17 -24 -24 0
-Inf 2 -24 -24 0
-Inf 3 -24 -24 0
sensitivity.InequalityRHS
ans=3×5 table
LowerLimit UpperLimit ObjectiveValueAtLowerLimit ObjectiveValueAtUpperLimit ObjectiveValueChangeRate
__________ __________ __________________________ __________________________ ________________________
-17 Inf -24 -24 0
-1.5 Inf -3 -Inf -6
-2 Inf -4 -Inf -4
返される感度の説明については、SensitivityAnalysisを参照してください。
詳細
線形計画問題では、ラグランジュ乗数と感度解析のパラメーターは密接に関連しています。パラメーターの変化に対する目的関数値の変化率を示すラグランジュ乗数は、解においてのみ成り立ちます。つまり、この変化率はパラメーターの微小な変化に対して成り立つことを意味します。しかし、目的関数においては、同じ変化率がパラメーターの広い範囲に対して成り立つことがあります。感度解析オブジェクトは、目的関数に対して同じ変化率をもつパラメーターの範囲を示します。返される ObjectiveValueChangeRate の感度の絶対値は、関連するラグランジュ乗数の絶対値と同じです (次の段落で説明するように符号は異なることがあります)。ラグランジュ乗数を感度と比較した例については、感度の取得を参照してください。
ObjectiveValueChangeRate と対応するラグランジュ乗数で符号が異なることがあるのはなぜでしょうか。ラグランジュ乗数は、制約を厳しくする場合に対する目的関数値の変化率を示します。つまり、下限または不等式の左辺では増加、上限または不等式の右辺では減少を意味します。これらのラグランジュ乗数は常に非負です。これに対し、ObjectiveValueChangeRate は、その変化が制約を厳しくするものか緩めるものかに関係なく、パラメーターの変化に対する目的関数値の変化率を表します。したがって、2 つのレートの符号は下限と不等式の右辺では一致し、上限と不等式の右辺では逆になります。
線形計画法においては、"最適基底" は解においてアクティブな制約の集合と解釈できます。一般に、この集合は一意であり、一部の問題の係数が十分に変わる場合にのみ変化します。詳細については、基底変数と非基底変数を参照してください。
場合によっては、最適基底が一意でなく、係数のほんのわずかな変化で変わることがあります。このような場合、一部のパラメーターについて、報告される区間 (LowerLimit,UpperLimit) の幅が 0 または 0 に近くなることがあります。この特異性は、"単一基底" の感度解析の制限を反映したものです。
同様に、一意でない基底をもつ一部の問題では、報告される各範囲は "1 つの特定の基底" が最適なままとなる区間を反映したものになります。したがって、報告される目的値の変化率をもつ全区間よりも、報告される下限と上限が狭くなることがあります。言い換えると、別の最適基底では、報告される変化率に対応する範囲が広くなることもあります。
b または ub が Inf の場合など、非アクティブな変数または制約の上限については次のようになります。
LowerLimitは最適解における変数または制約の値です。UpperLimitはInfです。ObjectiveValueAtLowerLimitは最適解における目的値です。ObjectiveValueAtUpperLimitは最適解における目的値です。ObjectiveValueChangeRateは0です。
bl または lb が -Inf の場合など、非アクティブな変数または制約の下限については次のようになります。
LowerLimitは-Infです。UpperLimitは最適解における変数または制約の値です。ObjectiveValueAtLowerLimitは最適解における目的値です。ObjectiveValueAtUpperLimitは最適解における目的値です。ObjectiveValueChangeRateは0です。
バージョン履歴
R2026a で導入
MATLAB Command
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 のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)