![]() |
级数求和的问题!
帮忙看一下这段代码,为什么不能实现?
式中: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 |
回复: 级数求和的问题!
你的s3是做什么用,里面也有n的,是对n求和还是什么?
|
回复: 级数求和的问题!
s3也是取F1的实部,其实F1就是一个实数
|
回复: 级数求和的问题!
S3 只是在取不同的t时,s3被(symsum(s1,n,1,5000)-symsum(s2,n,1,5000)-0.5*s3)减一次,
|
回复: 级数求和的问题!
lz 能否把你在运行该段程序时显示的matlab的整句错误提示贴上来 大家一起讨论一下
|
回复: 级数求和的问题!
s3中有n,而你没对n作操作,所以没法得到结果
|
回复: 级数求和的问题!
我写错了,不好意思,F1中的那个s是a。我写错了,要是a
的化,就可以得到把 |
回复: 级数求和的问题!
试试这样:
syms n T = 20; m = 500; k = 100000; u = 0.01; L = 5000; a = 0.5; g = 9.8; s = a + 2*n*pi*i/T; w=0; for t=1:0.1:10 w=w+1; 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*a*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); f1=symsum(s1,n,1,5000);%%5000的话数值太大,很耗时间的,机子需要时间的 f2=symsum(s2,n,1,5000); D(w)=2*exp(a*t)*(f1-f2-0.5*s3); end t=1:0.1:10; plot(t,double(D)) |
回复: 级数求和的问题!
谢谢楼主的答复,我运行可一下,的确很慢,还有就是在end后面的t=1:0.1:10;是不是不需要了把,前面已经有个循环了
|
所有时间均为北京时间。现在的时间是 03:17。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.