我有下面的代码(SageMath 9.3),它决定了 两个方程组的解(第一个表示曲线,第二个表示水平线;常用解表示它们的交点):
x, y = var('x, y')
p1 = y^2 - x^3 + x - 1 == 0
p2 = y - 10 == 0
sols = solve([p1, p2], x, y)
sols
输出:
[[x == 4.698114754098361, y == 10.0],
[x == (-2.349057376230034 + 3.943882816522595*I), y == 10.0],
[x == (-2.349057376230034 - 3.943882816522595*I), y == 10.0]]
我的问题是:我如何才能改变这一点,从而只得到真正的解决方案
椭圆曲线与水平线的交点
这里有三种方法可以找到交叉点, 或者它的x坐标。可能还有更多的方法
使用solve
一种方法是像以前一样找到所有复杂的解决方案:
然后提取那些真实的:
使用多项式
另一种方法是定义多项式:
在代数实数上求其根:
或在浮点实数上:
使用椭圆曲线
另一种方法是定义椭圆曲线:
然后它的周围空间:
然后,关联的多项式变量:
然后构造对应于“y=10”的投影线:
然后计算椭圆曲线的交点 通过代数实数上的线:
相关问题 更多 >
编程相关推荐