嗨,我一直在努力通过使用方程1/N来绘制'e'的收敛性!具有从0到9的限制。
clc,clear
terms=[1];
x=10;
for i=2:x
terms(i,1)=terms(i-1,1) + 1/factorial(i);
end
disp(terms)
xplotrange = 0:9;
plot(xplotrange,terms,'b-')
使用代码,我打算在"x"轴上绘制项的数量,在"y"轴上画出级数的结果。但我很困惑,为什么for循环中输出的数字数组收敛于1.718而不是2.718?
正如@Daniel所说,通过泰勒展开的欧拉数应该从x=0
开始。因此,您可以将代码调整为低于的代码
terms=[1];
x=10;
for i=2:x
terms(i,1)=terms(i-1,1) + 1/factorial(i-1);
end
disp(terms)
xplotrange = 0:9;
plot(xplotrange,terms,'b-')
或者使用cumsum
的方法,例如
terms=[1];
x=10;
terms = cumsum(1./factorial(0:x));
disp(terms)
xplotrange = 0:x;
plot(xplotrange,terms,'b-');
用1
初始化terms
并在2
开始for循环,实际上是从i=1
开始的,但总和必须从i=0
开始。1/0!
就是您丢失的1
。