Writing a funciton for e^x values?

1 view (last 30 days)
Brian Bowne
Brian Bowne on 25 Sep 2019
Answered: David Hill on 25 Sep 2019
I am not sure what is wrong with my code, here is the prompt:
Write a function called e_to_the_x to estimate using its Taylor series:
starting with n =0, add terms until 2 subsequent approximations differ by less than using a while loop. (HINT: use the built-in function factorial()).
I am getting values but when I call e_to_the_x(-1) and e_to_the_x(1) it says I have incorrect values. Here is my code:
function [y1,y2] = e_to_the_x(x)
n=0
y1=(x^n)/factorial(n)
y2=y1+(x^n)/factorial(n)
while abs(y2-y1)>1e-6
y1=y2
y2=y1+(x^n)/factorial(n)
n=n+1
end
end

Accepted Answer

David Hill
David Hill on 25 Sep 2019
function [y1,y2] = e_to_the_x(x)
n=0;
y1=(x^n)/factorial(n);
n=n+1;
y2=y1+(x^n)/factorial(n);
n=n+1;
while abs(y2-y1)>1e-6
y1=y2;
y2=y1+(x^n)/factorial(n);
n=n+1;
end
end
You forgot to advance n.

More Answers (1)

James Tursa
James Tursa on 25 Sep 2019
You use the same n value for the first three terms. You need to increment n each time you add a term, including the first two terms that are outside of the while loop.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!