First time here? Check out the FAQ!

Ask Your Question
0

sqrt function not working properly

asked 9 years ago

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.

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
1

answered 9 years ago

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.

Preview: (hide)
link

Comments

1

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

Sha gravatar imageSha ( 9 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

1 follower

Stats

Asked: 9 years ago

Seen: 703 times

Last updated: Oct 29 '15