使用特征方程求解递归

问题描述

我最近正在学习如何使用各种方法解决重复问题。到目前为止,我已经熟悉了大师定理和替代方法。我似乎无法理解的一种方法是以下需要通过特征方程求解的问题:

T(n)=2T(n/3)+1,T(1)=1

我看了某些教程和阅读材料,我想我需要从中推导出某种程度和联立方程?

在这种情况下我该怎么做?

很抱歉在这方面是业余的。

解决方法

首先,我们必须将循环放在更标准的形式中。让 U(k) = T(3k)。那么

U(0) = 1
U(k) = 2 U(k−1) + 1

U 由非齐次线性递推方程定义。下一步是得到齐次部分的非平凡解:

V(k) = 2 V(k−1)

特征多项式是 x − 2,有一个根 x = 2,因此对于每个 c,解是 c 2k。 (如果有多个根,我们会考虑每个根的指数函数的每个线性组合。)

现在我们必须得到满足 U(k) = 2 U(k−1) + 1 的任何解决方案,更不用说基本情况了。如果额外项是多项式,我们可以找到多项式。在这种情况下,我们可以尝试一个常数函数,求解 x = 2 x + 1,得到 x = -1,并验证 U(k) = -1 实际上有效。

最后,我们必须写出 U(k) = −1 + c V(k) 并通过求解 c 来修复基本情况。由于 U(0) = 1 = −1 + c V(0) = −1 + c,我们得到 c = 2。

整体解为 U(k) = 2k+1 − 1,因此

T(n) = 2log3(n)+1 − 1 = 2log2(n)/ log2(3)+1 − 1 = 2 n1/log2(3) − 1.