What's wrong with my code? (Beginner's question; geometric sum)
1 view (last 30 days)
Show older comments
This is the sum I'm trying to use:
1 + r^2 + r^4 + r^6 + ... + r^n
If n isn't even, I'm supposed to display an error.
Here's my code:
function [sum] = series(r,n)
sum = 1;
if mod(n,2) == 0
for i=2:n
sum = sum + r.^i;
end
else
disp('Error!');
end
end
Keeps returning the wrong value. What's wrong with my code?
0 Comments
Accepted Answer
Roger Stafford
on 13 Nov 2014
Edited: Roger Stafford
on 13 Nov 2014
Replace
for i=2:n
by
for i=2:2:n
Or you could always just write
(1-r^(n+2))/1-r^2)
for even n.
2 Comments
Image Analyst
on 13 Nov 2014
Here is the question Roger answered so people will know after n deletes his question, which he has a bad habit of doing:
This is the sum I'm trying to use:
1 + r^2 + r^4 + r^6 + ... + r^n
If n isn't even, I'm supposed to display an error.
Here's my code:
function [sum] = series(r,n)
sum = 1;
if mod(n,2) == 0
for i=2:n
sum = sum + r.^i;
end
else
disp('Error!');
end
end
Keeps returning the wrong value. What's wrong with my code?
More Answers (1)
Image Analyst
on 13 Nov 2014
Don't use sum as the name of a variable since it's a built-in function. You want
for k = 2 : 2 : n
theSum = theSum + r^k;
0 Comments
See Also
Categories
Find more on Logical 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!