怎样编写c语言积分函数
用梯形法求函数f(x)=1+x2在0到1上的定积分。实验步骤与要求:(1)编制一个函数sab(a,b,n)求函数f(x)在[a,b]上的定积分,其中n为区间[a,b]的等...
用梯形法求函数f(x)=1+x2在0到1上的定积分。
实验步骤与要求:
(1)编制一个函数sab(a,b,n)求函数f(x)在[a,b]上的定积分,其中n为区间[a,b]的等分数。
(2)编制一个主函数及计算被积函数值的函数f(x),在主函数中调用sab()函数计算并输出积分值。 说明:
用梯形法求f(x)在a,b区间的定积分,即求f(x)与x=a、x=b和y=0围成的区间的面积,将此区间分为n份,每一小份可以近似看成一个梯形,将所有梯形面积累加求和,得到球积分公式为:
s=h[f(a)+f(b)]/2+hf(a+kh),其中,h=(b-a)/n</SPAN></SPAN> 展开
实验步骤与要求:
(1)编制一个函数sab(a,b,n)求函数f(x)在[a,b]上的定积分,其中n为区间[a,b]的等分数。
(2)编制一个主函数及计算被积函数值的函数f(x),在主函数中调用sab()函数计算并输出积分值。 说明:
用梯形法求f(x)在a,b区间的定积分,即求f(x)与x=a、x=b和y=0围成的区间的面积,将此区间分为n份,每一小份可以近似看成一个梯形,将所有梯形面积累加求和,得到球积分公式为:
s=h[f(a)+f(b)]/2+hf(a+kh),其中,h=(b-a)/n</SPAN></SPAN> 展开
2个回答
展开全部
积分分为两种,数值积分,公式积分。
公式积分:部分函数可以直接用公式求得其不定积分函数。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;i<n;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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询