integral.cpp
来自「积分函数的算法」· C++ 代码 · 共 40 行
CPP
40 行
#include<stdio.h>
#include<math.h>
main()
{
void integral(double,double,double(*function)(double));
double a,b;
printf("请输入上限与下限:");
scanf("%lf %lf",&a,&b);
integral(a,b,sin);
integral(a,b,cos);
integral(a,b,exp);
return 0;
}
void integral(double a,double b,double(*function)(double))
{
int n=1000000;
double each_length=(a-b)/n;
double result=0;
//矩形法
// for(int i=0;i<n;i++)
// {
// result+=(*function)(b+each_length*i);
// }
// result*=each_length;
//辛扑生抛物线法
double temp_result;
for(int i=0;i<=n;i++)
{
temp_result=(*function)(b+each_length*i);
if(i==0||i==n)
{
result+=temp_result;
continue;
}
if(i%2==0)result+=2*temp_result;
else result+=4*temp_result;
}
result*=each_length/3;
printf("%17.14lf\n",result);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?