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 に答える