Problem with the product of complex numbers

5 ビュー (過去 30 日間)
clement
clement 2013 年 5 月 24 日
Hello,
I calculated the equivalent impedance of an RLC circuit, and I would like this one to be completely resistive (complex part equals to 0). So I declared my variables as 'syms' and I used the function 'solve' to obtain the equivalent impedance litterally like:
% syms R X Y Z
% Zeq=solve('(R+i*X)*(-i*Y)/(R+i*X-i*Y)=Z',Z)
The problem is that Matlab gives me a solution like this:
%Zeq =
% -(Y*(R + X*i)*i)/(R + X*i - Y*i)
But I would like something like: Zeq = A + i*B.
Could anyone help?
Thanks

採用された回答

Jonathan Epperl
Jonathan Epperl 2013 年 5 月 24 日
Probably simplify(Zeq) will do that.
  2 件のコメント
clement
clement 2013 年 5 月 24 日
Thanks it's working! But now I've got another problem... When I multiply tne numerator of my fraction by the complex conjugate of the denominator, Matlab gives me this:
%sol = -Y*(R + X*i)*(X - Y + R*i)
instead of A + i*B. And this time 'simplify', or 'factor' don't work.
Walter Roberson
Walter Roberson 2013 年 5 月 24 日
expandsol = expand(sol);
A = real(expandsol);
B = imag(expandsol);

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2013 年 5 月 24 日
You cannot do that unless you add the assumption that the variables are real-valued
syms R X Y Z real
Zeq = simplify(solve((R+i*X)*(-i*Y)/(R+i*X-i*Y)-(Z),Z));
A = simplify(real(Zeq));
B = simplify(imag(Zeq));
A + B*i
  8 件のコメント
Walter Roberson
Walter Roberson 2013 年 5 月 25 日
Before R2011b, "==" was processed as a logical relationship to be evaluated and the result of the logical evaluation to be passed into solve(). But those versions also did not know how to compare a symbol (with any content) against a number, so the expression would generate an error... unless, of course, A was a number instead of a symbol.
Jonathan Epperl
Jonathan Epperl 2013 年 5 月 25 日
I see, I didn't know that -- so A-50 is the more robust syntax...

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeAssumptions についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by