Conditioning a matrix with a huge span

1 回表示 (過去 30 日間)
Omar Khalifa
Omar Khalifa 2021 年 2 月 1 日
コメント済み: Omar Khalifa 2021 年 2 月 4 日
I have a function with 11 variables and I am solving it using fsolve. I am providing initial guesses for these variables as following:
initial_guess=[230000,965820,0.77,0.12,1e-16,1e-16,0.03,0.3,40,40000,342]
The difference is huge between the smallest and largest element in this array. I tried to scale the values using rescale funtion, yet I would have a problem with my function as I call an executive file that runs some calculations, and that needs to use the unscaled values.
The 11 equations in my function have some of the sparsed variables multiplied by each other, for example, variable 1 (230000) is multiplied by variable 4 (0.12), which is fine as the resolution of the number is not lost. Yet, other equations would multiply two small numbers (say 0.3 and 0.03), in which its resolution is lost when compared to the multi-digit number in the same equation.
How can overcome this problem?
Appreciate your inputs.
  3 件のコメント
Omar Khalifa
Omar Khalifa 2021 年 2 月 4 日
Pardon the sketchy description of the problem space. The 11 equations in my function have some of the sparsed variables multiplied by each other, for example, variable 1 (230000) is multiplied by variable 4 (0.12), which is fine as the resolution of the number is not lost. Yet, other equations would multiply two small numbers, in which its resolution is lost when compared to the multi-digit number in the same equation.
Omar Khalifa
Omar Khalifa 2021 年 2 月 4 日
I solved the issue by scaling all the equations (residuals) by a factor that preserves the resolution of the variables concerned.

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

回答 (0 件)

カテゴリ

Help Center および File ExchangeMathematics and Optimization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by