Ask Your Question
0

Wrong solution?

asked 2013-10-05 23:39:15 -0500

anonymous user

Anonymous

updated 2015-01-28 13:46:46 -0500

FrédéricC gravatar image

Hi, could you help me with this solution of two equations on the interval:

x,a=var('x,a')

f1=10/x

f2=x-5*a

assume(a>0,x>0)

print(solve([f1==f2],x))

Solution given by Sage is:

[ x == 5/2a - 1/2sqrt(25*a^2 + 40),

x == 5/2a + 1/2sqrt(25*a^2 + 40) ]

The first solution is obviously not solution for me as it is always strictly negative and I don't understand why the Sage gave me it. Assumptions are clear: x has to be >0 When I change second equation slightly:

x,a=var('x,a')

f1=10/x

f2=x-6*a

assume(a>0,x>0)

print(solve([f1==f2],x))

Solution given by Sage is correct now (only the x>0 are reported):

[ x == 3a + sqrt(9a^2 + 10) ]

Could you help me explain the difference in results. I am not sure if problem is on python side or with some rules how Sage computes the results. Thank you in advance.

edit retag flag offensive close merge delete

2 answers

Sort by » oldest newest most voted
0

answered 2013-10-19 20:24:45 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >750 is welcome to improve it.

I used the example only for illustration and I think the problem is more serious than just "inability to multiply everything by 2". The correction is easy in posted example, but the correction is more demanding in case of more complicated functions. For me: provided solutions are untrustworthy.

edit flag offensive delete link more

Comments

I agree with that. There should be a way for Sage to consistently say : "I do not now".

tmonteil gravatar imagetmonteil ( 2013-10-20 13:28:25 -0500 )edit
0

answered 2013-10-06 09:46:58 -0500

tmonteil gravatar image

This is because in the first case, Maxima is not able to decide whether 5/2*a - 1/2*sqrt(25*a^2 + 40) is negative, and when it does not know, it answers False:

sage: bool(5/2*a - 1/2*sqrt(25*a^2 + 40) < 0)
False
sage: bool(5/2*a - 1/2*sqrt(25*a^2 + 40) > 0)
False

to be compared to:

sage: bool(3*a < sqrt(9*a^2 + 10))
True
sage: bool(3*a > sqrt(9*a^2 + 10))
False

The fun thing, it seems that what Maxima is not able to do is to multiply everything by 2 to get the correct result:

sage: bool(5*a - 1*sqrt(25*a^2 + 40) < 0)    
True
sage: bool(5*a - 1*sqrt(25*a^2 + 40) > 0)
False
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

Stats

Asked: 2013-10-05 23:39:15 -0500

Seen: 141 times

Last updated: Oct 19 '13