Matlabのlevenberg-Marquardt最小二乗法を使用して、4つの未知のパラメーターを持つ巨大な関数をデータに適合させようとしています。私はこのコマンドを使用しました:
[x, resnorm]=lsqcurvefit(@myfun1,[-100:100], xdata, ydata, ...
[-inf, -inf, -1.5, -inf], [inf, inf, 1.5, inf], options)
つまり、3番目のパラメーターを制約することに関心があります。しかし、私はこの問題に直面しています:
??? Error using ==> lsqncommon at 102
Levenberg-Marquardt and Gauss-Newton algorithms do not handle bound constraints and trust-region-reflective algorithm
requires at least as many equations as variables; aborting.
Error in ==> lsqcurvefit at 258
[xCurrent,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
このエラーは、36ポイントであるか、不明なパラメーターが多すぎるため、データが小さいことを示していると思いますが、フィッティング用の4つの不明なパラメーターは問題ないと思います。
では、MATLABが私の関数をこの36ポイントのデータに適合させることができないということですか?
コメントをいただければ幸いです。