Ask Your Question
1

How can I find the maximum of a two variable function?

asked 2012-04-11 22:35:03 +0100

asdrubalivan gravatar image

Hello everyone, I'm trying to find the maximum of the following function:

var('x,y')
func(x,y) = x*y - y^2

Is there any way I can find the maximum of that function (func) when 0 < x < 1 and 0 < y < 2 for example?

Thanks in advance :)

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2012-04-12 01:23:39 +0100

Shashank gravatar image

updated 2012-04-12 01:27:24 +0100

I just took a few minutes to modify the example from this page http://www.sagemath.org/doc/reference... I apologize in advance if there is a mistake. Basically there isn't a function to maximize with constraint. So what we can do is minimize the negative of the function. The constraints are of the for '>0' for example c_1 tells the solver that x>0, c_2 tells that -x+1 > 0 => x<1 and so on

f = lambda p: - p[0]*p[1] + p[1]*p[1]
c_1 = lambda p: p[0]
c_2 = lambda p: - p[0] + 1
c_3 = lambda p: p[1]
c_4 = lambda p: -p[1] + 2
a = minimize_constrained(f,[c_1, c_2,c_3,c_4],[0.5,0.5])
view(a)

The answer I get is (1.0,0.5001)

If I plot the negative of the function in the range you are interested, the minimum looks like it is around that.

image description

Let me know if this works.

edit flag offensive delete link more

Comments

Yes!! This works perfectly! Thanks a lot :)

asdrubalivan gravatar imageasdrubalivan ( 2012-04-19 18:06:05 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2012-04-11 22:35:03 +0100

Seen: 3,511 times

Last updated: Apr 12 '12