龙贝格公式计算定积分
Posted dixinfan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了龙贝格公式计算定积分相关的知识,希望对你有一定的参考价值。
1 #include<stdio.h> 2 #include<math.h> 3 #define maxlen 100 4 #define eps 0.5*1e-5 5 double a=0; 6 double b=1; 7 double f(double x){ 8 return 4/(1+x*x); 9 } 10 double t(int n){ 11 int i; 12 double sum, h = (b - a) / n; 13 for (i = 1; i < n; i++) 14 sum += f(a + i * h); 15 sum += (f(a) + f(b)) / 2; 16 return (h * sum); 17 } 18 int main() 19 { 20 printf("k T[k] S[k] C[k] R[k] "); 21 double T[maxlen]; 22 double S[maxlen]; 23 double C[maxlen]; 24 double R[maxlen]; 25 int k=-1; 26 while(1){ 27 k++; 28 int z=pow(2,k); 29 T[k]=t(z); 30 if(k>0){ 31 S[k]=T[k]*4/3-T[k-1]/3; 32 } 33 if(k>1){ 34 C[k]=S[k]*16/15-S[k-1]/15; 35 } 36 if(k>2){ 37 R[k]=C[k]*64/63-C[k-1]/63; 38 } 39 printf("%d %lf %lf %lf %lf ",k+1,T[k],S[k],C[k],R[k]); 40 if(k>3){ 41 if (abs(R[k]-R[k-1])<eps){ 42 break; 43 } 44 } 45 } 46 printf("a:0,b:1 f(x):4/(1+x*x) eps:0.5*1e-5 the result:%lf ",R[k]); 47 return 0; 48 }
以上是关于龙贝格公式计算定积分的主要内容,如果未能解决你的问题,请参考以下文章