当目标函数返回NaN时,如何停止并获取fsolve的猜测

时间:2015-07-10 02:18:29

标签: matlab nan

我正在使用contentinject.js求解方程组。有时fsolve会警告我,目标函数返回fsolve并尝试新点。我想弄清楚我的等式在生成警告时如何传递NaN特定的猜测fsolve put。有没有办法在那时停止fsolve并获得猜测值?

我尝试了NaN,但它没有多大帮助,因为我的函数中有一些位置会生成等于dbstop if naninfNaN的中间变量。我很困惑为什么方程最终返回Inf

2 个答案:

答案 0 :(得分:0)

如果您有大量迭代,它不是最佳的,但您可以设置Display fsolve选项以在每次迭代后显示参数:

options = optimoptions('fsolve','Display','iter');
[x,fval] = fsolve(@fun,x0,options)

答案 1 :(得分:0)

感谢上述答案,但他们并没有真正解决我的问题。我刚刚提出了一个简单的修复:检查函数中的输出是否包含NaN;如果是,请使用全局变量检索参数值并生成错误。