我试过这个并返回“True”
a = solve(sin(x)==5, x); print(a[0].rhs() in RR)
然而,预期答案是“假的”,我错过了什么?
我只是想以编程方式检查何时我对某些方程式有真正的解决方案。
我还尝试len(a)
返回'1',这也是不正确的,因为有无数的[非真实]解决方案。
我也试过a = solve(sin(x)==1, x) print(a[0].rhs()<pi)
既不返回true也不返回false,但返回字符串“pi / 2&lt; pi”
答案 0 :(得分:1)
这可能是因为
sage: n(arcsin(5))
NaN
虽然也许这不应该真的在RR
。有趣的是,NaN
不在ZZ
。
关于你的另一个问题,
sage: a = solve(sin(x)==1, x); print(bool(a[0].rhs()<pi))
应该更好。 Sage通常会在没有评估的情况下尽可能长时间保持符号(in)的等式。
答案 1 :(得分:1)
让我们稍微退一步。
sin(x)== 5有无限多种解法。 它们可以由集合表示 q *( - 1)^ n + n * pi 对于整数n,并且其中q是5的主要arcsin, 例如 大约q = 1.5707963267948966192 - 2.2924316695611776878 *我
那么问题是什么?我们可以观察到没有一个解决方案是真实的, 但也许Sage无法做出这样的观察。
arcsin(5)的数值应该可能 不是NaN,因为它肯定是一个数字,而不是一个实数。 除非Sage的arcsin不知道复数。