如何对已测得的加速度数据(离散的)进行离散积分,得到速度数据?
问题和下面的积分是一样的:
t=0:0.01:2*pi;
x=sin(t);
如何得到x的积分呢?(结果应该是-cos(t),是一条跟sin(t)相同的曲线!)
用辛普森梯形积分或者求和积分都可以,只要能得到正确的结果就行!
请高手帮忙啊!
需要具体程序~~~~~~~~~~~~~~~~~
囧。。犯糊涂啦,连cos(t)的样子都弄混了,⊙﹏⊙b。。。
多谢matlabguy和greatdju的耐心解答~我估计要把你俩折腾疯了,抱歉哈,小弟愚钝!
非常受益呀,看看能不能都采纳为最佳答案~
数值积分有很多种方法, 如下图所示(来自wikipeida)
前面几位的回答,分别对应了里面一种算法,另外,数值积分得到的是一个值,如果你需要画图的话,那是代数积分。
保存为mytest.m
function mytest
a=0;
b=2*pi;
n=100;
f=@(x)sin(x);
y=intSimpsons(f,a,b,n);
t=linspace(a,b,n);
y=intSimpsons(f,a,b,n)
function I = intSimpsons(f,a,b,n)
h=(b-a)/n; xi=a:h:b;
I= h/3*(f(xi(1))+2*sum(f(xi(3:2:end-2)))+4*sum(f(xi(2:2:end)))+f(xi(end)));