MATLAB R2012a より REWRITE 関数が導入されました。
syms x y real
z = x + i*y;
a = abs(z);
rewrite(a,'sqrt')
それ以前のリリースに関しましては以下の回避策をご覧ください。
Symbolic Math Toolbox の ABS で実数部と虚数部を分けることはできません。回避策として、MuPAD の RECTFORM を使用することができます。
syms x y real;
z = x + i*y;
feval(symengine, 'rectform', abs(z))
MuPAD は変数が実数であることを制限しない限り、複素数として扱います。そのため、キーワード REAL を使用してください。
別の回避策としましては、SIMPLIFY を使用する方法です。例のコードは以下のとおりです。
syms x y real
z = x + i*y;
abs(z)
simplify(abs(z))