如何在Mathematica中定义一个函数f(x),如果x在[-5,-4]或[1,3]中,则给出1,否则返回0?这可能很简单,但我无法弄清楚!
最佳答案
您想要的基本结构是 Piecewise
,特别是您要的功能可以编写为
f[x_] := Piecewise[{{1, -5 <= x <= -3}, {1, 1 <= x <= 3}}, 0]
要么
f[x_] := Piecewise[{{1, -5 <= x <= -3 || 1 <= x <= 3}}, 0]
请注意,最后一个参数
0
定义了默认(或“else”)值,因为默认默认值为0。还要注意,尽管
Piecewise
和 Which
在形式上非常相似,但是Piecewise
用于构造函数,而Which
用于编程。 Piecewise
在集成,简化等方面将发挥更好的作用,它还具有适当的左括号数学符号,请参见documentation中的示例。由于您想要的分段函数非常简单,因此还可以通过像
Boole
, UnitStep
和 UnitBox
这样的步骤函数来构造它,例如UnitBox[(x + 4)/2] + UnitBox[(x - 2)/2]
这些只是
Piecewise
的特例,如PiecewiseExpand
所示In[19]:= f[x] == UnitBox[(x+4)/2] + UnitBox[(x-2)/2]//PiecewiseExpand//Simplify
Out[19]= True
另外,您也可以使用
HeavisideTheta
或 HeavisidePi
之类的切换功能,例如HeavisidePi[(x + 4)/2] + HeavisidePi[(x - 2)/2]
这很好,因为如果将函数视为分布,则其派生函数将返回Dirac delta函数的正确组合。
有关更多讨论,请参见教程Piecewise Functions。
关于wolfram-mathematica - 如何在Mathematica中按间隔定义函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7631142/