主要内容

复杂的数字优化工具箱解决者

一般来说,优化工具箱™解决者不接受或处理与复杂目标函数或约束值。然而,解决最小二乘lsqcurvefit,lsqnonlin,lsqlin,fsolve解算器可以处理这些目标函数下以下限制:

  • 目标函数必须分析在复杂函数(详情,请参阅Nevanlinna和Paatero感[1])。例如,函数f(z)= Re (z)- - -即时通讯(z)不是分析,但功能f(z)= exp (z)是分析。适用于自动这一限制lsqlin

  • 必须没有约束,没有界限。复数不是命令,因此目前还不清楚“界限”可能意味着什么。当有问题,解决非线性最小二乘不允许步骤导致复杂的值。

  • 不设置FunValCheck选项“上”。这个选项立即停止解决当解算器遇到一个复杂的价值。

  • 不使用“内点”算法的lsqcurvefitlsqnonlin。算法主要是处理约束,没有使用复杂的值进行验证。

警告

具体问题具体分析的方法不支持复杂的值在一个目标函数,非线性等式,或非线性金宝app不等式。如果一个函数计算具有复杂的价值,即使作为一个中间值,最终结果可能是不正确的。

解决最小二乘和fsolve尽量少的向量函数的平方规范值。这是有意义的,即使在复杂的存在价值。

如果你有一个non-analytic函数或约束,分裂问题的实部和虚部。例如,看到的适合一个复数的数据模型

得到最好的(最小的标准)的解决方案,尽量设置复杂的初始点。例如,解决1 +x4= 0失败如果你使用一个真正的起点:

f = @ (x) 1 + x ^ 4;x0 = 1;x = fsolve (f, x0)
没有找到解决方案。fsolve停止,因为问题出现普通的梯度,但函数值不是接近零的向量以默认值函数的宽容。x = 1.1176 e-08

然而,如果您使用一个复杂的初始点,fsolve成功:

x0 = 1 + 1 i / 10;x = fsolve (f, x0)
方程解决。fsolve完成因为函数值接近于零的向量以默认值函数的宽容,问题出现普通的梯度。我x = 0.7071 + 0.7071

引用

[1]Nevanlinna,罗尔夫,诉Paatero。介绍了复杂的分析。addison - wesley, 1969年。

相关的话题