龙贝格积分法的C语言实现及应用

  • 问题背景与提出

龙贝格求积公式也称为逐次分半加速法。是数值计算方法之一,用以求解数值积分。是在梯形公式、辛普森公式和柯特斯公式之间关系的基础上,构造出一种加速计算积分的方法。 作为一种外推算法,在不增加计算量的前提下提高了误差的精度

龙贝格公式在变步长的求积过程中运用三个加速公式,由变步长的梯形加速法,逐步得到梯形加速公式、抛物线加速公式,进而由粗糙的积分近似值迅速加工成精度较高的积分近似值。本实验通过龙贝格公式的C语言实现,两个简单示例,认识龙贝格公式的高精度积分近似。

 

  • 实验目的

    通过对龙贝格求积公式的学习,在梯形公式、辛普森公式、柯特斯公式的基础上,实现龙贝格积分公式的C语言实现,理解龙贝格积分的的积分近似值的加工精度高的效果,进一步提高对龙贝格积分的认识。

  • 实验原理与数学模型

   

  可以看到,用  和  的线性组合可以得到一个比 和  都好的近似公式,因此用  作为  的近似计算方式,通过验算,可以得到即复化Simpson公式。复化Simpson公式要优于复化梯形公式。

再由复化Simpson公式的截断误差公式

若  变化不大时,即  。则

所以得到上式表明,用  和  的线性组合可以得到一个比 和  都好的近似公式。通过验算,上式右端项是  。即

当然复化Cotes公式要优于复化Simpson公式。

类似于前面的推导,可以得到关于  的线性组合公式令上式的右端项为  。即称  为龙贝格(Romberg)值。可以猜想,龙贝格(Romberg)值  要优于Cotes值  。因此用龙贝格(Romberg)值计算积分,将有较快的收敛速度。 [1] 

 

  • 实验内容(要点)

1、龙贝格积分算法C语言实现

2、龙贝格积分算法应用

  • 实验过程记录(含基本步骤、主要程序清单及异常情况记录等)
  1. 龙贝格积分算法C语言实现

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

 

double f(double x);

double rom(double a,double b,double ep)

 

{

    double h,s1,c1,r1,s2,c2,r2,t1,t2,s;

    int i,k,n;

    h=(b-a)/2.0;

    t2=(f(a)+f(b))*h;

    s2=0;

    c2=0;

    r2=0;

    n=1;

    k=0;

    do{

        t1=t2;

        s1=s2;

        c1=c2;

        r1=r2;

        s=0.0;

 

        for(i=1;i<=n;i++)

        {

            s=s+f(a+(2*i-1)*h);

        }

        t2=t1/2+s*h;

        s2=(4*t2-t1)/3;

        c2=(16*s2-s1)/15;

        r2=(64*c2-c1)/63;

        n=n*2;

        k=k+1;

        h=h/2;

        printf("R(%d)=%f\n",k,r2);

    }

    while(fabs(r2-r1)>=ep);

 

    return 0;

 

}

  1. 龙贝格积分算法应用

1、主函数程序及函数子程序1

double f(double x)

{

    double f1;

    if(x!=0) f1=sin(x)/x;

    return f1;

}

int main()

{

    double a,b,ep;

    a=0;

    b=1;

    ep=0.0000005;

    rom(a,b,ep);

}

运行结果如下:

     2、主函数程序及函数子程序2

     double f(double y)

{

    return 1/y;

}

int main()

{

    double a,b,ep;

    a=1;

    b=3;

    ep=0.0000005;

    rom(a,b,ep);

}

运行结果如下:

实验问题及解决方法:

参考相关龙贝格实现方法,主要是一些语法错误。

  • 实验总结

通过对龙贝格积分算法的学习,龙贝格积分算法的C语言实现及应用,对龙贝格求积公式有了一定认识,认识到其优势在于收敛速度快,积分近似值精度高。但实验中仅对该积分公式进行实现及应用,未与其他积分公式进行对比,其特性不够明显。

参考文献

  1. 同等科等,中国石油大学出版社,计算方法.
  2. 网络资源https://baike.baidu.com/item/%E9%BE%99%E8%B4%9D%E6%A0%BC%E6%B1%82%E7%A7%AF%E5%85%AC%E5%BC%8F/3882832?fr=aladdin

 

原创文章 84 获赞 34 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_42194332/article/details/92104646