📜  MATLAB 中的梯形数值积分

📅  最后修改于: 2022-05-13 01:54:19.844000             🧑  作者: Mango

MATLAB 中的梯形数值积分

MATLAB 中的Trapz函数用于使用梯形规则求数值积分。梯形规则的基本思想是假设给定函数图下的区域是梯形而不是矩形并计算其面积。

使用梯形法则进行数值积分的公式为:

∫_a^bf(x)dx=h/2[ f(a)+2\{ ∑^{n-1}_{i=1}f(a+ih)\}  +f(b)]

其中 h = (ba)/n

MATLAB 允许我们通过简单地使用trapz函数而不是经过上述公式的冗长过程来执行数值积分。



在 MATLAB 中, trapz函数以 3 种不同的方式获取输入参数。

  1. 陷阱(Y)
  2. 陷阱(X,Y)
  3. 陷阱(_____,昏暗)

陷阱(Y)

在这种方法中, trapz函数默认考虑单位间距。这里Y是数值数据,可以是向量、矩阵或多维数组。

  • 如果Y是向量,则trapz函数计算Y的近似积分。
  • 如果Y是矩阵,则trapz函数对矩阵的每一列进行积分,并返回积分值的行向量作为输出。
  • 如果Y是多维数组,则trapz函数在大小不等于 1 的第一个维度上进行积分。

让我们举一个例子来计算包含函数值的向量Y的积分f(x) = 2^x      在域 [1,5]

例子:

Matlab
% MATLAB code for calculate Y is a vector
% of numeric data containing function values 
% for f(x) = 2^x in domain [1,5]
Y = [2 4 8 16 32];
  
% Integrate the data using 'trapz(Y)'
% with unit spacing (by default)
Q = trapz(Y);
  
% display the result
disp('The approximate Integration using trapz(Y) = ');
disp(Q);


Matlab
% MATLAB code for calculate the
% integral value of vector Y having
% a point spacing value of pi/100. Where 
% X ranges from 0 to pi/2 with uniform 
% spacing of pi/100
X = 0:pi/100:pi/2;
  
% Y is a vector having point spacing 
% value of pi/100
Y = cos(X);
  
% Integrate the data using 'trapz(X,Y)'
Q = trapz(X,Y);
disp('The approximate Integration using trapz(X,Y) = ');
disp(Q);


Matlab
% MATLAB code for Integrate the rows of
% matrix Y with non-uniform point spacing
% with dim as 2. Here X contains non-uniform intervals
X = [1 2.5 5.5 10];
  
% Y is a matrix  with non-uniform point spacing 
% with value of dim = 2 as data is in the rows of Y 
Y = [13.5   23.7   17.2   13.2;
     22.5   16.0  20.5   24.5;
     15.6   27.7  10.2   12.9];
  
% Integrate the data using 'trapz(X,Y,dim)' 
Q = trapz(X,Y,2);
disp('The approximate Integration using trapz(X,Y,2) = ');
disp(Q);


输出:

陷阱(X,Y)

 在此方法中, X指定标量间距或坐标,并且trapz函数将Y相对于X积分。



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

下面的示例演示了 trapz(X,Y) 并计算点间距值为 pi/100 的向量Y的积分值。

例子:

MATLAB

% MATLAB code for calculate the
% integral value of vector Y having
% a point spacing value of pi/100. Where 
% X ranges from 0 to pi/2 with uniform 
% spacing of pi/100
X = 0:pi/100:pi/2;
  
% Y is a vector having point spacing 
% value of pi/100
Y = cos(X);
  
% Integrate the data using 'trapz(X,Y)'
Q = trapz(X,Y);
disp('The approximate Integration using trapz(X,Y) = ');
disp(Q);

陷阱(______,暗淡)

此处, dim是要操作的维度,在此方法中, X是可选参数。

  • 如果将dim指定为1 ,则trapz(Y,1)对每一列进行积分并返回积分值的行向量。
  • 如果将dim指定为2 ,则trapz(Y,2)对每一行进行积分并返回积分值的列向量。

的示例集成矩阵Y的具有非均匀点通过使用trapz昏暗间隔为2的行下面(_____,暗淡)函数。

例子:

MATLAB

% MATLAB code for Integrate the rows of
% matrix Y with non-uniform point spacing
% with dim as 2. Here X contains non-uniform intervals
X = [1 2.5 5.5 10];
  
% Y is a matrix  with non-uniform point spacing 
% with value of dim = 2 as data is in the rows of Y 
Y = [13.5   23.7   17.2   13.2;
     22.5   16.0  20.5   24.5;
     15.6   27.7  10.2   12.9];
  
% Integrate the data using 'trapz(X,Y,dim)' 
Q = trapz(X,Y,2);
disp('The approximate Integration using trapz(X,Y,2) = ');
disp(Q);

输出: