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
.但是,我想要一般的解决方案,以便我可以将它应用于其他方程式.而且,我想使用Module
和While
.
谢谢.
实现重复序列的最简洁和最常见的方法是仅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)