8.离散数据的累计梯形积分trapz和cumtrapz
(2015-01-30 14:04:11)
标签:
股票 |
分类: Matlab |
trapz是利用梯形法求数值积分
要求输入的是一个数列,或者是两个一样长的对应数列
trapz(Y)或者trapz(X,Y);
就是计算由X,Y两组数据决定的曲线下的积分面积
而当只输入一个变量时,函数默认其为Y变量,
而X变量缺省默认为等间距为1的等差数列,长度和Y相同
也就是
trapz(Y)
而cumtrapz的输入变量用法和trapz一样
只是trapz只输出一个总的面积,而cumtrapz输出一个长度和输入数据长度一样的数列
每一个数对应原来数列之前所用数的积分
你的例子
t=0:dt:4;
Ft=exp(-sin(t));
Sx=dt*cumtrapz(Ft);
Sx(end)
利用cumtrapz计算函数(t)=exp(-sin(t))从0到4的积分,数值采样间隔是dt
积分用的自变量数列是t,而变量数列是Ft
按照完整计算积分应该写成:
Sx=cumtrapz(t,Ft);
由于你的自变量t本身就是等差数列,可以简单只写cumtrapz(Ft)
但这样得到的积分按默认的间隔1来计算,要得到正确值就要乘以间隔dt
最后得到的Sx是长度和t一样的数列
最后一个值Sx(end)实际上就是trapz(t,Ft)