主要内容

复数中的数字优化工具箱求解器

通常,优化工具箱™求解器不接受或处理具有复杂值的目标函数或约束。但是,最小二乘求解器lsqcurvefit,,,,LSQNONLIN, 和LSQLIN,和FSOLVE求解器可以在以下限制下处理这些目标功能:

  • 目标函数必须在复杂的函数意义上进行分析(有关详细信息,请参见Nevanlinna和Paatero[1])。例如,功能F((z)= Re(z) -一世我是(z不是分析,而是功能F((z)= exp(z是分析性的。此限制自动适用于LSQLIN

  • 一定没有约束,甚至没有界限。复数的排序不好,因此尚不清楚“界限”可能意味着什么。当存在问题范围时,非线性最小二乘求解器不允许步骤导致复杂的值。

  • 不要设置funvalcheck选项'上'。当求解器遇到复杂的值时,此选项会立即停止求解器。

警告

基于问题的方法不支持目标函数,非线性平等或非线性不等式中的复杂值。金宝app如果函数计算具有复杂的值,即使是中间值,则最终结果可能是不正确的。

最小二乘的求解器和FSOLVE尝试最小化功能值向量的平方规范。即使存在复杂的价值,这也有意义。

如果您具有非分析功能或约束,则将问题的真实和虚构部分分开。例如,请参阅将模型适合复杂值数据

要获得最好的(最小规范)解决方案,请尝试设置一个复杂的初始点。例如,解决1 +X4= 0如果使用真实的起点,则会失败:

f = @(x)1+x^4;x0 = 1;x = fsolve(f,x0)
找不到解决方案。FSOLVE停止了,因为该问题似乎是按梯度测量的规则,但是函数值的向量并不是由函数公差的默认值测量的接近零。X = 1.1176E-08

但是,如果使用复杂的初始点,FSOLVE成功:

x0 = 1 + 1i/10;x = fsolve(f,x0)
方程解决了。FSOLVE完成了,因为函数值的向量接近零,如函数公差的默认值所测量,并且该问题似乎是定期的,如梯度所测量。x = 0.7071 + 0.7071i

参考

[1] Nevanlinna,Rolf和V. Paatero。复杂分析简介。Addison-Wesley,1969年。

相关话题