MATLAB如何求(cos(x)/x)*(1-2!/x^2+4!/x^4-.)后,并能求给x赋一个范围的值如1-100的结果,谢谢谢谢了
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 11:20:43
MATLAB如何求(cos(x)/x)*(1-2!/x^2+4!/x^4-.)后,并能求给x赋一个范围的值如1-100的结果,谢谢谢谢了
MATLAB如何求(cos(x)/x)*(1-2!/x^2+4!/x^4-.)后,并能求给x赋一个范围的值如1-100的结果,谢谢
谢谢了
MATLAB如何求(cos(x)/x)*(1-2!/x^2+4!/x^4-.)后,并能求给x赋一个范围的值如1-100的结果,谢谢谢谢了
我只能告诉你:
你的这个题目当x取比较小的值的时候
1-2!/x^2+4!/x^4-.算出的数是非常大的,级数的项数越多越明显
随着x的增大,效果会好一些,但项数多了也不行的,更不用说道inf了
但如果用数值方法做,不用符号,更是到不了inf的
给你2种算法,你自己比较吧,反正很别扭:
符号法:
clear all;clc;
syms k x
s1=symsum((-1)^k*sym('(2*k)!')/x^(2*k),k,0,50);
s2=(cos(x)/x)*s1;
s=subs(s2,{x},{1:100});
------------------------------------------------
数值法:
clear all;clc;
x=1:100;N=length(x);
sum=ones(N,1);
for p=1:N
for k=1:80
a(p,k)=(-1)^k*factorial(2*k)/x(p)^(2*k);
sum(p)=sum(p)+a(p,k);
y(p)=(cos(x(p))/x(p))*sum(p);
end
end
为了方便计算,取n=100,即0!,2!···(2n)!···(200)!
syms n x;
x=1;
while x<=100
s=symsum((cos(x)/x)*(-1)^n*sym('(2*n)!')/x^(2*n),0,100);
S=vpa(s,5)
x=x+1;
end