# Double Sum Using Matlab

Tags: double, matlab
 P: 20 Hi, I have this double summation expression to solve as part of matlab code I am writing. I have searched matlab no syntax that can do it. Please assist. Q=ƩƩxixjaij i.e double sum of xi xj aij, i=1:n, j=1:n Please assist me Thanks adeeyo
 Sci Advisor P: 6,068 What do mean by solve? What you have written is simply an expression. To solve something you need to describe what is known and what you are trying to find.
 P: 20 Thanks Mathman, What I mean is this. I wrote a matlab code for that expression and manual as seen below but got different answer. I don't know what is wrong either with matlab code or manual expression or both. Q=∑∑xixjaij the first sigma has i=1:n, the second sigma j=1:n for i=1:n for j=1:n Q=sum(sum(x(i).*x(j).*(a(i, j)))); end end Mannual Q=x(1)*x(1)*(a(1)*a(1))+x(1)*x(2)*(a(1)*a(2))+x(1)*x(3)*a(1)*a(3)+x(2)* x(1)*a(2)*a(1))+x(2)*x(2)*a(2)*a(2))+x(2)*x(3)*a(2)*a(3)*+x(3)*x(1)*a(3 )*a(1))+x(3)* x(2)*a(3)*a(2))+x(3)*x(3)*a(3)*a(3)); Thanks
 Sci Advisor P: 6,068 Double Sum Using Matlab From what I recall about coding: You need to set Q = 0.0 before starting. Then the operating instruction should be Q=Q+x(i)*x(j)*a(i, j). To save a little time you could multiply by x(i) outside the j loop.
 P: 35 if a is nxn and x is nx1 try Q = sum(sum(a.*repmat(x,[1 n]).*repmat(x',[n 1])))
Emeritus
PF Gold
P: 4,500
 Q=sum(sum(x(i).*x(j).*(a(i, j))));
This line is what is wrong with your code. Let's consider what happens on each loop:
i=1, j=1:
sum(sum(x(1)*x(1)*a(1,1))) = x(1)*x(1)*a(1,1) so Q=x(1)*x(1)*a(1,1)

i=1,j=2:
sum(sum(x(1)*x(2)*a(1,2))) = x(1)*x(2)*a(1,2) so Q=x(1)*x(2)*a(1,2) NOT x(1)*x(1)*a(1,1)+x(1)*x(2)*a(1,2)

If you replace the line with
Q=Q+x(i)*x(j)*a(i,j)
you should get the right answer

 Related Discussions Math & Science Software 2 Engineering, Comp Sci, & Technology Homework 6 Engineering, Comp Sci, & Technology Homework 1 General Math 3 Math & Science Software 2