Решение упражнения 1.39 из SICP
Еще одно простое упражнение, сроди упражнению 1.38.
Просто приведу определение процедуры для вычисления тангенса по формуле Ламберта:
(define (tan-cf x k) (cont-frac (lambda (i) (if (= i 1) x (- (* x x)))) (lambda (i) (- (* 2 i) 1)) k))
Comments
Comment from Spok
Date: November 26, 2013, 3:44 pm
Упражнение то простое, но вторую лямбду можно было бы записать как
(lambda (i) (+ i (- i 1)))
По сути выдает тот же результат.
Comment from alexk
Date: July 31, 2014, 7:45 pm
Еще числитель и знаменатель правой части можно домножить на -x, тогда в числителях цепной дроби всегда будет x^2.
(define (tan-cf x k) (* (- (/ 1.0 x)) (cont-frac (lambda (i) (- (square x))) (lambda (i) (- (* i 2) 1)) k)) )
Write a comment