
正文
用c语言程序求定积分公式,用c语言程序求定积分公式的方法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言编程如何编写积分公式
定积分:x*x*x/3+c(常数)在区间(0,1)上定积分:1/3=0.333333 结果正确。
这是辛普森积分法。给你写了fun_1( ),fun_2(),请自己添加另外几个被积函数。调用方法 t=fsimp(a,b,eps,fun_i);a,b --上下限,eps -- 迭代精度要求。
积分分为两种,数值积分,公式积分。公式积分:部分函数可以直接用公式求得其不定积分函数。C语言中可以直接用积分公式写出其积分函数。数值积分:按照积分的定义,设置积分范围的步长,用梯形面积累加求得其积分。
H=(B-A)/N这一句不应该放在变量声明中,因为刚定义时,A,B,N没有赋值,是随机值 应该将 float A,B,N,H=(B-A)/N,sum=0;改为:float A,B,N,H,sum=0;将H=(B-A)/N;放在scanf (%f,&N); 后面。另外建议将int i放在主函数起始处。
给你一个示例程序,也是做积分,是y=x*x的[0,2]的定积分。
int f(int i,int b,int n,float *result){ float dx=(float)(b-i)/n;for(int m=0;mn;m++)result+=((i+m*dx)*(i+m*dx)+3)*dx;return 1;} i=0,b=10,n=1000,得到result=36833,与精确值比较接近。
相关问答
Q1: 求c语言指向函数的指针求定积分公式的原理讲解
1、函数的形参a,b,f分别为定积分的下限、上限和函数名 ,其中f为函数指针。(2) 编写一个辛普生法求定积分的通用函数integrals(),其函数原型为:double integrals(double a, double b, double(*f)( double));函数的形参a,b,f分别为定积分的下限、上限和函数名 ,其中f为函数指针。
2、公式积分:部分函数可以直接用公式求得其不定积分函数。C语言中可以直接用积分公式写出其积分函数。数值积分:按照积分的定义,设置积分范围的步长,用梯形面积累加求得其积分。
3、可以把一个指针声明成为一个指向函数的指针。 int fun1(char*,int); int (*pfun1)(char*,int); pfun1=fun1; ... ... int a=(*pfun1)(abcdefg,7);//通过函数指针调用函数。 可以把指针作为函数的形参。在函数调用语句中,可以用指针表达式来作为 实参。
4、这是辛普森积分法。给你写了fun_1( ),fun_2(),请自己添加另外几个被积函数。调用方法 t=fsimp(a,b,eps,fun_i);a,b --上下限,eps -- 迭代精度要求。
Q2: C语言求定积分
1、其中,f(x)为被积函数,为横坐标的两点间的间隔,越小,则计算出的结果越精确。
2、加到sum上去。sum+=f(p+i*h)*h;return sum;} int main(){ printf((x*x)在(0,1)上定积分为%lf\n,fun(0,1,1000000));//区间数自己设越大值越精确 } 结果:数学分析:f(x)=x^2=x*x;定积分:x*x*x/3+c(常数)在区间(0,1)上定积分:1/3=0.333333 结果正确。
3、这是辛普森积分法。给你写了fun_1( ),fun_2(),请自己添加另外几个被积函数。调用方法 t=fsimp(a,b,eps,fun_i);a,b --上下限,eps -- 迭代精度要求。
4、h void main(){ double i,j;double a,b,c=0;printf(请输入积分上下限:);scanf(%lf%lf,&a,&b);for(i=a;i=b;i+=10e-8){ j=i*i+1;j*=10e-8;c+=j;} printf(ans=%.4f\n,c);} 对了 没考虑自变量取负值的情况,这个程序只适合算上下限都大于零的情况。
5、用梯形法估算,再用辛普森法。fsimpf 积分函数 a,b 积分下上限,eps 精度。
Q3: C语言如何求定积分?
1、对于一重定积分来说其求解可以使用梯形法进行求解,计算公式如下所示:其中,f(x)为被积函数,为横坐标的两点间的间隔,越小,则计算出的结果越精确。
2、这是辛普森积分法。给你写了fun_1( ),fun_2(),请自己添加另外几个被积函数。调用方法 t=fsimp(a,b,eps,fun_i);a,b --上下限,eps -- 迭代精度要求。
3、加到sum上去。sum+=f(p+i*h)*h;return sum;} int main(){ printf((x*x)在(0,1)上定积分为%lf\n,fun(0,1,1000000));//区间数自己设越大值越精确 } 结果:数学分析:f(x)=x^2=x*x;定积分:x*x*x/3+c(常数)在区间(0,1)上定积分:1/3=0.333333 结果正确。
4、本题的一个完整的c程序如下,在win-tc和Dev-c++下已调试通过。
Q4: 用C语言求定积分
矩形法是把所要求的面积垂直x轴分成n个小矩形,然后把这n个小矩形的面积相加,即为所求的定积分的值。梯形法是把所要求的面积垂直分成n个小梯形,然后作面积求和。这两种近似求值的精度随分割个数n的增加而增加,对于相同的n个数,相对来说,梯形法的精度比矩形法的要高一些。
对于一重定积分来说其求解可以使用梯形法进行求解,计算公式如下所示:其中,f(x)为被积函数,为横坐标的两点间的间隔,越小,则计算出的结果越精确。
加到sum上去。sum+=f(p+i*h)*h;return sum;} int main(){ printf((x*x)在(0,1)上定积分为%lf\n,fun(0,1,1000000));//区间数自己设越大值越精确 } 结果:数学分析:f(x)=x^2=x*x;定积分:x*x*x/3+c(常数)在区间(0,1)上定积分:1/3=0.333333 结果正确。
用梯形法估算,再用辛普森法。fsimpf 积分函数 a,b 积分下上限,eps 精度。
用c语言程序求定积分公式的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用c语言程序求定积分公式的方法、用c语言程序求定积分公式的信息别忘了在本站进行查找喔。







