Is there any way to exclude the complex values ​​of the iterations with lsqnonlin ?

6 ビュー (過去 30 日間)
Jurgen
Jurgen 2014 年 9 月 16 日
コメント済み: Jurgen 2014 年 11 月 15 日
I'm using lsqnonlin to solve a non linear system, and my solution must be real, so I wanted to know if I could exclude complex iterations so as to make more efficient the search.
Thanks in advance!

採用された回答

Matt J
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 件のコメント
Jurgen
Jurgen 2014 年 11 月 11 日
編集済み: Matt J 2014 年 11 月 12 日
In my case I have a system of equations (without objective function), it enough to put zero in the part of the objective function?
fmincon(0,x0,[],[],[],[],lb,ub,nonlcon,options)
Matt J
Matt J 2014 年 11 月 12 日
編集済み: Matt J 2014 年 11 月 12 日
I don't know why you would do that. If your equations have an exact solution, then using a least squares objective function should find it. However, you can also replace bad values returned by nonlcon with nans or infs in a similar manner.

サインインしてコメントする。

その他の回答 (1 件)

Jurgen
Jurgen 2014 年 11 月 15 日
編集済み: Jurgen 2014 年 11 月 15 日
I'm a little confused now. Just to be clear, I need to solve a system containing non-linear equations and inequalities. Considering this I have two questions:
1) What is the best way to solve my system ?. I have tried lsqnonlin, Newton-Raphson and now I'm trying with fmincon.
2) Newton-Raphson and lsqnonlin solve it, but gives me complex numbers, which is useless for me.
Thanks a lot Matt!
  2 件のコメント
Matt J
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.
Jurgen
Jurgen 2014 年 11 月 15 日
Forget explain that. I use a gap, for example if I wanted X> Y, what I did was put Y-X + H = 0 with H greater than or equal to zero.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSolver-Based Nonlinear Optimization についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by