2017年04月05日
計算機プログラムの構造と解釈 問題1.8
計算機プログラムの構造と解釈(SICP)の問題1.8のNewton法を使って立方根を求める手続きの作成。
基本的には先に作成していたsqrt手続きを立方根ように改良すればよさそうです。
立方根は英語で"Cube root"というので手続き名はcurtにしました。
新たに作成するのはcurtとcurt-iterとcurt-improveの三つです。good-enough?はsqrtのものを流用します。
そこそこ正確な立方根が求められています。
実装
基本的には先に作成していたsqrt手続きを立方根ように改良すればよさそうです。
立方根は英語で"Cube root"というので手続き名はcurtにしました。
新たに作成するのはcurtとcurt-iterとcurt-improveの三つです。good-enough?はsqrtのものを流用します。
(define (good-enough? guess next-guess) ;;許容値未満しか変化しなければ真
(let ((tolerance 0.0001))
(< (abs (- next-guess guess)) tolerance)))
;;;Newton法 p.14
(define (curt x) ;;立方根を求める
(curt-iter 1.0 x))
(define (curt-iter guess x)
(let ((next-guess (curt-improve guess x)))
(if (good-enough? guess next-guess)
next-guess
(curt-iter next-guess x))))
(define (curt-improve y x)
(/ (+ (/ x (square y))
(* 2 y))
3))
実行結果
そこそこ正確な立方根が求められています。
新品価格 |
【このカテゴリーの最新記事】
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6132072
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック