Ask Your Question
0

Do newer versions change the way 'simplify' works?

asked 2019-11-20 00:54:24 +0100

updated 2019-11-20 17:57:29 +0100

Iguananaut gravatar image

Several years ago I did some symbolic algebra manipulations that ended up being very helpful. I did this on an Ubuntu machine (ubuntu 16) running Sage 7.4

Recently I installed the newest version of Sage 8.9, and reran some of my older notebooks. The 'simplify' function no longer produces the same output, and makes the rest of my calculations fail.

Is there something I am missing? Or has the algorithm changed?

simplify_full() on this equation:

(Z*a + Z*w2 - a + w2)*(Z*a + Z*w3 - a + w3)*y == (Z*a + Z*w1 - a + w1)*G*(Z + 1)*x

used to produce the following output:

(a^2 + a*w2 + (a+w2) *w3)*Z*2*y − 2*(a^2 − w2*w3)*Z*y + (a^2 − a*w2 − (a − w2)*w3)*y  == G*Z^2*(a + w1)*x + 2*G*Z*w1*x − G*(a − w1)*x

It now produces this output:

((Z^2 - 2*Z + 1)*a^2 + (Z^2 - 1)*a*w2 + ((Z^2 - 1)*a + (Z^2 + 2*Z + 1)*w2)*w3)*y == ((G*Z^2 - G)*a + (G*Z^2 + 2*G*Z + G)*w1)*x

Is there anything I can do to force the original output using Sage 8.9 and a Jupyter Notebook?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2019-11-20 14:28:10 +0100

rburing gravatar image

When you make a vague request (e.g. 'simplify'), there is a risk that the answer will change if you ask it again.

Unfortunately I don't know what has changed or why. Maybe e.g. using git blame someone can find it out.

I am guessing that you are interested in the expression as a polynomial in $x,y,Z$.

A precise way to request the expression in that form is as follows (using polynomial rings):

sage: var('Z,x,y,a,w1,w2,w3,G')
sage: eqn = (Z*a + Z*w2 - a + w2)*(Z*a + Z*w3 - a + w3)*y == (Z*a + Z*w1 - a + w1)*G*(Z + 1)*x
sage: A = PolynomialRing(QQ, names='a,w1,w2,w3,G')
sage: B = PolynomialRing(A, names='Z,x,y')
sage: SR(B(eqn.lhs())) == SR(B(eqn.rhs()))
(a^2 + a*w2 + a*w3 + w2*w3)*Z^2*y - 2*(a^2 - w2*w3)*Z*y + (a^2 - a*w2 - a*w3 + w2*w3)*y == (G*a + G*w1)*Z^2*x + 2*G*Z*w1*x - (G*a - G*w1)*x

You could also factor each coefficient:

sage: sum(SR(C).factor()*SR(X) for C,X in B(eqn.lhs())) == sum(SR(C).factor()*SR(X) for C,X in B(eqn.rhs()))
Z^2*(a + w2)*(a + w3)*y - 2*(a^2 - w2*w3)*Z*y + (a - w2)*(a - w3)*y == G*Z^2*(a + w1)*x + 2*G*Z*w1*x - G*(a - w1)*x
edit flag offensive delete link more

Comments

Thanks. This was just what I needed.

shopdog gravatar imageshopdog ( 2019-11-21 20:36:30 +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: 2019-11-20 00:54:24 +0100

Seen: 210 times

Last updated: Nov 20 '19