概述
定积分计算
Description
已知f(x)=exp(x*x),求定积分I(I为f(x)在[1,t]上的定积分)。算法采用梯形法,简介如下:
对P(P为g(x)在[a,b]上的定积分),将积分区间b-a等分为m份,每份h=(b-a)/m。使用梯形面积来近似计算定积分,近似公式为
注意:请将m取为2000。
Input
输入共一行,为积分上限t(10≥t≥1)。
Output
输出共一行,为在[1,t]上的定积分。
Sample Input
1.5
Sample Output
2.60046
Hint
注意:
1.
2.请将m取为2000
3.请用cout输出结果(使用cout需要头文件iostream.h)
Source
习题6-4
问题分析:
这个题目主要是对公式的理解。在对公式进行分析之后我们得出,求解这个题目就是一个对各项的拆分计算。比如对f(x0)的计算,对累加的计算。
解决方案:
用了两个函数分别表示f(x)的求解和公式的求解。在对f(x)的求解过程中,直接调用数学库函数。S的计算是完全按照题目中给的公式来的。这种计算不是最佳方案,使用了函数和库函数,不过比较易读。
参考程序:
#include<stdio.h> #include<math.h> const int m = 2000; double f(double x); //计算f(x)的值 double S(double a,double b,int m); //直接计算公式从a到b的积分输出 int main() { double t; scanf("%lf",&t); double a=1.0; double b=t; printf("%lfn",S(a,b,m)); return 0; } double f(double x) { return exp(x*x); } double S(double a,double b,int m) { double c=0; double h=(b-a)/m; int k; for(k=1;k<m;k++) //计算累加和∑ { c+=f(a+k*h); } return ((f(a)+f(b))/2+c)*h; }
最后
以上就是等待睫毛为你收集整理的RUC_JudgeOnline 1005 定积分计算的全部内容,希望文章能够帮你解决RUC_JudgeOnline 1005 定积分计算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复