Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

show

最適化オブジェクトの情報表示

構文

説明

show を使用して、最適化オブジェクトに関する情報を表示します。

ヒント

完全なワークフローについては、問題ベースの最適化ワークフローまたは方程式を解くための問題ベースのワークフローを参照してください。

show(obj) は、obj についての情報をコマンド ラインに表示します。オブジェクトの表示内容が多い場合は、代わりに write を使用して情報をテキスト ファイルで保存することを検討してください。

すべて折りたたむ

単位円板に限定された Rosenbrock 関数を最適化するための問題作成における、さまざまな段階を検証します (制約付き非線形問題の解法、問題ベースを参照)。

2 次元最適化変数 x を作成します。変数を表示します。

x = optimvar('x',2);
show(x)
    [ x(1) ]
    [ x(2) ]

目的関数用に式を作成します。式を表示します。

obj = 100*(x(2) - x(1)^2)^2 + (1 - x(1))^2;
show(obj)
  ((100 .* (x(2) - x(1).^2).^2) + (1 - x(1)).^2)

制約用に式を作成します。制約を表示します。

cons = x(1)^2 + x(2)^2 <= 1;
show(cons)
  (x(1).^2 + x(2).^2) <= 1

obj を目的関数とし、cons を制約とする最適化問題を作成します。問題を表示します。

prob = optimproblem("Objective",obj,"Constraints",cons);
show(prob)
  OptimizationProblem : 

	Solve for:
       x

	minimize :
       ((100 .* (x(2) - x(1).^2).^2) + (1 - x(1)).^2)


	subject to :
       (x(1).^2 + x(2).^2) <= 1
     

最後に、初期点 [0 0] を作成し、この初期点から始めて問題を解きます。

x0.x = [0 0];
[sol,fval,exitflag] = solve(prob,x0)
Solving problem using fmincon.

Local minimum found that satisfies the constraints.

Optimization completed because the objective function is non-decreasing in 
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the value of the constraint tolerance.
sol = struct with fields:
    x: [2x1 double]

fval = 0.0457
exitflag = 
    OptimalSolution

解の点を検証します。

sol.x
ans = 2×1

    0.7864
    0.6177

入力引数

すべて折りたたむ

最適化オブジェクト。以下のいずれかとして指定します。

  • OptimizationProblem オブジェクト — show(obj) は、解の変数、目的関数、制約、変数の範囲を表示します。

  • EquationProblem オブジェクト — show(obj) は、解の変数、求解する方程式、変数の範囲を表示します。

  • OptimizationExpression オブジェクト — show(obj) は最適化式を表示します。

  • OptimizationVariable オブジェクト — show(obj) は最適化変数を表示します。この表示では、変数の型や範囲は示されず、変数の次元とインデックス名 (存在する場合) のみが示されます。

  • OptimizationConstraint オブジェクト — show(obj) は制約式を表示します。

  • OptimizationEquality オブジェクト — show(obj) は等式を表示します。

  • OptimizationInequality オブジェクト — show(obj) は不等式を表示します。

R2019b で導入