1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Summation in matlab

  1. Oct 30, 2009 #1
    1. The problem statement, all variables and given/known data

    I want to calculate a sum (where the end value is in the sum), eg:

    2. Relevant equations

    I dont want to 'split' the sum, i just want to write this.

    3. The attempt at a solution

    syms i n
    for n=1:5
    for i=1:n-1

    i get the error: ??? Undefined function or method 'symsum' for input arguments of type 'double'.

    i think my code is wrong.
  2. jcsd
  3. Oct 30, 2009 #2


    Staff: Mentor

    Here's something to try:

    Code (Text):

    n = sym('n', r);
    for n = 1:5
       for i = 1:n-1
          symsum((2*sym('i', r) + n), i, n-1)
    No guarantee this will work, since I don't have matlab to test it out on. What I did is patterned after the last example on the reference page in the following link. I have also rewritten your syms command to use the sym command. The r flag specifies that both i and n are rational. Without a flag, they default to complex.
    Here's a link to a reference page for symsum.
    Here's a link to a page for sym.
    From the TOC that appears along with the reference page for sym, the next reference page is for syms.

    I don't think you have run into it, yet, since you're still trying to get the symsum/syms/sym thing sorted out, but I believe your inside loop will cause problems for you. When n = 1, the inner loop looks like for i=1, 0. The documentation for for doesn't go into as much detail as I would like, so isn't clear what happens when the starting value is larger than the ending value, and you haven't specified a negative increment. Possibly the loop skips that iteration. Don't know.

    Anyway, some things to think about and try out.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook