复杂的数字优化工具箱解决者
一般来说,优化工具箱™解决者不接受或处理与复杂目标函数或约束值。然而,解决最小二乘lsqcurvefit
,lsqnonlin
,lsqlin
,fsolve
解算器可以处理这些目标函数下以下限制:
目标函数必须分析在复杂函数(详情,请参阅Nevanlinna和Paatero感[1])。例如,函数f(z)= Re (z)- - -我即时通讯(z)不是分析,但功能f(z)= exp (z)是分析。适用于自动这一限制
lsqlin
。必须没有约束,没有界限。复数不是命令,因此目前还不清楚“界限”可能意味着什么。当有问题,解决非线性最小二乘不允许步骤导致复杂的值。
不设置FunValCheck选项
“上”
。这个选项立即停止解决当解算器遇到一个复杂的价值。不使用
“内点”
算法的lsqcurvefit
或lsqnonlin
。算法主要是处理约束,没有使用复杂的值进行验证。
警告
具体问题具体分析的方法不支持复杂的值在一个目标函数,非线性等式,或非线性金宝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年。