2014-03-04 117 views
0

Sage(在Sage Cloud中使用Sage終端),我期望以下產生結果[t == (1/2)]。但是,它會產生結果[]在Sage中求解聯立方程

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

我要去哪裏錯了?

回答

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

謝謝:)有沒有一種簡潔的方式,要求只有't'解決方案的價值輸出? – sampablokuper

+0

也許'solution_dict'可以提供幫助。 – hivert