Giter Site home page Giter Site logo

romberg's Introduction

数值分析作业

问题说明

利用Romberg求积算法计算积分$\int_2^5 \frac{10}{x^2}sin\frac{10}{x}dx$,使误差不超过$10^{-4}$.

理论基础分析

  1. 设n代表等分的区间个数,且$n=2^{k}$,$h=\frac{b-a}{n}$,$h_k=\frac{b-a}{2^k}$下标$0$代表梯形积分公式,利用梯形算法得到如下递推公式: $$T_0^{0}=\frac{b-a}{2}[f(a)+f(b)]$$ $$T_0^{k}=\frac{1}{2}T_0(k-1)+h_k\sum_{j=0}^{2^{k-1}-1}f(a+(2j+1)h_k)$$
  2. 根据计算出的$T_0^k$可以依次计算出对应的Simpson公式、Cptes公式和Romberg公式: $$T_1^{k-1}=\frac{1}{3}[4T_0(k)-T_0(k-1)]$$ $$T_2^{k-1}=\frac{1}{15}[16T_1(k)-T_1(k-1)]$$ $$T_3^{k-1}=\frac{1}{63}[64T_2(k)-T_2(k-1)]$$ $$k=1,2,3......$$
  3. 计算过程如下: $$T_0(0),T_0(1),T_1(0),T_0(2),T_1(1),T2(0),T_0(3),T_1(2),T_2(1),T_3(0)$$

算法步骤

逐次分半加速法:

  1. 设置待积分函数,积分上下限$[a,b]$,精度要求;
  2. 计算出$T_0(0)$;
  3. 将区间$[a,b]$分半,计算出$T_0(1),T_1(0)$;
  4. 将区间再分半,计算出$T_0(2),T_1(1),T2(0)$;
  5. 将区间再分半,计算出$T_0(3),T_1(2),T_2(1),T_3(0)$;
  6. 将区间在分半,重复第5步工作,计算出$T_0(4),T_1(3),T_2(2),T_3(1)$
  7. 计算$\frac{T_3(1)-T_3(0)}{3}$精度是否满足给定的精度要求,满足返回打印T表,不满足重复步骤6-7.

运行方法

python romberg.py

romberg's People

Watchers

Yifan Zhang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.