Can anyone find the error in my code?
1 view (last 30 days)
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.
function [e, k] = approximate_e( delta )
e = 0;
while ((exp(1))-e) > delta
k = k + 1;
e = e + 1/prod(1:k);
if k > 1000
note: this code fails to produce the correct output for delta = 1
YOU CAN'T USE THE FACTORIAL FUNCTION
Srishti Saha on 1 May 2018
Hey, this piece of code works just fine:
%function to compute euler's number
function [approx_e, k] = approximate_e (delta)
% Set the variables for the while loop.
k = 0;
fact = 1;
while abs(approx_e - exp(1)) > delta
fact = fact * (1/k);
approx_e = approx_e + fact;