Ask Your Question
0

sqrt function not working properly

asked 2015-10-29 00:45:04 +0100

this post is marked as community wiki

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

I have the following code where I want to substitute a, b, c into s. Since s factors as a square, I want to get the square root of it :

p, t= var('p t')
a=(-2*p*t^2-p^2*t)+(2*t*p-p^2)+t+1
b=(p*t^2+2*p^2*t)+(2*t*p-t^2)-p+1
c=(p*t^2-p^2*t)+(t^2+2*t*p+p^2)+t-p  #3 sides (a,b,c) in terms of theta and phi [equation (1.1)]
s=(factor(2*c^2+2*a^2-b^2));s
S=s.sqrt();S

Unfortunately the answer I get is

sqrt((3*p*t^2 - 2*p^2 - 2*p*t + t^2 + p + 2*t + 1)^2)

The sqrt and the square power does not cancel off which I want it to cancel. I tried using the code S.simplify_full() to simplify it hoping the sqrt and square power will cancel off but no luck. Is there any other specific code I can use for that.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2015-10-29 02:16:22 +0100

kcrisman gravatar image

The square root of a square is not the same as the number. (There is controversy over whether it is the absolute value of the number, or either plus or minus the number. Don't ask.)

But if you want to make it do that, use this:

sage: S.canonicalize_radical()
(3*p + 1)*t^2 - 2*p^2 - 2*(p - 1)*t + p + 1

which even does some factoring for you as a bonus.

edit flag offensive delete link more

Comments

1

@kcrisman,.. Thank you! this worked fine..

Sha gravatar imageSha ( 2015-10-29 02:48:10 +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

1 follower

Stats

Asked: 2015-10-29 00:45:04 +0100

Seen: 620 times

Last updated: Oct 29 '15