xjtu713
2009-07-15, 10:14
帮忙看一下这段代码,为什么不能实现?
式中:n就是一个离散点数,给定具体n值后,就会得出n个s 和F的函数值,s1是对于给定的n值所得的实部,s2是所得到的虚部,在这一项D=2*exp(a*t)*(symsum(s1,n,1,5000)-symsum(s2,n,1,5000)-0.5*s3);中,我就是想实现当取n从1取到5000,把s1计算出来的实部全部相加,s2把虚部相加,由于我也是初学,这样简单的问题也没搞定,希望大家给我看看那里有错误?
syms n F s1 s2 s3 a T k L u m g F1 D t
for t=1:0.1:10
s = a + 2*n*pi*i/T;
m = 500;
k = 100000;
u = 0.01;
T = 20;
L = 5000;
a = 0.5;
g = 9.8;
F = -k*m*s*u*(m*s*s+2*k)/((m*s*s+k)*(m*s*s+2*k)-k*k)+2*m*g/s;
F1 = -k*m*s*u*(m*a*a+2*k)/((m*a*a+k)*(m*a*a+2*k)-k*k)+2*m*g/a;
s1=real(F*cos(2*n*pi*t/T));
s2=imag(F*sin(2*n*pi*t/T));
s3=real(F1);
D=2*exp(a*t)*(symsum(s1,n,1,5000)-symsum(s2,n,1,5000)-0.5*s3);
end
plot(t,D,'-')
hold on
式中:n就是一个离散点数,给定具体n值后,就会得出n个s 和F的函数值,s1是对于给定的n值所得的实部,s2是所得到的虚部,在这一项D=2*exp(a*t)*(symsum(s1,n,1,5000)-symsum(s2,n,1,5000)-0.5*s3);中,我就是想实现当取n从1取到5000,把s1计算出来的实部全部相加,s2把虚部相加,由于我也是初学,这样简单的问题也没搞定,希望大家给我看看那里有错误?
syms n F s1 s2 s3 a T k L u m g F1 D t
for t=1:0.1:10
s = a + 2*n*pi*i/T;
m = 500;
k = 100000;
u = 0.01;
T = 20;
L = 5000;
a = 0.5;
g = 9.8;
F = -k*m*s*u*(m*s*s+2*k)/((m*s*s+k)*(m*s*s+2*k)-k*k)+2*m*g/s;
F1 = -k*m*s*u*(m*a*a+2*k)/((m*a*a+k)*(m*a*a+2*k)-k*k)+2*m*g/a;
s1=real(F*cos(2*n*pi*t/T));
s2=imag(F*sin(2*n*pi*t/T));
s3=real(F1);
D=2*exp(a*t)*(symsum(s1,n,1,5000)-symsum(s2,n,1,5000)-0.5*s3);
end
plot(t,D,'-')
hold on