c语言指针求函数定积分,c语言中的积分函数

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

#include stdio.h

成都创新互联是专业的双河网站建设公司,双河接单;提供网站设计制作、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行双河网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

#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语言指向函数的指针求定积分公式的原理讲解

下面的代码就是使用矩形法求定积分的。

分别求了sin(x) cos(x) e^x 的定积分

#include iostream

#include cmath

using namespace std;

float integral (float (*p) (float), float a, float b, int n);

float fsin (float); // 对fsin函数作声明

float fcos (float); // 对fcos函数作声明

float fexp (float); // 对fexp函数作声明

int main()

{

float a1, b1, a2, b2, a3, b3, c, (*p) (float);

int n = 40; // 划分40个小矩形

cout "input a1,b1(sin(x) 定积分的下限和上限):"; //输入求sin(x) 定积分的下限和上限

cin a1 b1;

cout "input a2,b2:(cos(x) 定积分的下限和上限 )"; // 输入求cos(x) 定积分的下限和上限

cin a2 b2;

cout "input a3,b3:(e^x定积分的下限和上限)";

cin a3 b3;

p = fsin;

c = integral(p, a1, b1, n); // 求出sin(x)的定积分

cout "The integral of sin(x) is :" c endl;

p = fcos;

c = integral(p, a2, b2, n); // 求出cos(x)的 定积分

cout "The integral of cos(x) is :" c endl;;

p = fexp;

c = integral(p, a3, b3, n); // 求出 的定积分

cout "The integral of exp(x) is :" c endl;

return 0;

}

float integral(float (*p) (float), float a, float b, int n)

//用矩形法求定积分的通用函数

{

int i;

float x, h, s;

h = (b - a) / n;

x = a;

s = 0;

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

{

x = x + h;

s = s + (*p) (x) * h;

}

return(s);

}

float fsin(float x) // 计算sin(x) 的函数

{

return sin(x);

}

float fcos(float x) // 计算cos(x) 的函数

{

return cos(x);

}

float fexp(float x) // 计算exp(x)的函数

{

return exp(x);

}

C语言用指向函数的指针作函数参数写求通用定积分公式。

看不出有什么编译或执行的问题。但您的integral函数中的循环控制有点小问题,应该是

for ( i=a;ib;i+=trace )

您现在的写法,多加了一次计算,不知道这个对运算结果会不会造成影响。


分享标题:c语言指针求函数定积分,c语言中的积分函数
文章来源:http://myzitong.com/article/hdjcpi.html