Wolfram...

Mathematica分段函数的疑惑

2017-11-12  本文已影响51人  破旧的大卡车

运行如下代码可以得到不同输出, 奇了怪了!考察分段函数:

f[x_] := x^(1/3) /; x > 0
f[x_] := -(-x)^(1/3) /; x < 0
f[x_] := 0 /; x == 0
Plot[{f[x], f'[x], x^(-2/3)/3}, {x, 0, 1}, AspectRatio -> 1]
输出结果1
可以看到分段函数的导数在0~0.4的那部分有点问题。我们重新定义函数如下(不用条件符号/;):
f[x_] := x^(1/3)
Plot[{f[x], f'[x], x^(-2/3)/3}, {x, 0, 1}, AspectRatio -> 1]

则输出为:


正常的函数图像

奇怪的是, 再次运行开始给的代码, 得到的输出变正常了:

f[x_] := x^(1/3) /; x > 0
f[x_] := -(-x)^(1/3) /; x < 0
f[x_] := 0 /; x == 0
Plot[{f[x], f'[x], x^(-2/3)/3}, {x, -1, 1}, AspectRatio -> 1]
再次运行又正常了

你知道问题何在吗?

上一篇 下一篇

猜你喜欢

热点阅读