请注意
优化工具箱™提供了求解方程的两种方法。介绍基于问题的方法。基于求解器的优化问题设置描述基于求解器的方法。
要解方程组,执行以下步骤。
通过使用创建一个方程问题对象eqnproblem
。问题对象是定义方程的容器。方程问题对象定义了问题和问题变量中存在的任何边界。
例如,创建一个方程问题。
概率= eqnproblem;
通过使用创建命名变量optimvar
。优化变量是用来描述方程的符号变量。在变量定义中包含任何边界。
例如,创建一个15 × 3的变量数组“x”
下界为0
和上界1
。
x = optimvar (“x”15日3下界的0,“UpperBound”1);
在问题变量中定义方程。例如:
sum(x,2) == 1;prob.Equations.sumeq = sumeq;
请注意
如果你有一个非线性函数,它不是由多项式,有理表达式,初等函数组成的经验值
,然后使用fcn2optimexpr
。看到非线性函数转化为优化表达式和万博1manbetx支持优化变量和表达式的操作。
如果有必要,在你的方程中包含额外的参数作为工作空间变量;看到在基于问题的方法中传递额外参数。
对于非线性问题,设置一个初始点为结构,其字段为优化变量名。例如:
x0。x = randn(大小(x));x0。y =眼睛(4);%假设y是一个4×4变量
使用解决问题解决
。
索尔=解决(问题);或者,对于非线性问题,索尔=解决(x0概率)
除了这些基本步骤之外,您还可以在使用显示
或写
。设置选项解决
通过使用optimoptions
,如更改默认解算器或选项。
警告
基于问题的方法不支持目标函数、非线性等式或非线性不等式中的复数值。万博1manbetx如果函数计算有一个复杂的值,即使作为中间值,最终结果也可能是不正确的。
有关多项式解方程的基本例子,请参阅求解非线性多项式系统,基于问题。关于一般的非线性例子,请参见解非线性方程组,基于问题。有关更广泛的示例,请参见非线性方程组。
eqnproblem
|fcn2optimexpr
|optimoptions
|optimvar
|显示
|解决
|写