Need help in coding this summation, please.

1 view (last 30 days)
Hi,
Can anybody help me with coding this summation into matlab, please:
where J is (3x6), A is (6x6) and Phi is (3x3x9).
I've tried with this code:
% for ii=1:hor
for mm=1:ii
G(:,:,ii)=sum(kron(J*A'^(ii-mm),Phi(:,:,mm)),3);
end
end %
but it doesn't seem to work, as I get incorrect results. I think the mistake is in the sum function, but I don't know other way of coding the summation (cumsum function doesn't work either).
I'd really appreciate some help here, as I'm completely stuck.
best,
  3 Comments
Luciano Campos
Luciano Campos on 11 Mar 2016
Hi Ced, Thanks for your comment. I tried what you suggest, but it still won't work. The original formula is correct. If you develop the original summation you get:
I think the problem is that I don't know how to sum up consecutive terms as neither sum nor cumsum function seem to work.
Thanks for your help,
best,
Ced
Ced on 11 Mar 2016
Edited: Ced on 11 Mar 2016
I just found it strange to start G indexing a 1, but Phi indexing at 0.
Yeah, I messed up, sorry. Your original equation looks correct to me, but yes, you sum up too much. With sum, for each mm, you sum up over all of Phi again, which is not what you want.
Assuming you initialize G with zero:
for ii=1:hor
for mm=1:ii
G(:,:,ii) = G(:,:,ii) + kron(J*A'^(ii-mm),Phi(:,:,mm));
end
end

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 12 Mar 2016
Is the x in a circle indicating cross-product or is it indicating exclusive or?
  1 Comment
Ced
Ced on 12 Mar 2016
I believe it stands for the tensor product, hence the kronecker operator.

Sign in to comment.

More Answers (0)

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!