用C语言编写一个求定积分的程序
用C语言编写一个求定积分的通用函数,用它分别求以下5个函数的定积分:∫ab(1+x)dx,∫ab(2x+3)dx,∫ab(ex+1)dx,∫ab(1+x)2dx,∫abx...
用C语言编写一个求定积分的通用函数,用它分别求以下5个函数的定积分:∫ab (1+x)dx , ∫ab (2x+3)dx , ∫ab (ex+1)dx , ∫ab (1+x)2dx , ∫ab x3dx 。其中,a,b为积分上下限,数值待定。
展开
2个回答
推荐于2018-02-08
展开全部
#include<stdio.h>
#include<math.h>
float f1(float x)
{
return(1.0+x);
}
float f2(float x)
{
return(2.0*x+3.0);
}
float f3(float x)
{
return(exp(x)+1);
}
float f4(float x)
{
return(pow(1+x,2));
}
float f5(float x)
{
return(pow(x,3));
}
float fsimp(float a,float b,float (*p)(float))
{
float c,s;
c=(a+b)/2;
s=(b-a)/6*(p(a)+4*p(c)+p(b));
return s;
}
int main()
{
float a,b;
printf("请输入积分下限a的值:");
scanf("%f",&a);
printf("请输入积分上限b的值:");
scanf("%f",&b);
printf("%f\n",fsimp(a,b,f1));
printf("%f\n",fsimp(a,b,f2));
printf("%f\n",fsimp(a,b,f3));
printf("%f\n",fsimp(a,b,f4));
printf("%f\n",fsimp(a,b,f5));
}
#include<math.h>
float f1(float x)
{
return(1.0+x);
}
float f2(float x)
{
return(2.0*x+3.0);
}
float f3(float x)
{
return(exp(x)+1);
}
float f4(float x)
{
return(pow(1+x,2));
}
float f5(float x)
{
return(pow(x,3));
}
float fsimp(float a,float b,float (*p)(float))
{
float c,s;
c=(a+b)/2;
s=(b-a)/6*(p(a)+4*p(c)+p(b));
return s;
}
int main()
{
float a,b;
printf("请输入积分下限a的值:");
scanf("%f",&a);
printf("请输入积分上限b的值:");
scanf("%f",&b);
printf("%f\n",fsimp(a,b,f1));
printf("%f\n",fsimp(a,b,f2));
printf("%f\n",fsimp(a,b,f3));
printf("%f\n",fsimp(a,b,f4));
printf("%f\n",fsimp(a,b,f5));
}
2013-08-17
展开全部
#define e 2.71828
#define m(x) (x+x*x/2)
#define n(x) (x*x+3*x)
#define p(x) (pow(e,x)+x)
#define q(x) (pow((1+x),3)/3)
#define z(x) (pow(x,4)/4)
#include"stdio.h"
#include"math.h"
main()
{double a,b;<br>printf("请输入a,b的值:");<br>scanf("%lf%lf",&a,&b);<br>printf("∫ab (1+x)dx= %lf\n∫ab (2x+3)dx= %lf\n∫ab (ex+1)dx= %lf\n∫ab (1+x)2dx= %lf\n∫ab x3dx= %lf\n",m(b)-m(a),n(b)-n(a),p(b)-p(a),q(b)-q(a),z(b)-z(a));<br>}
#define m(x) (x+x*x/2)
#define n(x) (x*x+3*x)
#define p(x) (pow(e,x)+x)
#define q(x) (pow((1+x),3)/3)
#define z(x) (pow(x,4)/4)
#include"stdio.h"
#include"math.h"
main()
{double a,b;<br>printf("请输入a,b的值:");<br>scanf("%lf%lf",&a,&b);<br>printf("∫ab (1+x)dx= %lf\n∫ab (2x+3)dx= %lf\n∫ab (ex+1)dx= %lf\n∫ab (1+x)2dx= %lf\n∫ab x3dx= %lf\n",m(b)-m(a),n(b)-n(a),p(b)-p(a),q(b)-q(a),z(b)-z(a));<br>}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询