写点什么

Matlab 数值微分与数值积分,linux 环境高级编程

用户头像
极客good
关注
发布于: 刚刚



[](

)2. 数值积分


  • 2.1 数值积分基本原理


现有:



在求任意函数 f(x)在[a,b]上的定积分时,可以寻找一个在[a,b]上与 f(x)逼近,但形式上却简单且易于求积分的函数 p(x),用 p(x)在[a,b]上的积分值近似地代替 f(x)在[a,b]上的积分值,一般选择被积函数的插值多项式充当这样的替代函数。选择的插值多项式的次数不同,就形成了不同的数值积分公式。


对被积函数 f(x)采用一、二次多项式插值,然后对插值多项式求积分,就得到了几个常见的数值积分公式:



  • 2.2 数值积分的实现


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


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


[I,n]=quadl(filename,a,b,tol,trace)


filename:被积函数名;


a 和 b:定积分的下限和上限,


tol:用来控制积分精度,默认时取 tol=10-6;


trace:控制是否展现积分过程,若取非 0 则展现积分过程,取 0 则不展现,默认时取 trace=0;


I:定积分值,


n:被积函数的调用次数。


例:就下列函数积分



例: 分别用 quad 函数和 quadl 函数求函数的近似值,并在相同的积分精度下,比较函数的调用次数。



2.自适应积分法


  • MATLAB 提供了基于全局自适应积分算法的 integral 函数来求定积分,函数的调用格式为:


I=integral(filename,a,b)


其中,I是计算得到的积分;filename是被积函数;a和b分别是定积分的下限和上限,积分限可以为无穷大 。


例:求下列积分函数




3.高斯-克朗罗德法


  • MATLAB 提供了基于自适应高斯-克朗罗德法的 quadgk 函数来求振荡函数的定积分。该函数的调用格式为


[I,err]=quadgk(filename,a,b)


其中,err 返回近似误差范围,其他参数的含义和用法与 quad 函数相同。积分上下限可以是?Inf 或 Inf,也可以是复数。如果积分上下限是复数,则 quadgk 在复平面上求积分。


求下列积分函数:




4.梯形积分法


  • 在科学实验和工程应用中,函数关系表达式往往是不知道的,只有实验测定的一组样本点和样本值,这时,人们就无法使用 quad 等函数计算其定积分。在 MATLAB 中,对由表格形式定义的函数关系的求定积分问题用梯形积分函数 trapz,其调用格式为:


I=trapz(X,Y)


其中,向量 X、Y 定义函数关系 Y = f(X)。X、Y 是两个等长的向量:X = (x1,x2,…,xn),Y = (y1,y2,…,yn),并且 x1<x2<…<xn,积分区间是[x1,xn]。


例:求下列积分函数




5.累计梯形积分


  • 在 MATLAB 中,提供了对数据积分逐步累计的函数 cumtrapz。该函数调用格式如下。


Z=cumtrapz(Y)


Z=cumtrapz(X,Y)


对于向量 Y,Z 是一个与 Y 等长的向量;对于矩阵 Y,Z 是一个与 Y 相同大小的矩阵,累计计算 Y 每列的积分。函数其他参数的含


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


义和用法与 trapz 函数的相同。


例:



2.3 多重定积分的数值求解

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Matlab数值微分与数值积分,linux环境高级编程