在Sage中解决联立方程

0 投票
1 回答
1958 浏览
提问于 2025-04-17 20:50

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)]]

撰写回答