求定积分的程序,跟大家分享一下,有错的话请指出,谢谢!

简介:

/*题    目:编写利用矩形法计算定积分的通用函数。然后利用它分
            别计算以下3个数学函数的定积分:
            (1)f(x)=x*x-5*x+1
      (2)f(x)=x*x*x+2*x*x-2*x+3
      (3)f(x)=x/(2+x*x)
 */     
//**********************************************************

#include < stdio.h >

//******求第一个公式的积分值******

double funtion1( double x )
{
    double  fx ;
 fx = x * x - 5 * x + 1;
 return fx ;
 
}

//******求第二个公式的积分值******

double funtion2( double x )
{
   double fx ;
  
   fx = x * x * x + 2 * x * x - 2 * x + 3 ;
   return fx ;
}


//******求第三个公式的积分值******

double funtion3( double x )
{
    double  fx ;

    fx = x / ( 2 + x * x ) ;
 return fx ;
}

//    调用函数求通用积分公式
    
void def_integral( double x1,double x2,int n , double (*p)( double x ))
{
     double  y1,y2  ;   //积分区间X1、X2对应的函数值
  double  per_len ,height ;
  double area , fx = 0.0 ;
     int i ;

  per_len = ( x2 - x1 ) / n ;   //等分成n分

  y1 = (*p)( x1 ) ;
    
  for( i = 1 ; i <= n ; i++ )
  {
   x2 = x1 + per_len ;        //单位区间长度
   y2 = (*p)(x2) ;           
         height = (y1 + y2 ) / 2.0 ;   //高
   area = per_len * height ;   //每一等份长度对应的面积
   x1 = x2 ;               //下限右移
   y1 = y2 ;               //右移
   fx = fx + area ;       //面积之和为积分的值
  }

  printf("所求积分的值为:/n");
  printf("%.3f/n" , fx ) ;

}

//*****主函数**************

void main()
{
  double a,b;  //a、b分别为积分区间的上下限
  int n ;            //n为要输入的等份 即 区间分成的份数
 
  int selection ;

  printf("请输入区间的等分数:/n");
  scanf("%d" , &n );
 
  printf("请输入积分区间的上下限(中间用空格隔开):/n");
  scanf("%lf%lf", &a, &b );

  printf("请输入你的选择(1、2、3):/n");
  scanf("%d" , &selection );
 
  if ( selection == 1 )
          def_integral( a,b, n , funtion1 );
  else if( selection == 2 )
       def_integral( a,b, n , funtion2 );
  else
       def_integral( a,b, n , funtion3 );

}

目录
相关文章
|
4月前
|
C语言
c语言编程练习题:7-31 掉入陷阱的数字
c语言编程练习题:7-31 掉入陷阱的数字
28 1
|
1月前
|
编译器 C语言
拒绝摆烂!C语言练习打卡第七天
拒绝摆烂!C语言练习打卡第七天
|
4月前
|
C语言
|
9月前
|
数据库连接 数据库
红皮书——错误点
红皮书——错误点
红皮书——错误点
|
5月前
|
编译器 测试技术 C语言
【C语言航路外传】隐式转换与优先级的那点事(你程序总是出bug的一个重要原因)
【C语言航路外传】隐式转换与优先级的那点事(你程序总是出bug的一个重要原因)
46 0
|
5月前
|
存储 自然语言处理 编译器
【C语言航路】第十五站:程序环境和预处理(上)
【C语言航路】第十五站:程序环境和预处理
41 0
|
5月前
|
编译器 Linux C语言
【C语言航路】第十五站:程序环境和预处理(下)
【C语言航路】第十五站:程序环境和预处理(上)
40 0
|
11月前
|
Python
上古代码漫游记(二):把陷阱去掉了,反倒踩进了新的陷阱?
上古代码漫游记(二):把陷阱去掉了,反倒踩进了新的陷阱?
80 0
|
C语言 C++
初始C语言——梦启程的地方
选择语句 if语句 if 单分支 if 多分支 循环语句 while 循环 函数 数组 操作符 关键字 typedef static #define定义常量和宏 结构体 总结
47 0
初始C语言——梦启程的地方
【perl】老司机的再一次翻车:没有想到加了一句打印,会影响结果输出
【perl】老司机的再一次翻车:没有想到加了一句打印,会影响结果输出

热门文章

最新文章