このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
メモ
优化工具箱™には,方程式を解くためのアプローチが2通りあります。このトピックでは,問題ベースのアプローチについて説明します。ソルバーベースの最適化問題の設定では,ソルバーベースのアプローチについて説明しています。
方程式系を解くには,以下の手順を実行します。
eqnproblem
を使用して,方程式問題オブジェクトを作成します。問題オブジェクトは,方程式を定義するコンテナーです。方程式問題オブジェクトは,問題と,問題変数に存在する範囲を定義します。
例として,方程式問題を作成します。
概率= eqnproblem;
optimvar
を使用して,名前付き変数を作成します。最適化変数は,方程式を記述するために使用するシンボリック変数です。変数定義に範囲を含めます。
たとえば,“x”
という名前の変数の15行3列の配列を作成し,下限を0
上,限を1
とします。
x = optimvar (“x”15日3下界的0,“UpperBound”1);
問題変数の方程式を定義します。以下に例を示します。
Sumeq = sum(x,2) == 1;prob.Equations.sumeq = sumeq;
メモ
多項式,有理式,および初等関数(经验值
など)で構成されていない非線形関数がある場合は,その関数をfcn2optimexpr
を使用して最適化式に変換します。詳細は,非線形関数から最適化式への変換と最適化変数および式でサポートされる演算を参照してください。
必要に応じて,方程式にワークスペース変数として追加のパラメーターを含めます。問題ベースのアプローチでの追加パラメーターの受け渡しを参照してください。
非線形問題の場合,フィールドが最適化変数名となっている構造体として,初期点を設定します。以下に例を示します。
x0。x = randn(大小(x));x0。y =眼睛(4);%假设y是一个4 × 4的变量
解决
を使用して問題を解きます。
索尔=解决(问题);或者,对于非线性问题,索尔=解决(x0概率)
これらの基本的な手順に加え,显示
または写
を使用して,問題を解く前に問題定義を確認することができます。既定のソルバーまたはオプションの変更で説明されているように,optimoptions
を使用して解决
のオプションを設定します。
警告
問題ベースのアプローチでは,目的関数,非線形等式,または非線形不等式における複素数値をサポートしていません。関数の計算に複素数値が含まれていると,それが中間値としてであっても,最終結果が不正確になる場合があります。
多項式を使用した基本的な方程式の解法の例については,非線形多項式系の解法,問題ベースを参照してください。一般的な非線形の例については,非線形方程式系の解法,問題ベースを参照してください。より広範囲な例については,非線形方程式系を参照してください。
fcn2optimexpr
|optimvar
|解决
|optimoptions
|eqnproblem
|显示
|写