积分函数c语言 c语言定积分函数

怎样编写c语言积分函数

积分分为两种,数值积分,公式积分。

集安ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

公式积分:部分函数可以直接用公式求得其不定积分函数。C语言中可以直接用积分公式写出其积分函数。

数值积分:按照积分的定义,设置积分范围的步长,用梯形面积累加求得其积分。

以【f(x)=x*sin(x) 从1到2的积分】为例:

#include math.h

#include stdio.h

double integral(double(*fun)(double x),double a,double b,int,n){

double s,h,y;

int i;

s=(fun(a)+fun(b))/2;

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;

y=integral(f,1.0,2.0,150);/*修改此处可以改变积分上下限和步数,步长=(上限-下限)/步数*/

printf("y=%f\n",y);

return 0;

}

怎么用C语言表示积分

源代码如下:

#include#includefloat 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));

}

扩展资料

1、对应于一个积分式要有一段程序,可以改变程序的一小部分来改变所要求的积分式。

2、除数不能位0。

3、两个整数相除,结果仍是整数。

4、若被除数其中有一个为浮点数或者两个都为浮点数,则结果为浮点类型。操作数必须为整数,不能是浮点数。

用C语言求积分

基本是这样的,用梯形发求定积分,对应于一个积分式就要有一段程序,不过你可以改变程序的一小部分来改变你所要求的积分式。

以c为例:求f(x)=xsinx从1到2的积分

#include math.h

float integral(float(*fun)(float x),float a,float b,int,n)

{float s,h,y;

int i;

s=(fun(a)+fun(b))/2;

h=(b-a)/n; /*积分步长*/

for(i=1;in;i++)

s=s+fun(a+i*h);

y=s*h;

return y;/*返回积分值*/

}

float f(float x)

{return(x*sinx) /*修改此处可以改变被积函数*/

}

main()

{float y;

y=integral(f,1.0,2.0,150);/*修改此处可以改变积分上下限和步长*/

printf("y=%f\n",y);

}

c语言 求定积分的通用函数

对于一重定积分来说其求解可以使用梯形法进行求解,计算公式如下所示:

其中,f(x)为被积函数,为横坐标的两点间的间隔,越小,则计算出的结果越精确。

对于求解此类问题可以使用C语言中的回调函数编写通用的计算函数,代码如下:

#include stdio.h

#include stdlib.h

#includemath.h

//功能:返回f(x)在积分区间[a,b]的值

//参数:FunCallBack 指向用于计算f(x)的函数

//      a  积分区间的起始值

//      b  积分区间的结束值

//      dx 横坐标的间隔数,越小计算结果越准确

double Calculate(double (*FunCallBack)(double x),

double a,double b,double dx)

{

double doui;

double total = 0;        //保存最后的计算结果

for (doui = a; doui = b; doui += dx)

{

total += FunCallBack(doui)*dx;

}

return total;

}

double f2(double x)

{

return x*x;

}

double f(double x)

{

return x;

}

double f3(double x)

{

return x*x*x ;

}

int main()

{

double total;

total = (Calculate(f, 2, 3, 0.000001));

printf("total = %lf\n", total);

total = (Calculate(f2, 2, 3, 0.000001));

printf("total = %lf\n", total);

total = (Calculate(f3, 2, 3, 0.000001));

printf("total = %lf\n", total);

return 0 ;

}

其中,函数f,f2,f3为自行编写的关于x的被积函数。

运行结果:

total = 2.500000

total = 6.333331

total = 16.249991


分享文章:积分函数c语言 c语言定积分函数
网站路径:http://myzitong.com/article/doejjoo.html