1.38

练习 1.38 在1737年,瑞士数学家莱昂哈德·欧拉发表了一篇论文 De Fractionibus Continuis,文中包含了e-2的一个连分式展开,其中的e是自然对数的底。在这一分式中,NiN_i 全都是1,而DiD_i依次为1,2,1,1,4,1,1,6,1,1,8,……。请写出一个程序,其中使用你在练习1.37中所做的cont-frac过程,并能基于欧拉的展开式求出e的近似值。

(define (d i)
    (if (= 2 (mod i 3)) (* 2 (ceiling (/ i 3))) 1)
)
(d 1)
(d 2)
(d 3)
(d 4)
(d 5)
(d 6)
(d 7)
(d 8)
(d 9)
(d 10)
(d 11)
(define (cont-frac n d k)
    (define (g i k) 
        (if (= i k) (/ (n k) (d k))
            (/ (n i) (+ (d i) (g (+ i 1) k)))
        )
    )

    (g 1 k)
)

(cont-frac (lambda (i) 1.0)
            d
            1)

f(1)=11=1 f(1) = \frac{1}{1} = 1

f(2)=11+12=23 f(2) = \frac{1}{1 + \frac{1}{2}} = \frac{2}{3}

(cont-frac (lambda (i) 1.0)
            d
            2)

f(3)=11+12+11=11+13=34 f(3) = \frac{1}{1 + \frac{1}{2+\frac{1}{1}}} = \frac{1}{1 + \frac{1}{3}} = \frac{3}{4}

(cont-frac (lambda (i) 1.0)
            d
            3)

g(k,k)=NkDk 令 g(k, k) = \frac{N_k}{D_k} g(i,k)=NiDi+g(i+1,k) g(i, k) = \frac{N_i}{D_i + g(i+1, k)} f(k)=N1D1+N2+NkDk=N1D1+N2+g(k,k)=N1D1+g(2,k)=g(1,k) f(k) = \frac{N_1}{D_1 + \frac{N_2}{\ddots + \frac{N_k}{D_k}}} = \frac{N_1}{D_1 + \frac{N_2}{\ddots + g(k, k)}} = \frac{N_1}{D_1 + g(2, k)} = g(1, k) e =

(+ 2 (cont-frac (lambda (i) 1.0)
            d
            50))

results matching ""

    No results matching ""