实际问题描述:
求定积分近似值
程序代码如下:
#include
void main()
{
int i,n=1000;
printf("请输入积分限a,b:");
scanf("%f,%f",a,b);
h=(b-a)/n;
x=a+(i-1)*h;
s1=s1+t1*h;?? /*矩形面积累加*/
}
printf("矩形法算得积分值:%f.\n",s1);
程序运行结果如下:
由上面的比较可知,梯形法的精度要高于矩形法.
#includestdio.h
#includemath.h
float f1(float x)
return(1.0+x);
return(exp(x)+1);
float fsimp(float a,float b,float (*p)(float))
float c,s;
return s;
int main()
float a,b;
printf("请输入积分下限a的值:");
scanf("%f",a);
printf("请输入积分上限b的值:");
scanf("%f",b);
printf("%f\n",fsimp(a,b,f1));
double integral(double(*fun)(double x),double a,double b,int,n){
double s,h,y;
int i;
h=(b-a)/n; /*积分步长*/
for(i=1;in;i++)
s=s+fun(a+i*h);
y=s*h;
return y;/*返回积分值*/
double f(double x){
return(x*sinx) /*修改此处可以改变被积函数*/
int main(){
double y;
printf("y=%f\n",y);
return 0;
这是辛普森积分法.
调用方法 t=fsimp(a,b,eps,fun_i);
a,b --上下限,eps -- 迭代精度要求.
#includestdlib.h
#include math.h
double fun_1(double x)
return 1.0 + x ;
double fsimp(double a,double b,double eps, double (*P)(double))
int n,k;
n=1; h=b-a;
s1=t1;
ep=eps+1.0;
while (ep=eps)
p=0.0;
for (k=0;k=n-1;k++)
p=p+P(x);
double a,b,eps,t;
// a definite integral by Simpson Method.
t=fsimp(a,b,eps,fun_1);
printf("%g\n",t);
// ...
printf("\n Press any key to quit...");
getch();
以上就是土嘎嘎小编为大家整理的c语言求函数的定积分相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!