Wolfram mathematica Mathematica中的递归函数定义

Wolfram mathematica Mathematica中的递归函数定义,wolfram-mathematica,Wolfram Mathematica,Mathematica可以使用RSolve解递归方程。是否可能有一个由递归定义的函数,不管递归是否可以解析求解 是的。看看人们也可以通过递归方程来编程定义函数,阶乘是最简单的例子 In[94]:= fac[1] = 1; fac[k_Integer?Positive] := k*fac[k - 1] In[96]:= fac[10] Out[96]= 3628800 In[97]:= Function[If[#1 == 1, 1, #1*#0[#1 - 1]]][10] Out[97]=

Mathematica可以使用RSolve解递归方程。是否可能有一个由递归定义的函数,不管递归是否可以解析求解

是的。看看人们也可以通过递归方程来编程定义函数,阶乘是最简单的例子

In[94]:= fac[1] = 1;
fac[k_Integer?Positive] := k*fac[k - 1]

In[96]:= fac[10]

Out[96]= 3628800

In[97]:= Function[If[#1 == 1, 1, #1*#0[#1 - 1]]][10]

Out[97]= 3628800

In[100]:= RecurrenceTable[
 f[k] == k f[k - 1] && f[1] == 1, f, {k, 1, 10}]

Out[100]= {1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800}

我想知道RecurrenceTable有什么好处,直到我用NestList重写了Sasha的示例:

Rest@NestList[{1, 0} + First@# {1, Last@#} &, {1, 1}, 10][[All, -1]]

{1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800}

如果k(First@#)的参与很复杂,那么递归表可能会简单得多。

递归关系独立于你(或Mma)找到闭合形式的能力。你能进一步解释你的问题吗?(请点击此处进行编辑)请允许我欢迎您来到StackOverflow,并提醒您我们通常在这里做的三件事:1)当您收到帮助时,尝试给予帮助,回答您专业领域的问题2)3)当您看到好的问答时,请投赞成票,因为系统的可信度是基于用户通过分享知识而获得的声誉。还记得接受更好地解决你的问题的答案,如果有的话,@malina,Sasha给出的第二个例子是一个纯递归函数,你第一次看到它们时,它们看起来很奇怪。莱昂尼德对此进行了更深入的讨论。@rcollyer@Sasha我看不出问题的要点(我在那里对此进行了评论),也没有看到答案。这三个公式是相同的(正如我看到的),因为你可以从一个转换到另一个。所以问题是什么?只是好奇…@belisarius我猜@malina在寻找一个通过递归方程定义函数的例子,这就是答案。我应该提供更多的教育链接。我同意,无论是问题还是答案都不是特别有用,因为整个社区都太基础了。@belisarius,我在某种程度上同意;我只是想对一个混乱的符号提供更多的见解。但是,我不同意这三个例子是相同的。虽然它们能够给出相同的结果,但它们是通过不同的符号来实现的,
RecurrenceTable
的操作可能与其他符号非常不同。仅在这一点上,答案是有用的;但问题是,我不知道。