Multistart lsqcurvefit with parallel processing on produces an error
5 ビュー (過去 30 日間)
古いコメントを表示
so I have a lsqcurvefit problem defined with a function and I run it with MultiStart to get a global minimum. Everything works perfectly fine if I have "useparallel" disabled. problem=createOptimProblem('lsqcurvefit','x0',x0,'objective',@myfunction,... 'lb',lb,'ub',ub,'xdata',xdata,'ydata',ydata,'options',options);
However, when I try parallel processing it gives me the error: "Attempted to access x0(1); index out of bounds because numel(x0)=0." x0 contains the parameters of my function to fit (which is a separate .m file). Apparently the input variables of my function are not available in the matlab workers. I tried to make x0 a global variable, but then I have the problem that the local values during fitting keep getting changed back to the global start value...
3 件のコメント
Matt J
2013 年 3 月 31 日
I could imagine that it gets confused to run the function file multiple times with multiple values for the same variable name x0
I can't imagine that. It's the whole point of MultiStart. You'll have to show more code or we'll just be guessing.
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Systems of Nonlinear Equations についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!