Simplify symbolic division abs(Z)/Z
1 次查看(过去 30 天)
显示 更早的评论
In a symbolic expression with syms Z complex, Matlab does not simplify simplify(abs(Z)^2/Z) to conj(Z) but it simplifies simplify(abs(Z)^2/conj(Z)) to Z. Is it possible to make sure that simplify(abs(Z)^2/Z) yields conj(Z)? I'm working with R2023b. Thanks!
0 个评论
回答(2 个)
Torsten
2023-11-2
编辑:Torsten
2023-11-2
Use z*z' instead of abs(z)^2:
syms z
u = z*z'/z
Walter Roberson
2023-11-3
syms z
syms zr zi real
u = abs(z)^2/z
us = simplify(subs(u, z, zr + 1i*zi))
After which you would need to substitute conj(z) for zr-zi*1i
However it is probably easiest to do something like
syms z
u = abs(z)^2/z + 5*z^2 - 3*z + 2
subs(u, abs(z)^2/z, conj(z))
If you have something more complex, where you have the general pattern abs(EXPRESSION)^2/EXPRESSION then you could proceed by using mapSymType ... but it does get complicated if you have terms such as (x*abs(x + y)^2)/(y*(x + y)) then it can be complicated to properly detect a match.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Algebra 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!