このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
次の非線形方程式系を解きます。
問題ベースのアプローチを使用する場合は,まずx
を2要素の最適化変数として定義します。
x = optimvar (“x”2);
最初の方程式を最適化等式として作成します。
eq1 = exp (exp (- x (x (1) + (2)))) = = x (2) * (1 + x (1) ^ 2);
同様に2番目の方程式も最適化等式として作成します。
方程2 = x(1)*cos(x(2)) + x(2)*sin(x(1)) = 1/2;
方程式問題を作成し,方程式を問題に配置します。
概率= eqnproblem;prob.Equations。eq1 = eq1;prob.Equations。eq2 = eq2;
問題を確認します。
显示(概率)
EquationProblem:解:x eq1: exp (exp (- x (x (1) + (2)))) = = (x (2) * (1 + x (1) ^ 2)) eq2: ((x(1)。* cos (x (2))) + (x(2)。* sin (x (1)))) = = 0.5
点(0,0)
から始めて問題を解きます。問題ベースのアプローチの場合,初期点を構造体として指定します。変数名は構造体のフィールドとします。この問題の変数はx
の1つしかありません。
x0。x=[0 0]; [sol,fval,exitflag] = solve(prob,x0)
用fsolve解决问题。方程解决。Fsolve完成了,因为函数值的向量接近零(通过函数容差值测量),并且问题出现了规则(通过梯度测量)。
索尔=结构体字段:x (2 x1双):
fval =结构体字段:e1: -2.4069e-07 e2: -3.8253e-08
exitflag = EquationSolved
解の点を表示します。
disp (sol.x)
0.3532 - 0.6061
fcn2optimexpr
を必要とするサポートされていない関数方程式の関数が初等関数で構成されていない場合,fcn2optimexpr
を使用して,その関数を最適化式に変換しなければなりません。次に例を示します。
ls1 = fcn2optimexpr (@ (x) exp (exp (- x (x (1) + (2)))), x);方程1 = ls1 == x(2)*(1 + x(1)^2);ls2 = fcn2optimexpr (@ (x) x (1) * cos (x (2)) + x (2) * sin (x (1)), x);eq = ls2 == 1/2;
詳細は,最適化変数および式でサポートされる演算と非線形関数から最適化式への変換を参照してください。