本文目录一览:
用C语言求定积分
实际问题描述:
求定积分近似值
程序代码如下:
#include
#include
void main()
{
int i,n=1000;
float a,b,h,t1,t2,s1,s2,x;
printf("请输入积分限a,b:");
scanf("%f,%f",a,b);
h=(b-a)/n;
for(s1=0,s2=0,i=1;i=n;i++)
{
x=a+(i-1)*h;
t1=(float)exp(-x*x/2);t2(float)=exp(-(x+h)*(x+h)/2);
s1=s1+t1*h; /*矩形面积累加*/
s2=s2+(t1+t2)*h/2; /*梯形面积累加*/
}
printf("矩形法算得积分值:%f.\n",s1);
printf("梯形法算得积分值:%f.\n",s2);
}
程序运行结果如下:
矩形法算得积分值:0.855821
梯形法算得积分值:0.855624
由上面的比较可知,梯形法的精度要高于矩形法。
C语言:编程求出图片上的定积分近似值,咋写?
代码文本:
#include "stdio.h"
#include "math.h"
int main(int argc,char *argv[]){
double s,x,d=0.000001,pi=3.1415926,t=1/3.0;
for(s=0.0,x=pi/2;x=pi;x+=d)
s+=sqrt(x)/(1-pow(x,t))*d;
printf("%f\n",s);
return 0;
}
C语言---定积分的近似计算
我这边有个例子,你可以参考一下
至于菜单,自己定义吧,我也不知道你要什么样的菜单
#includestdio.h
#includemath.h
#define PF printf
#define M 1000
void main()
{ float f1(float);
float f2(float);
float f3(float);
float f4(float);
float f5(float);
float integral(float,float,float (float));
float a,b;
PF("请输入上,下限a,b:");
scanf("%f,%f",a,b);
PF("(1+x)*x在[%.2f,%.2f]的定积分为:",a,b);
PF("%.2f\n",integral(a,b,f1));
PF("(2*x+3)*x在[%.2f,%.2f]的定积分为:",a,b);
PF("%.2f\n",integral(a,b,f2));
PF("(1+x)*x在[%.2f,%.2f]的定积分为:",a,b);
PF("%.2f\n",integral(a,b,f1));
PF("exp(x)+1在[%.2f,%.2f]的定积分为:",a,b);
PF("%.2f\n",integral(a,b,f3));
PF("(1+x)*(1+x)在[%.2f,%.2f]的定积分为:",a,b);
PF("%.2f\n",integral(a,b,f4));
PF("x*x*x在[%.2f,%.2f]的定积分为:",a,b);
PF("%.2f\n",integral(a,b,f5));
}
float f1(float x)
{ float y;
y=(1+x)*x;
return y;
}
float f2(float x)
{ float y;
y=(2*x+3)*x;
return y;
}
float f3(float x)
{ float y;
y=(float)exp(x)+1;
return y;
}
float f4(float x)
{ float y;
y=(1+x)*(1+x);
return y;
}
float f5(float x)
{ float y;
y=x*x*x;
return y;
}
float integral(float a,float b,float (*fun)(float))
{ float n,h,s=0;
int i;
n=(b-a)/M;
for(i=0;iM;i++)
{ h=a+n*i;
s+=n*(*fun)(h);
}
return s;
}
其中只要把那几个函数(f1,f2,f3,f4,f5)的算法改掉就行了