simplify symbolic expression with complex, square, sqrt. & Assume commutation in Matlab

25 ビュー (過去 30 日間)
Hi team
I find some symbolic expression can't be simplified by the simplified by matlab function.
Like this, the long symbolic expression (A ^2)^{1/2} is actually A squared then sqrt. When sqrt operates on the outside, it should return A.
But it didn't simplify this part.
Is it because of A*B \=B*A? Should we assume commutation between symbols?
How could we assume the commutation? Any example would help a lot! Thanks in advance.
Screen Shot 2019-05-13 at 10.47.35 PM.png

採用された回答

Walter Roberson
Walter Roberson 2019 年 5 月 14 日
(A ^2)^{1/2} Should not return A.
For real values it could return abs(A)
For complex values, A^2 might be a different branch. For example -2i squared is -4 and square root of that is 2i.
  3 件のコメント
Walter Roberson
Walter Roberson 2019 年 5 月 14 日
syms Areal real
syms Apositive positive
>> simplify(sqrt(Areal^2))
ans =
abs(Areal)
>> simplify(sqrt(Apositive^2))
ans =
Apositive
>> sqrt((-1-i)^2)
ans =
1 + 1i
>> syms Areal Aimag positive
>> simplify(sqrt((Areal+1i*Aimag)^2))
ans =
Areal + Aimag*1i
simplify() does what it can taking into account assumptions. If you had an assumption that A was positive then it would have resolved the sqrt.
Lingling Fan
Lingling Fan 2019 年 5 月 14 日
Thank you for your answer.
So what would be the symbolic command for commutator of multiplication? Thanks

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

その他の回答 (0 件)

カテゴリ

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