Matlab数据处理之梯形数值积分函数trapz

4.7
(3)

Matlab中,可以使用trapz函数获取梯形数值积分。本文将从以下几方面介绍trapz函数:trapz函数常见用法、trapz函数用法说明、trapz函数实例。其中trapz函数实例包括:采用单位间距对数据向量求积分、采用非单位间距对数据向量求积分、采用非均匀间距对矩阵求积分、多个数值积分。

Matlab数据处理之梯形数值积分函数trapz

trapz函数帮助文档如下:

>> help trapz
 trapz  Trapezoidal numerical integration.
    Z = trapz(Y) computes an approximation of the integral of Y via
    the trapezoidal method (with unit spacing).  To compute the integral
    for spacing different from one, multiply Z by the spacing increment.
 
    For vectors, trapz(Y) is the integral of Y. For matrices, trapz(Y)
    is a row vector with the integral over each column. For N-D
    arrays, trapz(Y) works across the first non-singleton dimension.
 
    Z = trapz(X,Y) computes the integral of Y with respect to X using
    the trapezoidal method.  X and Y must be vectors of the same
    length, or X must be a column vector and Y an array whose first
    non-singleton dimension is length(X).  trapz operates along this
    dimension.
 
    Z = trapz(X,Y,DIM) or trapz(Y,DIM) integrates across dimension DIM
    of Y. The length of X must be the same as size(Y,DIM)).
 
    Example: If Y = [0 1 2
                     3 4 5]
 
    then trapz(Y,1) is [1.5 2.5 3.5] and trapz(Y,2) is [2
                                                        8];

trapz函数常见用法

Q = trapz(Y)
Q = trapz(X,Y)
Q = trapz(___,dim)

trapz函数语法说明

Q = trapz(Y) 通过梯形法计算 Y 的近似积分(采用单位间距)。Y 的大小确定求积分所沿用的维度:

  • 如果 Y 为向量,则 trapz(Y) 是 Y 的近似积分。
  • 如果 Y 为矩阵,则 trapz(Y) 对每列求积分并返回积分值的行向量。
  • 如果 Y 是多维数组,则 trapz(Y) 对大小不等于 1 的第一个维度求积分。该维度的大小变为 1,而其他维度的大小保持不变。

Q = trapz(X,Y) 根据 X 指定的坐标或标量间距对 Y 进行积分。

  • 如果 X 是坐标向量,则 length(X) 必须等于 Y 的大小不等于 1 的第一个维度的大小。
  • 如果 X 是标量间距,则 trapz(X,Y) 等于 X*trapz(Y)。

Q = trapz(_,dim) 使用上述任意语法沿维度 dim 求积分。必须指定 Y,也可以指定 X。如果指定 X,则它可以是长度等于 size(Y,dim) 的标量或向量。例如,如果 Y 为矩阵,则 trapz(X,Y,2) 对 Y 的每行求积分。

trapz函数实例

采用单位间距对数据向量求积分

计算数据点之间间距为 1 的向量的积分。

创建数据的数值向量。

Y = [1 4 9 16 25];

Y 包含域 [1, 5] 中的 f(x)=x2 的函数值。

使用 trapz 按单位间距对数据求积分。

>> Q = trapz(Y)

Q =

    42

该近似积分生成值 42。在这种情况下,确切答案有些小,41+1/3。trapz 函数高估积分值,因为 f(x) 是向上凹的。

采用非单位间距对数据向量求积分

计算数据点间距均匀但不等于 1 的向量的积分。

创建域向量。

X = 0:pi/100:pi;

计算 X 的正弦值。

Y = sin(X);

使用 trapz 对 Y 求积分。

>> Q = trapz(X,Y)

Q =

    1.9998
Matlab数据处理之梯形数值积分函数trapz

当点之间的间距不变但不等于 1 时,为 X 创建向量的替代方法是指定标量间距值。在这种情况下,trapz(pi/100,Y) 与 pi/100*trapz(Y) 相同。

采用非均匀间距对矩阵求积分

对具有非均匀数据间距的矩阵的行求积分。

创建一个 x 坐标向量和一个按不规则间隔测得的观测值矩阵。Y 中的行代表在 X 中各时间处测得的速度数据,分别来自三次不同的试验。

X = [1 2.5 7 10];
Y = [5.2   7.7   9.6   13.2;
     4.8   7.0  10.5   14.5;
     4.9   6.5  10.2   13.8];

使用 trapz 分别对每一行进行积分,然后求出每次试验中经过的总距离。由于数据不是按固定间隔计算的,因此指定 X 来表示数据点之间的间距。由于数据位于 Y 的行中,因此指定 dim = 2

>> Q1 = trapz(X,Y,2)

Q1 =

   82.8000
   85.7250
   82.1250

结果为积分值的列向量,Y 中的每行对应一个列向量。

多个数值积分

创建一个由域值构成的网格。

x = -3:.1:3; 
y = -5:.1:5; 
[X,Y] = meshgrid(x,y);

计算网格上的函数 f(x,y)=x2+y2

F = X.^2 + Y.^2;

trapz 对数值数据、而不是函数表达式求积分,因此表达式通常无需已知可对数据矩阵使用 trapz。在已知函数表达式的情况下,您可以改用 integralintegral2 或 integral3

使用 trapz 求二重积分的近似值

Matlab数据处理之梯形数值积分函数trapz

要对数值数据的数组执行二重或三重积分运算,请嵌套对 trapz 的函数调用。

>> I = trapz(y,trapz(x,F,2))

I =

  680.2000
Matlab数据处理之梯形数值积分函数trapz

trapz 先对 x 求积分以生成列向量。然后,y 上的积分可将列向量减少为单个标量。trapz 稍微高估计确切答案 680,因为 f(x,y) 是向上凹的。

共计3人评分,平均4.7

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/3954.html

(0)
微信公众号
古哥的头像古哥管理团队
上一篇 2023年01月03日 19:57
下一篇 2023年01月04日 19:42

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号