//right-hand has a variable n more with fibs function
(defun fibs (n)
(if (eq n 1)
2
(if (eq n 2)
3
(+ n
10
(- (* 6 (fibs (- n 1) ) )
(* 8 (fibs (- n 2) ) ))))))
GO
f(t+2)-6*f(t+1)+8*f(t)={n+2}+10
f(t+3)-6*f(t+2)+8*f(t+1)={n+3}+10
GO ( below minus above)
f(t+3)-7*f(t+2)+14*f(t+1)-8*f(t)=1
same as above
f(t+4)-7*f(t+3)+14*f(t+2)-8*f(t+1)=1
GO
(X-2)(X-1)(X-1)(X-4)=0
GO
2*A+4*B+C+D=2
4*A+16*B+C+2*D=3
8*A+64*B+C+3*D=15
8*A+128*B+C+4*D=35
GO
解方程可以获得ABCD的值。
(defun pow (num count)
(if (> count 0)
(* num (pow num (- count 1) ) )
1
)
)
(setq A (- 0 (/ 16 7.0)) )
(setq B (/ 109 253.0))
(setq C (/ 281 63.0))
(setq D (/ 8 21.0))
(defun formula (n)
(+ (* A (pow 2 n))
(* B (pow 4 n))
C
(* D n)))
(defun test (n)
(if (> n 0)
(progn
(print (formula n))
(print (fibs n))
(test (- n 1) ))
(print 'over)))
(test 10)
//经过验证,结果是非常精确的。