How to do optimization without any equation required?
Show older comments
Hi All,
I have some experimental data. I would like to do an optimization to find what are the best parameter to get maximum output result.
For an example, below are the surface plot of the experimental data. My target is to do optimization based on this experimental data.

I tried to do neural network by using nntool (the reason because, I don't have any equation available and from my understanding neural network is based on the pattern). However, I could not find any optimization button in the nntool.
Did anyone faced this kind of problem before? Or have any idea what kind of optimization tool that I can use for my case?
Really appreciate any kind of comment.
Thanks in advance.
Regards,
Nur Arafah
2 Comments
Vladimir Sovkov
on 7 Jan 2020
Do you want to just find the maximum value of Z? Or what else do you mean by the optimization?
If this is the case, why not to do it with something like: kMax = find(Z==max(Z)); XMax=X(kMax), YMax=y(kMax); ?
Although, the actual commands depend on the format your your experimental data are kept in...
Jafar Nur Arafah
on 8 Jan 2020
Edited: Walter Roberson
on 8 Jan 2020
Answers (1)
Walter Roberson
on 7 Jan 2020
Edited: Walter Roberson
on 8 Jan 2020
0 votes
For any given finite set of points given to finite precision, there is mathematically the infinity of real numbers of different equations that fit the set exactly . The probability that any one of those equations is the "right" equation is 1/infinity which is precisely zero.
It is not possible for you to do any optimization for fitting unless you restrict yourself to a limited set of forms of equations to work with. For example you could restrict yourself to multinomials in two variables with individual degree no more than 5, and you would be able to try all of those possible models to see which one was best. Looking at your data, it is unlikely that any of those is the "right" answer, but it would be a finite list of models and by going through each of them you could say which was best out of all of the models you tried.
5 Comments
Jafar Nur Arafah
on 8 Jan 2020
Walter Roberson
on 8 Jan 2020
Is the "fitting" that you are referred to is similar to somehting like "Least Square Fitting"?
Yes.
Therefore, I'm not sure if I can use "Least Square Fiiting" for optimization purpose.
Least Squared can give you an idea of how well any particular model fits your data. What it cannot do is tell you which of several competing models is the "right" model.
In order to get an equation from your data, you need to pre-determine what forms of equations are to be tried. Then you try them all one by one, doing a fitting process and gettting back a residue for each one. You then choose one among the models with the lowest residue, not as being the "right" equation, but rather as being the equation that had the best match for your data.
If you do not know what your equation might look like, then there is no possible fitting process on finite data that will give you back "the" equation (this can be proven without much difficulty.)
Jafar Nur Arafah
on 8 Jan 2020
Walter Roberson
on 8 Jan 2020
If you have the Curve Fitting Toolbox, then cftool is useful for exploring potential equations.
Jafar Nur Arafah
on 8 Jan 2020
Categories
Find more on Get Started with Optimization Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!