【问题标题】:Mathematica: Plot the derivative of a piecewise functionMathematica:绘制分段函数的导数
【发布时间】:2012-12-05 12:23:53
【问题描述】:

我正在尝试在 Mathematica 中绘制缓和函数的导数。它可以区分函数,并且可以使用% 绘制函数,但我希望能够通过将导数指定为函数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 *)

【问题讨论】:

  • 如果您评估例如f[2],你会明白为什么情节不起作用。您可以将函数定义为f[t_] = D[ moll[t] , t]Set 而不是SetDelayed

标签: wolfram-mathematica piecewise


【解决方案1】:

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

当涉及到用户定义的函数时,情节有点挑剔。

【讨论】:

    【解决方案2】:

    你可以使用给定的函数:

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

    Evaluated -&gt; Truepreferred 超过 Evaluate[f[t]]

    最好听从 nikie 的建议,以不同的方式定义 f

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

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

    【讨论】:

      【解决方案3】:

      Plot 的“挑剔”来自它的Atttributes[Plot],其中包括HoldAll,因此朴素的f 永远不会被评估。根据 ratatosk 的建议进行力评估。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-20
        • 2019-11-30
        • 2015-10-16
        相关资源
        最近更新 更多