混沌的解决(扩展)
考虑如下通项公式:
a(n)=(n+1)*a(n-1)-(n-1)*a(n-2)+A
先变形有:
a(n)-n*a(n-1)=a(n-1)-(n-1)*a(n-2)+A
换元有:
a(n)-n*a(n-1)=A*n
现在寻找这种混沌系统的初始条件:
考虑前面基础部分的经验,能够得到这里:
a(n)=n!*(A*e+init),
如果采用程序计算,初始条件是a(0)=init,a(1)=init+A
下面写程序来证明:
(defun pow (num count)
(if (or (> count 1) (eq count 1) )
(* num
(pow num
(- count 1) ) )
1))
(defun slayer ( count)
(if (or (> count 1) (eq count 1) )
(* count
(slayer
(- count 1) ) )
1))
(setq init 1.0)
(setq a 4.0)
(defun expr (n)
(if (eq n 0)
init
(if (eq n 1)
(+ init
a)
(+ (* (1+ n)
(expr (1- n)))
(* -1
(1- n)
(expr (- n 2)))
a))))
(setq e 2.7182818284)
(defun formula (n)
(* (slayer n)
(+ (* e
a)
init)))
(defun test (n)
(if (> n 0)
(progn
(print (expr n))
(print 'compare)
(print (formula n))
(test (- n 1)))
(print 'over)))
(test 10)
n的值越大,两者的值越吻合。用(setq a 20.0),当n的值越大,两者的值越吻合。