Partial Sums Using For Loop

Hey all,
I'm trying to write a general form to compute the partial sum of e^x. So far I've gotten a function that spits out the value of the nth term, but not the sum of that term and all the terms before it. (Ex, if M is 2, the computer gives me 0.5 as the output, but it should be 1+1+0.5 = 2.5 for terms n=0, n=1, and n=2.).
The problem definitely has to do with the summation line-- how do I fix that? Thanks!
function y = Pset0_P5_fxn(x,M)
x = 1; M = 2;
for n = 0:M
a = ((x.^n)./(factorial(n)))
y = sum(a)
end
end
end
EDIT: The function seems to work fine, but won't plot-- for all x values, the y value is the same (whatever the output is on the last iteration). How can I store the output at each iteration in a vector?

 Accepted Answer

James Tursa
James Tursa on 5 Feb 2015
Edited: James Tursa on 5 Feb 2015
You replace the "a" variable with each iteration, so only the last iteration is present when you do "sum(a)". So either make "a" a vector (if you want to save the intermediate terms), or just sum as you go. E.g.,
Make "a" a vector:
function y = Pset0_P5_fxn(x,M)
x = 1; M = 2; % test values
for n = 0:M
a(n+1) = ((x.^n)./(factorial(n))); % Note the added (n+1) subscript
end
y = sum(a);
end
Sum as you go:
function y = Pset0_P5_fxn(x,M)
x = 1; M = 2; % test values
y = 0; % Initialize y
for n = 0:M
a = ((x.^n)./(factorial(n)));
y = y + a;
end
end

1 Comment

Ah-ha, thank you! I figured there was something up since I wasn't getting a vector out in the workspace.

Sign in to comment.

More Answers (0)

Categories

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

Asked:

on 5 Feb 2015

Edited:

on 6 Feb 2015

Community Treasure Hunt

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

Start Hunting!