简化CAS中的代数方程

时间:2014-06-17 13:31:07

标签: sympy

我希望能够简化椭圆方程:

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

进入其规范形式:

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

使用CAS。我实际上想知道如何在同情中这样做,但任何其他CAS都会这样做。

如果在一次调用中不可能这样做,那么可以通过使用诸如“获得双方的正方形;将非自由基(例如通过手动枚举)向右侧移动”等操作来变换原始方程;再次获得双方的平方;简化“

2 个答案:

答案 0 :(得分:3)

unrad将在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

答案 1 :(得分:0)

从两边减去加倍的第二个sqrt 将新等式和原始等式的各边相乘 减少LHS应用(m + n)(m-n)= m ^ 2 - n ^ 2 你会得到(如果我做对了):-4xc = 4a(a - sqrt(某事物))
然后:-xc / a = a - sqrt(某事)
和:sqrt(something)= a + xc / a
将两边都放平,看看会发生什么。

我做错了。应该是:4xc = 4a(a - sqrt(某事物))
所以sqrt(某事物)= a - xc / a。

相关问题