📄 simpson.c
字号:
#include<stdio.h>
#include<math.h>
double f(double x)
{
return (1+x*x)/(1+pow(x,4));
}
double g(double x)
{
return log(1+sqrt(x))/log(2.718282);
}
double p(double x)
{
return 1/(pow(cos(x),2)+4*pow(sin(x),2));
}
double (*ff)(double)=NULL;
void main()
{
double a,b;
int num;
int m;
int j;
double x,xx;
double x1=0;
double x2=0;
double x0=0;
double ERR,h;
FILE *file;
file=fopen("simpson.txt","a+");
printf("Enter m,a,b:\n");
fprintf(file,"Enter m,a,b:\n");
scanf("%d%Lg%Lg",&m,&a,&b);
fprintf(file,"%d %Lg %0.9Lg\n",m,a,b);
printf("Enter the function number:\n");
fprintf(file,"Enter the function number:\n");
scanf("%d",&num);
fprintf(file,"%d\n",num);
h=(b-a)/2/m;
switch(num)
{
case 1:
ff=f;
break;
case 2:
ff=g;
break;
case 3:
ff=p;
break;
}
x0=ff(a)+ff(b);
for(j=1;j<2*m;j++)
{
x=a+h*j;
if(j%2==0)
x2+=ff(x);
else
x1+=ff(x);
}
xx=h*(x0+2*x2+4*x1)/3;
switch(num)
{
case 1:
ERR=xx-3.1415926/4*sqrt(2);
break;
case 2:
ERR=xx-0.5;
break;
case 3:
ERR=xx-3.1415926/4;
break;
}
fprintf(file,"x=%Lg\n",xx);
fprintf(file,"ERR=%Lg\n",ERR);
fclose(file);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -