努力收敛到欧拉数

Struggling to get convergence to Euler's number

你好,我一直在努力通过使用方程式 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?

1 初始化 terms 并从 2 开始你的 for 循环,你实际上从 i=1 开始,但总和必须从 [=14= 开始]. 1/0! 是你缺少的1

As stated, Euler's number 通过泰勒展开应该从 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-');