努力收敛到欧拉数
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-');
你好,我一直在努力通过使用方程式 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 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-');