Eulers Number Code and Questions
6 次查看(过去 30 天)
显示 更早的评论
My current code follows, but is in error when I enter "1" as the input. DO you see the problem?:
function [est k ] = approximate_e( delta )
%APPROXIMATE_E Summary of this function goes here
% Detailed explanation goes here
n =1;
est = 0;
while abs(exp(1)-est)>delta
if n ==1
est = 1;
end
if n == 2
est = 2;
end
if n >2
est = est+1/prod(1:(n-1));
end
fprintf "e is %d and n is %d: \n",est,n
k = n;
n = n + 1;
if n >10000
fprinf "n is greater than 10000.\n"
break;
end
end
I'm trying to solve for the problem statement below:
Write a function called approximate_e that uses the following formula to compute e, Euler’s number:
Instead of going to infinity, the function stops at the smallest k for which the approximation differs from exp(1) (i.e., the value returned MATLAB’s built-in function) by no more than the positive scalar, delta, which is the only input argument. The first output of the function is the approximate value of e, while the second is k. (Note: if your program or the grader takes a long time, you may have created an infinite loop and need to hit Ctrl-C on your keyboard.) You are not allowed to use the built-in function factorial.
0 个评论
采纳的回答
DJ V
2016-12-5
1 个评论
Ramon Cajal
2017-1-28
编辑:Ramon Cajal
2017-1-28
I am struggling with this one. I'd appreciate understanding how did you get it right My code looks like:
function [e,k] = approximate_e( delta )
k= 0;
e = 0;
Bailout = 10000;
while abs(exp(1)-e) >delta
e =e+(1+(1/prod(1:k)));
k = k + 1;
if k > Bailout
break;
end
end
更多回答(2 个)
JESUS DAVID ARIZA ROYETH
2016-12-5
You Can use this:
function [est,n ] = approximate_e( delta )
n=-1;
est=0;
while abs(exp(1)-est)>delta
n=n+1;
est=est+1/factorial(n);
end
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Number Theory 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!