登录论坛

查看完整版本 : [求助]实验数据的积分处理


hunter_tiger
2008-08-16, 09:40
求助@讨论:一般而言,实验中测得的图形或曲线在后处理时都是以数据的形式进行,能否利用Matlab对这种曲线(数据)进行积分或微分,即求实验曲线的积分或微分?
请赐教!!!

fanxing39
2008-08-16, 15:29
trapz(x,y) %x,y为 n个横坐标,n个列坐标

hunter_tiger
2008-08-17, 09:16
trapz(x,y) %x,y为 n个横坐标,n个列坐标

非常感谢您的答案!
据我所知trapz函数是采用复化梯形公式来求积分,其结果是一个面积的表示,能否求出实验曲线的积分曲线?(我的意思是:将实验中测得的曲线1,以数据的基础,在matlab中绘制出曲线2,如果曲线1和2误差不是很大的话,求曲线2的积分曲线),不知道是否可在matlab中实现,请求支援!!!

xmuhjh
2008-08-18, 11:59
可以参考如下代码:
给出三种方法,前两种计算的是积分结果;
第三种 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;

hunter_tiger
2008-08-18, 14:33
可以参考如下代码:
给出三种方法,前两种计算的是积分结果;
第三种 cumtrapz 计算积分累积分布。

也可以这样考虑:用trapz或者 quad quadl quad8逐点计算出积分结果,然后把结果画出来。

clear;
x=linspace(0,3,30);
y=x;
i...

非常感谢!
我用cumtrapz命令进行了一定量的试验,效果不错,但是对较复杂图形而言,误差可能会比较大,我现在有一个想法:能否利用曲线拟合的方法求出拟合方程,再通过simulink进行积分/或直接运用matlab中的命令程序进行较精确的求解,请问这种方法可行否,仿真误差如何?

xmuhjh
2008-08-18, 22:54
可以改进。可能你的数据本身采样的间隔比较大,这样可以增大采样频率,也就是本身的数据间隔小点,当然计算结果更精确了。cumtrapz的原理就是梯形法求积分,相对比较粗糙,如果数据频率比较低,先对数据进行插值拟合的话应该会取得更好的结果。