个性化阅读
专注于IT技术分析

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.6970
area10 =
             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脚本计算并绘制能量。

energy=trapz (t, p), plot (t, energy, '+'); grid; title ('Energy vs Time'); ...
xlabel('seconds'); ylabel('joules')
energy =
               0.1013

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

MATLAB Trapz

赞(0)
未经允许不得转载:srcmini » MATLAB Trapz

评论 抢沙发

评论前必须登录!