1 / 32

实验二

实验二. 定积分的近似计算. 定积分近似计算. 问题背景和实验目的. 定积分计算的基本公式是牛顿-莱布尼兹公式。但当被积函数的原函数不知道时,如何计算?这时就需要利用近似计算。特别是在许多实际应用中,被积函数甚至没有解析表达式,而是一条实验记录曲线,或一组离散的采样值,此时只能用近似方法计算定积分。. 本实验主要介绍计算定积分的三种基本近似算法: 矩形法、梯形法和抛物线法 。同时介绍 Matlab 计算定积分的相关函数。. 主要内容. 计算定积分的基本数值算法. 矩形法 梯形法 抛物线法. Matlab 计算积分的相关函数.

keith
Download Presentation

实验二

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 实验二 定积分的近似计算

  2. 定积分近似计算 • 问题背景和实验目的 • 定积分计算的基本公式是牛顿-莱布尼兹公式。但当被积函数的原函数不知道时,如何计算?这时就需要利用近似计算。特别是在许多实际应用中,被积函数甚至没有解析表达式,而是一条实验记录曲线,或一组离散的采样值,此时只能用近似方法计算定积分。 • 本实验主要介绍计算定积分的三种基本近似算法:矩形法、梯形法和抛物线法。同时介绍 Matlab 计算定积分的相关函数。

  3. 主要内容 • 计算定积分的基本数值算法 • 矩形法 • 梯形法 • 抛物线法 • Matlab 计算积分的相关函数 • 数值积分函数trapz、quad、integral、integral2 • 符号积分函数:int

  4. n充分大,x 充分小 定积分的近似 • 定积分的定义

  5. 点 法 中 点 法 矩形法 取 步长 节点 点 的常见取法:左端点,右端点或中点 左 点 法

  6. 解: a=0, b=1, n=100 h =1/n=0.01, xi = i*h, (i = 0, 1, 2, ..., 100) • 左点法: • 右点法: • 中点法: 矩形法举例 例: 用三种不同的矩形法计算下面的定积分 ( 取 n=100 ),并比较这三种方法的相对误差。 fuluA.m

  7. 补:函数句柄 函数句柄:可以理解成一个函数的代号或别名,调用函数句柄就等价于调用该函数。 • 函数句柄的定义 fhandle = @函数名 • @的作用就是将一个函数的函数句柄赋值给左边的变量 例: f = @sin; y = f(pi/3)

  8. 补:匿名函数 匿名函数是 MATLAB的一种函数描述形式,可以让用户编写简单的函数而不需要创建M文件,并且具有很高的执行效率。 • 匿名函数的定义 f = @(变量列表) 表达式 • 这里返回的f是一个函数句柄(function handle) 例: f = @(x) 1/(1+x*x); % 一个自变量 y = f(2) whos f % f 是一个函数句柄 f = @(x,y) x^2 + y^2; % 两个自变量 y = f(2,3) % 注意对应关系

  9. 补:匿名函数 • 匿名函数中可以采用数组运算,以便作用在向量或数组上 例: f = @(x) 1./(1+x.*x); % 一个自变量 x1 = 0 : 0.01 : 1; % x1 是向量 y1 = f(x1); % f 是作用在向量 x1 的每个分量上 如果需要同时计算函数在多个点上的值,可以将函数直接作用在向量上,但此时函数的定义中必须采用数组运算!

  10. 有没有更好的近似计算定积分的方法? 矩形法举例 • 相对误差分析 • 理论值: • 左点法相对误差: • 右点法相对误差: • 中点法相对误差: 不同的算法有不同的计算精度

  11. 定积分几何意义

  12. 梯形法 • 曲边小梯形的面积可以由直边小梯形的面积来近似 • 整个曲边梯形的面积:

  13. 梯形公式与中点公式有什么区别? 梯形法 • 如果我们 n等分区间 [a,b],即令: 则 梯形公式

  14. ==> h =1/100=0.01, xi = i*h, yi = f (xi) • 相对误差: 梯形法举例 例:用梯形法计算定积分 ( 取 n=100 ),并计算相对误差 fuluB.m 解: a=0, b=1, n=100, f (x) = 1/( 1+x2 ) ==>

  15. 抛物线法 • n等分区间 [a,b] ,得 • 计算节点和中点上的函数值: • 在区间 [xi-1, xi] 上,用过以下三点 用抛物线代替该直线,计算精度是否会更好? 的抛物线来近似原函数 f (x) 。

  16. 抛物线法 设过以上三点的抛物线方程为: y = x2 +  x+  = pi(x) 则在区间 [xi-1, xi] 上,有

  17. 抛物线法 • 相加后可得: 抛物线法公式 辛卜生 (Simpson) 公式 或

  18. 相对误差: 抛物线法 例:用抛物线法计算下面定积分 ( 取 n=100 ),并计算相对误差 fuluC.m 解: a=0, b=1, n=100,

  19. 主要内容 • 计算定积分的基本数值算法 • 矩形法 • 梯形法 • 抛物线法 • Matlab 计算积分的相关函数 • 数值积分函数trapz、quad、integral、integral2 • 符号积分函数:int

  20. trapz • 梯形法 trapz(x, y) x为分割点(节点)组成的向量,y 为被积函数在节点上的函数值组成的向量。

  21. trapz 举例 例:用梯形法计算下面定积分 ( 取 n=100 ) 解: a=0, b=1, n=100, yi= f (xi) = 1/( 1+xi2 ) 前面的做法 trapz函数 x=0:1/100:1; y=1./(1+x.^2); inum=trapz(x, y)

  22. quad • 自适应抛物线法 quad(f,a,b,tol) f = f(x) 为被积函数,[a,b] 为积分区间,tol为计算精度 • 不用自己分割积分区间 • 可以指定计算精度,若不指定,缺省精度是 10-6 • 精度越高,函数运行的时间越长 • f 是函数句柄,也可用字符串表示(不推荐), 其中涉及的运算必须采用数组运算 将自变量看成是向量!

  23. quad 举例 例:用 quad计算定积分: 解: f=@(x) 1./(1+x.^2); inum=quad(f, 0, 1) %采用缺省精度 inum=quad(@(x) 1./(1+x.^2), 0, 1, 1e-10)

  24. integral • 全局自适应积分法(R2012a以后版本) integral(f,a,b) integral(f,a,b,'RelTol',tol) • 该函数比 quad效率更高,且可以处理一些非正常积分 • 可以指定计算精度,若不指定,缺省精度是 10-6 • f 必须是函数句柄,且涉及的运算必须采用数组运算 f=@(x) 1./(1+x.^2); inum=integral(f,0,1) inum=integral(f,0,1,'RelTol',1e-10) f=@(x) exp(-x); inum=integral(f,0,inf)

  25. integral2 • 计算二重积分的全局自适应积分法 integral2(f,a,b,c,d,tol) integral2(f,a,b,c,d,'RelTol',tol) • 可以指定计算精度,若不指定,缺省精度是 10-6 • f 必须是函数句柄,且涉及的运算必须采用数组运算

  26. 在前面的是第一积分变量,在后面的是第二积分变量在前面的是第一积分变量,在后面的是第二积分变量 integral2 例:计算二重积分 f=@(x,y) 4*x.*y+3*y.^2; inum=integral2(f,-1,1,0,2) 注意积分变量与积分区间的对应关系

  27. int • 符号积分 int(f,v,a,b)%计算定积分 int(f,a,b)%计算关于默认变量的定积分 int(f,v)%计算不定积分 int(f)%计算关于默认变量的不定积分 例:用 int函数计算定积分: syms x; f=1/(1+x^2); inum=int(f,x,0,1)

  28. 相关函数 double(a) 将a转化为双精度型,若a是字符,则取对应的ASCII 码 例: a=3; x=double(a) y=double('a') x=3 y=97

  29. 数值实验 例:用 Matlab 函数近似计算定积分 • 梯形法: x=1:0.001:2; y=exp(x.^(-2)); inum=trapz(x,y) • 抛物线法: f=@(x) exp(x.^(-2)); inum=quad(f, 1, 2, 1e-10) • 符号积分法: syms x; inum=int(exp(x^(-2)),x,1,2)

  30. 数值实验 例:用 Matlab 函数近似计算二重积分 • 数值积分法: f=@(x,y) x+y.^2; inum=integral2(f, 0, 2, -1, 1) • 符号积分法: syms x y; f=int(x+y^2,y,-1,1); inum=int(f,x,0,2)

  31. 上机作业 • 上机作业 要求填写实验报告 • 教材第 75 页:2、3、6 将所编写的程序分别命名为 hw221.m, hw222.m, hw231.m, hw261.m, hw262.m • 要求: • 没有提到使用Matlab函数的题必须使用编程完成 • 要求使用Matlab函数或命令的必须使用函数或命令 • 使用课程主页上的附录程序

  32. 上机要求 • 上机要求 • 将所有文件作为附件,通过 foxmail 以邮件形式发给 mhjs@system.mail • 邮件主题为:机号-学号-姓名,其中机号为 两位数 • 三个字段之间用英文状态下的减号连接 • 每个 M 文件的第一行添加一条注解语句:% 机号-学号-姓名

More Related