First time here? Check out the FAQ!

Ask Your Question
1

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

asked 12 years ago

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 :)

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
3

answered 12 years ago

Shashank gravatar image

updated 12 years ago

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.

Preview: (hide)
link

Comments

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

asdrubalivan gravatar imageasdrubalivan ( 12 years ago )

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: 12 years ago

Seen: 3,578 times

Last updated: Apr 12 '12