加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

8.离散数据的累计梯形积分trapz和cumtrapz

(2015-01-30 14:04:11)
标签:

股票

分类: Matlab

trapz是利用梯形法求数值积分


要求输入的是一个数列,或者是两个一样长的对应数列
trapz(Y)或者trapz(X,Y);
就是计算由XY两组数据决定的曲线下的积分面积
而当只输入一个变量时,函数默认其为Y变量,
X变量缺省默认为等间距为1的等差数列,长度和Y相同
也就是
trapz(Y) 相当于trapz(1:1:length(Y),Y)

cumtrapz的输入变量用法和trapz一样
只是trapz只输出一个总的面积,而cumtrapz输出一个长度和输入数据长度一样的数列
每一个数对应原来数列之前所用数的积分

你的例子
t=0:dt:4;        
Ft=exp(-sin(t));   
Sx=dt*cumtrapz(Ft);
Sx(end)

利用cumtrapz计算函数(t)=exp(-sin(t))04的积分,数值采样间隔是dt
积分用的自变量数列是t,而变量数列是Ft
按照完整计算积分应该写成:
Sx=cumtrapz(t,Ft);
由于你的自变量t本身就是等差数列,可以简单只写cumtrapz(Ft)
但这样得到的积分按默认的间隔1来计算,要得到正确值就要乘以间隔dt

最后得到的Sx是长度和t一样的数列
最后一个值Sx(end)实际上就是trapz(t,Ft)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有