在Sage中解决联立方程
在Sage(使用Sage Cloud中的Sage终端),我原本以为下面的代码会得到结果 [t == (1/2)]
。可是它却返回了结果 []
。
sage: var('x1 y1 x2 y2 t')
(x1, y1, x2, y2, t)
sage: eq1 = x1==t
sage: eq2 = y1==t
sage: eq3 = x2==t
sage: eq4 = y2==1-t
sage: solve([eq1,eq2,eq3,eq4,x1==x2,y1==y2],t)
[]
我尝试了以下的改写,但也没有帮助:
sage: eq5 = x1==x2
sage: eq6 = y1==y2
sage: solve([eq1,eq2,eq3,eq4,eq5,eq6],t)
[]
我哪里出错了呢?
1 个回答
3
如果你写了
solve([eq1,eq2,eq3,eq4,x1==x2,y1==y2],t)
那么 t
是你要解决的变量,而 x1, x2, y1, y2
是一些自由参数。很明显,没有一个解是对这些参数的任何值都有效的。不过,如果你问:
solve([eq1,eq2,eq3,eq4,x1==x2,y1==y2],t,x1,x2,y1,y2)
那么你会得到你所期望的结果:
[[t == (1/2), x1 == (1/2), x2 == (1/2), y1 == (1/2), y2 == (1/2)]]