Main Content

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

evaluate

説明

evaluate を使用して、ある点における最適化式の数値を求めます。

ヒント

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

val = evaluate(expr,pt) は、値 pt での最適化式 expr の値を返します。

すべて折りたたむ

2 変数の最適化式を作成します。

x = optimvar('x',3,2);
y = optimvar('y',1,2);
expr = sum(x,1) - 2*y;

点で式を評価します。

xmat = [3,-1;
    0,1;
    2,6];
sol.x = xmat;
sol.y = [4,-3];
val = evaluate(expr,sol)
val = 1×2

    -3    12

線形計画問題を解きます。

x = optimvar('x');
y = optimvar('y');
prob = optimproblem;
prob.Objective = -x -y/3;
prob.Constraints.cons1 = x + y <= 2;
prob.Constraints.cons2 = x + y/4 <= 1;
prob.Constraints.cons3 = x - y <= 2;
prob.Constraints.cons4 = x/4 + y >= -1;
prob.Constraints.cons5 = x + y >= 1;
prob.Constraints.cons6 = -x + y <= 2;

sol = solve(prob)
Solving problem using linprog.

Optimal solution found.
sol = struct with fields:
    x: 0.6667
    y: 1.3333

解での目的関数の値を求めます。

val = evaluate(prob.Objective,sol)
val = -1.1111

入力引数

すべて折りたたむ

最適化式。OptimizationExpression オブジェクトとして指定します。

例: expr = 5*x+3 (xOptimizationVariable)

式の変数の値。構造体として指定します。構造体 pt の要件は以下のとおりです。

  • expr のすべての変数が pt のフィールド名と一致する。

  • 一致するフィールド名の値が数値である。

たとえば、pt を、solve によって返される最適化問題の解にすることができます。

例: pt.x = 3, pt.y = -5

データ型: struct

出力引数

すべて折りたたむ

式の数値。double 型として返されます。

警告

問題ベースのアプローチでは、目的関数、非線形等式、または非線形不等式における複素数値をサポートしていません。関数の計算に複素数値が含まれていると、それが中間値としてであっても、最終結果が不正確になる場合があります。

バージョン履歴

R2017b で導入