ヘルプセンターヘルプセンター
ソルバーベースのインデックスへ问题変数のマッピング
idx = varindex(prob)
idx = varindex(prob,varname)
例
IDX= varindex(概率)は,の线形を构造体整数としてとしてますます。prob2structを使用して概率を问题体に変换,,IDXは结果られる构造体に変数インデックスします。この问题は概率の変数対応します。
IDX= varindex(概率)
IDX
概率
prob2struct
IDX= varindex(概率,,,,varname)は,varnameの要素线形インデックスを。。
IDX= varindex(概率,,,,varname)
varname
すべて折りたたむ
最适化を作成し。。
x = optimvar('X',3);y = optimvar('y',3,3);prob = optimproblem('客观的',x'*y*x);
问题を体に変换。。
问题= prob2struct(prob);
すべての概率変数の问题で线形を取得し。。
问题
idx = varindex(prob);disp(idx.x)
1 2 3
disp(idx.y)
4 5 6 7 8 9 10 11 12
yインデックスのみ取得します。
y
idxy = varindex(prob,'y')
idxy =1×94 5 6 7 8 9 10 11 12
このはベースのまたはソルバーベースのを使用し情报情报の大部分大部分をを取得取得するする方法を示しますます。,,问题を作成作成
x = optimvar('X',3,1,“下界”,1,“上行”,1);y = optimvar('y',3,3,“下界”,-1,“上行”,1);prob = optimproblem('客观的',x'*y*x + [2 3 4]*x);RNG默认x0.x = rand(3,1);x0.y = rand(3,3);[SOLP,FVALP,EXITFLAGP,outputp] = solve(prob,x0);
使用Fmincon解决问题。当地最低限度发现满足约束。之所以完成优化,是因为目标函数在可行的方向,最优性公差值之内不折叠,并且在约束公差的值之内满足了约束。
次に,prob2structを使用この问题ソルバーベース形式にし。。。Fminconソルバーがで勾配使用するようするには,指定目标gradientオプションを真的に设定し。
Fmincon
指定目标gradient
真的
solverProb = prob2struct(prob,x0);solverprob.options = optimoptions(solverprob.options,“指定对象级”,真的);
Fminconを使用て,を解きます。
[SOL,FVALS,EXITFLAGS,输出] = Fmincon(SolverProb);
当地最低限度发现满足约束。之所以完成优化,是因为目标函数在可行的方向,最优性公差值之内不折叠,并且在约束公差的值之内满足了约束。
Fminconの解を,解决によって返さた体形式変换するには,Varindexを使用てな构造を作成します。
解决
Varindex
idx = varindex(prob);sol.x = sols(idx.x);sol.y = sols(idx.y);
Varindexが使用するyインデックスはインデックスです。ががx0.yになるように変数sol.yを形状変更ます。
x0.y
sol.y
sol.y = reshape(sol.y,size(x0.y));
2つの构造が完全一致しいるか确认し。。
匹配(SOL,SOLP)
ans =逻辑1
2つアプローチに同等ではないの,,Fminconは解决とは违い乘数など引数を多くから。。。
优化问题
方程问题
最适化または方程式问题。优化问题オブジェクトまたは方程问题オブジェクトとしてします最适化问题は最佳问题を使用て作成,方程式问题はeqnproblemを使用て作成し。。
最佳问题
eqnproblem
警告
ベースのは目的关数,非线形等式,または不等不等式式におけるにおける复素复素复素数値数値をししてていいませません。。关数のの计算计算计算计算复素数値数値数値数値含ま含ま含まれれれれれ结果が正确なる场合があり。。
例:prob = optimproblem;prob.Objective = obj;prob.constraints.cons1 = cons1;
prob = optimproblem;prob.Objective = obj;prob.constraints.cons1 = cons1;
例:prob = eqnproblem;prob.equations = eqs;
prob = eqnproblem;prob.equations = eqs;
変数名文字またはまたはまたはとして指定します。。
例:'X'
'X'
データ::char|细绳
char
细绳
问题変数线形构造体または整数として返されます。prob2structを使用して概率を问题体に変换,,IDXは结果られる构造体に変数インデックスします。この问题は概率の変数対応します。
idx = varindex(prob)を呼び出す场合返されるIDXは构造です构造体のフィールドはは概率の変数各フィールドのははられソルバーベースソルバーベースの问题変数で変数によるによるマッピングが行わ行われる线形线形线形インデックスインデックス
idx = varindex(prob,varname)を呼び出す场合返されるIDXは,付けたソルバーベース问题変数で変数varnameによるマッピング行わ线形インデックスのベクトル。。
详细は,问题インデックスの取得を参照しください。
优化问题|prob2struct|方程问题
この例さたバージョンがます编集さた方のの例を开き开きます?
Matlabコマンドコマンドにするがクリックされまし。。
matlabコマンドコマンドに入力してしください。。。。ブラウザー
选择一个网站以获取可用的翻译内容,并查看本地事件和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。
联系您当地的办公室