c语言用矩形法和梯形法求定积分
方法一:
#include<stdio.h>
#include<math.h>
void jifen(float a,float b,double (*fun)(double))
{
int i;
double n=0.001,s=0.0,s1=0.0;
double l=(b-a)/n;
for(i=0;i<l;i++)
{
s=n*(*fun)(a+n*i)+s;
s1=((*fun)(a+n*i)+(*fun)(a+n*(i+1)))*n/2+s1;
}
printf("用矩形法求得该函数在(%2.0f,%2.0f)上的积分为%f。\n",a,b,fabs(s));
printf("用梯形法求得该函数在(%2.0f,%2.0f)上的积分为%f。\n\n",a,b,fabs(s1));
}
void main()
{
float m,n;
double f1(double x);
double f2(double x);
double f3(double x);
printf("请输入积分下限和上限:\n(注:此题目为下限小于上限,下限可以为负数!)\n");
scanf("%f,%f",&m,&n);
printf("1.sin函数:\n");
jifen(m,n,f1);
printf("2.cos函数:\n");
jifen(m,n,f2);
printf("3.exp函数:\n");
jifen(m,n,f3);
}
double f1(double x)
{
return sin(x);
}
double f2(double x)
{
return cos(x);
}
double f3(double x)
{
return exp(x);
}
方法二:
#include<stdio.h>
#include<math.h>
int main()
{
void integral(double a,double b,double (*fun)(double));
double f1(double x);
double f2(double x);
double f3(double x);
double f4(double x);
double f5(double x);
double f6(double x);
double f7(double x);
double f8(double x);
printf("please input 2 numbers:\n");
double a,b;
int n;
scanf("%lf,%lf",&a,&b);
printf("please choose 1,2,3,4,5,6,7or8:");
scanf("%d",&n);
if(n==1) integral(a,b,f1);
else if(n==2) integral(a,b,f2);
else if(n==3) integral(a,b,f3);
else if(n==4) integral(a,b,f4);
else if(n==5) integral(a,b,f5);
else if(n==6) integral(a,b,f6);
else if(n==7) integral(a,b,f7);
else if(n==8) integral(a,b,f8);
return 0;
}
void integral(double a,double b,double (*fun)(double))
{
double m=(b-a)/100;
double area=0;
for(int i=0;i<100;i++)
{
area=m*(*fun)(a+m*i)+area;
}
printf("%f\n",area);
}
double f1( double x)
{
return(x+1);
}
double f2(double x)
{
return(2*x+3);
}
double f3(double x)
{
return(1+exp(x));
}
double f4(double x)
{
return((1+x)*(1+x));
}
double f5(double x)
{
return(x*x*x);
}
double f6(double x)
{
return(sin(x));
}
double f7(double x)
{
return(cos(x));;
}
double f8(double x)
{
return (exp(x));
}
方法三:
#include<stdio.h>
#include<math.h>
int main()
{
void integral(double a,double b,double(*fun)(double));
double f1(double );
double f2(double );
double f3(double );
double f4(double );
double f5(double );
double f6(double );
double f7(double );
double f8(double );
double a,b;
printf("Please enter a and b:");
scanf("%lf,%lf",&a,&b);
integral(a,b,f1);
integral(a,b,f2);
integral(a,b,f3);
integral(a,b,f4);
integral(a,b,f5);
integral(a,b,f6);
integral(a,b,f7);
integral(a,b,f8);
return 0;
}
void integral(double a,double b,double(*fun)(double))
{
double m,n=a;
double p[200];
for(int i=0;i<=100;i++,n=n+(b-a)/100)
p[i]=(*fun)(n);
m=0;
for(i=1;i<=100;i++)
m=m+(p[i-1]+p[i])*(b-a)/200;
printf("The integral is:%f\n",m);
}
double f1(double n)
{
double e;
e=n+1;
return(e);
}
double f2(double n)
{
double e;
e=2*n+3;
return(e);
}
double f3(double n)
{
double e;
e=exp(n)+1;
return(e);
}
double f4(double n)
{
double e;
e=(1+n)*(1+n);
return(e);
}
double f5(double n)
{
double e;
e=n*n*n;
return(e);
}
double f6(double n)
{
return sin(n);
}
double f7(double n)
{
return cos(n);
}
double f8(double n)
{
return exp(n);
}
转载于:https://www.cnblogs.com/Latent-Truth/p/3471868.html
c语言用矩形法和梯形法求定积分相关推荐
- 梯形法 微积分 c语言,关于 用辛普森法和梯形法求微积分的 程序!
共回答了8个问题采纳率:87.5% 1. 目的: (1)通过求定积分的程序设计,使学生理解和掌握C++语言的函数.函数指针等设计方法,培养学生综合利用C++语言解决数学计算问题,使学生将所学知识转化为 ...
- 梯形法求定积分(C)
养成好习惯,点个赞 再走:有问题,欢迎私信.评论,我看到都会回复的 文章目录 梯形法求定积分 梯形法求定积分 假设 f(x) = x2 + 5x + 7 定积分下限为0,上积分上限为1 梯形法求定积分 ...
- 用java梯形法求定积分,用梯形法求定积分
4.用梯形法求定积分(数值求解算法)用梯形法编程求函数f(x)=x^2+2x+1的定积分的值. //4.用梯形法求定积分(数值求解算法) 用梯形法编程求函数f(x)=x^2+2x+1的定积分的值. / ...
- c 语言 用矩形法求定积分,如何用矩形法(梯形法)求定积分
分析: 高中的时候,我们学习过,可以通过矩形法或者矩形法来求定积分. 思路就是将积分区间划分成n等份,然后将这n等份近似看成矩形(或梯形),然后对所有的矩形(或梯形)的面积进行求和. 简单的例子: 求 ...
- 用梯形法求定积分的值
一.梯形法求解定积分的过程 1.求定积分值存在的问题 计算定积分是数值计算领域内的一个重要内容.对于能够得到原函数的被积函数,如: , 其定积分可以直接计算. 但对于不易得到原函数的被积函数,可以考虑 ...
- Java反梯形图案_梯形法求定积分(一)设计梯形法求积分的类模板,梯形法
/*设计梯形法求积分的类模板,梯形法求积分的函数被定义为成员函数,可以求任意函数的定积分,用积分类的模板参数T引入被积函数*/ #include #include #include using nam ...
- c语言中求定积分矩形法,C语言使用矩形法求定积分的通用函数
本文为大家分享了C语言使用矩形法求定积分的通用函数,供大家参考,具体内容如下 要求: 写一个用矩形法求定积分的通用函数,分别求:sin(x),cos(x),e^x . 分析: 矩形法,学过高等数学就知 ...
- 用C语言用指针怎么算通用定积分,C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数,...
问题描述: C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数, //我运行的结果和答案对不上,请帮我看看程序对吗? //实现积分 #include #include i ...
- 编写指数函数 c语言,C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数,...
问题描述: C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数, //我运行的结果和答案对不上,请帮我看看程序对吗? //实现积分 #include #include i ...
最新文章
- 使用Jupyter Notebook编写技术文档
- Linux下ipconfig分析及C语言实现
- mysql帐户权限replace_mysql 用户管理和权限设置
- 华为鸿蒙os什么时候应用上线,华为 HarmonyOS :即日起,全新上线鸿蒙 100 问
- lenovo Think Centre TCM 开发环境搭建
- Oracle数据库重复数据删除的三种情况
- java ocx调用_Javascript调用OCX控件
- TPU是什么材料,tpu材料属于塑料吗?
- Minimax AI 算法在井字游戏(或 Noughts and Crosses)游戏中的实现
- Ubuntu 20.04(Linux Mint XFCE 20)安装LBP2900打印机
- 软件性能测试包括哪些方面,简述软件系统性能指标主要包括哪些方面
- AI机器学习实战の电磁导航智能车中神经网络应用的问题与思考-交流向-本科生竞赛
- TIM_SetCompare1(TIM14,625); 但是这个办法对TIM4行不通。TIM4使用TIM_OCInitStructure.TIM_Pulse = dutyCycle;
- windows批处理学习
- 大厂程序员都会的分布式RPC框架,直接无私打包分享,手慢无
- 大白菜安装linux系统安装教程
- pytorch 训练时候不动了
- pr无法启动此程序因为计算机中丢失api,pr2017安装丢失的api
- 《智能经济时代初现雏形:数据赋能至上,数据共享先行》阅读笔记
- 郁闷的打包和诺基亚模拟器