首页 > 其他分享 >C语言-写一个用矩形法求定积分的通用函数,分别求积分区间为[0,1]sinx,cosx,e的x方的定积分

C语言-写一个用矩形法求定积分的通用函数,分别求积分区间为[0,1]sinx,cosx,e的x方的定积分

时间:2024-08-17 13:24:04浏览次数:8  
标签:count 矩形 num1 sinx 积分 法求定 double num2

一、题目要求:

在这里插入图片描述

二、思路

①数学方面:矩形法求定积分的公式

将积分图形划分成为指定数量的矩形,求取各个矩形的面积,然后最终进行累加得到结果

1.积分区间:

[num1, num2]

2.分割数量:count

每个矩形的边长:dx=(num2-num1)/count

3.被积分函数:

f(x)(f-对应不同的被积分函数 sin/cos/exp)(x=num1 + dx*n) 计算矩形高度

4.求取每个矩形的面积进行累加:S=S1 +S2 +…+ Sn

②编程方面:函数指针

在代码中,要调用一个函数,其实就是就是让cpu执行指令的时候,跳转到指定的位置加载指令进行执行

三、程序:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<math.h>

double integral(double num1, double num2, int count, double (*handler)(double))
{
	double dx = (num2 - num1) / count;
	double res = 0;
	for (int i = 0; i < count; i++)
	{
		double dh = handler(num1 + dx * i);
		res += dx * dh;
	}
	return res;
}
int main()
{
	printf("请输入积分区间[num1,num2]:");
	double num1, num2;
	scanf("%lf%lf", &num1, &num2);
	printf("请输入分割数量:");
	int count;
	scanf("%d", &count);
	printf("请输入被积分函数<1-sin,2-cos,3-exp>:");
	int choice;
	scanf("%d", &choice);

	double(*var[4])(double) = { NULL,sin,cos,exp };
	double res = integral(num1, num2, count, var[choice]);
	printf("定积分结果:%lf\n", res);
	return 0;
}

四、运行结果:

在这里插入图片描述

标签:count,矩形,num1,sinx,积分,法求定,double,num2
From: https://blog.csdn.net/weixin_52249641/article/details/141278285

相关文章

  • 小学生教你微积分,用编程理解高数(python,C,C++)
    一、代码实现微分(实际上是导数,微分不用除dx):python代码:x=0dx=0.00001deff(x):y=2*xreturnyprint((f(x+dx)-f(x))/dx)C语言代码:#include<stdio.h>doublex=1;doubledx=0.00001;doublef(doublearg){doubley=2*arg;returny;}......
  • matlab对不定积分和定积分的计算
    在高等数学中,对这两种积分的计算是一种常见的考题,而matlab有内置的函数能够直接帮助我们解决这个计算问题目录一、matlab求解不定积分1.int函数求解不定积分2.int函数求解不定积分的常见问题二、matlab求解定积分1.求具体数值的定积分2.求具体带参数的定积分3.求瑕积分三、求数值......
  • 【数值计算方法】2&3维高斯积分的python实现
    目录二维高斯积分三维高斯积分验证本文只给出pythont实现和例题,数学推导见【数值计算方法】数值积分&微分-python实现-FE-有限元鹰-博客园二维高斯积分python实现二维高斯积分:defInteg2dGuassLegendre(f,lowLimit:List[float]=[-1,-1],......
  • 是否有对数累积分布函数 (CDF) 和分位数函数的数值稳定的 Python 实现?
    我正在寻找以下函数的数值稳定实现。由于我的应用涉及t分布,所以我这里以t分布为例。LogCDF#NaivePythonimplementationofthefunctionIneedimportscipyimportnumpyasnpdeft_log_cdf(x,df):p=scipy.stats.t.cdf(x,df=df)returnnp.log(......
  • 羽毛球比赛积分系统03
    羽毛球比赛积分系统1、产品愿景目标用户学校的体育工作人员(老师、教练、裁判),学生和教师选手,赛事组织者,志愿者等羽毛球比赛的参与者。他们的需要或机会简化赛事安排和管理。提高比赛的公正性和透明度。实时掌握比赛成绩和排名。增强赛事互动和参与体验。产品名称:......
  • 费曼积分法——以一个简单的例子讲解
    今天又又又刷到一个视频,很想睡觉(昨晚熬了个大夜),但是又临近午饭不能睡,只能水篇随笔来打发时间了。什么是费曼积分法?先看看官方解释:费曼积分法(Feynmanintegral)是一种求解复变函数定积分的计算方法,由理查德·费曼(RichardP.Feynman)提出。这种方法特别适用于处理物理学中的路径积......
  • 【数值计算方法】数值积分&微分
    目录1.引言几个常用积分公式及其复合公式1.引言高数中计算积分思路基本是牛顿莱布尼兹法:\[I[f]=\int_{a}^{b}f(x)\mathrm{d}x=F(b)-F(a),\]\[F^{\prime}(x)=f(x).\]实际计算中,原函数一般无法求出.给不出解析解,只能求出数值解.设在区间[a,b](不妨先设a,b为有限数)......
  • 羽毛球比赛积分系统02
    羽毛球比赛积分系统1、产品愿景目标用户学校的体育工作人员(老师、教练、裁判),学生和教师选手,赛事组织者,志愿者等羽毛球比赛的参与者。他们的需要或机会简化赛事安排和管理。提高比赛的公正性和透明度。实时掌握比赛成绩和排名。增强赛事互动和参与体验。产品名称:......
  • 设计会员积分等级制度数据表
    要设计一个数据库来处理会员、团体以及积分等级制度,可以采用以下步骤和数据表结构:会员表(Members):member_id:会员ID(主键)name:姓名email:电子邮件其他个人信息字段(如:电话、地址等)团体表(Groups):group_id:团体ID(主键)group_name:团体名称description:团体描述会员团体关联......
  • 24数据安全产业人才积分争夺赛
    Wireshark2.1题目内容:存在漏洞的PHP页面名称是?(比如:a.php)直接搜索php所以flag:theanswerishere.phpWireshark2.2题目内容:当前表的列数共有几列?(比如:1)找到了所以flag:3Wireshark2.3题目内容:注入目标的列名是?所以flag:th1sfI4g错的,要加flag{},我真无语所以flag:flag{th1sf......