Algorithm 如何求解同一中心的垂直椭圆系?
我正在编写的一个程序需要找到两个椭圆的交点,两个椭圆都是垂直的,并且共享同一个中心。我只需要四个中的第一个解 我可以用来解决这个问题的值是每个椭圆的垂直和水平分量的半径,或者“a”和“b”值,如果你使用椭圆的标准方程。我以前求解过圆锥非线性系统,但我不知道如何将代数思想转化为算法Algorithm 如何求解同一中心的垂直椭圆系?,algorithm,intersection,ellipse,Algorithm,Intersection,Ellipse,我正在编写的一个程序需要找到两个椭圆的交点,两个椭圆都是垂直的,并且共享同一个中心。我只需要四个中的第一个解 我可以用来解决这个问题的值是每个椭圆的垂直和水平分量的半径,或者“a”和“b”值,如果你使用椭圆的标准方程。我以前求解过圆锥非线性系统,但我不知道如何将代数思想转化为算法 这看起来相对简单,但我完全被卡住了。如果这是一个愚蠢的问题,我很抱歉,但我仍然希望得到一个答案。将椭圆方程的形式设置为(x/a)^2+(y/b)^2=1对于两对(a,b),系数y^2在右侧,并使左侧相等: (x*b1/
这看起来相对简单,但我完全被卡住了。如果这是一个愚蠢的问题,我很抱歉,但我仍然希望得到一个答案。将椭圆方程的形式设置为
(x/a)^2+(y/b)^2=1
对于两对(a,b),系数y^2在右侧,并使左侧相等:
(x*b1/a1)^2 - b1^2 = y^2 (1)
(x*b2/a2)^2 - b2^2 = y^2
这简化为:
(x*b1/a1)^2 - b1^2 = (x*b2/a2)^2 - b2^2
一个x的二次方程,它最多会给出两个实解(x1,x2)。插入x1的椭圆方程(1)将给出两个y值(让我们将它们命名为y1,y2)。您的解决方案是:
(x1, y1)
(x1, y2)
(x2, y1)
(x2, y2)
当然,交点可以少一些,但很容易确定,因为一些二次方程会有复杂的解。让我们假设您以椭圆的中心位于原点的方式移动坐标系。然后两个椭圆都可以用标准方程来描述: 其中a1、b1、a2、b2是椭圆各自的参数 唯一剩下的就是解这个方程组。例如,我可以帮你做(这里我用c代替a2,用d代替b2) 假设椭圆不平凡,一对可能的解决方案是:
还有其他对,它们在根前面有不同的+/-符号。答案很好。注意:在中间步骤1中,lhs上的术语应颠倒(减号颠倒)。此处:(xb1/a1)^2-b1^2=(xb2/a2)^2-b2^2