simpson.c

来自「(1) 设计算法并编制程序」· C语言 代码 · 共 38 行

C
38
字号
#include <stdio.h> 
#include <conio.h> 
#include <math.h> 
#define   PI 3.1415926
double f(double x)
{ double y=0.3;
return  sqrt(1-y*y*cos(x)*cos(x)) ;
}
void main() 
{ 
int i,n=1; 
double s; 
double f(double); 
double Simpson(double(*)(double),double,double,int); 
for(i=0;i<=16;i++) 
{ 
s=Simpson(f,0,2*PI,n); 
printf("s(%d)=%0.9lf\n",n,s); 
n*=2; 
} 
getch(); 
} 
double Simpson(double(*f)(double),double a,double b,int n) 
{ 
int k; 
double s,s1,s2=0.0; 
double h=(b-a)/n; 
s1=f(a+h/2); 
for(k=1;k<=n-1;k++) 
{ 
s1+=f(a+k*h+h/2); 
s2+=f(a+k*h); 
} 
s=h/6*(f(a)+4*s1+2*s2+f(b)); 
return s; 
}

⌨️ 快捷键说明

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