2

在 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

我究竟做错了什么?

4

1 回答 1

4

您正在使用 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 函数。如果你想区分它等等,恐怕你会更加努力。

于 2011-10-26T21:05:11.763 回答