Is there any way to exclude the complex values of the iterations with lsqnonlin ?
조회 수: 7 (최근 30일)
이전 댓글 표시
채택된 답변
Matt J
2014년 9월 16일
편집: Matt J
2014년 9월 16일
Just to be clear, the complex numbers are being introduced by the objective function that you have provided, not code elsewhere in lsqnonlin.
Make sure that your objective is not executing expressions like log(z) for negative z and similar things like that. If you have regions like that where the objective function is undefined, you should set the value there to NaN or Inf and you should probably use fmincon to do the optimization instead, with the sqp algorithm. The sqp algorithm has the capability of course-correcting when it strays into regions of NaNs or Infs in the objective or constraints.
댓글 수: 4
추가 답변 (1개)
Jurgen
2014년 11월 15일
편집: Jurgen
2014년 11월 15일
댓글 수: 2
Matt J
2014년 11월 15일
편집: Matt J
2014년 11월 15일
I don't see how you would have tried any of those. lsqnonlin doesn't handle nonlinear inequalities while Newton Raphson doesn't support inequality constraints of any kind.
Any of the fmincon formulations, using the sqp algorithm, that we were discussing should work, so long as a solution does indeed, exist. If an exact solution doesn't exist, you will have to compromise and accept a least squares solution. In that case, you need to decide which of your equations/inequalities need to be exactly satisfied and which you can relax.
참고 항목
카테고리
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!