1

嗨,我一直在努力尝试通过使用等式 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?

4

2 回答 2

2

terms用初始化1并开始你的 for 循环2,你实际上从 开始i=1,但总和必须从 开始i=01/0!1你失踪了。

于 2020-04-12T14:37:48.810 回答
2

正如@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-');
于 2020-04-12T14:53:38.833 回答