(define pai (inexact->exact 3.1415926535897936)) ;円周率 (define (f x) (inexact->exact (g x))) ;有理関 数 (define (g x) (sin (inexact->exact (* pai x)))) ;関 数 (define p (/ 31415926535897936 (expt 10 16))) ;円周率 有理数 表示 (define (^ a n) (if (= 0 n) 1 (if (> 0 n) (/ 1 (^ a (* -1 n))) (* a (^ a (- n 1)))))) (define (e a b n k) (+ a (/ (* k (- b a)) n))) (define (inte f a b n k) (if (= 1 k) (list (* (/ (- b a) n) (f (e a b n k)))) (cons (* (/ (- b a) n) (f (e a b n k))) (inte f a b n (- k 1))))) (define (int a b n) (apply + (inte f a b n n))) ;積分 (define (lim n a) ;(n→∞) (cond ((> (^ 10 -5) (abs (- (a (+ n 1)) (a n)))) (a n)) ((< (^ 10 11) (a n)) '(∞)) ((> (* -1 (^ 10 11)) (a n)) '(-∞)) ((< (^ 10 10) n) '(?)) (#t (lim (+ n 100) a)))) (define (df x) (begin (define (a n) (* n (- (f (+ x (/ 1 n))) (f x)))) (lim 100 a))) (define (l n) ;n! (if (> 2 n) 1 (* n (l (- n 1))))) (define (com n k) ;nCk (/ (l n) (l (- n k)) (l k))) (define (gf x k l n) (* (com k l) (f (+ x (/ l n))) (^ -1 (- k l)))) (define (ekf k l x n) (if (= 0 l) (list (gf x k 0 n)) (cons (gf x k l n) (ekf k (- l 1) x n)))) (define (dkf k x) ;f^(k)(x) (begin (define (a n) (* (^ n k) (apply + (ekf k k x n)))) (lim (^ 10 5) a))) (define (gau x k) (cond ((= k x) k) ((> k x) (gau x (- k 1))) (#t (if (> (+ k 1) x) k (gau x (+ k 1)))))) (define (dfl k x) (if (= 0 k) (list (f x)) (cons (/ (dkf k x) (l k)) (dfl (- k 1) x)))) (define (ex x ls) (if (null? ls) '() (cons (^ x (- (length ls) 1)) (ex x (cdr ls))))) (define (tf x a k) (if (= 0 k) (f a) (apply + (map * (ex x (dfl k a)) (dfl k a)))))