我有以下问题:
解决以下重现关系,简化您的最终答案 使用'O'符号。
f(0)= 3
f(1)= 12
F(N)= 1207(N-1)-9f第(n-2)
我们知道这是一个齐次的二阶关系,所以我们写出特征方程:a^2-6a+9=0
,解是a1,2=3
。
问题是当我更换这些值时,我得到:
f(n)=c1*3^n+c2*3^n
并使用我有的2个初始关系:
f(0)=c1+c2=3
f(1)=3(c1+c2)=12
这使我没有c1
和c2
这样的值,这两个关系都是正确的。
我做错了吗?当涉及到特征方程的相同根时,它应该解决的方式是不同的吗?
答案 0 :(得分:0)
您无法通过这种方式解决问题,因为矩阵A不可对角化。 但是,如果您使用Jordan的正常形式,那么这就是您所获得的:
f(n) = 3^{n-1}(3n + 9)
Jordan矩阵和基础(维基百科+ Octave的符号)是:
J := [3,1;0,3]
P := [3,4;1,1]
这样PJP ^ { - 1} = A,其中
A := [6,-9;1,0]
是你的递归矩阵。此外,Jordan矩阵几乎与用于计算能力的对角矩阵一样好:
J^n = 3^(n-1) * [3,n;0,3].
然后再次发生:
[f(n+1); f(n)] = A^n [12,3] = PJ^nP^-1[12,3] = (<whatever>, 3^(n-1)*(3n+9)).
这里有一个快速的数字检查(Scala,但你可以随心所欲,Octave或我喜欢的任何东西):
scala> def f(n: Int): Int = { if (n == 0) 3 else if (n == 1) 12 else (6 * f(n-1) - 9 * f(n-2)) }
f: (n: Int)Int
scala> for (i <- 0 until 20) println(f(i))
3
12
45
162
567
1944
6561
21870
72171
236196
767637
2480058
7971615
25509168
81310473
258280326
817887699
^
scala> def explicit(n: Int): Int = (Math.pow(3, n -1) * (3 * n + 9)).toInt
explicit: (n: Int)Int
scala> for (i <- 0 until 20) println(explicit(i))
3
12
45
162
567
1944
6561
21870
72171
236196
767637
2480058
7971615
25509168
81310473
258280326
817887699