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

2 次查看(过去 30 天)
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!

采纳的回答

Walter Roberson
Walter Roberson 2018-7-14
for nInitial=0:nMax
if abs((exp(x)-ex)/exp(x))*100 < errMax
break;
end
ex = ex + x.^nInitial/factorial(nInitial);
end
  4 个评论
Thomas MacDowell
Thomas MacDowell 2018-7-14
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 2018-7-14
Your calculation is off by 1.0. Initialize ex to 0 instead of 1.

请先登录,再进行评论。

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by