Borrar filtros
Borrar filtros

I need help with a taylor series approximation of e^x

2 visualizaciones (últimos 30 días)
Please help!
I have a portion of a code I am trying to write that isn't co-operating. This function is written to approximate e^x by a taylor series expansions using a set number of terms. Earlier on in the code I successfully evaluated the function at 3 and 5 terms. My third task is to figure out how many terms it takes to get an evaluation within 0.000001 error.
%%Necessary Terms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
errMax = 0.000001;
ex = 1;
nMax = 1000000;
for nInitial=0:nMax
while abs((exp(x)-ex)/exp(x))*100 >= errMax
ex = ex + x.^nInitial/factorial(nInitial);
end
end
fprintf(['The number of terms necessary for the function to be within the allowed error of 0.0001 is ' num2str(nInitial) '.\n']);
fprintf(['The true value of e^3 is ' num2str(exp(3)) '.\n']);
end
Please help!

Respuesta aceptada

Walter Roberson
Walter Roberson el 14 de Jul. de 2018
for nInitial=0:nMax
if abs((exp(x)-ex)/exp(x))*100 < errMax
break;
end
ex = ex + x.^nInitial/factorial(nInitial);
end
  4 comentarios
Thomas MacDowell
Thomas MacDowell el 14 de Jul. de 2018
at the 647th term in the series it turns into 'NaN' which is why it isn't giving me an answer, how can I get the number of terms? I'mm pulling my hair out over this
Walter Roberson
Walter Roberson el 14 de Jul. de 2018
Your calculation is off by 1.0. Initialize ex to 0 instead of 1.

Iniciar sesión para comentar.

Más respuestas (1)

sparsh mehta
sparsh mehta el 19 de Mayo de 2021
or nInitial=0:nMax
if abs((exp(x)-ex)/exp(x))*100 < errMax
break;
end
ex = ex + x.^nInitial/factorial(nInitial);
end

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by