尝试使用python中的极坐标绘制圆的方程时出现数学域错误

时间:2014-04-02 06:54:19

标签: python math trigonometry

我是极地坐标的新手,我刚刚在极坐标中找出了一个圆的方程(方程是用python编写的):

r**2 + r0**2 - 2*r*r0*math.cos(theta - phi) = a**2

如果极坐标(r0, phi)是圆的中心,a是圆的半径,(r, theta)是圆上的任何通用点。因此,这可以简化为r解决:

r = r0*math.cos(theta - phi) + math.sqrt(a**2 - r0**2 * math.sin(theta - phi)**2)

为了测试这个,我有以下数据设置。

r0 = math.sqrt(13) # (r0, phi) describes the center point ((3, 2) in Cartesian coords
phi = math.acos(3/r0)
a = 2 # radius is 2

为了解决r,我将math.pi/2作为theta的值传递。这是数学域错误发生的地方;出于某种原因,a**2 - r0**2 * math.sin(theta - phi)**2评估为负数,据我所知,这个数字永远不会发生(尤其不适用于此圈)。我究竟做错了什么?我是否误解了这个等式,还是我犯了一个简单的愚蠢错误?

1 个答案:

答案 0 :(得分:0)

没关系。
它只是意味着您的垂直线(theta = math.pi / 2)不与您的圆相交。