我试图用给定的数据来求解sage的一个简单方程:
a=var("a")
x=vector([1,1])
y=vector([2,3])
A=matrix(2,2,[a,-1,-1,1])我想要解这个方程:
f= ((x*A*y)/((sqrt(x*A*x)*sqrt(y*A*y))))==1/2 返回:
(2_sqrt(a-1)/sqrt(4_a- 3) == (1/2) )
求返回的f:
solve(f,a)== 1/4_sqrt(4_a - 3)
而这个方程很容易用手求解。我遗漏了什么或者做错了什么吗?
发布于 2022-05-24 16:50:55
Sage并没有实现寻找解决方案的所有可能方法。在我的使用方法中,人(结构)洞察力和机器计算能力的结合总是最有效的。
为什么我们有半途而废的答案?在我们的例子中,f是一个等式,
sage: f
2*sqrt(a - 1)/sqrt(4*a - 3) == (1/2)这不是一个代数方程。(平方根出现在那里。)solve的文档,通过solve?或?solve或.,提到了所涉及的方程/表达式所需的代数特征。Sage可能自己尝试获得一个代数版本,但这是一个自愿的步骤,这取决于类型化的求解命令行。
因此,得到方程的“回声”是一个正常的事实。
但是,请注意,涉及其他解决程序的帮助(在本例中):
sage: solve(f, a, algorithm='sympy')
[a == (13/12)]https://stackoverflow.com/questions/70271663
复制相似问题