[R] Optimization
Moshe Olshansky
m_olshansky at yahoo.com
Wed Jul 18 03:38:12 CEST 2007
You are right!!!
For some strange reason I substituted ^
(exponentiation) for *, so the problem became
Max x1^0.021986+x2^0.000964+x3^0.02913
with these conditions:
x1+x2+x3=1;
sqrt((x1^0.114434)^2+(x2^0.043966)^2+(x3^0.100031)^2)=0.04;
which is clearly non-linear.
--- Berwin A Turlach <berwin at maths.uwa.edu.au> wrote:
> G'day Moshe,
>
> On Tue, 17 Jul 2007 17:32:52 -0700 (PDT)
> Moshe Olshansky <m_olshansky at yahoo.com> wrote:
>
> > This is partially true since both the function to
> be
> > maximized and the constraint are non-linear.
>
> I am not sure what your definition of non-linear is,
> but in my book,
> and I believe by most mathematical/statistical
> definitions, the
> objective function is linear.
>
> The only non-linearity comes in through the second
> constraint.
>
> > One may substitute 1-x1-x2 for x3 and use (let
> say) Lagrange
> > multipliers to get two non-linear equations with 2
> > unknowns for which there should be a function
> solving
> > them.
>
> Why would you want to use Lagrange multipliers?
> Isn't that a bit of an
> overkill? Once you substitute 1-x1-x2 for x3 in the
> second constraint,
> you have a quadratic equations in x1 and x2. So for
> any given value of
> x1 you can solve for x2 (or for any given value of
> x2 you can solve for
> x1). They still teach how to solve quadratic
> equations at school,
> don't they? ;-)
>
> > Then you must find the points where the
> > constraint function intersects with the triangle
> > {x1>=0,x2>=0,x1+x2<=1}, which is easier (for each
> of
> > the 3 edges you get a non-linear equation in one
> > variable).
>
> Even easier. Take an x1 between 0 and 1. If for
> that x1 the quadratic
> equation in x2 has no real solution, then x1 is not
> feasible.
> Otherwise find the values of x2 that solve the
> equation. Use each of
> these values together with x1 to calculate
> corresponding values of x3.
> Then check these tuples for feasibility. If they
> are feasible,
> evaluate the objective function and return the tuple
> with the larger
> function value.
>
> All the calculations outlined in the paragraph above
> are easily
> implemented in R, e.g. the function polyroot()
> returns the roots of a
> polynomial.
>
> Cheers,
>
> Berwin
>
> =========================== Full address
> =============================
> Berwin A Turlach Tel.:
> +65 6515 4416 (secr)
> Dept of Statistics and Applied Probability
> +65 6515 6650 (self)
> Faculty of Science FAX :
> +65 6872 3919
> National University of Singapore
> 6 Science Drive 2, Blk S16, Level 7 e-mail:
> statba at nus.edu.sg
> Singapore 117546
> http://www.stat.nus.edu.sg/~statba
>
More information about the R-help
mailing list