怎样编写c语言积分函数

Python017

怎样编写c语言积分函数,第1张

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

公式积分:部分函数可以直接用公式求得其不定积分函数。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=1i<ni++)

   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为例:求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=1i<ni++)

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)

}