实验二定积分的近似计算

利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分.

本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法.对于定积分的近似数值计算,Matlab有专门函数可用.

1.sum(a):求数组a的和.

2.format long:长格式,即屏幕显示15位有效数字.

(注:由于本实验要比较近似解法和精确求解间的误差,需要更高的精度).

3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数值则转化为相应的实型数值.

4.quad():抛物线法求数值积分.

格式:quad(fun,a,b),注意此处的fun是函数,并且为数值形式的,所以使用*、/、^等运算时要在其前加上小数点,即.*、./、.^等.

例:Q = quad('1./(x.^3-2*x-5)',0,2);

5.trapz():梯形法求数值积分.

格式:trapz(x,y)

其中x为带有步长的积分区间;y为数值形式的运算(相当于上面介绍的函数fun)

例:计算

x=0:pi/100:pi;y=sin(x);

trapz(x,y)

6.dblquad():抛物线法求二重数值积分.

格式:dblquad(fun,xmin,xmax,ymin,ymax),fun可以用inline定义,也可以通过某个函数文件的句柄传递.

例1:Q1 = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)

顺便计算下面的Q2,通过计算,比较Q1与Q2结果(或加上手工验算),找出积分变量x、y的上下限的函数代入方法.

Q2 = dblquad(inline('y*sin(x)'), 0, pi, pi, 2*pi)

例2:Q3 = dblquad(@integrnd, pi, 2*pi, 0, pi)

这时必须存在一个函数文件integrnd.m:

function z = integrnd(x, y)

z = y*sin(x);

7.fprintf(文件地址,格式,写入的变量):把数据写入指定文件.

例:x = 0:.1:1;

y = [x; exp(x)];

fid = fopen('exp.txt','w');   %打开文件

fprintf(fid,'%6.2f %12.8f\n',y);    %写入

fclose(fid)                 %关闭文件

8.syms变量1变量2…:定义变量为符号.

9.sym('表达式'):将表达式定义为符号.

解释:Matlab中的符号运算事实上是借用了Maple的软件包,所以当在Matlab中要对符号进行运算时,必须先把要用到的变量定义为符号.

10.int(f,v,a,b):求f关于v积分,积分区间由a到b.

11.subs(f,'x',a):将a的值赋给符号表达式f中的x,并计算出值.若简单地使用subs(f),则将f的所有符号变量用可能的数值代入,并计算出值.

1.矩形法

根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即

在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.

针对不同的取法,计算结果会有不同,我们以为例(取),

(1)左点法:对等分区间

在区间上取左端点,即取

0.78789399673078,

理论值,此时计算的相对误差

(2)右点法:同(1)中划分区间,在区间上取右端点,即取

0.78289399673078,

理论值,此时计算的相对误差

(3)中点法:同(1)中划分区间,在区间上取中点,即取

0.78540024673078,

理论值,此时计算的相对误差

如果在分割的每个小区间上采用一次或二次多项式来近似代替被积函数,那么可以期望得到比矩形法效果好得多的近似计算公式.下面介绍的梯形法和抛物线法就是这一指导思想的产物.

2.梯形法

等分区间

相应函数值为

().

曲线上相应的点为

()

将曲线的每一段弧用过点的弦(线性函数)来代替,这使得每个上的曲边梯形成为真正的梯形,其面积为

于是各个小梯形面积之和就是曲边梯形面积的近似值,

称此式为梯形公式.

仍用的近似计算为例,取

0.78539399673078,

理论值,此时计算的相对误差

很显然,这个误差要比简单的矩形左点法和右点法的计算误差小得多.

3.抛物线法

由梯形法求近似值,当为凹曲线时,它就偏小;当为凸曲线时,它就偏大.若每段改用与它凸性相接近的抛物线来近似时,就可减少上述缺点,这就是抛物线法.

将积分区间等分,分点依次为

对应函数值为

(),

曲线上相应点为

().

现把区间上的曲线段用通过三点的抛物线

来近似代替,然后求函数的定积分:

由于,代入上式整理后得

同样也有

……

将这个积分相加即得原来所要计算的定积分的近似值:

这就是抛物线法公式,也称为辛卜生(Simpson)公式.

仍用的近似计算为例,取

=0.78539816339745,

理论值,此时计算的相对误差

4.直接应用Matlab命令计算结果

(1)数值计算

方法1:int('1/(1+x^2)','x',0,1)    (符号求积分)

方法2:quad('1./(1+x.^2)',0,1)(抛物线法求数值积分)

方法3:x=0:0.001:1;

y=1./(1+x.^2);

trapz(x,y)(梯形法求数值积分)

(2)数值计算

方法1:int(int('x+y^2','y',-1,1),'x',0,2)(符号求积分)

方法2:dblquad(inline('x+y^2'),0,2,-1,1)(抛物线法二重数值积分)

1.实现实验内容中的例子,即分别采用矩形法、梯形法、抛物线法计算,取,并比较三种方法的精确程度.

2.分别用梯形法与抛物线法,计算,取.并尝试直接使用函数trapz()、quad()进行计算求解,比较结果的差异.

3.试计算定积分.(注意:可以运用trapz()、quad()或附录程序求解吗?为什么?)

4.将的近似计算结果与Matlab中各命令的计算结果相比较,试猜测Matlab中的数值积分命令最可能采用了哪一种近似计算方法?并找出其他例子支持你的观点.

5.通过整个实验内容及练习,你能否作出一些理论上的小结,即针对什么类型的函数(具有某种单调特性或凹凸特性),用某种近似计算方法所得结果更接近于实际值?

6.学习fulu2sum.m的程序设计方法,尝试用函数sum改写附录1和附录3的程序,避免for循环.

matlab近似计算求积分,matlab 实验二 定积分的近似计算相关推荐

  1. matlab for求积分,matlab计算定积分的方法—————

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1计算函数zx+e*(cosy +xsiny)的偏导数. 2计算函数f(x,y)= In(1+x^2+y^2)在点(2.4)的全微分 3.设z=xe^xy ...

  2. matlab for求积分,MATLAB数值分析之数值积分(一)

    [实验原理] 一.复合辛普森方法 1)复合辛普森方法基本思路 把积分区间分成若干子区间,再在每个子区间上用低阶辛普森求积公式. 2)复合辛普森算法描述 二.龙贝格方法 1)基本思路 实质上是梯形公式的 ...

  3. matlab定积分矩形法实验报告,定积分的近似计算(数学实验报告matlab版).doc

    数学实验报告 实验序号:2日期:2013年 12月 5日 班级 2011应数一班姓名孙婉婉学号1101114143 实验名称 定积分的近似计算加深理解积分理论中分割.近似.求和.取极限的思想方法了解定 ...

  4. matlab 把区间等分分,MATLAB数学实验报告 定积分的近似计算

    MATLAB数学实验报告 实验日期:2015年11月20日 实验名称定积分的近似计算 姓名:学号:班级: 问题背景描述: 利用牛顿-莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函 ...

  5. matlab trapz求二重积分,matlab求积分(超详细,含int integral integral2/3 quad trapz

    matlab求积分 matlab求积分函数工具: int 用法1: 格式: int(fun,x,a,b) 功能: 计算定积分 用法2: 格式: int(f,x) 功能: 计算不定积分 注: 使用int ...

  6. matlab求曲线极值程序,matlab函数求极值matlab函数求极值.ppt

    matlab函数求极值matlab函数求极值 * * 函数的极值 1.一元函数的极值 函数命令:fminbnd 调用格式:[x,feval,exitflag,output]=fminbnd(fun,x ...

  7. matlab c2d 零阶保持器,计控实验二 连续系统变换为离散系统

    实验二 连续系统变换为离散系统 一.实验目的 在对连续系统进行实时计算机控制时,往往需要把连续系统转换成离散系统. 二.实验指导 为了得到连续系统的离散化数学模型,Matlab 提供了c2d()函数. ...

  8. matlab蒙特卡罗方法求体积_实验二-蒙特卡罗方法计算三维体积

    班级: 学号: 姓名: 实验时间: 2014 年 月 日 实验 项目 实验二 蒙特卡罗方法计算三维体积 所属 课程 数学实验 实 验 目 的 了解蒙特卡罗方法的原理,掌握随机数使用技术. 实 验 内 ...

  9. matlab中求立方根,MATLAB基础入门

    MATLAB有许多使用方法,但最基本,也是入门时首先要掌握的是MATLAB命令窗口(Command Window)的使用方法. MATLAB命令窗口是用于输入数据,运行MATLAB函数和脚本,并显示结 ...

最新文章

  1. Android5.x新特性之 Toolbar和Theme的使用
  2. String练习代码保存
  3. Vue - 去除控制台“你正在开发模式下运行Vue”的警告
  4. 拼写检查工具是android,拼写检查工具框架  |  Android 开发者  |  Android Developers...
  5. g++: internal compiler error: Killed (program cc1plus)Please submit a full bug report,内存不足问题解决
  6. logback整合Logstash
  7. OOP的核心思想是什么?
  8. Mysql中文排序规则
  9. 怎样在mac系统里将文件拷贝到移动硬盘教程
  10. 安装程序总是提示重启计算机,技巧| 安装西门子软件时提示重启电脑的解决办法...
  11. 小学-综合素质【4】
  12. 平安人寿优+计划广纳英才,平安代理人实现职涯发展
  13. 不一样的短视频直播软件开发?
  14. 佳能数码相机照片删除了怎么恢复,如何恢复还原佳能相机误删的照片
  15. 登录显示服务器端校验不通过,SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.7.57 SMTP;...
  16. 普通软件加入开机启动项
  17. Python全栈(五)Web安全攻防之2.信息收集和sqlmap介绍
  18. 中国都有哪些顶级优秀的程序员?
  19. 什么是单例模式以及单例模式的几种实现
  20. Java期末大作业基础项目--在线学生选课系统

热门文章

  1. 光线投射与光线跟踪算法归纳
  2. 浅谈BCrypt密码加解密的使用
  3. 2018maya怎么加点_Maya2018新增了哪些共功能? Maya2018新功能全面预览
  4. SQL实现一对多、多对多建表与查询
  5. 读两本敦煌书杂记-敦煌的历史(一)
  6. android开发环境安装
  7. PNP与NPN两种三极管使用方法
  8. Android DownloadManager下载管理,app更新
  9. Hdu2022 多校训练(5) BBQ
  10. 计算机毕业设计基于asp.net网上考试报名系统