ato*_*erz 15 recursion explicit formula
我有这个递归函数:
f(n) = 2 * f(n-1) + 3 * f(n-2) + 4
f(1) = 2
f(2) = 8
Run Code Online (Sandbox Code Playgroud)
我从经验中知道它的明确形式是:
f(n) = 3 ^ n - 1 // pow(3, n) - 1
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何方法可以证明这一点.我google了一下,但没有找到任何简单的理解.我已经知道生成函数可能解决了它,它们太复杂了,我宁愿不进入它们.我正在寻找一种更简单的方法.
PS如果它有帮助我记得这样的东西解决了它:
f(n) = 2 * f(n-1) + 3 * f(n-2) + 4
// consider f(n) = x ^ n
x ^ n = 2 * x ^ (n-1) + 3 * x ^ (n-2) + 4
Run Code Online (Sandbox Code Playgroud)
然后你以某种方式计算x导致显式形式的递归公式,但我不记得了
Ale*_*lex 12
f(n) = 2 * f(n-1) + 3 * f(n-2) + 4
f(n+1) = 2 * f(n) + 3 * f(n-1) + 4
f(n+1)-f(n) = 2 * f(n) - 2 * f(n-1) + 3 * f(n-1) - 3 * f(n-2)
f(n+1) = 3 * f(n) + f(n-1) - 3 * f(n-2)
Run Code Online (Sandbox Code Playgroud)
现在4号消失了.如你所说,下一步是让f(n)= x ^ n
x^(n+1) = 3 * x^n + x^(n-1) - 3 * x^(n-2)
Run Code Online (Sandbox Code Playgroud)
除以x ^(n-2)
x^3 = 3 * x^2 + x - 3
x^3 - 3 * x^2 - x + 3 = 0
Run Code Online (Sandbox Code Playgroud)
找到x的因素
(x-3)(x-1)(x+1) = 0
x = -1 or 1 or 3
f(n) = A * (-1)^n + B * 1^n + C * 3^n
f(n) = A * (-1)^n + B + C * 3^n
Run Code Online (Sandbox Code Playgroud)
现在使用您拥有的值找到A,B和C.
f(1) = 2; f(2) = 8; f(3) = 26
f(1) = 2 = -A + B + 3C
f(2) = 8 = A + B + 9C
f(3) = 26 = -A + B + 27C
Run Code Online (Sandbox Code Playgroud)
解决A,B和C:
f(3)-f(1) = 24 = 24C => C = 1
f(2)-f(1) = 6 = 2A + 6 => A = 0
2 = B + 3 => B = -1
Run Code Online (Sandbox Code Playgroud)
最后
f(n) = 3^n - 1
Run Code Online (Sandbox Code Playgroud)
好吧,我知道你不想生成函数(GF从现在开始)和所有复杂的东西,但我的问题结果是非线性的,简单的线性方法似乎不起作用.经过一整天的搜索,我找到了答案,希望这些发现对其他人有所帮助.
我的问题:a [n + 1] = a [n] /(1 + a [n])(即不是线性的(也不是多项式的),但也不是完全非线性的 - 它是一个有理差分方程)
RSolve[{a[n + 1] == a[n]/(1 + a[n]), a[1] == A}, a[n], n]让我变得简单{{a[n] -> A/(1 - A + A n)}}.所以我想我会回去查找手工计算中的错误(它们有助于理解整个转换过程的工作原理).无论如何,希望这会有所帮助.