c程序 用矩形法编一个通用函数求定积分 0到1区间

问题描述:

c程序 用矩形法编一个通用函数求定积分 0到1区间
sinx,cosx,e的x次方,1+x,2x+3,(x*x)+1,e的x次方+1,(1+X)*(1+X),x*x*x

#include
#include
const int N=10000;
inline double f1(double x){//sinx,
return sin(x);
}
inline double f2(double x){//cosx,
return cos(x);
}
inline double f3(double x){//e的x次方,
return exp(x);
}
inline double f4(double x){//1+x,
return 1+x;
}
inline double f5(double x){//2x+3,
return 2*x+3;
}
inline double f6(double x){//(x*x)+1,
return 1+x*x;
}
inline double f7(double x){//e的x次方+1,
return exp(x+1);
}
inline double f8(double x){//(1+X)*(1+X),
return (1+x)*(1+x);
}
inline double f9(double x){//x*x*x
return x*x*x;
}
inline void f(int i=1){//根据i的值来选择需要输出的信息
if(i==1)
printf("sin x 从0到1的矩形积分为:");
if(i==2)
printf("cosx 从0到1的矩形积分为:");
if(i==3)
printf("e的x次方 从0到1的矩形积分为:");
if(i==4)
printf("1+x 从0到1的矩形积分为:");
if(i==5)
printf("2x+3 从0到1的矩形积分为:");
if(i==6)
printf("(x*x)+1 从0到1的矩形积分为:");
if(i==7)
printf("e的x次方+1,从0到1的矩形积分为:");
if(i==8)
printf("(1+X)*(1+X) 从0到1的矩形积分为:");
if(i==9)
printf("x*x*x 从0到1的矩形积分为:");
}
inline double f(double x,int i=1){//根据i的值来选择需要调用的函数
if(i==1)
return f1(x);
if(i==2)
return f2(x);
if(i==3)
return f3(x);
if(i==4)
return f4(x);
if(i==5)
return f5(x);
if(i==6)
return f6(x);
if(i==7)
return f7(x);
if(i==8)
return f8(x);
if(i==9)
return f9(x);
}
inline double jifen(int k){
double a=0,b=1;//积分区间
double h=(b-a)/N;//步长,可以通过修改N的值来修改步长,N越大,得到的结果越准确
double fx,x=a;
int i;
double sum=0;
for(i=0;i