莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          scip習題1.7解答

          Posted on 2007-05-08 17:08 dennis 閱讀(1072) 評論(0)  編輯  收藏 所屬分類: 計算機科學與基礎
              綜合了習題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.0000000000000975834575646
          > (simple_curt 8)
          2.0000000000120622386311755
          > (simple_curt 9)
          2.0800838232385225245408740


          主站蜘蛛池模板: 潮安县| 江西省| 满洲里市| 石家庄市| 施秉县| 汉沽区| 阿拉善左旗| 砀山县| 德化县| 凤翔县| 吉首市| 迭部县| 南江县| 罗源县| 汶川县| 定安县| 民勤县| 延庆县| 辽源市| 武汉市| 云霄县| 新乡市| 浦城县| 崇礼县| 湟中县| 贵州省| 宁蒗| 嘉峪关市| 定陶县| 克山县| 亚东县| 寿光市| 清水河县| 辽中县| 洪江市| 吕梁市| 孟津县| 凌云县| 西安市| 巴彦淖尔市| 陈巴尔虎旗|