SICP(计算机程序的构造与解释)schemepratice,自己写的1.45~2.65的大部分题目都包括了。.doc

SICP(计算机程序的构造与解释)schemepratice,自己写的1.45~2.65的大部分题目都包括了。.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SICP(计算机程序的构造与解释)schemepratice,自己写的1.45~2.65的大部分题目都包括了。

(define (intergral_origin f a b delt sum) (cond ((= a b) sum) (else (+ sum (f a) (intergral_origin f (+ a delt) b delt sum))))) (define (intergral f a b) (* 0.0001 (intergral_origin f a b 0.0001 0))) ;;简单的一元函数求积分,积分步长是0.0001 ;;折半求根方法 ;调用pre_search查找根 (define (pre_search f a b) (let ( (val_a (f a)) (val_b (f b))) (cond ( ( (* val_a val_b) 0) (error f(a) and f(b) share a sign)) ( ( val_a 0) (_search f b a)) (else (_search f a b))))) (define (enough? x y) ( 0.00001 (abs (- x y)))) (define average (lambda (x y) (/ (+ x y) 2.0))) (define (_search func neg_point pos_point) (let ((midpoint (average neg_point pos_point))) (if (enough? neg_point pos_point) midpoint (let ((midval (func midpoint))) (cond ((= midval 0) midpoint) (( midval 0) (_search func neg_point midpoint)) (else (_search func midpoint pos_point))))))) ;;fix-point ;;这个只是迭代,时候收敛需要自己确定f(x)收敛情况 (define (fix-point f x) (display x) ;;显示迭代过程 (newline) (let ((next (f x))) (if (enough? x next) next (fix-point f next)))) ;;差值近似求导 (define d (lambda (f x delt) (/ (- (f (+ x delt)) (f x)) delt))) ;;牛顿法的变形 (define (newton-fix g) (lambda (x) (- x (/ (g x) (d g x 0.000001))))) (define (newton-method g guess) (fix-point (newton-fix g) guess)) (define (mysq x) (newton-method (lambda (y) (- x (* y y ))) 1.0)) ;;lambda定义匿名过程,参数尤其灵活) (define (cubic a b c) (lambda (x) (+ (* x x x) (* a x x) (* b x) c)));;pratice 1.40 (define (double f) (lambda (x) (f (f x)))) ;;(((double (double double)) inc) 5) =21 = 5 + 16 (define (compose f g) (lambda (x) (f (g x)))) ;; pratice 1.42 (define (square x) (* x x)) ;;repeat 的三个版本 (define (even? x) (= 0 (remainder x 2))) (define ((repeat f n) x);;版本1,一般的define (cond ((= n 1) (f x)) (else ((compose f (repeat f (- n 1))) x)))) (define (repeat1 f n) ;;版本2 ,版本1的lambda版 (lambda (x) (cond ((= n 1) (f x)) (else ((compose f (repeat1 f (- n 1))) x)

文档评论(0)

cuotian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档