⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c龙贝格算法.txt

📁 C龙贝格算法  源程序 matlab数值计算
💻 TXT
字号:
龙贝格算 

--------------------------------------------------------------------------------

2007-03-06 22:06:00 标签:龙贝格算   [推送到技术圈] 


版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lucky.blog.51cto.com/124662/19412 
#include<stdio.h>
#include<math.h>
  
double f(double x)
{
   return 4/(1+x*x);
}
 
double RombergInteg(f,a,b,eps)
   double (*f)();
   double a,b,eps;
{
   int i=1,j;
   double T[2][4],h=b-a;
   double x,s,r,det,m;
   T[0][0]=(f(a)+f(b))*h/2;
   while(1){
     s=0;
     for(x=a+h/2;x<b;x+=h) s+=f(x);
     T[1][0]=(T[0][0]+h*s)/2;
     m=4;
     for(j=1;j<=3&&j<=i;j++)
     {
       T[1][j]=(m*T[1][j-1]-T[0][j-1])/(m-1);
       m*=4;
     }
     if(i<=3)
     {
       r=T[1][i];
       det=fabs(r-T[1][i-1]);
     }
     else
     {
       r=T[1][3];
       det=fabs(r-T[0][3]);
     }
     if(det<eps) return r;
     for(j=0;j<4;j++) T[0][j]=T[1][j];
     h/=2; i++;
   }
}
 
main()
{
   double a=0,b=1,eps=1e-5,I;
   I=RombergInteg(f,a,b,eps);
   printf("I=%f\n",I);
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -