用c语言求函数数积分 c语言求积分

小菜鸟C语言随机投点法求积分求大神解惑

基本定义

成都创新互联是一家专业提供张家界企业网站建设,专注与成都做网站、成都网站设计、HTML5建站、小程序制作等业务。10年已为张家界众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

设F(x)为函数f(x)的一个原函数,我们把函数f(x)的所有原函数F(x)+C(C为任意常数)叫做函数f(x)的不定积分(indefinite integral)。

记作∫f(x)dx。其中∫叫做积分号(integral sign),f(x)叫做被积函数(integrand),x叫做积分变量,f(x)dx叫做被积式,C叫做积分常数,求已知函数的不定积分的过程叫做对这个函数进行积分。

积分

由定义可知:

求函数f(x)的不定积分,就是要求出f(x)的所有的原函数,由原函数的性质可知,只要求出函数f(x)的一个原函数,再加上任意的常数C,就得到函数f(x)的不定积分。

也可以表述成,积分是微分的逆运算,即知道了导函数,求原函数。

主要分类

不定积分

众所周知,微积分的两大部分是微分与积分。微分实际上是函数的微小的增量,函数在某一点的导数值乘以自变量以这点为起点的增量,得到的就是函数的微分;它近似等于函数的实际增量(这里主要是针对一元函数而言)。而积分是已知一函数的导数,求这一函数。所以,微分与积分互为逆运算。

实际上,积分还可以分为两部分。第一种,是单纯的积分,也就是已知导数求原函数,而若F(x)的导数是f(x),那么F(x)+C(C是常数)的导数也是f(x),也就是说,把f(x)积分,不一定能得到F(x),因为F(x)+C的导数也是f(x),C是任意的常数,所以f(x)积分的结果有无数个,是不确定的,我们一律用F(x)+C代替,这就称为不定积分。

用公式表示是:f'(x)=g(x)-∫g(x)dx=f(x)+c

定积分

而相对于不定积分,还有定积分。所谓定积分,其形式为∫[a:b]f(x)dx 。之所以称其为定积分,是因为它积分后得出的值是确定的,是一个数,而不是一个函数。

积分题目

微积分的最初发展中,定积分即黎曼积分。用自己的话来说,就是把直角坐标系上的函数的图象用平行于y轴的直线和x轴把其分割成无数个矩形,然后把某个区间[a,b]上的矩形的面积累加起来,所得到的就是这个函数的图象在区间[a,b]的面积。实际上,定积分的上下限就是区间的两个端点a、b。而实变函数中,可以利用测度论将黎曼积分推广到更加一般的情况,如勒贝格积分.

用公式表示是:∫ [a,b]f(x)dx=lim(n-∞)∑(0-n)a+f(ti)*(b-a)/n

两者关系

我们可以看到,定积分的本质是把图象无限细分,再累加起来,而积分的本质是求一个函数的原函数。它们看起来没有任何的联系,那么为什么定积分写成积分的形式呢?

定积分与积分看起来风马牛不相及,但是由于一个数学上重要的理论的支撑,使得它们有了本质的密切关系。把一个图形无限细分再累加,这似乎是不可能的事情,但是由于这个理论,可以转化为计算积分。这个重要理论就是大名鼎鼎的牛顿-莱布尼兹公式,它的内容是:

若F'(x)=f(x)

那么∫[a:b]f(x)dx =F(a)-F(b)

但是这里x出现了两种意义,一是表示积分上限,二是表示被积函数的自变量,但定积分中被积函数的自变量取一个定值是没意义的。虽然这种写法是可以的,但习惯上常把被积函数的自变量改成别的字母如t,这样意义就非常清楚了:

Φ(x)=∫[a:b]f(t)dt

牛顿-莱布尼兹公式用文字表述,就是说一个定积分式的值,就是上限在原函数的值与下限在原函数的值的差。

正这个理论揭示了积分与黎曼积分本质的联系,可见其在微积分学乃至整个高等数学上的重要地位,因此,牛顿-莱布尼兹公式也被称作微积分基本定理。

C语言求指定函数定积分的程序

#include stdio.h

#define RES (1e-6)

double integ(double a,double b,double f(double))

{

double sum;

for(sum=0;ab;a+=RES)

{

sum+=f(a)*RES;

}

return sum;

}

double f(double x)

{

return x*x;

}

int main()

{

printf("%lf\n",integ(0,0.1,f));

return 0;

}

用C语言求给定函数给定定义域的定积分

#include stdio.h

#include math.h

double f1( double x )

{

return 1 / ( 1 + 4 * x * x );

}

double f2( double x )

{

return ( log(x+1) ) / ( 1 + x*x) ;

}

double jifen( double a, double b, int n, double (*f)(double) )

{

double h = (b-a)/2;

double s = 0.0;

int i;

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

s = s + 0.5 * ( f(a+i*h) + f(a+(i+1)*h) ) * h;

return s;

}

int main()

{

double a, b, s;

printf( "函数1 f(x) = 1/(1+4x^2) 区间[-1,1]定积分:%f\n", jifen( -1, 1, 1000, f1) );

printf( "函数2 f(x) = ln(1+x)/(1+x^2) 区间[0,1]定积分:%f\n", jifen( 0, 1, 1000, f2) );

}

c语言求积分

#includestdio.h

#include math.h

double integral(double a,double b,int n)

{

double x,y,dx,sum=0.0;

int i;

dx = (b-a) /(double) n;

for (i=0;i=n;i++){

y = sin(a+dx * i);

sum = sum + y;

}

y = sum / (double) (n+1) * (b-a);

return y;

}

void main()

{

double a,b;

int n;

printf("Enter a,b,n\n");

scanf("%lf %lf %d",a,b,n);

printf("%lf", integral(a,b,n) );

}


当前名称:用c语言求函数数积分 c语言求积分
文章URL:http://azwzsj.com/article/dddciij.html