|
Hello all,
I working with the nonlinear solver lsqnonlin in order to solve a
nonlinear equation system f(x)-g(x) = 0. There two different types of
equations in this system, ie. f1(x)-g1(x) and f2(x)-g2(x). The
absolute values of the f and g are very different for these two types.
The first ist about 1 and the other in the range of 1*10-6. This means
that although I have quite good starting values, the values of the two
equations f1(x0)-g1(x0) and f2(x0)-g2(x0) are extremly differing by
many orders of magnitude. Because of that, lsqnonlin is only
optimizing the first equations with the larger values in the beginning
and more or less ignoring the second type of equations. Therefore the
results are often wrong.
My first idea was to scale the second equations to the same range as
the first ones. This should not change the results. But performing
such a manual preconditioning of the system ist difficult and often
does not lead to a proper solution. Do you have any suggestions how
one may automaticly determine a proper preconditioning of the
nonlinear system in order to force the solver lsqnonlin to weight all
equations in the same way?
Thank you very much for any suggestions!
Ralf
|