hht123 发表于 2015-4-27 10:34

如何实现对一数据序列积分

比如
t=0:0.001:1;
x=t.^2;
要对t的平方积分,得到y,y应该是三分之一乘以t的三次方这样一个数据序列。
我要积分的数据序列是没有函数表达式的,只有x和t的对应关系,所以用int命令不可行,求大神指点。

hht123 发表于 2015-4-27 10:53

还有一个微分的问题,x对应于t的一个数据序列,如果用diff函数的话,微分一次会少一个数据点,怎么样才能让数据点个数不变呢

chybeyond 发表于 2015-4-27 14:51

看看cumtrapz的用法

hht123 发表于 2015-4-27 15:38

chybeyond 发表于 2015-4-27 14:51
看看cumtrapz的用法

谢谢,就是它,是我想要的结果

hht123 发表于 2015-4-27 15:40

chybeyond 发表于 2015-4-27 14:51
看看cumtrapz的用法

还有那个微分的问题你知道怎么解决吗?

chybeyond 发表于 2015-4-27 16:00

hht123 发表于 2015-4-27 15:40
还有那个微分的问题你知道怎么解决吗?

diff出来就是少一个数

chybeyond 发表于 2015-4-27 16:03

chybeyond 发表于 2015-4-27 16:00
diff出来就是少一个数

你可以在起始位置或终点补零

hht123 发表于 2015-4-27 16:24

chybeyond 发表于 2015-4-27 16:03
你可以在起始位置或终点补零

没有别的办法了吗?就像t的平方微分出来是2t,数据序列长度不要变,补零的话会影响精度的

chybeyond 发表于 2015-4-27 16:32

hht123 发表于 2015-4-27 16:24
没有别的办法了吗?就像t的平方微分出来是2t,数据序列长度不要变,补零的话会影响精度的

你可以用syms t;
diff(t.^2);
%然后把t的值带入

hht123 发表于 2015-4-27 16:59

chybeyond 发表于 2015-4-27 16:32
你可以用

不是的,跟积分一样,x和t之间只有对应关系,没有表达式呢

chybeyond 发表于 2015-4-27 17:17

hht123 发表于 2015-4-27 16:59
不是的,跟积分一样,x和t之间只有对应关系,没有表达式呢

这个不是跟积分一样吗syms t;
x=t.^2;
y=diff(x);
y=subs(y,0:0.01:1)

hht123 发表于 2015-4-27 19:28

哦,明白了,得用符号变量做啊,最后再转为double型就好了,谢谢你{:{03}:}

hht123 发表于 2015-4-27 20:52

chybeyond 发表于 2015-4-27 17:17
这个不是跟积分一样吗

T=1;
fs=10;
t=0:1/fs:T;
Sig=sin(2*pi*t);
diff1=diff(Sig)./diff(t);
Diff1=diff1
syms diff1
y=subs(diff1,t);
y=double(y)
truediff=2*pi*cos(2*pi*t)

结果如下:
Diff1 =
    5.8779    3.6327         0   -3.6327   -5.8779   -5.8779   -3.6327   -0.0000    3.6327    5.8779
y =
Columns 1 through 10
         0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000
Column 11
    1.0000
truediff =
Columns 1 through 10
    6.2832    5.0832    1.9416   -1.9416   -5.0832   -6.2832   -5.0832   -1.9416    1.9416    5.0832
Column 11
    6.2832

y显然跟它们差很多啊

hht123 发表于 2015-4-27 21:17

del2函数可以,程序如下:
T=1;
fs=100;
t=0:1/fs:T;
Sig=sin(2*pi*t);
sig=-4*pi*pi*sin(2*pi*t);
deri=4*del2(Sig,t);
plot(t,Sig,'r',t,sig,'b',t,deri,'k')

但是为什么只有二次积分可以呢,一次积分没有相关的函数
页: [1]
查看完整版本: 如何实现对一数据序列积分