Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-08-16
年龄: 44
帖子: 4
声望力: 0 ![]() |
![]()
求助@讨论:一般而言,实验中测得的图形或曲线在后处理时都是以数据的形式进行,能否利用Matlab对这种曲线(数据)进行积分或微分,即求实验曲线的积分或微分?
请赐教!!! |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31 ![]() ![]() ![]() ![]() |
![]()
trapz(x,y) %x,y为 n个横坐标,n个列坐标
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-08-16
年龄: 44
帖子: 4
声望力: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2008-08-18
年龄: 44
帖子: 4
声望力: 0 ![]() |
![]()
可以参考如下代码:
给出三种方法,前两种计算的是积分结果; 第三种 cumtrapz 计算积分累积分布。 也可以这样考虑:用trapz或者 quad quadl quad8逐点计算出积分结果,然后把结果画出来。 clear; x=linspace(0,3,30); y=x; inter1=trapz(x,y); inter2=quadl(@integrand,0,3); inter3=cumtrapz(x,y); plot(x,inter3); hold on; plot(x,y); function y=integrand(x) y=x; |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-08-16
年龄: 44
帖子: 4
声望力: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#6 |
初级会员
注册日期: 2008-08-18
年龄: 44
帖子: 4
声望力: 0 ![]() |
![]()
可以改进。可能你的数据本身采样的间隔比较大,这样可以增大采样频率,也就是本身的数据间隔小点,当然计算结果更精确了。cumtrapz的原理就是梯形法求积分,相对比较粗糙,如果数据频率比较低,先对数据进行插值拟合的话应该会取得更好的结果。
|
![]() |
![]() |