在 SageMath(4.7 版)中,我在笔记本中执行此操作:
var("x y")
dens(x, y) = 2 if y <= x else 0
这没有错误。然而,在那之后,
dens(1, 1)
返回0
,dens(1, 0.5)
返回0
,- 等等!
事实上,我没有办法得到答案2
。
我究竟做错了什么?
您正在使用 Sage 函数声明语法 - f(x,y) = something-or-other - 但在右侧,您不是放置 Sage 表达式而是 Python 表达式。这是在声明时进行评估的。我的意思是:
sage: var("x y")
(x, y)
sage: bool(y <= x)
False
sage: dens = 2 if y <= x else 0
sage: dens
0
sage: dens(x,y) = 2 if y <= x else 0
sage: dens
(x, y) |--> 0
如果您只关心函数采用的值(例如,您正在绘制它),您可以简单地使用 Python 函数。如果你想区分它等等,恐怕你会更加努力。