主要内容

求解方程的基于问题的工作流

请注意

优化工具箱™提供了求解方程的两种方法。介绍基于问题的方法。基于求解器的优化问题设置描述基于求解器的方法。

要解方程组,执行以下步骤。

  • 通过使用创建一个方程问题对象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如果函数计算有一个复杂的值,即使作为中间值,最终结果也可能是不正确的。

有关多项式解方程的基本例子,请参阅求解非线性多项式系统,基于问题。关于一般的非线性例子,请参见解非线性方程组,基于问题。有关更广泛的示例,请参见非线性方程组

另请参阅

||||||

相关的话题