基础对数级数公式展开的来源(实践中的困惑)
前面代码x的取值,是以1/n,也就是说是为了让x^n收敛于0而故意选取的值;下面尝试直接用n做实验。
下面写程序来证明:
(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))
(defun expr (n value)
(if (eq n 1)
value
(+ (expr (1- n)
value)
(* (pow -1
(1+ n))
(pow value
n)
(/ 1.0
n)))))
(defun test (n)
(if (> n 0)
(progn
(print (expr n
n))
(print 'compare)
(print (log (+ 1
n)))
(test (- n 1)))
(print 'over)))
[5]> (test 10)
-9.001092E8
COMPARE
2.3978953
3.827097E7
COMPARE
2.3025851
-1835573.3
COMPARE
2.1972246
100898.83
COMPARE
2.0794415
-6484.8
COMPARE
1.9459101
502.9167
COMPARE
1.7917595
-46.666664
COMPARE
1.609438
7.5
COMPARE
1.3862944
0.0
COMPARE
1.0986123
1
COMPARE
0.6931472
OVER
OVER
也就是说当x^n发散的时候,两者的值不再相等,为什么会这样,这说明了什么???