查看完整版本 : [求助]实验数据的积分处理
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中实现,请求支援!!!
可以参考如下代码:
给出三种方法,前两种计算的是积分结果;
第三种 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中的命令程序进行较精确的求解,请问这种方法可行否,仿真误差如何?
可以改进。可能你的数据本身采样的间隔比较大,这样可以增大采样频率,也就是本身的数据间隔小点,当然计算结果更精确了。cumtrapz的原理就是梯形法求积分,相对比较粗糙,如果数据频率比较低,先对数据进行插值拟合的话应该会取得更好的结果。
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.