MATLAB Trapz

MATLAB函数trapz(x, y, n), 其中y是x的积分, 使用梯形法则逼近函数y = f(x)的积分, 并且n(可选)与维度n进行积分。
句法

Z = trapz(Y)Z = trapz (X, Y)Z = trapz (..., dim)

例1
使用MATLAB函数trapz(x, y)估算积分成本
MATLAB Trapz

文章图片
并与精确值进行比较, 评估n = 5和n = 10时的百分比误差。

确切的值从
MATLAB Trapz

文章图片
对于使用梯形法则的逼近, 我们让x5代表n = 5的行向量, x10代表n = 10的向量, 即?x = 1/5和?x = 1/10。相应的值表示为y5和y10, 曲线下的面积分别表示为area5和area10。
创建以下脚本
x5=linspace (1, 2, 5); x10=linspace (1, 2, 10); y5=1. /x5; y10=1. /x10; area5=trapz (x5, y5), area10=trapz (x10, y10)

MATLAB显示以下结果:
area5 =0.6970area10 =0.6939

使用?x = 1/5时的百分比误差为
MATLAB Trapz

文章图片
使用?x = 1/10时的百分比误差为
MATLAB Trapz

文章图片
例2
积分
MATLAB Trapz

文章图片
其中τ是积分的虚拟变量, 称为误差函数, 在通讯理论中得到广泛使用。当积分的上限为t = 2时, 使用MATLAB trapz(x, y)函数在n = 10的情况下找到该积分下的面积。

创建以下脚本
t=linspace (0, 2, 10); y=exp(-t.^2); area=trapz (t, y)

MATLAB显示以下结果:
area =0.8818

范例3
非线性电机的i-v(电流-电压)关系由下式给出
MATLAB Trapz

文章图片
其中v(t)= sin3t。
无论如何, 找到
瞬时功率为
p(t)= v(t)i(t)= 0.1 sin3t(e0.2sin3t-1)
能量是瞬时能量的整数
MATLAB Trapz

文章图片
使用零件积分可以对最后一个积分进行解析, 但这并不容易。我们可以尝试MATLAB int(f, a, b)函数, 其中f是符号表达式, 而a和b分别是积分的下限和上限。
当MATLAB无法找到解决方案时, 它将返回警告。例如, 当使用等式的符号表达式尝试积分时, MATLAB返回以下消息
t=sym('t'); s=int (0.1*sin(3*t) *(exp (0.2*sin(3*t))-1), 0, 10)

执行此脚本后, MATLAB将显示以下消息。
Warning: Explicit integral could not be found.

接下来, 我们将使用MATLAB trapz(x, y)函数通过梯形法则找到并绘制功率和能量。在此示例中, 我们选择n = 100, 因此?x = 1/100。下面的MATLAB脚本将计算和绘制功率。
t=linspace (0, 10, 100); v=sin (3. *t); i=0.1. *(exp (0.2.*v)-1); p=v.*i; plot(t, p); grid; title('Power vs Time'); xlabel('seconds'); ylabel('watts')

【MATLAB Trapz】功率以统一的方式变化, 如图所示
MATLAB Trapz

文章图片
下面的MATLAB脚本计算并绘制能量。
energy=trapz (t, p), plot (t, energy, '+'); grid; title ('Energy vs Time'); ...xlabel('seconds'); ylabel('joules')energy =0.1013

因此, 能量的值为0.1013焦耳。能量如图所示:
MATLAB Trapz

文章图片

    推荐阅读