复化梯形公式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
201-2013(1)专业课程实践论文
复化梯形公式
余良,0818180125,R数学08-1班
一、算法理论
求⎰baf ()⎰x baf 的值是科学技术中经常遇到的计算问题 ,但在很多情况下 ,()x f 的原函数不易求得 ,或非常复杂 ;另外 ,在一些应用中 ,函数 ()x f 是用函数表形式给出而没有解析式 ,这时就采用定积分的数值计算方法 ,以解决定积分的近似计算。数值求积公式的应用不仅在近似计算本身 ,在初等数学中 ,某些数列求前 n 项之和公式的推导颇为繁琐 ,应用复化梯形公式可方便地导出这些公式。复化梯形公式用牛顿——莱不尼茨公式来计算()⎰x baf 的值的前提是 :()x f 的原函数能够求出。当 ()x f 的原函数不易求出或找不到时 ,希望用一个易于求原函数的函数来近似代替被积函数 ,从而得到定积分的近似计算公式。下文中梯形公式T 就是()⎰x baf 常用的近似计算公式。
复化梯形公式的主要思想是利用若干小梯形的面积代替原方程的积分,利用微元法,可以求出坐标面上由函数与坐标轴围城的图像的面积的近似值,符合了计算机计算存储的思想。
下面,我们在探讨复化梯形公式的计算规律。
设将求积区间[]b a ,分成n 等份,则一共有1+n 个分点,按梯形公式
()()[]()()()⎥⎦⎤⎢⎣⎡++=+=∑∑-=+-=b f x f a f h x f x f h T n k k k k n k n 1111
0222计算积分值n T ,需要提供1+n 个函数值。 注意,这里n
a b h -= 代表步长,分点为kh a x k +=,.,1,0n k ⋅⋅⋅=
二、算法框图
开始
i=0,i Yes x[i]=a+i*(b-a)/n i=1,i Yes sum=sum+F( x[i])i++ i++ T=(b-a)/ (2*n)*(F(x[0])+F(x [n])+2*sum) 输出T No No #include #include #include using namespace std; #define N 400 float F(float x) { x=exp(x) ; return (x ) ; } int main() { float a,b,x[N],sum,T; int n,i; printf("please input n="); cin>>n; printf("please input a="); cin>>a; printf("please input b="); cin>>b; for(i=0;i { x[i]=a+i*(b-a)/(float)n; } sum=0; for(i=1;i { sum=sum+F(x[i]); } T=(b-a)/(2*(float)n)*(F(x[0])+F(x[n])+2*sum); cout<<"T= "< return 0; } 例1:利用复化梯形公式计算⎰2 1dx e x 函数,在以1为下界,2为上界,把区间分为2等分(复化梯形公式计算在2,1,2===b a n 的值)。 解:运行程序 (1) 显示出 “please in put n=” ,“please in put a=” ,“please in put b=”,依次输入数据,回车。 (2) 显示结果如下图: 注:此时()x x exp =;在程序中对应的语句为x=exp(x) ;所求的函数可以定义为其他函数得出目标函数的结果。 例2:利用复化梯形公式计算函数()()0,sin ≠=x x x x ,求在以1为下界,2为上界,把区间分为2等分(复化梯形公式计算在2,1,2===b a n 的值)。 解:运行程序 (1) 显示出 “please in put n=” ,“please in put a=” ,“please in put b=”,依次输入数据,回车。 (2) 显示结果如下图: 注:此时()()0,sin ≠=x x x x ;在程序中对应的语句为x=sin(x)/x ;所求的函数可以定义为其他函数得出目标函数的结果。