Problem with complex number multiplication and division

조회 수: 36 (최근 30일)
Brian
Brian 2015년 10월 12일
편집: Brian 2015년 10월 13일
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에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by