【问题标题】:Solving simultaneous equations in Sage在 Sage 中求解联立方程
【发布时间】:2014-03-04 19:18:31
【问题描述】:

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

我哪里错了?

【问题讨论】:

    标签: python math equation algebra sage


    【解决方案1】:

    如果你写

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

    【讨论】:

    • 谢谢 :) 有没有一种简洁的方法只要求输出解决方案的 t 值?
    • 也许solution_dict 可以提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多