scip習題1.7解答

dennis_zane發表於2007-05-08
    綜合了習題1.6提出的誤差過大問題,採用相對誤差進行求值,題目是要求使用牛頓近似求立方根公式寫出scheme過程:
(define (square x) (* x x))
(define (divided_by_3 x y)(
/ (+ x y) 3))
(define (improve guess x)
        (divided_by_3 (
/ x (square guess)) (* 2 guess)))
(define constant 
0.0001)
(define (good_enough
? old_guess guess)
        (
< (abs (/ (- guess old_guess) guess)) constant)) 
(define (curt old_guess guess x)
        (
if (good_enough? old_guess guess)
             guess
            (curt guess (improve guess x) x)))
(define (simple_curt x)(curt 
0.1 1 x))

測試一下:

> (simple_curt 27)
3.0000000000000975834575646dot.gif
> (simple_curt 8)
2.0000000000120622386311755dot.gif
> (simple_curt 9)
2.0800838232385225245408740dot.gif


115994.html

dennis 2007-05-08 17:08 發表評論

相關文章