Mathematica帮助使用While和Module命令

Sun*_*day 0 loops wolfram-mathematica

这个等式适用于所有序列f[n]吗?

f[n_] :=  Module[{x = intial value, y = 0, i = 0},

            While[i++ < n, {x, y} = {y, equation}]; y]
Run Code Online (Sandbox Code Playgroud)

具体来说,我正在查看6*n*f[n]=f[n-1]+n!具有初始条件的等式f[0] = 7.但是,我想要一般的解决方案,以便我可以将它应用于其他方程式.而且,我想使用ModuleWhile.

谢谢.

Mic*_*lat 7

实现重复序列的最简洁和最常见的方法是仅f使用memoization定义,"记住"术语,因为它们是为了提高效率而计算的:

f[0] = 7
f[n_Integer?Positive] := f[n] = (f[n - 1] + n!)/(6 n)
Run Code Online (Sandbox Code Playgroud)

然后:

In[29]:= Table[f[n], {n, 0, 6}]

Out[29]= {7, 4/3, 5/18, 113/324, 7889/7776, 941009/233280, 168902609/8398080}
Run Code Online (Sandbox Code Playgroud)

如果您不需要自己编程重复,您也可以RecurrenceTable直接生成术语而不定义f:

In[30]:= RecurrenceTable[{a[0] == 7, 6 n a[n] == a[n - 1] + n!}, a, {n, 6}]

Out[30]= {7, 4/3, 5/18, 113/324, 7889/7776, 941009/233280, 168902609/8398080}
Run Code Online (Sandbox Code Playgroud)