Student4K
Student4K

Reputation: 951

Simplify algebraic equation in CAS

I want to be able to simplify the ellipse equation:

sqrt((x + c)^2 + y^2) + sqrt((x - c)^2 + y^2) = 2a

into its canonical form:

x^2/a^2 + y^2/(a^2 - c^2) = 1

using CAS. I actually want to know how to do that in sympy, but any other CAS will do.

If it is not possible to do that in one call, then may be by transforming the original equation using operations like "get square of the both sides; move non-radicals (e.g. by enumerating them manually) to the right side; get square of the both sides again; simplify"

Upvotes: 1

Views: 257

Answers (2)

smichr
smichr

Reputation: 19057

unrad will do most of the heavy lifting for you in SymPy:

>>> l  # your original expression with the 2a subtracted from the lhs
-2*a + sqrt(y**2 + (-c + x)**2) + sqrt(y**2 + (c + x)**2)
>>> unrad(_)
(-a**4 + a**2*c**2 + a**2*x**2 + a**2*y**2 - c**2*x**2, [], [])
>>> neg_i, dep = _[0].as_independent(x,y)
>>> xpart, ypart = [dep.coeff(i**2) for i in (x,y)]
>>> Eq(-x**2*cancel(xpart/neg_i)-y**2*cancel(ypart/neg_i), neg_i/neg_i)
y**2/(a**2 - c**2) + x**2/a**2 == 1

Upvotes: 3

CiaPan
CiaPan

Reputation: 9570

Subtract the doubled second sqrt from both sides.
Multiply respective sides of the new equation and the original one.
Reduce LHS applying (m+n)(m-n) = m^2 - n^2.
You'll get (if i did it right): -4xc = 4a(a - sqrt(something))
Then: -xc/a = a - sqrt(something)
and: sqrt(something) = a + xc/a
Square both sides and see what happens.

I did it wrong. Should be: 4xc = 4a(a - sqrt(something))
so sqrt(something) = a - xc/a.

Upvotes: 0

Related Questions