fminunc
制約なし多変数関数の最小値を求める
構文
説明
は、x
= fminunc(fun
,x0
,options
)options
で指定された最適化オプションを使って fun
を最小化します。optimoptions
を使用してこれらのオプションを設定してください。
例
多項式の最小化
関数 を最小化します。
これを行うには、目的関数を計算する無名関数 fun
を記述します。
fun = @(x)3*x(1)^2 + 2*x(1)*x(2) + x(2)^2 - 4*x(1) + 5*x(2);
fminunc
を呼び出し、[1,1]
に近い fun
の最小値を求めます。
x0 = [1,1]; [x,fval] = fminunc(fun,x0)
Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance.
x = 1×2
2.2500 -4.7500
fval = -16.3750
勾配の指定
fminunc
は、導関数を与えると、速度および信頼性が向上する場合があります。
勾配と関数値を返す目的関数を記述します。勾配とヘッシアンを含める で説明するように、条件付きの形式を使用します。この目的関数は Rosenbrock 関数になります。
ここで勾配は
.
勾配のある目的関数のコードは、この例の終わりに掲載しています。
目的関数の勾配を使用するオプションを作成します。また、アルゴリズムを 'trust-region'
に設定します。
options = optimoptions('fminunc','Algorithm','trust-region','SpecifyObjectiveGradient',true);
初期点を [-1,2
] に設定します。その後、fminunc
を呼び出します。
x0 = [-1,2]; fun = @rosenbrockwithgrad; x = fminunc(fun,x0,options)
Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance.
x = 1×2
1.0000 1.0000
次のコードは、関数 rosenbrockwithgrad
を作成します。この関数には、2 番目の出力として勾配が含まれます。
function [f,g] = rosenbrockwithgrad(x) % Calculate objective f f = 100*(x(2) - x(1)^2)^2 + (1-x(1))^2; if nargout > 1 % gradient required g = [-400*(x(2)-x(1)^2)*x(1) - 2*(1-x(1)); 200*(x(2)-x(1)^2)]; end end
問題構造体の使用
個別の引数の代わりに問題構造体を使用して勾配の指定 と同じ問題を解きます。
勾配と関数値を返す目的関数を記述します。勾配とヘッシアンを含める で説明するように、条件付きの形式を使用します。この目的関数は Rosenbrock 関数になります。
,
ここで勾配は
.
勾配のある目的関数のコードは、この例の終わりに掲載しています。
目的関数の勾配を使用するオプションを作成します。また、アルゴリズムを 'trust-region'
に設定します。
options = optimoptions('fminunc','Algorithm','trust-region','SpecifyObjectiveGradient',true);
初期点 x0 = [-1,2]
を含む問題構造体を作成します。この構造体に必須のフィールドについては、problemを参照してください。
problem.options = options;
problem.x0 = [-1,2];
problem.objective = @rosenbrockwithgrad;
problem.solver = 'fminunc';
問題を解きます。
x = fminunc(problem)
Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance.
x = 1×2
1.0000 1.0000
次のコードは、関数 rosenbrockwithgrad
を作成します。この関数には、2 番目の出力として勾配が含まれます。
function [f,g] = rosenbrockwithgrad(x) % Calculate objective f f = 100*(x(2) - x(1)^2)^2 + (1-x(1))^2; if nargout > 1 % gradient required g = [-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1)); 200*(x(2)-x(1)^2)]; end end
最適な目的関数値の取得
非線形関数の最小値の位置と、その最小値での関数値の両方を求めます。目的関数は次のとおりです。
.
fun = @(x)x(1)*exp(-(x(1)^2 + x(2)^2)) + (x(1)^2 + x(2)^2)/20;
x0 = [1,2]
を開始点とする最小化関数の位置および目的関数値を求めます。
x0 = [1,2]; [x,fval] = fminunc(fun,x0)
Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance.
x = 1×2
-0.6691 0.0000
fval = -0.4052
解法プロセスの検証
fminunc
のオプションおよび出力を選択して、解法プロセスを検証します。
反復表示を取得して 'quasi-newton'
アルゴリズムを使用するようにオプションを設定します。
options = optimoptions(@fminunc,'Display','iter','Algorithm','quasi-newton');
目的関数は次のとおりです。
fun = @(x)x(1)*exp(-(x(1)^2 + x(2)^2)) + (x(1)^2 + x(2)^2)/20;
x0 = [1,2]
から最小化を開始して、解の質と解法プロセスを検証できる出力を取得します。
x0 = [1,2]; [x,fval,exitflag,output] = fminunc(fun,x0,options)
First-order Iteration Func-count f(x) Step-size optimality 0 3 0.256738 0.173 1 6 0.222149 1 0.131 2 9 0.15717 1 0.158 3 18 -0.227902 0.438133 0.386 4 21 -0.299271 1 0.46 5 30 -0.404028 0.102071 0.0458 6 33 -0.404868 1 0.0296 7 36 -0.405236 1 0.00119 8 39 -0.405237 1 0.000252 9 42 -0.405237 1 7.97e-07 Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance.
x = 1×2
-0.6691 0.0000
fval = -0.4052
exitflag = 1
output = struct with fields:
iterations: 9
funcCount: 42
stepsize: 2.9343e-04
lssteplength: 1
firstorderopt: 7.9721e-07
algorithm: 'quasi-newton'
message: 'Local minimum found....'
終了フラグ
1
は、解が局所的最適解であることを示します。output
構造体は、反復の回数、関数評価の回数、およびその他の情報を示します。反復表示は、反復および関数評価の回数も示します。
大規模な問題に対する "lbfgs"
ヘッセ近似の使用
問題の変数の数が多い場合、HessianApproximation
を既定値にすると fminunc
が大量のメモリを使用して実行が遅くなる可能性があります。メモリの使用を抑えて実行を高速化するには、HessianApproximation="lbfgs"
を指定します。
たとえば、既定のパラメーターを使用して、1e5 個の変数を持つ関数 multirosenbrock
(下記を参照) を最小化しようとすると、fminunc
でエラーが発生します。
N = 1e5; x0 = -2*ones(N,1); x0(2:2:N) = 2; [x,fval] = fminunc(@multirosenbrock,x0)
Error using eye Requested 100000x100000 (74.5GB) array exceeds maximum array size preference (63.9GB). This might cause MATLAB to become unresponsive. Error in optim.internal.fminunc.AbstractDenseHessianApproximation (line 21) this.Value = eye(nVars); Error in optim.internal.fminunc.BFGSHessianApproximation (line 14) this = this@optim.internal.fminunc.AbstractDenseHessianApproximation(nVars); Error in fminusub (line 73) HessApprox = optim.internal.fminunc.BFGSHessianApproximation(sizes.nVar); Error in fminunc (line 488) [x,FVAL,GRAD,HESSIAN,EXITFLAG,OUTPUT] = fminusub(funfcn,x, ...
この問題を解くには、HessianApproximation
オプションを "lbfgs"
に設定します。解を迅速に得るには、指定された勾配を使用するオプションを設定します。
N = 1e5; x0 = -2*ones(N,1); x0(2:2:N) = 2; options = optimoptions("fminunc",HessianApproximation="lbfgs",... SpecifyObjectiveGradient=true); [x,fval] = fminunc(@multirosenbrock,x0,options);
Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance.
理論解は、すべての i
について x(i) = 1
です。返された解の精度を確認します。
max(abs(x-1))
ans = 1.3795e-04
このコードは関数 multirosenbrock
を作成します。
function [f,g] = multirosenbrock(x) % Get the problem size n = length(x); if n == 0, error('Input vector, x, is empty.'); end if mod(n,2) ~= 0 error('Input vector, x ,must have an even number of components.'); end % Evaluate the vector function odds = 1:2:n; evens = 2:2:n; F = zeros(n,1); F(odds,1) = 1-x(odds); F(evens,1) = 10.*(x(evens)-x(odds).^2); f = sum(F.^2); if nargout >= 2 % Calculate gradient g = zeros(n,1); g(evens) = 200*(x(evens)-x(odds).^2); g(odds) = -2*(1 - x(odds)) - 400*(x(evens)-x(odds).^2).*x(odds); end end
入力引数
fun
— 最小化する関数
関数ハンドル | 関数名
最小化する関数。関数ハンドルまたは関数名として指定されます。fun
は、ベクトルまたは配列 x
を受け、x
で評価される目的関数の実数スカラー f
を返す関数です。
fminunc
は、x0
引数の形式で x
を目的関数に渡します。たとえば、x0
が 5 行 3 列の配列の場合、fminunc
は 5 行 3 列の配列として x
を fun
に渡します。
fun
をファイルの関数ハンドルとして指定します。
x = fminunc(@myfun,x0)
ここで myfun
は次のような MATLAB® 関数です。
function f = myfun(x) f = ... % Compute function value at x
fun
は、無名関数の関数ハンドルとして指定することもできます。
x = fminunc(@(x)norm(x)^2,x0);
fun
の勾配を計算することができ、"さらに" 次のように SpecifyObjectiveGradient
オプションが true
に設定されている場合、
options = optimoptions('fminunc','SpecifyObjectiveGradient',true)
fun
は 2 番目の出力引数に勾配ベクトル g(x)
を出力しなければなりません。
ヘッセ行列を計算することもでき、"さらに" HessianFcn
オプションが options = optimoptions('fminunc','HessianFcn','objective')
によって 'objective'
に設定されており、"かつ" Algorithm
オプションが 'trust-region'
に設定されている場合、fun
は、3 番目の出力引数に対称行列であるヘッセ値 H(x)
を返さなければなりません。fun
はスパース ヘッシアンを返すことができます。詳細については、fminunc の信頼領域法アルゴリズムまたは fmincon の信頼領域 Reflective 法アルゴリズムのヘッシアンを参照してください。
trust-region
アルゴリズムではヘッセ乗算関数を指定できます。この関数はヘッシアンを直接計算せずに、ベクトルとヘッシアンの積を返します。これによってメモリを節約できます。詳細については、ヘッセ乗算関数を参照してください。
例: fun = @(x)sin(x(1))*cos(x(2))
データ型: char
| function_handle
| string
x0
— 初期点
実数ベクトル | 実数配列
初期点。実数ベクトルまたは実数配列として指定されます。ソルバーは、x0
の要素数および x0
のサイズを使用して、fun
が受け入れる変数の数およびサイズを決定します。
例: x0 = [1,2,3,4]
データ型: double
options
— 最適化オプション
optimoptions
の出力 | optimset
などによって返される構造体
最適化オプション。optimoptions
の出力、または optimset
などによって返される構造体として指定されます。
いくつかのオプションはすべてのアルゴリズムに適用することができ、その他のオプションは特定のアルゴリズムに関連します。詳細については、最適化オプション リファレンスを参照してください。
一部のオプションは、optimoptions
に表示されません。このようなオプションは、次の表ではイタリックで示されています。詳細については、最適化オプションの表示を参照してください。
すべてのアルゴリズム | |
|
|
CheckGradients | ユーザー設定の導関数 (目的関数の勾配) と有限差分による導関数とを比較します。選択肢は、
|
Diagnostics | 最小化または計算する関数に関する情報を表示します。選択肢は、 |
DiffMaxChange | 有限差分勾配を計算する場合に変数内で生じる最大変化量です (正のスカラー)。既定値は |
DiffMinChange | 有限差分勾配を計算する場合に変数内で生じる最小変化量です (正のスカラー)。既定値は |
Display | 表示レベル (反復表示を参照):
|
FiniteDifferenceStepSize | 有限差分のスカラーまたはベクトルのステップ サイズ ファクター。
sign′(0) = 1 を除き sign′(x) = sign(x) です。中心有限差分法では
FiniteDifferenceStepSize はベクトルに拡張します。既定値は、前進有限差分法では sqrt(eps) 、中心有限差分法では eps^(1/3) です。 信頼領域法アルゴリズムでは、
|
FiniteDifferenceType | 勾配推定に使用される有限差分は
|
FunValCheck | 目的関数値が正しいかどうかチェックします。既定の設定 |
MaxFunctionEvaluations | 関数評価の最大許容回数 (非負の整数)。既定値は
|
MaxIterations | 反復の最大許容回数 (非負の整数)。既定値は
|
OptimalityTolerance | 1 次の最適性に関する終了許容誤差 (非負のスカラー)。既定値は
|
OutputFcn | 各反復で最適化関数が呼び出すユーザー定義の関数を 1 つ以上指定します。関数ハンドルか、関数ハンドルの cell 配列を渡します。既定の設定はなし ( |
PlotFcn | アルゴリズムが実行中のさまざまな進行状況の測定値をプロットします。事前定義されたプロットから選択するか、独自のコードを記述してください。組み込みプロット関数名、関数ハンドル、または組み込みプロット関数名か関数ハンドルの cell 配列を渡します。カスタム プロット関数の場合は、関数ハンドルを渡します。既定の設定はなし (
カスタムのプロット関数は、出力関数と同じ構文を使用します。詳細については、Optimization Toolbox の出力関数と出力関数とプロット関数の構文を参照してください。
|
SpecifyObjectiveGradient | ユーザーが定義する目的関数の勾配。
|
StepTolerance |
|
TypicalX | 典型的な
|
trust-region アルゴリズム | |
FunctionTolerance | 関数値に関する終了許容誤差 (非負のスカラー)。既定値は
|
HessianFcn |
|
HessianMultiplyFcn | ヘッセ乗算関数。関数ハンドルとして指定されます。大規模構造問題に対して、この関数は実際に W = hmfun(Hinfo,Y) ここで 最初の引数は目的関数 [f,g,Hinfo] = fun(x)
メモ:
例については、密に構造化されたヘッシアンと線形等式を使用した最小化を参照してください。
|
HessPattern | 有限差分に対するヘッシアンのスパース パターン。∂2
構造が不明であれば、 |
MaxPCGIter | 前処理付き共役勾配法 (PCG) の反復の最大回数 (正のスカラー)。既定値は |
PrecondBandWidth | PCG に対する前提条件子の帯域幅の上限 (非負の整数)。既定の設定では、 |
SubproblemAlgorithm | 反復ステップの計算方法を定義します。既定の設定である |
TolPCG | PCG 反復に関する終了許容誤差 (正のスカラー)。既定値は |
quasi-newton アルゴリズム | |
HessianApproximation | どのように
メモ 通常、 |
ObjectiveLimit | スカラーの許容誤差 (停止条件) です。反復の目的関数値が |
UseParallel |
|
例: options = optimoptions('fminunc','SpecifyObjectiveGradient',true)
problem
— 問題構造体
構造体
次のフィールドをもつ構造体として指定される問題構造体です。
フィールド名 | エントリ |
---|---|
| 目的関数 |
| x の初期点 |
| 'fminunc' |
| optimoptions で作成されたオプション |
データ型: struct
出力引数
x
— 解
実数ベクトル | 実数配列
実数ベクトルまたは実数配列として返される解です。x
のサイズは、x0
のサイズと同じです。通常、exitflag
が正の場合、x
は問題に対する局所的な解になります。解の質の詳細については、ソルバーが成功する場合を参照してください。
fval
— 解での目的関数値
実数
解での目的関数値。実数として返されます。一般的に、fval
= fun(x)
になります。
exitflag
— fminunc
の停止理由
整数
fminunc
の停止理由。整数として返されます。
| 勾配の大きさは、 |
|
|
| 目的関数値の変化が |
| 目的関数値の予測減少が |
| 反復回数が |
| アルゴリズムが出力関数により停止したことを示します。 |
| 現在の反復の目的関数が |
output
— 最適化プロセスに関する情報
構造体
最適化プロセスに関する情報。次のフィールドをもつ構造体として返されます。
iterations | 実行した反復回数 |
funcCount | 関数評価の回数 |
firstorderopt | 1 次の最適性の尺度 |
algorithm | 使用される最適化アルゴリズム |
cgiterations | PCG 法の合計反復回数 ( |
lssteplength | 探索方向の直線探索ステップ サイズ ( |
stepsize |
|
message | 終了メッセージ |
grad
— 解での勾配
実数ベクトル
解での勾配。実数ベクトルとして返されます。grad
は、点 x(:)
における fun
の勾配を返します。
hessian
— ヘッシアンの近似
実数行列
ヘッシアンの近似。実数行列として返されます。hessian
の意味については、ヘッシアン出力 を参照してください。
HessianApproximation
オプションが "lbfgs"
または {"lbfgs" n}
の場合、返される hessian
は []
です。
データ型: double
詳細
より詳細な終了メッセージ
次のいくつかの項目は、fminunc
から表示される可能性がある、より詳細な終了メッセージをリストしたものです。より詳細な終了メッセージでは、詳細な情報のリンクがメッセージの最初の文として提供されます。
局所的最小値が見つかりました
1 次の最適性の尺度がOptimalityTolerance 許容誤差より小さいため、局所的最小値と思われる点がソルバーで見つかりました。
作業の進め方については、ソルバーが成功する場合を参照してください。
初期点は局所的最小値です
1 次の最適性の尺度がOptimalityTolerance 許容誤差より小さいため、初期点は局所的最小値と思われます。
作業の進め方については、最終点が初期点と等しいを参照してください。
局所的最小値の可能性
ソルバーが局所的最小値に到達した可能性がありますが、1 次の最適性の尺度がOptimalityTolerance 許容誤差より小さくないため、確実ではありません。
作業の進め方については、局所的最小値の可能性を参照してください。
ソルバーが途中で停止しました
目的関数が要求された "許容誤差" に最小化される前に、反復または関数評価の回数が上限に達したため、ソルバーは停止しました。
作業の進め方については、過剰な反復または関数評価を参照してください。
問題が非有界です
ソルバーが達した実行可能点は、目的関数値が ObjectiveLimit
"許容誤差" 以下になっています。問題が非有界か、適切にスケール化されていないか、または ObjectiveLimit
オプションが高すぎます。
作業の進め方については、非有界な問題を参照してください。
競合
'trust-region'
アルゴリズムでは、目的関数に勾配を与え、SpecifyObjectiveGradient
オプションを true
に設定する必要があります。
先に進むには、次のいずれかを行います。
Algorithm
オプションを'quasi-newton'
に設定します。目的関数に勾配があり、
SpecifyObjectiveGradient
オプションがtrue
に設定されていることを確認します。詳細については、勾配とヘッシアンを含めるを参照してください。
終了メッセージの定義
次のいくつかの項目は、fminunc
の終了メッセージに含まれる用語の定義を示したものです。
許容誤差
許容誤差は、一般的に、それを超えた場合にソルバーの反復を停止するしきい値です。許容誤差の詳細については、許容誤差と停止条件を参照してください。
局所的最小値
関数の "局所的" 最小値は、近傍の点の中ではその関数値が最小であっても、離れた点よりも大きい可能性があります。
"大域的" 最小値は、その関数値が他のすべての実行可能点よりも小さい点です。
ソルバーは局所的最小値を探索しようとします。結果は大域的最小値となる可能性があります。詳細については、大域的最適解と局所的最適解を参照してください。
1 次の最適性の尺度
1 次の最適性の尺度は、勾配ベクトルの要素の最大絶対値 (勾配の無限大ノルムとも呼ばれる) です。これは最小化点ではゼロになります。
詳細については、1 次の最適性の尺度を参照してください。
勾配のサイズ
勾配のサイズは、勾配ベクトルの要素の最大絶対値 (無限大ノルムとも呼ばれる) です。これは最小化点ではゼロになります。
詳細については、1 次の最適性の尺度を参照してください。
OptimalityTolerance
OptimalityTolerance
と呼ばれる許容誤差は 1 次の最適性の尺度に対応します。反復計算は、1 次の最適性の尺度が OptimalityTolerance
未満の場合に終了します。
制約なしの問題における 1 次の最適性の尺度は、勾配ベクトルの成分の最大絶対値 (勾配の無限大ノルムとも呼ばれる) です。これは最小化点ではゼロになります。
詳細については、1 次の最適性の尺度を参照してください。
FunctionTolerance
FunctionTolerance
は、目的関数値の直近の変化のサイズに対する許容誤差です。
StepTolerance
StepTolerance
は、最後のステップのサイズの許容誤差、つまり、目的関数が評価された位置での変化のサイズを表します。
現在のステップのノルム
現在のステップのノルムは、目的関数が評価された位置での変化のサイズです。
詳細については、許容誤差と停止条件を参照してください。
目的制限
ソルバーが達した実行可能点は、目的関数値が ObjectiveLimit
"許容誤差" 以下になっています。問題が非有界か、適切にスケール化されていないか、または ObjectiveLimit
オプションが高すぎます。
作業の進め方については、非有界な問題を参照してください。
直線探索区間
直線探索区間は、ソルバーが目的関数の最小化をしようとする探索方向に沿った線分です。この区間が小さすぎると、ソルバーは終了します。ソルバーは、制約なし非線形最適化アルゴリズムで説明されているさまざまなアルゴリズムを使用して、探索方向とこの区間のサイズを計算します。
出力関数またはプロット関数
出力関数 (またはプロット関数) は、ソルバーの反復ごとに 1 回評価されます。これは、ソルバーの進行の過程で多数の最適化量を報告できますが、ソルバーを停止する可能性もあります。
詳細については、Optimization Toolbox の出力関数またはプロット関数を参照してください。
MaxIterations
MaxFunctionEvaluations
探索方向
探索方向とは、ソルバーが改良点を探す方向を示す、現在の点からのベクトルです。Optimization Toolbox™ ソルバーは、制約なし非線形最適化アルゴリズムで説明されているように、さまざまなアルゴリズムを使用して探索方向を計算します。
アルゴリズム
準ニュートン アルゴリズム
既定では、quasi-newton
アルゴリズムは 3 次直線探索手法で BFGS 準ニュートン法を使用します。この準ニュートン法はヘッセ行列の近似を更新するために、BFGS ([1],[5],[8]、[9]) を使用します。HessianApproximation
オプションとして、メモリ消費の少ない BFGS アルゴリズム ("lbfgs"
) を指定することもできます。推奨はされませんが、オプションを 'dfp'
に設定することで、逆ヘッセ行列を近似する DFP ([4]、[6]、および [7]) の公式を指定できます。オプションを 'steepdesc'
に設定することで最急降下法を指定できますが、通常、この設定は効率的ではありません。詳細については、fminunc quasi-newton アルゴリズムを参照してください。
信頼領域法アルゴリズム
trust-region
アルゴリズムでは、optimoptions
を使用して、fun
に勾配を指定し SpecifyObjectiveGradient
を true
に設定する必要があります。このアルゴリズムは部分空間の信頼領域法であり、[2] と [3] で説明する interior-reflective ニュートン法に基づいています。各反復は、前処理付き共役勾配 (PCG) 法を使用する大型線形システムの近似解を伴います。fminunc trust-region アルゴリズム、非線形最小化に対する信頼領域法、および前処理付き共役勾配法 を参照してください。
代替機能
アプリ
[最適化] ライブ エディター タスクが fminunc
にビジュアル インターフェイスを提供します。
参照
[1] Broyden, C. G. “The Convergence of a Class of Double-Rank Minimization Algorithms.” Journal Inst. Math. Applic., Vol. 6, 1970, pp. 76–90.
[2] Coleman, T. F. and Y. Li. “An Interior, Trust Region Approach for Nonlinear Minimization Subject to Bounds.” SIAM Journal on Optimization, Vol. 6, 1996, pp. 418–445.
[3] Coleman, T. F. and Y. Li. “On the Convergence of Reflective Newton Methods for Large-Scale Nonlinear Minimization Subject to Bounds.” Mathematical Programming, Vol. 67, Number 2, 1994, pp. 189–224.
[4] Davidon, W. C. “Variable Metric Method for Minimization.” A.E.C. Research and Development Report, ANL-5990, 1959.
[5] Fletcher, R. “A New Approach to Variable Metric Algorithms.” Computer Journal, Vol. 13, 1970, pp. 317–322.
[6] Fletcher, R. “Practical Methods of Optimization.” Vol. 1, Unconstrained Optimization, John Wiley and Sons, 1980.
[7] Fletcher, R. and M. J. D. Powell. “A Rapidly Convergent Descent Method for Minimization.” Computer Journal, Vol. 6, 1963, pp. 163–168.
[8] Goldfarb, D. “A Family of Variable Metric Updates Derived by Variational Means.” Mathematics of Computing, Vol. 24, 1970, pp. 23–26.
[9] Shanno, D. F. “Conditioning of Quasi-Newton Methods for Function Minimization.” Mathematics of Computing, Vol. 24, 1970, pp. 647–656.
拡張機能
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
並列実行するには、'UseParallel'
オプションを true
に設定します。
options = optimoptions('
solvername
','UseParallel',true)
詳細については、Optimization Toolbox での並列計算の使用を参照してください。
バージョン履歴
R2006a より前に導入R2023b: CheckGradients
オプションは削除予定
CheckGradients
オプションは将来のリリースで削除される予定です。目的関数または非線形制約関数の 1 次導関数を確認するには、関数 checkGradients
を使用します。
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)