sicp/1_40.sch

29 lines
444 B
Scheme

(define (square x) (* x x))
;; Newton's method
(define (deriv g)
(lambda (x)
(/ (- (g (+ x dx)) (g x))
dx)))
(define dx 0.00001)
(define (cube x) (* x x x))
(define (newton-transform g)
(lambda (x)
(- x (/ (g x) ((deriv g) x)))))
(define (newtons-method g guess)
(fixed-point (newton-transform g) guess))
;;
(define (cubic a b c)
(lambda (x)
(+ (cubed x)
(* a (squared x))
(* b x)
c)))