Ask Your Question
0

solving systems of equations returns [] Redux

asked 2016-08-27 10:28:29 +0100

BobM gravatar image

I searched the wiki and found the "solve always returns []" question. But it doesn't help me. I will admit that I am a complete neophyte with Sagemath and have been playing with version 7.2 on my windows machine.

I was trying to do something very simple: solve a basic Lagrange Multiplier problem, so I defined the following:

  • var('x' ,'y' ,'z', 'lam')
  • var('F')
  • F = xyz - lam * (xyz-9)
  • var('dFx', 'dFy', 'dFz', 'dFlam')
  • dFx=diff(F,x)
  • dFy=diff(F,y)
  • dFz=diff(F,z)
  • dFlam=diff(F,lam)
  • solve([dFx==0,dFy==0,dFz==0,dFlam==0],x,y,z,lam)

but the solve returns []. It should return something like x==3, y==3, z==3, shouldn't it? Is there an alternative way to approach this?

Thanks.

BobM

edit retag flag offensive close merge delete

Comments

To display inline code, surround it within backticks `.

To display blocks of code, either indent them with 4 spaces, or select the corresponding lines and click the "code" button (the icon with '101 010').

Can you edit your question to do that?

slelievre gravatar imageslelievre ( 2016-08-29 13:04:46 +0100 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2016-08-27 13:06:21 +0100

tmonteil gravatar image

I can not reproduce your problem on 7.4.beta2:

sage: var('x' ,'y' ,'z', 'lam')
(x, y, z, lam)
sage: F = x*y*z - lam * (x*y*z-9) 
sage: F
x*y*z - (x*y*z - 9)*lam
sage: dFx=diff(F,x)
sage: dFy=diff(F,y)
sage: dFz=diff(F,z)
sage: dFlam=diff(F,lam)
sage: dFz
-lam*x*y + x*y
sage: solve([dFx==0,dFy==0,dFz==0,dFlam==0],x,y,z,lam)
[[x == 9/(r1*r2), y == r1, z == r2, lam == 1]]
edit flag offensive delete link more

Comments

But what is the latest non-beta version of Sage?

BobM gravatar imageBobM ( 2016-08-28 16:05:54 +0100 )edit
0

answered 2016-08-29 13:04:01 +0100

slelievre gravatar image

updated 2016-08-29 13:09:07 +0100

This seems to work in Sage 7.3 (the latest public release).

Not sure what change between Sage 7.2 and Sage 7.3 made this work.

One could try to check which ticket is responsible among those merged in Sage 7.3.

http://www.sagemath.org/changelogs/sa...

$ sage -v
SageMath version 7.3, Release Date: 2016-08-04
$ sage -q
sage: x, y, z, lam = var('x' ,'y' ,'z', 'lam')
sage: F = x*y*z - lam * (x*y*z-9); F
x*y*z - (x*y*z - 9)*lam
sage: dFx = diff(F, x)
sage: dFy = diff(F, y)
sage: dFz = diff(F, z)
sage: dFlam = diff(F, lam)
sage: dFx, dFy, dFz, dFlam
(-lam*y*z + y*z, -lam*x*z + x*z, -lam*x*y + x*y, -x*y*z + 9)
sage: solve([dFx == 0, dFy == 0, dFz == 0, dFlam == 0], x, y, z, lam)
[[x == 9/(r1*r2), y == r1, z == r2, lam == 1]]
sage:
edit flag offensive delete link more

Your Answer

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

Add Answer

Question Tools

1 follower

Stats

Asked: 2016-08-27 10:28:29 +0100

Seen: 342 times

Last updated: Aug 29 '16