笔记
优化工具箱™提供了两种求解方程的方法。本主题描述了基于问题的方法。基于求解器的优化问题设置描述了基于求解器的方法。
要解决方程系统,请执行以下步骤。
通过使用创建等式问题对象eqnproblem.
。问题对象是您定义方程的容器。等式问题对象定义问题变量中存在的问题和存在的任何界限。
例如,创建等式问题。
prob = eqnproblem;
使用使用创建命名变量优越的
。优化变量是用于描述方程式的符号变量。在变量定义中包含任何界限。
例如,创建一个名为的15×3阵列变量'X'
下限0.
和上限1
。
x = Optimvar('X',15,3,'indowbound',0,'上行',1);
在问题变量中定义方程。例如:
sumeq = sum(x,2)== 1;prob.equation.sumeq = sumeq;
笔记
如果您有一个非线性函数,则不由多项式,Rational表达式和诸如的基本功能组成exp.
,然后通过使用将函数转换为优化表达式FCN2Optimexpr.
。看将非线性函数转换为优化表达式和金宝app在优化变量和表达式上支持的操作。
如有必要,将方程中的额外参数作为工作空间变量。看通过基于问题的方法传递额外参数。
对于非线性问题,将初始点设置为一个结构,其字段是优化变量名称。例如:
x0.x = randn(size(x));x0.y =眼睛(4);%假设y是一个4×4变量
通过使用解决问题解决
。
sol =解决(prob);%或,对于非线性问题,sol =解决(prob,x0)
除了这些基本步骤外,您还可以通过使用解决问题之前查看问题定义表演
或者写
。设置选项解决
通过使用优化选择
,如下所述更改默认求解器或选项。
警告
基于问题的方法不支持客观函数,非线性等分或非线性不等式中的复杂值。金宝app如果函数计算具有复数,甚至作为中间值,最终结果也可能不正确。
对于具有多项式的基本等式求解示例,请参阅解决多项式的非线性系统,基于问题。对于一般的非线性示例,请参阅解决方程的非线性系统,基于问题。对于更广泛的例子,请参阅非线性方程系统。
eqnproblem.
|FCN2Optimexpr.
|优化选择
|优越的
|表演
|解决
|写