Conditioning a matrix with a huge span

3 vues (au cours des 30 derniers jours)
Omar Khalifa
Omar Khalifa le 1 Fév 2021
Commenté : Omar Khalifa le 4 Fév 2021
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 commentaires
Omar Khalifa
Omar Khalifa le 4 Fév 2021
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 le 4 Fév 2021
I solved the issue by scaling all the equations (residuals) by a factor that preserves the resolution of the variables concerned.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by