シンボリック変数に ABS 関数を使用しても実数部と虚数部を分けることができないのはなぜですか?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
以下のようなコードを実行しています。
syms x y real
syms z complex
z=x+i*y;
abs(z);
この結果は (x^2 + y^2)^(1/2) となるはずなのですが、abs(x + y*i) となります。
Respuesta aceptada
MathWorks Support Team
el 1 de Mzo. de 2013
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))
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre 特別な値 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!