ONLY DO WHAT ONLY YOU CAN DO

こけたら立ちなはれ 立ったら歩きなはれ

Clojure で 積分(台形則)して π を求める

πの求め方




積分(台形則)


(defn f[x]
    (/ 4 (+ 1 (* x x))))

(def a 0)
(def b 1)

; 台形則で積分
(doseq [j (range 1 11)]
    (def n (Math/pow 2 j))
    (def h (/ (- b a) n))
    (def x a)
    (def s 0)
    (doseq [i (range 1 n)]
        (def x (+ x h))
        (def s (+ s (f x))))
    (def t1 (double (* h (+ (/ (+ (f a) (f b)) 2) s))))
    (def t2 (- t1 (. Math PI)))
    ; 結果を π と比較
    (println (format "%2d : %13.10f, %13.10f" j t1 t2)))
 1 :  3.1000000000, -0.0415926536
 2 :  3.1311764706, -0.0104161830
 3 :  3.1389884945, -0.0026041591
 4 :  3.1409416120, -0.0006510415
 5 :  3.1414298932, -0.0001627604
 6 :  3.1415519635, -0.0000406901
 7 :  3.1415824811, -0.0000101725
 8 :  3.1415901105, -0.0000025431
 9 :  3.1415920178, -0.0000006358
10 :  3.1415924946, -0.0000001589
nil
参考文献