メインコンテンツ

Optimization Toolbox の関数が扱う問題

次の表は、最小化、多目的最適化、方程式解法、および最小二乗 (モデルフィッティング) 問題の解法に使用可能な関数を示しています。

最小化問題

種類定式化ソルバー

スカラー最小化

minxf(x)

条件 lb < x < ub (x はスカラー)

fminbnd

制約なし最小化

minxf(x)

fminunc,
fminsearch

線形計画法

minxfTx

条件 A·xb, Aeq·x = beq, lbxub

linprog

混合整数線形計画法

minxfTx

条件 A·xb, Aeq·x = beq, lbxub, x(intcon) は整数値です。

intlinprog

二次計画法

minx12xTHx+cTx

条件 A·xb, Aeq·x = beq, lbxub

quadprog

錐計画法

minxfTx

条件 AxbdTxγ, A·xb, Aeq·x = beq, lbxub

coneprog

制約付き最小化

minxf(x)

条件 c(x) ≤ 0, ceq(x) = 0, A·xb, Aeq·x = beq, lbxub

fmincon

半無限最小化

minxf(x)

条件 K(x,w) ≤ 0 for all w, c(x) ≤ 0, ceq(x) = 0, A·xb, Aeq·x = beq, lbxub

fseminf

多目的最適化問題

種類定式化ソルバー

ゴール到達

minx,γγ

条件 F(x) – w·γ ≤ goal, c(x) ≤ 0, ceq(x) = 0, A·xb, Aeq·x = beq, lbxub

fgoalattain

ミニマックス

minxmaxiFi(x)

条件 c(x) ≤ 0, ceq(x) = 0, A·xb, Aeq·x = beq, lbxub

fminimax

方程式を解く問題

種類定式化ソルバー

線形方程式

C·x = dn 個の方程式、n 個の変数

mldivide (行列の左除算)

1 変数の非線形方程式

f(x) = 0

fzero

非線形方程式

F(x) = 0n 個の方程式、n 個の変数

fsolve

最小二乗 (モデル当てはめ) の問題

種類定式化ソルバー

線形最小二乗法

minx12Cxd22

m 個の方程式、n 個の変数

mldivide (行列の左除算)

非負の線形最小二乗法

minx12Cxd22

条件 x ≥ 0

lsqnonneg

制約付き線形最小二乗法

minx12Cxd22

条件 A·xb, Aeq·x = beq, lb ≤ x ≤ ub

lsqlin

非線形最小二乗法

minxF(x)22=minxiFi2(x)

条件 lb ≤ x ≤ ub

lsqnonlin

非線形曲線近似

minxF(x,xdata)ydata22

条件 lb ≤ x ≤ ub


lsqcurvefit

Optimization Toolbox™ ソルバーは "滑らかな" 問題に適用されます。つまり、目的関数と非線形制約関数は、少なくとも 2 回連続して微分可能である必要があります。場合によっては、Optimization Toolbox ソルバーは滑らかでない関数で機能することがあります。任意の問題で自由に試してください。基本の MATLAB® 最適化ソルバー fminbndfminsearch、および fzero には平滑性要件がなく、ほとんどの Global Optimization Toolbox ソルバーには平滑性要件がありません。

参考

トピック