siyanger 发表于 2006-7-27 06:25

符号积分怎么进行循环啊?

我想实现一个符号积分的循环。将0-t分成n个区间,步长为dt。而

K(i)=int(S*G(i),t,(i-1)*dt,i*dt)   %i=1,2,3...n

即在每个时间段中分别积分(0-dt , dt-2dt ,2dt-3dt ,...(n-1)dt-ndt),因为被积函数中有一项G(i)的值与具体的每个积分区间的位置有关。G(i)为单个的数,S为矩阵。
当S不是矩阵时,我这样做可以,但是矩阵时就不行了,提示出错。

syms t
ts=0:0.01:2;
n=length(ts);         %整个区间中的点数
S=sin(t)+1;
for i=1:n
    G(i)=i;
    KK4(i)=int(G(i)*S,t,(i-1)*0.01,i*0.01);
end
如果S是矩阵时,怎么才能实现循环呢?谢谢指点。

[ 本帖最后由 cdwxg 于 2006-7-27 20:22 编辑 ]

雨路的梦 发表于 2006-8-1 15:07

注意*与.*的用法?

siyanger 发表于 2006-8-3 06:56

是啊,我注意了,出现同样的提示。
现在我用最笨的方法做出来了,就是一个点一个点地算,好在点不多。只有几十个。那成百上万个的话,怎么办?

雨路的梦 发表于 2006-8-3 09:14

KK4(i)=int(G(i)*S,t,(i-1)*0.01,i*0.01);
如果S为矩阵的话,kk4(i)也要是矩阵,但是KK4(i)只是一个数值,所以错误.

siyanger 发表于 2006-8-3 17:24

是你说的这样的问题。那要不要先给KK4赋值,成一个矩阵的形式,再回去试试。

feifeifool 发表于 2006-8-5 12:33

回复 #4 雨路的梦 的帖子

syms t
ts=0:0.01:2;
n=length(ts);         %整个区间中的点数
S=sin(t)+1;
KK4=[];
for i=1:n
    G(i)=i;
    KK4=;
end
这样子形成的KK4的每一行就是你要的积分结果。

buaalqq 发表于 2006-8-6 21:26

请教fiefeifool,他这个s试举真时用3维矩阵不行吗,比如KK4(:,:,i)=int(G(i)*S,t,(i-1)*0.01,i*0.01);
我在家呆着,电脑上没有matlab,自己实践不了。

[ 本帖最后由 buaalqq 于 2006-8-6 21:31 编辑 ]

feifeifool 发表于 2006-8-7 12:31

回复 #6 feifeifool 的帖子

没有那个必要啊,不是么!

wuming2006 发表于 2006-8-7 17:45

看不太懂!!
页: [1]
查看完整版本: 符号积分怎么进行循环啊?