|
楼主 |
发表于 2010-4-21 21:28
|
显示全部楼层
Nsum=2000;N=200;T=20;a=0.25;k=[0:Nsum];sk=a+i*2*pi*k/T;
syms s x t
V=0.2;l=0.5;xk=0.2;o=0.1029;P=60;c=V*(o/P)^(1/2);
m=1/(1-c); n=1/(1+c);
G=(exp(n*(x-xk))-exp(n*x-m*xk)+exp(n*(x+l)-m*(l+xk))-exp(n*(l-xk+x)-m*l))/(2*s*(1-exp((n-m)*l)));
for m=1:Nsum+1
Y(m)=cos(k(m)*t*2*pi/N);
Z(m)=i*sin(k(m)*t*2*pi/N);
w(m)=subs(G,s,sk(m));
end
YY=Y+Z;
w11=0.01*w.*YY;
w1=vpa(w11,6);
tt=T/N;
p=[0:N-1];%j=[0:N-1];
tj=p*tt;
for h=1:N
w2=subs(w1,t,tj(h));
end
w3=eval(sum(w2));
w4=real(w3);
w5=eval(-(1/2)*(subs(G,s,0.25)));
w6=w5+w4;
c=2*exp(a*tj)/T;
W=c.*w6;
W1=eval(subs(W,x,0.1));
plot(tj,W1)
上面这个程序在计算for h=1:N w2=subs(w1,t,tj(h)) end这一步的时候要花很长很长的时间,好像是由于subs这个函数本身计算起来就有些复杂,所以需要的时间很长。我想请问各位大大有没有什么方法提高这个计算速度呀,或者是用其他更有效的方法来计算我的这个函数的值呢?下面附上我要计算的函数式,耐烦各位大大指点一二,谢谢啦!!
[ 本帖最后由 liushuiwuxin 于 2010-4-21 21:46 编辑 ] |
-
-
公式.doc
24 KB, 下载次数: 1
以上程序所要计算的函数式
|