Wolfram mathematica 两个参数的函数因参数错误而变得可列出?

Wolfram mathematica 两个参数的函数因参数错误而变得可列出?,wolfram-mathematica,Wolfram Mathematica,我可以构建一个以一组值计算的函数的值列表,如下面的simplelist所示 Clear[f, g, simplelist, d, dlist1, dlist2] f[x_] := Exp[ -x^2] g[n_] := f[x] (-1)^n simplelist = g[{0, 1, 2, 3, 4}] d[n_] := Derivative[n][f][x] dlist1 = d[{0, 1, 2, 3, 4}] dlist2 = {d[0], d[1], d[2], d[3], d[4

我可以构建一个以一组值计算的函数的值列表,如下面的simplelist所示

Clear[f, g, simplelist, d, dlist1, dlist2]
f[x_] := Exp[ -x^2]
g[n_] := f[x] (-1)^n
simplelist = g[{0, 1, 2, 3, 4}]

d[n_] := Derivative[n][f][x] 
dlist1 = d[{0, 1, 2, 3, 4}]
dlist2 = {d[0], d[1], d[2], d[3], d[4]}
这给了我

{E^-x^2, -E^-x^2, E^-x^2, -E^-x^2, E^-x^2}
正如所料

如果我建立了一个隐式包含两个参数n和x的函数(d),我想我尝试用[n]的值列表对其求值,结果是用[x]的值列表对其求值,因为我得到的结果都是零,就好像取了常数的导数一样:

{0, 0, 0, 0, 0}
将此值与dlist2值进行比较,在dlist2值中我是显式的,但使用了一种笨拙的方法来构造列表,并获得:

{E^-x^2, -2 E^-x^2 x, -2 E^-x^2 + 4 E^-x^2 x^2, 12 E^-x^2 x - 8 E^-x^2 x^3, 12 E^-x^2 - 48 E^-x^2 x^2 + 16 E^-x^2 x^4}
这个问题实际上有两个部分:

1) 是否有人可以确认此函数最终可以使用[x]而不是[n]隐式列出,并可能详细说明其工作原理

2) 我怀疑我正在以一种可能会受到打击的方式来处理这件事,因此,尽管有可能强迫这样的事情去做我已经尝试过的事情,但我真的只想要一种建立价值清单的好方法

{ h[0], h[1], ... h[n] }

我认为这可以通过for循环和Append函数来实现,但是有了丰富的语法,肯定有更好的方法。

关于1你的猜测不对。真正发生的是,当第一个参数(
n
)是一个列表时,它有一个特殊的解释,
导数[{1,2}][f][x]
将尝试在
f
的第一个参数(即
x
)上区分一次,在第二个参数上区分两次(缺失!)-正是这种区分给出了零。此外,如果
f
也是可列出的,并且只有一个参数,它会变得有点复杂,但想法是一样的

关于2:

SetAttributes[d, Listable]

我会修好的。
Listable
属性之所以有帮助,是因为在对特定参数进行
d
求值之前,在与其关联的列表上执行线程操作,因此,通过这种方式,您永远不会向
导数提供列表,然后只对列表中的所有成员单独调用,这正是您所需要的。

SetAttributes工作得很好。有没有比{1,2,3,4,5}@peeterrange[5]更好的方法来建立输入列表。我还讨论了列表构建:非常好。我还看到了这里描述的Table函数,它对解决我的问题也很有效。谢谢你,莱昂尼德!