Calculating Summation in MATLAB

  • Thread starter Thread starter sara_87
  • Start date Start date
  • Tags Tags
    Matlab Summation
Click For Summary
To calculate the summation \(\sum^{n-1}_{i=1}{2i+n}\) in MATLAB, the user attempts to use the `symsum` function but encounters an error due to input type issues. The suggested solution involves defining `i` and `n` as symbolic variables using the `sym` command, ensuring they are treated as rational numbers. There are concerns about the inner loop when `n=1`, as it may not execute correctly due to the starting value being greater than the ending value. The discussion emphasizes the importance of understanding MATLAB's loop behavior and the proper use of symbolic functions. Overall, the thread provides insights into resolving summation calculations in MATLAB.
sara_87
Messages
748
Reaction score
0

Homework Statement



I want to calculate a sum (where the end value is in the sum), eg:
\sum^{n-1}_{i=1}{2i+n}

Homework Equations



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

The Attempt at a Solution



syms i n
for n=1:5
for i=1:n-1
symsum((2*i+n),i,1,n-1)
end
end

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

i think my code is wrong.
 
Physics news on Phys.org
Here's something to try:

Code:
n = sym('n', r);
for n = 1:5
   for i = 1:n-1
      symsum((2*sym('i', r) + n), i, n-1)
   end
end
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.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
1K
Replies
2
Views
2K
Replies
2
Views
1K
Replies
7
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 19 ·
Replies
19
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K