#include<stdio.h>int main(){int i double x=0,t=1,y=1 scanf("%lf",&x) for(i=1t>=0.0001i++) 咐樱{t*=x/i if(i%2)y+=t 肆岁 else 衡雹丛y-=t } printf("%.4lf",y) return 0}
matlab无穷级数的计算,可以用 S1=symsum(w1,n,1,inf) 来计算。但实际 *** 作是可以灵活应用,可以世码宴模旦把无穷大搜银inf近似看作某一数值,例如1000或10000。
首先,我们来验证一下,当a=pi/18,n1=100
a=pi/18n1=100
w1=cos(2*n*pi/6)*cos(2*n*a)/((4*n^2-1)^2);w2=cos(2*n*pi/6)/((4*n^2-1)^2);
S1=symsum(w1,n,1,100)S2=symsum(w2,n,1,n1)
w=double(S1/S2)
运行结果,w=0.9535
n1=1000时,运行结果,w=0.9535
从上面可以,看到对于本例,完全可以视1000为 inf
所以代码,可以改写为
clcclear
syms n
i=0
for a=0:pi/18:2*pi
i=i+1
w1=cos(2*n*pi/6)*cos(2*n*a)/((4*n^2-1)^2)
w2=cos(2*n*pi/6)/((4*n^2-1)^2)
S1=symsum(w1,n,1,1000)
S2=symsum(w2,n,1,1000)
S(i)=double(S1/S2)
end
a=0:pi/18:2*pi
plot(a,S) %这里不要用S(i)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)