matlab用矩形法求函数定积分,C语言使用矩形法求定积分的通用函数
本文为大家分享了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语言使用矩形法求定积分的通用函数相关推荐
- Matlab中eig内置函数转为C语言
本文记录一下如何将MATLAB中的eig函数转为C语言,即通过C语言求解矩阵的特征值与特征向量.[V,D]=eig(Rx)中V为矩阵Rx的特征向量,D为矩阵的特征值.其中Rx维度为12*12的复矩阵. ...
- 矩形法求定积分c语言流程图,矩形法求定积分其程序与程序框图的实现.doc
矩形法求定积分及其程序与程序框图的实现 ――实例探索定积分思想,切实提高课堂效果 王亮 佛冈县第一中学 数学科 [摘 要]定积分"四部曲"思想,对高中生来说不易接受,教学上用计算机 ...
- C语言程序设计输入x求函数y,C语言程序设计实践(OJ)-初识函数
2964: 查闰年 Description 大家知道如何判断某一年是否是闰年吗?这个问题可难坏了小编,小编在写一个查找m年到n年之间闰年的程序,却苦于判断闰年的函数不会写,据说 今天你有上机课,我就拿 ...
- 蛮力法查找有序数列c语言,算法——蛮力法之选择排序和冒泡排序c++实现
这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码. 选择排序法比较的范围是整个列表,每次扫描结束找出 ...
- c语言利用查表法画正弦波,嵌入式C语言查表法在项目中的应用
就像下面的这个表 之前写过上面这个标题的一篇文章,讲的是以位移的方式去遍历表中的数据,效率非常高,但是,如果要实现一个乱序的流水灯或者跑马灯的话,思考一个这样的算法是不可取的,很费时间,也很费脑力,于 ...
- 分治法求数组最大值 c语言,使用分治法求最大子数组的下标。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include int max(int a[],int left,int right); int maxcross(int a[],int left,i ...
- C语言实验报告求三角形面积,C语言作业,编程求三角形面积。
满意答案 oikre5602 2014.05.08 采纳率:47% 等级:9 已帮助:363人 123456789#include<stdio.h>#include<math. ...
- MATLAB 求函数极值的内置函数一览表(实则优化算法函数汇总)
MATLAB 求函数极值的内置函数一览表 收集了几乎所有的 MATLAB 内置的优化函数,可收藏,需要时查阅. 文章目录 MATLAB 求函数极值的内置函数一览表 简介 概览 求函数极值(或最大值最小 ...
- [数值计算-10]:一元非线性函数求最小值 - 导数与梯度下降法Python法代码示例
作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article ...
- 导数法判断函数的单调性的策略【中阶和高阶辅导】
前言 关于用导数法判断函数的单调性问题,教材上所举例子是从数的角度求解导函数的正负,从而判断原函数的单调性,所以学生就依葫芦画瓢,碰到这类问题都这样做,但是他会发现在高三中的大多数同类题目都不能求解, ...
最新文章
- Visual Studio 2008 每日提示(十四)
- slf4j+log4j打印日志,控制台无日志输出
- .NET常见线程简介
- android-6.0不支持FloatMath.sqrt(x * x + y * y)
- github服务器停止响应,如何解决“git pull,致命:无法访问'https://github.com ... \':服务器空回复”...
- excel 区间人数柱状图_Excel中,区间统计的3种技巧都不掌握,那就真的OUt了!
- trufflesuite/truffle-hdwallet-provider
- 安卓的短信记录导入苹果_安卓换苹果手机如何进行便签数据转移?
- Spark Scala当中reduceByKey的用法
- Windows Installer 3.1
- 目标跟踪入门篇—相关滤波
- C 语言中 scanf() 的用法
- 人脸识别活体检测之眨眨眼和张张嘴
- 12个顶级思维模型,非常值得一看!
- 中国地质大学英语语音学习笔记(二):辅音(辅音,与清辅音浊化)
- 如何打开控制面板(windows10)
- 正则解决大写金额转换
- 用上周的作业:画一个太阳、地球、月亮的运动模型来剖析OpenGL中变换乃至整个绘制的秘密
- NUAA 南航操作系统实验 代码部分
- 三十、再问唐僧出生之迷
热门文章
- 微信群如何设置永久有效二维码?99.99%的人都不知道!
- 自制ArduinoUno R3开发板,烧写bootloader
- 4针串口线接法图_串口通信RS232的基本接法,原来这么简单,今天终于弄明白了...
- mysql的skip-slave-start参数
- 零信任安全架构03-适用场景及实施建议
- 高项部分重点记忆口诀
- 【Python】爬取TapTap原神评论并生成词云分析
- 计算机无法识别外接光驱,【win7无法识别光驱怎么办】win7外置光驱无法识别
- 电容式门把手工作原理
- Https网络安全传输详解