aini2009 发表于 2009-5-11 22:13

关于数值积分的疑惑(附实验数据)

如题y=
      y为关于x的函数,具体表达式未知
x=
      x为等间隔采样ds=9.375

针对上述数值积分 我采用 z=trapz(x,y)=   21.1613      

    我的疑惑是按照积分的原理,积分可以转化为小矩形面积之和,如果等间距采样,sum(y)=4.4584是不是就等于我要求的积分?为什么用两条命令求出来的值相差这么大?

附:如果只有一个向量x,trapz(x)的积分原理是什么?

ChaChing 发表于 2009-5-12 08:57

trapz是使用梯形法则求面积的! 所以并非等於sum(y)也非等於sum(y)*ds!
应该是ds*(sum(y)-(y(1)+y(end))/2)=21.1612才是! 理论上就等於trapz(x,y)=21.1623! 小数第3位产生误差的原因是, LZ的x并非完全等间隔造成!
若只有一个输入, 即假设trapz的x等间隔为1!

friendchj 发表于 2009-5-12 12:03

trapz(x)应该相当于trapz(1:length(x),x),仔细看看help。
例:
>> x=2:5;
>> trapz(x)

ans =

   10.5000

>> trapz(1:length(x),x)

ans =

   10.5000

aini2009 发表于 2009-5-12 16:29

谢谢楼上的两位
   我的理解是:用sum(y)*ds其实就是用小矩形法求和,精确度差,认为在ds内离散值为恒定的,如果将x等距细分至无限小那么就是求积分了,而梯形法是划分为小梯形求面积,一般来讲在有限等间距划分中要比矩形法精确度高``
   不知道对不对··
页: [1]
查看完整版本: 关于数值积分的疑惑(附实验数据)