Limiting the sensitivity of initial guess in NLS Optimizati​on/lsqnonl​in/fmincon

9 vues (au cours des 30 derniers jours)
Hello everyone... If you'd like to take a look at my code/data I have it attatched here, but certainly not necessary.
For a little bit of background, I am using NLS functions in matlab, namely solvers lsqnonlin and fmincon, in combination with multistart and globalSearch (my models with nonlinear constraints), to fit a data set to hyper-elastic constitutive models. These are models that range from 1 to 6 parameters that I am solving for.
My optimizations are working perfectly, the only slight problem is sensitivity to the initial guess. I figured that the use of MultiStart/GlobalSearch would help to decrease this sensitivity tenfold, which it does, but does not completely eliminate the problem at hand. I was wondering if you all had any ideas on how I could completely eliminate sensitivity to initial guess (running all possible starting points, although not possible, is the only solution that comes to my mind). As of now I am using default settings in both MultiStart and GlobalSearch, and even fmincon and lsqnonlin(using ub,lb, and nonclon in some models), perhaps I could tweak these settings? Essentially my question is how can I maximize the chances that I am finding the global minimum rather than a number of local minima.
In summary, what do you all think I could implement in order to make sensitivty to initial guess as small as possible.
(Another idea of mine, I have noticed that plugging in previously calculated answers for the initial guess leads to decreasing fvals in consecutive trials so, perhaps running a for loop that swaps the calculated answer to the initial guess)
Let me know what you all think of this.... not looking for anything specific but simply a discussion about the topic or references to learn more.
I appreciate all the help, and enjoy the weekend!
  1 commentaire
Reed
Reed le 8 Juil 2022
Modifié(e) : Reed le 8 Juil 2022
Also, sorry I have a lot of thoughts about this atm,but for MultiStart the trial of points is randomly selected from a uniform distribution. Does this have any relation to the initial guess? If so, are there ways of broadening this range from just this single distribution.
In addition, to my understandsting, GlobalSearch will first run fmincon at my x0 and then use a scatter algorithm to generate new trial points, thereby doing the process again. Is there a way to broaden this scatter, or am I just speaking nonsense at this point.....
Thankyou all!

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 8 Juil 2022
Modifié(e) : Matt J le 8 Juil 2022
For every fixed choice of c4,c5,c6 your optimization problem reduces to a linearly constrained least squares sub-problem, solvable by lsqlin(). The sub-problem is convex and has no sub-optimal local minima. Therefore, you could do a sweep over a 3D search grid of [c4,c5,c6] triplets, solve the subproblem at each point, and tabulate a 3D array of the optimal objective values associated with each point. The global minimum can then be approximately located by applying min() to the 3D array.
  2 commentaires
Matt J
Matt J le 8 Juil 2022
Modifié(e) : Matt J le 8 Juil 2022
Also, you should probaby impose the condition c4<=c5<=c6 to get rid of duplicate solutions. Obviously, in your model if c4=A,c5=B,c6=C is a global optimal solution, then any permutation such as c4=B,c5=A,c6=C will also be a global solution (with the corresponding values of c1,c2,c3 permuted accordingly).
Reed
Reed le 11 Juil 2022
Modifié(e) : Reed le 11 Juil 2022
Hey, thanks I appreciate the answer. I too thought about the duplicate solutions and am working on implementing it now....... For the former, that all sounds well and good but I'll have to brainstorm on how exactly to do that haha. I am very, very new to matlab so some of those functions needed may be a little bit of a mystery to me.
I appreciate the fresh idea though.
Take care

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Global or Multiple Starting Point Search dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by