服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言使用矩形法求定积分的通用函数

C语言使用矩形法求定积分的通用函数

2021-08-20 11:54行走的日子 C/C++

这篇文章主要为大家详细介绍了C语言使用矩形法求定积分的通用函数,分别求解sinx, cosx,e^x,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文为大家分享了C语言使用矩形法求定积分的通用函数,供大家参考,具体内容如下

要求:

写一个用矩形法求定积分的通用函数,分别求:sin(x),cos(x),e^x 。

分析:

矩形法,学过高等数学就知道化曲为直的思想。将定积分化为多个函数连续的和。基本思想是将区间[a,b]化成n等分,当n越大的时候结果越准确。图形化成一小块一小块的矩形。底边长都为(b-a)/n.高为每个等分点的函数值。然后将每个矩形的面积相加即为所求。

如:

y=x;

C语言使用矩形法求定积分的通用函数

可以通过矩形的方法来无限逼近定积分的求解,如下:

C语言使用矩形法求定积分的通用函数

因为被分成n等分,就可以认为每一等分是一个矩形,那么每一矩形的面积为: 每一个矩形面积为:***Sn=f(x)(b-a)/n 总面积为:****S=S1+S2+…+Sn

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>//引入sin x,cos x,e^x的库
  4. //使用指向函数的指针变量来复用一个通用函数
  5. int main()
  6. {
  7. int i,j,k,n,m;
  8. float res;
  9. float (*fun)(float);//定义指向函数的指针变量
  10. float integral (float a,float b,float (*fun)(float),int n);//n为将积分区间(b-a)分成n等分,当n的值越大的时候结果越精确,数学上的定义是取无穷大
  11. float fsin(float);//sin x函数的声明
  12. float fcos(float);//cos x函数的声明
  13. float fexp(float);//e^x 函数的声明
  14. printf ("请输入积分的下限\n");
  15. scanf ("%d",&m);
  16. printf ("请输入积分的上限\n");
  17. scanf ("%d",&n);
  18. printf("请输入你要计算的函数的具体函数\n");
  19. printf("1.sin(x) 2.cos(x) 3.e^x\n");
  20. scanf ("%d",&i);
  21. switch(i)
  22. {
  23. case 1:
  24. fun=fsin;//函数地址(入口)交给指针变量,灵活性强
  25. break;
  26.  
  27. case 2:
  28. fun=fcos;
  29. break;
  30. case 3:
  31. fun=fexp;
  32. }
  33. res=(fun)(2.00);
  34. //printf("xxxx=%f\n",res);
  35. printf ("计算的结果为\n");
  36. res=integral(m,n,fun,200000);
  37. printf("res=%f",res);
  38. return 0;
  39. }
  40. float fsin(float x)
  41. {
  42. // printf("fsinx=%f\n",x);
  43. return sin(x);
  44. }
  45. float fcos(float x)
  46. {
  47. //printf("fcosx=%f\n",x);
  48. return cos(x);
  49. }
  50. float fexp(float x)
  51. {
  52. //getchar();
  53. //printf("fexp=%f\n",x);
  54. return exp(x);
  55. }
  56. float integral(float a,float b,float (*fun)(float),int n)
  57. {
  58. //矩形法计算,定积分转换为连续求和的形式
  59. int i=0;
  60. float x=a,s=0;
  61. float h=(b-a)/n;
  62.  
  63. for (i=1;i<=n;i++)
  64. {
  65. x=x+h;
  66. s=s+((*fun)(x)*h);
  67.  
  68. }
  69. return s;
  70. }

结果:

C语言使用矩形法求定积分的通用函数

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

原文链接:https://blog.csdn.net/Warkey1998/article/details/82823000

延伸 · 阅读

精彩推荐
  • C/C++C语言实现电脑关机程序

    C语言实现电脑关机程序

    这篇文章主要为大家详细介绍了C语言实现电脑关机程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    xiaocaidayong8482021-08-20
  • C/C++学习C++编程的必备软件

    学习C++编程的必备软件

    本文给大家分享的是作者在学习使用C++进行编程的时候所用到的一些常用的软件,这里推荐给大家...

    谢恩铭10102021-05-08
  • C/C++深入理解goto语句的替代实现方式分析

    深入理解goto语句的替代实现方式分析

    本篇文章是对goto语句的替代实现方式进行了详细的分析介绍,需要的朋友参考下...

    C语言教程网7342020-12-03
  • C/C++详解c语言中的 strcpy和strncpy字符串函数使用

    详解c语言中的 strcpy和strncpy字符串函数使用

    strcpy 和strcnpy函数是字符串复制函数。接下来通过本文给大家介绍c语言中的strcpy和strncpy字符串函数使用,感兴趣的朋友跟随小编要求看看吧...

    spring-go5642021-07-02
  • C/C++C语言中炫酷的文件操作实例详解

    C语言中炫酷的文件操作实例详解

    内存中的数据都是暂时的,当程序结束时,它们都将丢失,为了永久性的保存大量的数据,C语言提供了对文件的操作,这篇文章主要给大家介绍了关于C语言中文件...

    针眼_6702022-01-24
  • C/C++C/C++经典实例之模拟计算器示例代码

    C/C++经典实例之模拟计算器示例代码

    最近在看到的一个需求,本以为比较简单,但花了不少时间,所以下面这篇文章主要给大家介绍了关于C/C++经典实例之模拟计算器的相关资料,文中通过示...

    jia150610152021-06-07
  • C/C++c++ 单线程实现同时监听多个端口

    c++ 单线程实现同时监听多个端口

    这篇文章主要介绍了c++ 单线程实现同时监听多个端口的方法,帮助大家更好的理解和学习使用c++,感兴趣的朋友可以了解下...

    源之缘11542021-10-27
  • C/C++C++之重载 重定义与重写用法详解

    C++之重载 重定义与重写用法详解

    这篇文章主要介绍了C++之重载 重定义与重写用法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    青山的青6062022-01-04