Function Wolfram Mathematica——”;至于;循环与纯函数
我使用Wolfram Mathematica。让我们设置一个自然数n>=3。我想定义W[I]——纯函数。我会这样做:Function Wolfram Mathematica——”;至于;循环与纯函数,function,loops,for-loop,wolfram-mathematica,Function,Loops,For Loop,Wolfram Mathematica,我使用Wolfram Mathematica。让我们设置一个自然数n>=3。我想定义W[I]——纯函数。我会这样做: For[i = 3, i <= n, i++, W[[i]] = (1 - #^2)^2 JacobiP[i - 3, 2, 2, #] &; Print[W[[i]]]] (1-#1^2)^2 JacobiP[i-3,2,2,#1]& (1-#1^2)^2 JacobiP[i-3,2,2,#1]& (1-#1^2)^2 JacobiP[i-3,2
For[i = 3, i <= n, i++, W[[i]] = (1 - #^2)^2 JacobiP[i - 3, 2, 2, #] &; Print[W[[i]]]]
(1-#1^2)^2 JacobiP[i-3,2,2,#1]&
(1-#1^2)^2 JacobiP[i-3,2,2,#1]&
(1-#1^2)^2 JacobiP[i-3,2,2,#1]&
...
如何强迫Wolfram从循环的定义中理解我想要这个具体的I?所以我的意思是我想要像这样的smth
(1-#1^2)^2 JacobiP[3-3,2,2,#1]&
(1-#1^2)^2 JacobiP[4-3,2,2,#1]&
...
谢谢大家!!
Andrew Bzikadze这是一个有趣的问题。以纯函数的形式,它拒绝替换,但可以使用
Hold
在不更改For
循环结构的情况下进行替换
n = 5;
For[i = 3, i <= n, i++,
expr = (1 - #^2)^2 JacobiP[i - 3, 2, 2, #] &;
frozen = Map[Hold, expr, 3];
frozen[[1, 1, 2, 1, 1]] = i - 3;
w[i] = frozen //. Hold[x_] :> x;
Print[w[i]]]
576
注意,即使在这种形式下,参数也不会被计算,但替换工作良好,可以使用
f[4]
雅各比[4-3,2,2,1]&
在这种情况下:-
g[i_] := i + 1 &
g[2]
2+1&
这是因为函数
具有属性HoldAll
。请参见此处的详细信息部分:
非常感谢!工作得很有魅力。我不知道这个选项。
f[4]
g[i_] := i + 1 &
g[2]