现在的位置: 首页 > 综合 > 正文

《计算机程序的构造和解释》学习笔记———数值积分

2019年07月17日 ⁄ 综合 ⁄ 共 1206字 ⁄ 字号 评论关闭

一、数值分析

  數值分析(英語:numerical analysis),是指在數學分析(區別於離散數學)問題中,對使用數值近似(相對於一般化的符號運算)演算法的研究。

  (参考:http://zh.wikipedia.org/wiki/数值分析

  研究领域:

    1.函數求值

    2.內插法、外推法、曲線擬合及回歸

    3.求解方程及方程組

    4.求解特徵值或奇異值問題

    5.最優化

    6.積分計算

    7.微分方程

二、数值积分

  在數值分析中,數值積分是計算定積分數值的方法和理論。在數學分析中,給定函數的定積分的計算不總是可行的。許多定積分不能用已知的積分公式得到精確值。數值積分是利用黎曼積分等數學定義,用數值逼近的方法近似計算給定的定積分值。

  (参考:http://zh.wikipedia.org/wiki/数值积分

三、数值积分方法:

  矩形法:(黎曼积分,计算一维定积分近似值)

    \int_I f(t) dt \approx \mathbf{I}_{\mbox{appr}}(c_1, x_1, c_2,  x_2 ,\cdots , c_n, x_n) = \sum_{i=0}^{n-1} (x_{i+1}-x_i)f(c_i)

   LISP实现(中矩形公式):

(define (sum term a next b)
  (if (> a b)
      0
      (+ (term a) (sum term (next a) next b))))
(define (integral f a b dx)
  (define (integral-next x)
    (+ x dx))
  (* (sum f (+ a (/ dx 2.0)) integral-next b) dx))

  插值法:

    拉格朗日差值公式(http://zh.wikipedia.org/wiki/%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E6%8F%92%E5%80%BC%E6%B3%95

  牛頓-寇次公式:http://zh.wikipedia.org/wiki/%E7%89%9B%E9%A0%93%EF%BC%8D%E5%AF%87%E6%AC%A1%E5%85%AC%E5%BC%8F

    拓展实现:辛普森法则;梯形法则。

    梯形法则:(可LISP实现)

       思想:被積函數近似為直線函數,被積的部分近似為梯形。

      (求解多个梯形面积和)

    \int_{a}^{b} f(x)\, dx \approx (b-a)\frac{f(a) + f(b)}{2}.

      (利用梯形面积推导)

    辛普森法则:(可LISP实现)

       思想:被积函数近似为过中点的二次函数。(以二次曲線逼近的方式取代矩形或梯形積分公式,以求得定積分的數值近似解。)

   \int_{a}^{b} f(x) \, dx \approx \frac{b-a}{6}\left[f(a) + 4f\left(\frac{a+b}{2}\right)+f(b)\right]

    (利用二次函数积分推导)

(define (integral-v3 f a b n) 
(define (integral-inner f a b k n)
  (define (pre-fix x)
    (cond ((= x 0) 1)
          ((= x n) 1)
          ((even? x) 2)
          (else 4)))
  (if (or (> a b) (> k n))
     0
     (+ (* (/ (/ (- b a) n) 3.0)
           (pre-fix k)
           (f (+ a (* k (/ (- b a) n)))))
        (integral-inner f a b (+ k 1) n))))
(integral-inner f a b 0 n))

 

抱歉!评论已关闭.