sagemath中的条件表达式,在定义符号表达式时

时间:2011-10-26 20:19:10

标签: python

在sagemath中,(版本4.7)我在笔记本中这样做:

var("x y")
dens(x,y) = 2 if y <= x else 0

这没有错误。但是,在输入时

dens(1,1)   returns 0

dens(1,0.5) returns 0   !

等等。事实上,我发现无法得到答案2。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

你正在使用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函数。如果你想要区分它等等,那么你就更难了,我很害怕。