Mathematica:绘制分段函数的导数

时间:2012-12-05 12:23:54

标签: wolfram-mathematica piecewise

我试图在Mathematica中绘制一个mollifier函数的导数。它区分函数OK,并且可以使用%绘制函数,但我希望能够通过将导数分配为函数f[t_],然后Plot[ f[t] , {t,-1,1} ]来绘制。

我不确定如何解决出现的错误。

Mathematica代码是:

Clear[moll, f]

moll[x_] := 
Piecewise[ {  {E^(-1/(1 - x^2)), -1 < x < 1} , {0,x <= -1 || x >= 1}  } ]; (* Standard     mollifier *)

f[t_] := D[ moll[t] , t]

f[t]

Plot[%, {t, -1, 1}] (* this line works *)

Plot[f[t], {t, -1, 1}] (* this line comes up with an error *)

3 个答案:

答案 0 :(得分:5)

尝试使用Plot[Evaluate[f[t]], {t, -1, 1}]

当谈到用户定义的函数时,Plot有点挑剔。

答案 1 :(得分:2)

使用给定的功能,您可以使用:

Plot[f[t], {t, -1, 1}, Evaluated -> True]

Evaluated -> TrueEvaluate[f[t]]相比preferred

更好的方法是遵循nikie的建议并以不同的方式定义f

Block[{t},
  f[t_] = D[moll[t], t]
]

请参阅Scoping in assigning a derivative以获取解释。

答案 2 :(得分:1)

Plot的“挑剔”来自其Atttributes[Plot],其中包含HoldAll,因此未经展开的f永远不会被评估。按照ratatosk的建议进行力评估。