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

要求:

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

分析:

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

如:

y=x;

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

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

#include

#include

#include //引入sin x,cos x,e^x的库

//使用指向函数的指针变量来复用一个通用函数

int main()

{

int i,j,k,n,m;

float res;

float (*fun)(float);//定义指向函数的指针变量

float integral (float a,float b,float (*fun)(float),int n);//n为将积分区间(b-a)分成n等分,当n的值越大的时候结果越精确,数学上的定义是取无穷大

float fsin(float);//sin x函数的声明

float fcos(float);//cos x函数的声明

float fexp(float);//e^x 函数的声明

printf ("请输入积分的下限\n");

scanf ("%d",&m);

printf ("请输入积分的上限\n");

scanf ("%d",&n);

printf("请输入你要计算的函数的具体函数\n");

printf("1.sin(x) 2.cos(x) 3.e^x\n");

scanf ("%d",&i);

switch(i)

{

case 1:

fun=fsin;//函数地址(入口)交给指针变量,灵活性强

break;

case 2:

fun=fcos;

break;

case 3:

fun=fexp;

}

res=(fun)(2.00);

//printf("xxxx=%f\n",res);

printf ("计算的结果为\n");

res=integral(m,n,fun,200000);

printf("res=%f",res);

return 0;

}

float fsin(float x)

{

// printf("fsinx=%f\n",x);

return sin(x);

}

float fcos(float x)

{

//printf("fcosx=%f\n",x);

return cos(x);

}

float fexp(float x)

{

//getchar();

//printf("fexp=%f\n",x);

return exp(x);

}

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

{

//矩形法计算,定积分转换为连续求和的形式

int i=0;

float x=a,s=0;

float h=(b-a)/n;

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

{

x=x+h;

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

}

return s;

}

结果:

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

matlab用矩形法求函数定积分,C语言使用矩形法求定积分的通用函数相关推荐

  1. Matlab中eig内置函数转为C语言

    本文记录一下如何将MATLAB中的eig函数转为C语言,即通过C语言求解矩阵的特征值与特征向量.[V,D]=eig(Rx)中V为矩阵Rx的特征向量,D为矩阵的特征值.其中Rx维度为12*12的复矩阵. ...

  2. 矩形法求定积分c语言流程图,矩形法求定积分其程序与程序框图的实现.doc

    矩形法求定积分及其程序与程序框图的实现 ――实例探索定积分思想,切实提高课堂效果 王亮 佛冈县第一中学 数学科 [摘 要]定积分"四部曲"思想,对高中生来说不易接受,教学上用计算机 ...

  3. C语言程序设计输入x求函数y,C语言程序设计实践(OJ)-初识函数

    2964: 查闰年 Description 大家知道如何判断某一年是否是闰年吗?这个问题可难坏了小编,小编在写一个查找m年到n年之间闰年的程序,却苦于判断闰年的函数不会写,据说 今天你有上机课,我就拿 ...

  4. 蛮力法查找有序数列c语言,算法——蛮力法之选择排序和冒泡排序c++实现

    这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码. 选择排序法比较的范围是整个列表,每次扫描结束找出 ...

  5. c语言利用查表法画正弦波,嵌入式C语言查表法在项目中的应用

    就像下面的这个表 之前写过上面这个标题的一篇文章,讲的是以位移的方式去遍历表中的数据,效率非常高,但是,如果要实现一个乱序的流水灯或者跑马灯的话,思考一个这样的算法是不可取的,很费时间,也很费脑力,于 ...

  6. 分治法求数组最大值 c语言,使用分治法求最大子数组的下标。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include int max(int a[],int left,int right); int maxcross(int a[],int left,i ...

  7. C语言实验报告求三角形面积,C语言作业,编程求三角形面积。

    满意答案 oikre5602 2014.05.08 采纳率:47%    等级:9 已帮助:363人 123456789#include<stdio.h>#include<math. ...

  8. MATLAB 求函数极值的内置函数一览表(实则优化算法函数汇总)

    MATLAB 求函数极值的内置函数一览表 收集了几乎所有的 MATLAB 内置的优化函数,可收藏,需要时查阅. 文章目录 MATLAB 求函数极值的内置函数一览表 简介 概览 求函数极值(或最大值最小 ...

  9. [数值计算-10]:一元非线性函数求最小值 - 导数与梯度下降法Python法代码示例

    作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article ...

  10. 导数法判断函数的单调性的策略【中阶和高阶辅导】

    前言 关于用导数法判断函数的单调性问题,教材上所举例子是从数的角度求解导函数的正负,从而判断原函数的单调性,所以学生就依葫芦画瓢,碰到这类问题都这样做,但是他会发现在高三中的大多数同类题目都不能求解, ...

最新文章

  1. Visual Studio 2008 每日提示(十四)
  2. slf4j+log4j打印日志,控制台无日志输出
  3. .NET常见线程简介
  4. android-6.0不支持FloatMath.sqrt(x * x + y * y)
  5. github服务器停止响应,如何解决“git pull,致命:无法访问'https://github.com ... \':服务器空回复”...
  6. excel 区间人数柱状图_Excel中,区间统计的3种技巧都不掌握,那就真的OUt了!
  7. trufflesuite/truffle-hdwallet-provider
  8. 安卓的短信记录导入苹果_安卓换苹果手机如何进行便签数据转移?
  9. Spark Scala当中reduceByKey的用法
  10. Windows Installer 3.1
  11. 目标跟踪入门篇—相关滤波
  12. C 语言中 scanf() 的用法
  13. 人脸识别活体检测之眨眨眼和张张嘴
  14. 12个顶级思维模型,非常值得一看!
  15. 中国地质大学英语语音学习笔记(二):辅音(辅音,与清辅音浊化)
  16. 如何打开控制面板(windows10)
  17. 正则解决大写金额转换
  18. 用上周的作业:画一个太阳、地球、月亮的运动模型来剖析OpenGL中变换乃至整个绘制的秘密
  19. NUAA 南航操作系统实验 代码部分
  20. 三十、再问唐僧出生之迷

热门文章

  1. 微信群如何设置永久有效二维码?99.99%的人都不知道!
  2. 自制ArduinoUno R3开发板,烧写bootloader
  3. 4针串口线接法图_串口通信RS232的基本接法,原来这么简单,今天终于弄明白了...
  4. mysql的skip-slave-start参数
  5. 零信任安全架构03-适用场景及实施建议
  6. 高项部分重点记忆口诀
  7. 【Python】爬取TapTap原神评论并生成词云分析
  8. 计算机无法识别外接光驱,【win7无法识别光驱怎么办】win7外置光驱无法识别
  9. 电容式门把手工作原理
  10. Https网络安全传输详解