用母函数证明莱布尼兹公式
因为有:
1/(1-x)=1+x+x^2+x^3+...
用-x换x有:
1/(1+x)=1-x+x^2-x^3+...
方程两边积分有:
In (1+x)=1*x-1/2*x^2+1/3*x^3-1/4*x^4+..
将x等于1代入有:
In 2=1-1/2+1/3-1/4+...
下面写程序来证明:
(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)
(if (eq n 1)
1
(+ (expr (1- n))
(* (pow -1
(1+ n))
(/ 1.0
n)))))
(defun test (n)
(if (> n 0)
(progn
(print (expr n))
(print 'compare)
(print (log 2))
(test (- n 1)))
(print 'over)))
(test 1500)
n的值越大,两者的值越吻合。注意因为这里是交错的级数,n的值取到1500也没问题,不像以前只能取100以内的数字,同样也说明这个级数收敛得慢。
如果将x最后取值变为2,将不再收敛;
思维:为什么可以用母函数来证明这个公式???