【发布时间】:2016-05-29 03:08:00
【问题描述】:
我儿子在可汗学院课程中学习如何使用准线和焦点计算抛物线公式。 (a,b) 是焦点,k 是准线的参数,因为 y=k。我想向他展示一种使用 Sympy 检查结果的简单方法;编程极大地有助于巩固内部算法。第 1 步显然是要列出等式。
Parabola = Eq(sqrt((y-k)**2),sqrt((x-a)**2+(y-b)**2))
我首先解决了 y 的问题,然后打算展示如何替换值并导出方程,因此:
Y = solve(Parabola,y)
这是一种合理的形式,已将 1/(2b-2k) 收集到外部。 接下来,我将焦点和准线的值代入方程,得到方程y= 1/6*(x**2+16*x+49),是正确的。
接下来他需要以 (x+c1)(x+c2)+remainder 的形式解决这个问题。似乎没有直接的方法可以将上面的等式分解为这种形式,至少不是从一个小时搜索文档中得出的。
Answer = Y[0].subs({a:-8,b:-1,k:-4})
factor(Answer,deep=True)
我当然知道如何减少平方分解加余数;我的问题仅仅是这在 sympy 中是否可行,如果可以,怎么办?
第二个,也许是微不足道的问题是为什么 Sympy 返回一些分解为 (constant - x) 其中 (x -constant) 是首选:有没有指定形式的方法?
感谢您的帮助,我代表我的儿子向他展示了 Sympy 的奇迹。
【问题讨论】:
-
顺便说一句,
(x+c1)(x+c2)+remainder根本不是唯一的形式:(x-1)(x+1) +1与(x-2)(x+2) + 4相同,等等。你想要(x+c)^2 + remainder。
标签: sympy factorization