matlab离散数据积分怎么做?

问题描述:

matlab离散数据积分怎么做?
如何对已测得的加速度数据(离散的)进行离散积分,
问题和下面的积分是一样的:
t=0:0.01:2*pi;
x=sin(t);
如何得到x的积分呢?(结果应该是-cos(t),是一条跟sin(t)相同的曲线!)
用辛普森梯形积分或者求和积分都可以,只要能得到正确的结果就行!
囧.犯糊涂啦,连cos(t)的样子都弄混了,⊙﹏⊙b.
多谢matlabguy和greatdju的耐心解答~我估计要把你俩折腾疯了,抱歉哈,小弟愚钝!
非常受益呀,看看能不能都采纳为最佳答案~
1个回答 分类:综合 2014-09-27

问题解答:

我来补答
将下面内容保存为Simpson.m
function y= Simpson(f,a,b,M)
% f被积函数;a积分下限;b积分上限;M子区间个数(将x分为多少个区间)
if M==0
y=0;
else
h=(b-a)/(2*M);
s1=0;
s2=0;
for i=1:M
x=a+(2*i-1)*h;
s1=s1+feval(f,x);
end
for j=1:(M-1)
x=a+2*j*h;
s2=s2+feval(f,x);
end
y=h/3*(feval(f,a)+2*s2+4*s1+feval(f,b));
end
在命令行输入
f=@(t)sin(t);
I=[];
M=floor(2*pi/0.01);
for i=0:M
y=Simpson(f,0,2*pi/M*i,i);
I=[I,y];
end
t=0:0.01:2*pi;
plot(t,I);
我服了你了,sint和-cost曲线重合?sint积分得到的是-cost+C,常数C由初始条件决定,一般我们都认为从0开始积分,此时C=1.
数据积分的话用greatdju的方法就行了,他那个结果对,你自己琢磨吧.
 
 
展开全文阅读
剩余:2000
上一页:单调性最小值
下一页:溶质质量