Python 3.x 创建递归函数和闭合函数定义
此赋值的目的是采用底部给出的递归关系,然后在Python 3.x 创建递归函数和闭合函数定义,python-3.x,recursion,math,Python 3.x,Recursion,Math,此赋值的目的是采用底部给出的递归关系,然后在recFunc(n)下创建递归函数,并在nonRecFunc(n)下创建闭合函数定义。闭函数意味着我们的函数应该完全依赖于n,并且它的输出应该是 精确匹配递归函数的。然后,找到n=15和n=20的值,并按照以下说明使用。您可能需要使用特征方程来解决此问题 nonRecFunc(20)(除以)nonRecFunc(15))的值是多少,四舍五入到最接近的整数 问题: 用初始条件a_0=1和a_1=4求解递归关系a_n=12a_n-1-32a_n-2 我不知
recFunc(n)
下创建递归函数,并在nonRecFunc(n)
下创建闭合函数定义。闭函数意味着我们的函数应该完全依赖于n,并且它的输出应该是
精确匹配递归函数的。然后,找到n=15和n=20的值,并按照以下说明使用。您可能需要使用特征方程来解决此问题
nonRecFunc(20)
(除以)nonRecFunc(15)
)的值是多少,四舍五入到最接近的整数
问题:
用初始条件a_0=1和a_1=4求解递归关系a_n=12a_n-1-32a_n-2
我不知道应该如何解决这个问题,以及如何使用递归来解决这个问题
def recFunc(n):
if n == 0:
return 1
elif n == 1:
return 2
else:
return recFunc(n - 1) + 6 * recFunc(n - 2)
def nonRecFunc(n):
return 4/5 * 3 ** n + 1/5 * (-2) ** n
for i in range(0,10):
print(recFunc(i))
print(nonRecFunc(i))
print()
正如我在上面的评论中提到的,我将递归解决方案留给您。 对于非递归解的更数学问题,考虑如下: 你有 x_n=a x_(n-1)+b x_(n-2) 这意味着x的变化或多或少与x成正比,因为x_n和x_(n-1)将具有相同的数量级。换句话说,我们正在寻找一个函数类型 df(n)/dn~f(n) 这是指数型的。因此,上述假设是正确的 x_n=αt^n+βs^n (稍后在求解s和t时,其动机变得清晰)从一开始我们就得到了 α+β=1 及 αt+βs=2 递归提供了 αt^n+βs^n=a(αt^(n-1)+βs^(n-1))+b(αt^(n-2)+βs^(n-2)) 或 t^2αt^(n-2)+s^2βs^(n-2)=a(tαt^(n-2)+sβs^(n-2))+b(αt^(n-2)+βs^(n-2)) 这个方程适用于所有n,这样你就可以导出t和s的方程 在上述方程中插入结果可以得到非递归解 试着复制它,然后开始实际的任务
干杯。我不确定你的问题是什么——快速浏览一下发布的源代码似乎可以告诉你如何解决问题;你只需要插入正确的常数。问题是“用初始条件a_0=1和a_1=4求解递归关系a_n=12a_n-1-32a_n-2。”我该怎么做?你试过什么?要求得到填鸭式的回答在这里通常不受欢迎;您有足够的信息可以轻松解决递归部分,但是将递归函数转换为闭合函数可能会很尴尬,而这方面的帮助可能会更好。我不是在问答案,我是在问一个过程。克服这个问题的方法是什么,可以使用什么方法,这对递归有什么应用?我认为我提出的问题很直观。也许你误解了这个问题?谢谢你的帮助!但您已经展示了系数1,6和起始值1,2的简明递归解。是什么阻止你把它们改成12,32和1,4?