matlab에 levenberg-Marquardt 최소 제곱 법을 사용하여 4 개의 알려지지 않은 매개 변수가있는 거대한 함수를 내 데이터에 적합 시키려고합니다. 이 명령을 사용했습니다 :levenberg marquardt 커브 피팅 여러 매개 변수를 사용하는 MATLAB
[x, resnorm]=lsqcurvefit(@myfun1,[-100:100], xdata, ydata, ...
[-inf, -inf, -1.5, -inf], [inf, inf, 1.5, inf], options)
즉, 세 번째 매개 변수를 제한하려고합니다. 그러나 나는이 문제에 직면
??? 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 점 또는 어쩌면 너무 많은 알 수없는 매개 변수가 있기 때문에 내 데이터가 작은 것을 알 수 있다고 생각하지만, 내가 피팅에 대한 네 개의 알 수없는 매개 변수를 잘 생각!
그래서, 어떻게 생각하십니까? MATLAB이이 36 점 데이터에 내 기능을 맞출 수 없다는 뜻입니까?
의견을 보내 주시면 감사하겠습니다.
나는 MATLAB이 단지 36 개의 데이터 포인트로 201 개의 매개 변수에 의해 정의 된 커브에 맞도록 요구 되었기 때문에 에러 메시지라고 생각한다. 다른 말로하면, LM이 할 수없는 방정식만으로는 201 개의 unknow가 있습니다. [-100 : 100]을 [0 0 0 0]과 같이 변경하거나 계산할 수있는 더 합리적인 출발점은 거의 확실하게이 오류를 해결합니다. – Dan
@ Dan 예. 동의합니다. 귀하의 의견에 대한 답변을 가리 키도록 답변을 업데이트했습니다. – mathematician1975