Message Boards Message Boards

4 Replies
0 Total Likes
View groups...
Share this post:

Analysis with more variables

Posted 10 years ago


I'm a mathematics teacher with a question I can't solve. Could really use your help on this one!

Imagine that for n?N and (x1,x2,x3,?,xn )?R^n the sum of the terms is 100, so like this: ?_((i=1) until n)?xi=100?. What is the maximum product x1?x2?x3???xn you can get? And how about the maximum product if all xi should be integers?

I've got an idea when calculating with two or three variables, but how about more? Thanks for your help!!!


4 Replies
Posted 10 years ago

There is the arithmetic mean/geometric mean inequality that will show for positive real numbers that the maximum product is no larger than (S/n)^n where S is the sum of the numbers (matching your (100/n)^n). (Google will find this.) The proof for that inequality might suggest a way to go.

POSTED BY: Jim Baldwin

Perhaps you could start with all the variables being the same and then showing that changing a pair of them lowers the product.

POSTED BY: Frank Kampas
Posted 10 years ago

Yes, they should all be the same, that is, when they are integers. For 2 numbers, you'll have 50 and 50 and for three, it'll be 100/3 each. Then it seems logical to me, that for n numbers, the formula to calculate the product, is (100/n)^n The maximum value for n turns out te be 37 and the corresponding maximum product 9.474*10^15 But....that's only if n can be real valued.

If n can only be an integer, I think the maximum product should be 3^32*2^2, so I used 32 three's and 2 two's. But is that for sure and how can I check that? I think I should use something like number theory as well., but have no idea how...


I'm assuming the numbers are all positive. Won't they all be the same if they're not integers?

In[6]:= Maximize[{Times @@ Array[x, 3], (Plus @@ Array[x, 3]) == 100, 
  Thread[Array[x, 3] > 0]}, Array[x, 3]]

Out[6]= {1000000/27, {x[1] -> 100/3, x[2] -> 100/3, x[3] -> 100/3}}

In[7]:= Maximize[{Times @@ Array[x, 3], (Plus @@ Array[x, 3]) == 100, 
  Thread[Array[x, 3] > 0]}, Array[x, 3], Integers]

Out[7]= {37026, {x[1] -> 33, x[2] -> 33, x[3] -> 34}}
POSTED BY: Frank Kampas
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract