How to specify tolerance using linsolve ?

4 ビュー (過去 30 日間)
Hugo
Hugo 2014 年 11 月 16 日
コメント済み: Hugo 2014 年 11 月 17 日
Hi,
I have a linear system that I want to solve with Matlab using linsolve. My problem is that the coefficients' range of the system is huge. The minimum coefficient start at e-20 while the max reach 10e25. When I use linsolve, I get a warning telling me "Warning: Rank deficient, rank = 15, tol = 5.2711e+005.". When I use rank on my system, I effectively observe that my system is not full rank. But when I use rank(sys, tol) with a small tol value (~e-15), I obtain a full rank system.
So I suppose that linsolve choose a tolerance that is to high for my system and my question is if there exists a way to specify a tolerance value to linsolve in ordre to solve system with a high range of coefficients.
Thanks

採用された回答

pietro
pietro 2014 年 11 月 16 日
It is strongly suggested to normalize your design variables, contraints and so on in order to have a similar variation of the gradient and lagragian functions. Please post your problem and I will help you
  3 件のコメント
pietro
pietro 2014 年 11 月 16 日
well the design variables may be scaled in this way:
(x-lb)./(ub-lb)
where x is the array with the design variables, ub the array with upper bounds and lb is the array with lower bounds
Hugo
Hugo 2014 年 11 月 17 日
Thanks for your help, normalization indeed solve my problem.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeParticle & Nuclear Physics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by