フィルターのクリア

use fsolve with boundaries

85 ビュー (過去 30 日間)
Franziska
Franziska 2013 年 1 月 22 日
Hi,
I wonder if there is a way to use fsolve with boundaries?
I am currently using fsolve for a system of nonlinear equations solving for up to 100 variables. The values I get are ok, but unfortunately not in the bounds I want to look. Is there a way to bound the variables?
Thanks a lot.

採用された回答

Matt J
Matt J 2013 年 1 月 22 日
LSQNONLIN is basically an extension of FSOLVE that allows for upper and lower bounds.
  3 件のコメント
Matt J
Matt J 2013 年 1 月 22 日
編集済み: Matt J 2013 年 1 月 22 日
Yes, clearly each requires different algorithms since FSOLVE addresses unconstrained non-linear least squares while LSQNONLIN addresses constrained nonlinear least squares.
However, surely LSQNONLIN might do better than FMINCON, since FMINCON knows nothing about the least squares structure of the problem at all. Otherwise, why not just use FMINCON for everything?
Shashank Prasanna
Shashank Prasanna 2013 年 1 月 22 日
Other than dogleg, FSOLVE and LSQNONLIN use the same algorithm and are only different in the sense that FSOLVE performs the sum of squares internally. FSOLVE just does not have an interface for constraints but the algorithm is capable of it, in which case the user may revert to LSQNONLIN.
FMINCON was just a suggestion, and as you noted, not the best in this scenario, but my comment was about comparing LSQNONLIN to FSOLVE in-terms of one being an extension of the other.

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

その他の回答 (2 件)

Shashank Prasanna
Shashank Prasanna 2013 年 1 月 22 日
Unfortunately as you mentioned FSOLVE does not do constraints as of currently. As an alternative and with no guarantees as always, you can try to use FMINCON with constraints such that it minimizes the |F(x)| in a least square sense there by forcing each equation to zero. Your mileage may vary.

Franziska
Franziska 2013 年 1 月 23 日
Thanks. - LSQNONLIN works perfect.

カテゴリ

Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by