From: Andrey Orlov on
Hello,

I need to maximize a vector of 1D scalar functions (so to get a vector of variables that maximize corresponding elements of this vector of functions). As far as I know /fminbnd/ can only work with scalar functions.

So, what's the possible solution to my problem?
From: Andrey Orlov on
I mean, I've got a vector-function of one variable: F(x) = (f1(x), ..., fn(x))' where x is a real number. My problem is that I need to attain (x1, ..., xn)' where xj is a maximum of fj(x) over some interval (a,b).
From: Andrey Orlov on
For example, F(x) = (f1(x), f2(x))', f1(x) = x^4 - x^3 + 4, f2(x) = x^8-x^10+x^5+100, (a,b) = (-30,30). I want to avoid using iterations if it's possible.

For my real computation number of those functions fj(x) equals 400....
From: Andrey Orlov on
For example, F(x) = (f1(x), f2(x))', f1(x) = x^4 - x^3 + 4, f2(x) = x^8-x^10+x^5+100, (a,b) = (-30,30). I want to avoid using iterations if it's possible.

For my real computation number of those functions fj(x) equals 400....
From: James Allison on
This is a multiobjective optimization problem, which cannot be solved
directly by any MATLAB optimization function except gamultiobj. You
either need to aggregate the components of F into a single objective
function (such as least squares, a weighted sum, etc.), or you need to
use a multiobjective optimization technique.

The functions you described are simple enough that you should be able to
derive an analytical solution (assuming your aggregation function is not
too complex) by differentiating and setting to zero (help roots) to find
stationary points. You will probably have more than one zero. Check the
sign of the second derivative to confirm whether you have a minimum or
maximum.

One simpler multiobjective optimization technique is to choose one
function as the objective, and the other(s) as constraints(s). You then
vary the limits of the constraint(s) parametrically and solve each
version of the problem (with something like fmincon, or other
constrained optimization functions if appropriate such as quad prog) to
obtain a set of solutions known as the Pareto set or Pareto front:

http://en.wikipedia.org/wiki/Pareto_efficiency

You can then visualize and explore the tradeoffs present in the
multiobjective optimization problem, and choose a solution that best
meets your needs.

-James


Andrey Orlov wrote:
> For example, F(x) = (f1(x), f2(x))', f1(x) = x^4 - x^3 + 4, f2(x) =
> x^8-x^10+x^5+100, (a,b) = (-30,30). I want to avoid using iterations if
> it's possible.
>
> For my real computation number of those functions fj(x) equals 400....