Problem with complex number multiplication and division

21 次查看(过去 30 天)
Hello, thanks for looking at this, this is potentially a very stupid question.
I'm having a problem with signs for complex conjugates when I multiply complex numbers two ways. In the first way, I have a simple calculation:
Rws(n,m)+j*w(m)*Iws(n)-Cws(n,m)*j/w(m)
to give me a value (in this case, it was 1.366e+09 + 5.937e+09i). My matrices are [9 800] in size, and I wanted to not do this in loops, but instead vectorize the calculation. So, instead, I change it to this:
Rws+j*Iws*w-bsxfun(@rdivide, Cws*j, w);
and I get the same answer with a small twist: the sign on the complex number was switched (1.366e+09 - 5.937e+09i). This change in sign is prevalent in all other members in the matrix, but the calculation was identical. In this, Rws is a 9x800 matrix, Iws is a 9x1 vector, w is a 1x800 vector, and Cws is a 9x800 matrix.
I can bypass this problem by switching the addition with the subtraction in the second equation, but I wanted to know if there was a reason I was getting this mismatched sign. Any ideas?
Thanks for your help, I think I'm just missing something simple here.
EDIT: Included some matlab files for clarification, use run_it to run the program, check for the variables _forloop and _vectorized for reporting.
  3 个评论
John D'Errico
John D'Errico 2015-10-12
My guess is you transposed something along the way. Since you have not actually shown us an explicit example, so we cannot know.
Brian
Brian 2015-10-13
First off, thanks to both for answering. I'll go into a little more of my problem. I can attach the m files I was working on modifying, if that will help you get an idea.
I took a look through it again, and the only thing I can think of is its a multiplication problem when I string along my vectorization.
I included the original MATLAB files: you can run the program with run_it, and the variables to look for are compliance_forloop, compliance_vectorized, inertiance_forloop, inertiance_vectorized. Zws is just a sum of resistance with those two components.
I can bypass this problem by switching addition with subtraction, but I'd rather try to understand the problem.
Thanks!

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by