检查sin(x)= 5的解是否真实

时间:2014-10-16 16:54:19

标签: syntax sage

我试过这个并返回“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”

2 个答案:

答案 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不知道复数。