当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《计算机程序设计基础》第十四讲 编程例题

资源类别:文库,文档格式:PPT,文档页数:33,文件大小:238.5KB,团购合买
求定积分 1、用梯形公式计算面积的近似值。
点击下载完整版文档(PPT)

第十四讲编程例题

1 第十四讲 编程例题

求定积分 1、用梯形公式计算面积的近似值。 b-a 面积 (f(a)+f(b) f(b) 2 f(a) 这样计算面积误差太大。 b

2 求定积分 1、用梯形公式计算面积的近似值。 ( ( ) ( )) 2 b a f a f b − 面积= + 这样计算面积误差太大。 a b f(a) f(b) x y b-a

2、改进:将区间b-a划分成2n等分。用变步长的梯形 法,定义Tm为将积分区间n等分时求出的近似面积。 n=1时 b-a (f(a)+f(b)) 令h=b-c 2n ∑f( xk+一) 22 k=0 当n=1时 T h 2 f(a+-) 2 (2)

3 2、改进:将区间b-a划分成2n等分。用变步长的梯形 法,定义Tn为将积分区间n等分时求出的近似面积。 1 0 2 (1) 1 1 1 1 1 (2) ( ( ) ( )) 2 ( ) 2 2 2 1 ( ) 2 2 2 n n k k n n b a T f a f b h b a T h h T f x n T h h T f a − = − + = − = + + = = + +  n 2n 1 当n=1时, = 令 令 当 时

f(x1+h/2) h/2 h/2 b

4 a b f(x1+h/2) x y h/2 h/2

(1)为按公式算出的面积的二分之一; (2)为等分中线的函数值x1+2)与h的乘积,得出 面积的二分之一。 当n=2时, 2n2 T h 2n 22 ∑f(xk+ k=0 2 2 h 2=+[f(a+)+f(a+h) 22 (3)

5 (1)为按公式算出的面积的二分之一; (2)为等分中线的函数值f(x1+h/2)与h的乘积,得出 面积的二分之一。 1 2 0 2 2 2 2 2 2 2 2 2 (3) , ( ) 2 2 2 1 3 [ ( ) ( )] 2 2 2 2 n n k k n n T T T h h T f x n T h h T f a f a h = = = + + = = + + + +  n 2 2n 1 当n=2时, 当 时

(3)代表面积 解释如下:将ak间分成两段 h2=h=(b-a) 积分面积用矩形acde+矩形egb来近似 h ac的长度取f(a+) e/的长度取f(a+h2) 2 这两块的面积之和为2=h*(a+)+f(a+h2) 2 再取一半就是 h2 2 ∑f(xk+(k+05)*h)

6 (3)代表面积 2 1 2 2 2 2 1 2 2 0 2 2 1 1 ( ) 2 2 ( ) 2 3 ( ) 2 3 *[ ( ) ( )] 2 2 ( ( 0.5)* ) 2 n n k k acde efg ab h h b a h ac f a ef f a h h T h f a f a h h f x k h b − = = = − + + = + + +  + + 解释如下:将 区间分成两段 积分面积用 + 来近似 的长度取 的长度取 这两块的面积之和为 再取一半就 矩形 矩形 是

3、用辛普生公式计算积分的近似值 2n (472n-Tm) 当n-l|<e认为达到了近似要求。 如未达此精度要求,则让 n< 2n,h<h/2 例:求定积分Ⅰ 2e2+x dx 0

7 3、用辛普生公式计算积分的近似值 2 2 2 2 2 3 0 1 (4 ) 3 2 , / 2 1 n n n n n x I T T I I n n h h e x I dx x  = − −  ⎯⎯ ⎯⎯ + = +  当 认为达到了近似要求。 如未达此精度要求,则让 例:求定积分

#include ∥预编译命令 #include <math. h ∥预编译命令,数学函数 double f( double x);∥/定义被调用函数f void main( ∥主函数 ∥主程序开始 int k,n=l ∥声明整型变量k,n,并初始化n double x,x1=0,x2=2;∥声明双精度变量x,和x1,x2 double s,h,tn,t2n,n,2n;/声明计算中使用的中间变量 const double eps=1e-6;/声明双精度变量eps作为阈值 ∥计算m=1时的t和In,为便于编程 ∥分别将它们赋给t2n和2n h=x2-xI t2n=n2n=(h*(f(x1)+f(x2)2; printf("第一次近似计算梯形面积值为%fm",t2m In=0;

8 #include // 预编译命令 #include // 预编译命令,数学函数 double f(double x); // 定义被调用函数f void main() // 主函数 { // 主程序开始 int k,n=1; // 声明整型变量k,n,并初始化n double x,x1=0,x2=2; // 声明双精度变量x,和x1,x2 double s,h,tn,t2n,In,I2n;// 声明计算中使用的中间变量 const double eps=1e-6;// 声明双精度变量eps作为阈值 // 计算n=1时的tn和In,为便于编程 // 分别将它们赋给t2n和I2n h=x2-x1; t2n=I2n=(h*(f(x1)+f(x2)))/2; printf("第一次近似计算梯形面积值为%lf\n",t2n); In=0;

while(fabs(l2n-In)>=eps∥/当型循环精度未达要求则继续 ∥循环体开始, ∥将上一次计算结果转存入t和In tn=t2n: In=n ∥)计算k从0至n-1,f(x1+(k+0.5)地h)的和 s=0.0; ∥求和变量s清零 for(k=0;k<n;k=k+1)∥循环求和 ∥循环体开始 x=x1+(k+0.5)h; S+f(x); ∥循环体结束 ∥计算t2和2n t2n=(tn+hs)/2.0; I2n=(4t2ntmn)/3.0;

9 while(fabs(I2n-In)>=eps)//当型循环,精度未达要求则继续 { // 循环体开始, // 将上一次计算结果转存入tn和In tn=t2n; In=I2n; // 计算k从0至n-1,f(x1+(k+0.5)*h)的和 s=0.0; // 求和变量s清零 for(k=0;k<n;k=k+1) // 循环求和 { // 循环体开始 x=x1+(k+0.5)*h; s=s+f(x); } // 循环体结束 // 计算t2n和I2n t2n=(tn+h*s)/2.0; I2n=(4*t2n-tn)/3.0;

∥更新m和h,用于下一次计算 n=2 n h=h2; ∥循环体结束 printf("积分值为%fm",2n);∥/输出结果 ∥主函数结束 double f( double x)∥被调用函数f,用于计算积分项 ∥函数体开始 ∥计算并返回积分项 return((exp(x)+x*x)/(1+x*x*x)) ∥函数体结束 运行结果:第一次近似计算提醒面积值为2265451 积分值为3138948

10 // 更新n和h,用于下一次计算 n=2*n; h=h/2; } // 循环体结束 printf("积分值为%lf\n",I2n); // 输出结果 } // 主函数结束 double f(double x) // 被调用函数f,用于计算积分项 { // 函数体开始 // 计算并返回积分项 return ( (exp(x)+x*x)/(1+x*x*x)); } // 函数体结束 运行结果:第一次近似计算提醒面积值为2.265451 积分值为3.138948

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共33页,可试读12页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有