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

/*题    目:编写利用矩形法计算定积分的通用函数。然后利用它分
            别计算以下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 );

}

时间: 2024-11-03 21:16:19

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

c语言编程-求短时傅立叶程序,用c编写的!

问题描述 求短时傅立叶程序,用c编写的! 哪位有短时傅立叶,傅立叶,傅立叶反变换的c语言程序,求大神帮忙! 解决方案 这种代码很复杂,一般写出来的都不愿意随便分享的! 解决方案二: 有大神愿意分享的吗?

C语言实现求定积分的方法_C 语言

本文实例讲述了C语言实现求定积分的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: #include <cmath>  #include <cstdio> #define ACC 1000 float solve(float (*p)(float),float up,float down,int acc); float fun_exp(float x); float fun_qua(float x); void main(){ char selection; f

c语言-C语言 关于用矩形法求定积分

问题描述 C语言 关于用矩形法求定积分 #include""stdio.h""#include""math.h""int main(){ double fun1(double x); double fun2(double x); double fun3(double x); double calc(double adouble bdouble (*p)(double)); int type; double ab; double

matlab仿真-大神求个matlab程序,有关磁光调制仿真,大恩不言谢,编程实在渣渣

问题描述 大神求个matlab程序,有关磁光调制仿真,大恩不言谢,编程实在渣渣 基于matlab做磁光调制波形的仿真,我们导师说让用matlab模拟仿真正弦波方波三角波锯齿波四种波形进行磁光调制的模拟仿真

代码-新手求问wpf程序中关于路由事件的问题

问题描述 新手求问wpf程序中关于路由事件的问题 我放了两个Button控件 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Grid1.AddHandler(Button.ClickEvent,new RoutedEventHandler(onClick)); } public void onClick(object sender, RoutedEventArgs e

求能直接用的新浪微博分享代码

问题描述 求能直接用的新浪微博分享代码 网页上自定义的一个按钮,求给一段新浪微博分享代码,能直接添加上去. 解决方案 <!-- JiaThis Button BEGIN --><div id=""ckepop""><span class=""jiathis_txt"">分享到:</span><a class=""jiathis_button_tsina&

微信小程序第一手实践分享

本文讲的是微信小程序第一手实践分享,今天是微信小程序正式上线的第一天,从小程序公布.内测到今天,市面上对于小程序众说纷纭,小程序的到来给我们(微信开发)带来了什么,仅仅是又多了一种推广渠道吗?又或者是真的像外界说的那样它将取代APP?今天就和大家分享我个人对小程序的理解以及开发过程中的一些体会. 一.如何理解小程序 张小龙是基于他对未来服务场景--所见即所得的信息交互过程提出的小程序,他认为微信新形式的服务不应当只是停留在原有公众号订阅.推送的基础上:而应当更类似于APP支持一些扩展开发的能力但

求一个围棋程序的源代码

问题描述 求一个围棋程序的源代码 1.可以判断输赢2.可以模拟对弈急求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求求 解决方案 http://www.cnblogs.com/qswang/archive/2012/12/15/2818870.html 解决方案二: 额...你是要什么源代码?C++还是java?是网络围棋程序还是本

c语言-求下面C程序的运行结果

问题描述 求下面C程序的运行结果 #include #define SIZE_NAME 30#define SIZE_STU 4 typedef struct _per_infor { char name[SIZE_NAME]; int age; char gender;}per_infor_t; int main() { per_infor_t stu[SIZE_STU]={ {""raul""25'F'}{""joe""2