📅  最后修改于: 2021-01-07 03:14:16             🧑  作者: Mango
MATLAB函数trapz(x,y,n) ,其中y是x的积分,使用梯形法则逼近函数y = f(x)的积分,并且n(可选)与维度n一起执行积分。
Z = trapz(Y)
Z = trapz (X, Y)
Z = trapz (..., dim)
使用MATLAB函数trapz(x,y)估算积分成本
并与精确值进行比较,评估n = 5和n = 10时的百分比误差。
解
确切的值从
对于使用梯形法则进行逼近,我们让x 5代表n = 5的行向量,让x 10代表n = 10的向量,即∆x = 1/5和∆x = 1/10。相应的值表示为y 5和y 10 ,曲线下的面积分别表示为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时的百分比误差为
使用∆x = 1/10时的百分比误差为
积分
其中τ是积分的虚拟变量,称为误差函数,并且在通讯理论中被广泛使用。当积分的上限为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
非线性电机的iv(电流-电压)关系由下式给出
其中v(t)= sin3t。
无论如何,找到
使用零件积分可以对最后一个积分进行解析,但这并不容易。我们可以尝试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脚本计算并绘制能量。
energy=trapz (t, p), plot (t, energy, '+'); grid; title ('Energy vs Time'); ...
xlabel('seconds'); ylabel('joules')
energy =
0.1013
因此,能量的值为0.1013焦耳。能量如图所示: