Re: Problem with element and Maximize
- To: mathgroup at smc.vnet.net
- Subject: [mg82814] Re: [mg82746] Problem with element and Maximize
- From: DrMajorBob <drmajorbob at bigfoot.com>
- Date: Wed, 31 Oct 2007 06:20:56 -0500 (EST)
- References: <4209462.1193744482571.JavaMail.root@m35>
- Reply-to: drmajorbob at bigfoot.com
Don't round the real-valued solution; it won't always get you the best
integer solution.
But this should work:
data = {{0, 0}, {10, 10}, {20, 0}, {30, 10}};
eq = Fit[data, {1, x, x^2, x^3}, x]
proxy = Rationalize[eq, 10^-15]
Maximize[{proxy, x \[Element] Integers, x <= 20}, x]
eq /. Last@%
1.96128*10^-15 + 3.33333 x - 0.3 x^2 + 0.00666667 x^3
1/509872338168900 + (10 x)/3 - (3 x^2)/10 + x^3/150
{5567805932804389/509872338168900, {x -> 7}}
10.92
Without the upper bound the function has no maximum and, with approximate
coefficients, Maximize can't use efficient integer optimization methods.
Bobby
On Tue, 30 Oct 2007 03:31:51 -0500, Uncle Paul <paul at desinc.com> wrote:
> I'm not sure what I am doing wrong. I am trying to get the nearest
> integer maximim for the mentioned equation. I could round the X
> value, but I would like to operate Mathematica correctly.
>
> (*generate the equation*)
> data = {{0, 0}, {10, 10}, {20, 0}, {30, 10}};
> eq = Fit[data, {1, x, x^2, x^3}, x]
> Plot[eq, {x, 0, 30}]
>
> Maximize[{eq, x \[Element] Integers}, x] (*wrong!*)
>
> Maximize[{eq}, x] (*correct, but not integer, of course*)
>
>
> Best Regards,
> Paul
>
>
--
DrMajorBob at bigfoot.com