Basic use of sum command help

6 vues (au cours des 30 derniers jours)
Daniel Millam
Daniel Millam le 30 Mar 2015
Modifié(e) : John D'Errico le 30 Mar 2015
Recall that a geometric sum is a sum of the form a + ar + ar2 + ar3 + . . ..
(a) Write a function file that accepts the values of r, a and n as arguments and uses a for loop to return the sum of the first n terms of the geometric series. Test your function for a = 3, r = 1/2 and n = 10.
S = 0;
a=3;
r=1/2;
for n=0:1:10;
S=S+a*r^n;
end
S
This works, So I'm good here.
(b) Write a function file that accepts the values of r, a and n as arguments and uses the built in command sum to find the sum of the first n terms of the geometric series. Test your function for a = 3, r = 1/2 and n = 10. Hint: Start by defining the vector e=0:n-1 and then evaluate the vector R = r.^e. It should be easy to figure out how to find the sum from there
This is where I am stuck. Keep in mind that I have only been using MATLAB for about a week now. Any help is appreciated, I don't even know where I should start with this. Thank you.

Réponse acceptée

Image Analyst
Image Analyst le 30 Mar 2015
Declare the function
function theSum = yourFunctionName(r, a, n)
In the function get rid of the "for" loop - just have n=0:1:10;
Then use .^ instead of ^. Then a few more little things you can get rid of - hopefully you can figure those out.
That should be more than enough hints for you to complete it.
  1 commentaire
Daniel Millam
Daniel Millam le 30 Mar 2015
I did exactly what you said and ended up with
function [y] = f(r, a, n)
a=3;
r=1/2;
n=0:1:10
y=sum(a*r.^n)
end
AND IT WORKED Thank you very much.

Connectez-vous pour commenter.

Plus de réponses (1)

John D'Errico
John D'Errico le 30 Mar 2015
Modifié(e) : John D'Errico le 30 Mar 2015
Ok, you did a decent job on the loop. Now it is time to learn how NOT to use a loop. :)
What if you create a vector n?
r = 0.5;
a = 3;
n = 10;
e = 0:1:(n-1);
Now, suppose you considered the vector:
a*r.^e
What would the elements of that vector represent?
What would result if you applied sum to that vector? Thus,
S = sum(a*r.^e);
Effectively, we have avoided the explicit for loop, working on vectors of elements instead.
  1 commentaire
Daniel Millam
Daniel Millam le 30 Mar 2015
Very helpful, Thank you.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by