第8章 MATLAB数值积分与微分

8.1 数值积分

8.2 数值微分

8.1 数值积分

8.1.1 数值积分基本原理

求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson)法、牛顿-柯特斯(Newton-Cotes)法等都是经常采用的方法。它们的基本思想都是将整个积分区间[a,b]分成n个子区间[xi,xi+1],i=1,2,…,n,其中x1=a,xn+1=b。这样求定积分问题就分解为求和问题。

8.1.2 数值积分的实现方法

1.变步长辛普生法

基于变步长辛普生法,MATLAB给出了quad函数来求定积分。该函数的调用格式为:

[I,n]=quad('fname',a,b,tol,trace)

其中fname是被积函数名。a和b分别是定积分的下限和上限。tol用来控制积分精度,缺省时取tol=0.001。trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。返回参数I即定积分值,n为被积函数的调用次数。

例8-1 求定积分。

(1) 建立被积函数文件fesin.m。

function f=fesin(x)

f=exp(-0.5*x).*sin(x+pi/6);

(2) 调用数值积分函数quad求定积分。

[S,n]=quad('fesin',0,3*pi)

S =0.9008

n =77

2.牛顿-柯特斯法

基于牛顿-柯特斯法,MATLAB给出了quad8函数来求定积分。该函数的调用格式为:

[I,n]=quad8('fname',a,b,tol,trace)

其中参数的含义和quad函数相似,只是tol的缺省值取10-6。该函数可以更精确地求出定积分的值,且一般情况下函数调用的步数明显小于quad函数,从而保证能以更高的效率求出所需的定积分值。

例8-2 求定积分。

(1) 被积函数文件fx.m。

function f=fx(x)

f=x.*sin(x)./(1+cos(x).*cos(x));

(2) 调用函数quad8求定积分。

I=quad8('fx',0,pi)

I = 2.4674

例8-3 分别用quad函数和quad8函数求定积分的近似值,并在相同的积分精度下,比较函数的调用次数。

调用函数quad求定积分:

format long;

fx=inline('exp(-x)');

[I,n]=quad(fx,1,2.5,1e-10)

I =0.28579444254766

n =65

调用函数quad8求定积分:

format long;

fx=inline('exp(-x)');

[I,n]=quad8(fx,1,2.5,1e-10)

I = 0.28579444254754

n = 33

3.被积函数由一个表格定义

在MATLAB中,对由表格形式定义的函数关系的求定积分问题用trapz(X,Y)函数。其中向量X,Y定义函数关系Y=f(X)。

例8-4 用trapz函数计算定积分。

命令如下:

X=1:0.01:2.5;

Y=exp(-X); %生成函数关系数据向量

trapz(X,Y)

ans = 0.28579682416393

8.1.3 二重定积分的数值求解

使用MATLAB提供的dblquad函数就可以直接求出上述二重定积分的数值解。该函数的调用格式为:

I=dblquad(f,a,b,c,d,tol,trace)

该函数求f(x,y)在[a,b]×[c,d]区域上的二重定积分。参数tol,trace的用法与函数quad完全相同。

例8-5 计算二重定积分

(1) 建立一个函数文件fxy.m:

function f=fxy(x,y)

global ki;

ki=ki+1; %ki用于统计被积函数的调用次数

f=exp(-x.^2/2).*sin(x.^2+y);

(2) 调用dblquad函数求解。

global ki;ki=0;

I=dblquad('fxy',-2,2,-1,1)

ki

I =1.57449318974494

ki = 1038

8.2 数值微分

8.2.1 数值差分与差商

8.2.2 数值微分的实现

在MATLAB中,没有直接提供求数值导数的函数,只有计算向前差分的函数diff,其调用格式为:

DX=diff(X):计算向量X的向前差分,DX(i)=X(i+1)-X(i),i=1,2,…,n-1。

DX=diff(X,n):计算X的n阶向前差分。例如,diff(X,2)=diff(diff(X))。

DX=diff(A,n,dim):计算矩阵A的n阶差分,dim=1时(缺省状态),按列计算差分;dim=2,按行计算差分。

例8-6 生成以向量V=[1,2,3,4,5,6]为基础的范得蒙矩阵,按列进行差分运算。

命令如下:

V=vander(1:6)

DV=diff(V) %计算V的一阶差分

例8-7 用不同的方法求函数f(x)的数值导数,并在同一个坐标系中做出f'(x)的图像。

程序如下:

f=inline('sqrt(x.^3+2*x.^2-x+12)+(x+5).^(1/6)+5*x+2');

g=inline('(3*x.^2+4*x-1)./sqrt(x.^3+2*x.^2-x+12)/2+1/6./(x+5).^(5/6)+5');

x=-3:0.01:3;

p=polyfit(x,f(x),5); %用5次多项式p拟合f(x)

dp=polyder(p); %对拟合多项式p求导数dp

dpx=polyval(dp,x); %求dp在假设点的函数值

dx=diff(f([x,3.01]))/0.01; %直接对f(x)求数值导数

gx=g(x); %求函数f的导函数g在假设点的导数

plot(x,dpx,x,dx,'.',x,gx,'-'); %作图

matlab离散点数字微分,MATLAB数值积分与微分相关推荐

  1. 数字图像处理matlab作业,数字图像处理matlab大作业

    <数字图像处理matlab大作业>由会员分享,可在线阅读,更多相关<数字图像处理matlab大作业(23页珍藏版)>请在人人文库网上搜索. 1.几个图像处理实例,matlab ...

  2. matlab离散点数字微分,matlab数值积分与微分详解.ppt

    * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 格式: [I,n]= ...

  3. 上变频的matlab实现,数字下变频Matlab 仿真

    第一天: 输入信号的中心频率在fc= 1M, 带宽B=10K,对其做FFT频谱分析 要求RBW=100hz.,因此采样时间t=1/100s 采样频率fs=10M,所以采样点数N=t*fs=100K 要 ...

  4. matlab wc wp,数字信号处理MATLAB习题.PDF

    数字信号处理MATLAB习题 数字信号处理MATLAB 习题 电气硕 72 李弘昌 第11 题 分别用脉冲响应不变法和双线性变换法设计一个巴特沃斯型IIR 低通数字滤波器,采样 频率 ,其通带边频 处 ...

  5. 数字信号处理 matlab 答案,数字信号处理课后习题Matlab作业

    <数字信号处理课后习题Matlab作业>由会员分享,可在线阅读,更多相关<数字信号处理课后习题Matlab作业(22页珍藏版)>请在人人文库网上搜索. 1.数字信号处理MATL ...

  6. matlab多重数值积分,Matlab数值积分和微分(一重、多重都有),简单实用。

    第8章 MATLAB数值积分与微分 8.1 数值积分 8.2 数值微分 8.1 数值积分 8.1.1 数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法.辛普生(Simpson)法.牛顿- ...

  7. matlab第8章,第8章++MATLAB数值积分与微分.ppt

    <第8章++MATLAB数值积分与微分.ppt>由会员分享,可在线阅读,更多相关<第8章++MATLAB数值积分与微分.ppt(14页珍藏版)>请在人人文库网上搜索. 1.第8 ...

  8. 怎么用matlab编写quad8算法,MATLAB程序设计教程(8)---MATLAB数值积分与微分

    第8章MATLAB数值积分与微分 8.1数值积分 8.2数值微分 8.1数值积分 8.1.1数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法.辛普生(Simpson) 法.牛顿-柯特斯( ...

  9. 数值积分与数值微分MATLAB,MATLAB程序设计教程(8)——MATLAB数值积分与微分

    MATLAB程序设计教程(8)--MATLAB数值积分与微分 第8章MATLAB数值积分与微分 8.1  数值积分 8.2  数值微分 8.1数值积分 8.1.1  数值积分基本原理 求解定积分的数值 ...

最新文章

  1. 【青少年编程】【三级】躲避恐龙
  2. Linux信号列表(sigint,sigtstp..)
  3. mysql数据库授权
  4. java 日期注解 xml_Spring xml注解+java注解
  5. yeoman_具有Spring Boot和Yeoman的单页Angularjs应用程序
  6. AI本质就是“暴力计算”?看华为云如何应对算力挑战
  7. DeFi一体化平台Parsec获125万美元种子轮融资并正式启动
  8. python寻路_【PYTHON】a-start寻路算法
  9. linux raid
  10. RN对接京东支付sdk(IOS)
  11. 火绒盾广告拦截提取 内置WINCC PCS7硬狗弹框提示拦截
  12. iMX6ULL上手体验
  13. php滚动播报,卫星云图滚动播放(实时更新)
  14. 【Git】Git国内官网下载地址、淘宝镜像下载地址以及卸载安装
  15. 从频域角度重新思考注意力机制——FcaNet
  16. 英文的pdf文件怎么翻译成中文
  17. 如何使用python自动化查四六级成绩
  18. 计算机英语说明文,英语说明文作文
  19. DOM对象之事件对象(Object《Event》)
  20. BP神经网络通俗教程(matlab实现方法)

热门文章

  1. 奉劝那些想涨工资的程序员,这些 IT 大神们都在用的网站,你越早知道越好(建议收藏)!!...
  2. uni-app图片如何设置双指放大缩小
  3. Android 关于佳博和汉印蓝牙热敏打印机开发,kotlin爬虫app
  4. HTML5 小练习1—仿MPG游戏商城
  5. [锐捷客户端]提示虚拟网卡加载失败解决办法 - macOS系统
  6. 从兴电子笔试题目小结
  7. Cannot construct instance of `com.baomidou.mybatisplus.core.metadata.IPage` (no Creators, like defau
  8. 【操作系统】第2章 进程与线程
  9. Vue3的vue-router超详细使用
  10. GDScript:协程(Coroutine)(二)简单粗暴实用至上的语法设计