Wolfram-Cloud/Mathematica,有效使用递归函数

Wolfram-Cloud/Mathematica, effective working with recursive functions

我目前正在使用 Чебышёв 多项式,递归定义的多项式。对于您之前从未见过的极有可能的情况:

f[0,x_]  := 1;
f[1,x_]  := x;
f[n_,x_] := 2 * x * f[n-1, x] - f[n-2, x];
Plot[{f[9, x],f[3, x]},{x, -1, 1}]

我发现自己在问,因为我通常使用 python,是否有一种方法可以在 wolfram-cloud 中构建一个函数数组,以简化这个过程。

因此我只需要计算每个 f[n] 一次,这让我可以大大改进 运行-time 并且还可以扩展 n.

的范围

使用memoization.

在这种情况下,记忆比平时更棘手,因为我们使用的是函数,而不是函数值。

Clear[cheb]
cheb[0] = 1 &;
cheb[1] = # &;
cheb[n_] := cheb[n] = Evaluate@Expand[2 # cheb[n - 1][#] - cheb[n - 2][#]] &

Evaluate 确保 Function 的内部甚至在提供和参数之前就得到评估。