(defn trapezium-rule [f a b]
(* 1/2 (- b a) (+ (f a) (f b))))
(defn simpson-rule [f a b]
(let [midpoint (+ a (/ (- b a) 2))]
(* 1/6 (- b a) (+ (f a) (* 4 (f midpoint)) (f b)))))
(defn iterated-rule [rule f a b N]
(if (= N 0)
(rule f a b)
(let [midpoint (+ a (/ (- b a) 2))]
(+ (iterated-rule rule f a midpoint (dec N))
(iterated-rule rule f midpoint b (dec N))))))
(defn square[x] (* x x))
(defn sine [x] (Math/sin x))
(defn step [x] (if (< x 1/2) 0.0 1.0))
(defn inverse [x] (/ x))
(defn simpson38-rule [f a b]
(let [midpoint1 (/ (+ a a b) 3)
midpoint2 (/ (+ a b b) 3)]
(* 1/8 (- b a) (+ (f a) (* 3 (f midpoint1)) (* 3 (f midpoint2)) (f b)))))
(simpson38-rule sine 0 Math/PI)
(defn booles-rule [f a b]
(let [midpoint1 (/ (+ a a a b) 4)
midpoint2 (/ (+ a a b b) 4)
midpoint3 (/ (+ a b b b) 4)]
(* 1/90 (- b a) (+ (* 7 (f a)) (* 32 (f midpoint1)) (* 12 (f midpoint2)) (* 32 (f midpoint3)) (* 7 (f b))))))
(booles-rule sine 0 Math/PI)
(iterated-rule booles-rule sine 0 Math/PI 0) (iterated-rule booles-rule sine 0 Math/PI 1) (iterated-rule booles-rule sine 0 Math/PI 2) (iterated-rule booles-rule sine 0 Math/PI 3) (iterated-rule booles-rule sine 0 Math/PI 4) (iterated-rule booles-rule sine 0 Math/PI 5) (iterated-rule booles-rule sine 0 Math/PI 6) (iterated-rule booles-rule sine 0 Math/PI 7) (iterated-rule booles-rule sine 0 Math/PI 8) (iterated-rule booles-rule sine 0 Math/PI 9)
(iterated-rule simpson38-rule sine 0 Math/PI 0) (iterated-rule simpson38-rule sine 0 Math/PI 1) (iterated-rule simpson38-rule sine 0 Math/PI 2) (iterated-rule simpson38-rule sine 0 Math/PI 3) (iterated-rule simpson38-rule sine 0 Math/PI 4) (iterated-rule simpson38-rule sine 0 Math/PI 5) (iterated-rule simpson38-rule sine 0 Math/PI 6) (iterated-rule simpson38-rule sine 0 Math/PI 7) (iterated-rule simpson38-rule sine 0 Math/PI 8) (iterated-rule simpson38-rule sine 0 Math/PI 9)
(iterated-rule booles-rule step 0 1 0) (iterated-rule booles-rule step 0 1 1) (iterated-rule booles-rule step 0 1 2) (iterated-rule booles-rule step 0 1 3) (iterated-rule booles-rule step 0 1 4) (iterated-rule booles-rule step 0 1 5) (iterated-rule booles-rule step 0 1 6) (iterated-rule booles-rule step 0 1 7) (iterated-rule booles-rule step 0 1 8) (iterated-rule booles-rule step 0 1 9)
(iterated-rule trapezium-rule step 0 1 0) (iterated-rule trapezium-rule step 0 1 1) (iterated-rule trapezium-rule step 0 1 2) (iterated-rule trapezium-rule step 0 1 3) (iterated-rule trapezium-rule step 0 1 4) (iterated-rule trapezium-rule step 0 1 5) (iterated-rule trapezium-rule step 0 1 6) (iterated-rule trapezium-rule step 0 1 7) (iterated-rule trapezium-rule step 0 1 8) (iterated-rule trapezium-rule step 0 1 9)
(iterated-rule booles-rule inverse 0.0001 1 0) (iterated-rule booles-rule inverse 0.0001 1 1) (iterated-rule booles-rule inverse 0.0001 1 2) (iterated-rule booles-rule inverse 0.0001 1 3) (iterated-rule booles-rule inverse 0.0001 1 4) (iterated-rule booles-rule inverse 0.0001 1 5) (iterated-rule booles-rule inverse 0.0001 1 6) (iterated-rule booles-rule inverse 0.0001 1 7) (iterated-rule booles-rule inverse 0.0001 1 8) (iterated-rule booles-rule inverse 0.0001 1 9)
(iterated-rule trapezium-rule inverse 0.0001 1 0) (iterated-rule trapezium-rule inverse 0.0001 1 1) (iterated-rule trapezium-rule inverse 0.0001 1 2) (iterated-rule trapezium-rule inverse 0.0001 1 3) (iterated-rule trapezium-rule inverse 0.0001 1 4) (iterated-rule trapezium-rule inverse 0.0001 1 5) (iterated-rule trapezium-rule inverse 0.0001 1 6) (iterated-rule trapezium-rule inverse 0.0001 1 7) (iterated-rule trapezium-rule inverse 0.0001 1 8) (iterated-rule trapezium-rule inverse 0.0001 1 9)
No comments:
Post a Comment