2012-03-07 6 views
5

と複素数の絶対値を計算しないのですか?Mathematicaは、私が何をしないのです</p> <pre><code>Abs[q + I w] </code></pre> <p>なく</p> <pre><code>Sqrt[q^2 + w^2] </code></pre> <p>にコード<code>FullSimplify[Abs[q + I*w], Element[{q, w}, Reals]]</code>結果を使用して実係数

P.S. Assuming[{q \[Element] Reals, w \[Element] Reals}, Abs[q + I*w]]も機能しません。 注:Simplify[Abs[w]^2, Element[{q, w}, Reals]]およびSimplify[Abs[I*q]^2, Element[{q, w}, Reals]]の作業。

+0

私はMathematicaのマシンにいませんので、何もテストできませんが、私はあなたに質問があります。どのような意味でSqrt [q^2 + w^2]はAbs [q + Iw]より簡単ですか? FullSimplifyがこの「簡素化」を実現すると期待しているのは分かりやすいでしょうか?また、もう少し考えてみると、あなたの質問のタイトルはあなたの質問とは逆です。 –

+0

'Sqrt'では' Series'コマンドを実行できますが、 'Abs'では実行できません。 – shadesofdarkred

+0

'ComplexExpand'を試すことができます。たとえば、 'ComplexExpand [Abs [q + I w]]'は 'Sqrt [q^2 + w^2]' – Heike

答えて

5

問題は、あなたが「シンプル」であると仮定し、MMAがシンプルであると想定していることは、2つの異なることです。 ComplexityFunctionを見ると、MMAは主に「LeafCount」を参照していることを示しています。 LeafCountを適用することはできます:

In[3]:= Abs[q + I w] // LeafCount 
Out[3]= 8 

In[4]:= Sqrt[q^2 + w^2] // LeafCount  
Out[4]= 11 

だから、MMAを改善することをAbsフォームを検討します。 (TreeFormまたはFullFormを使用して視覚的にシンプルさを探ることができます)。私たちがする必要があるのは、MMAにMMAをより高価なものとして扱うように伝えることです。これを行うために、我々はComplexityFunctionと書き込みから例を取る:要求されたよう

In[7]:= f[e_] := 100 Count[e, _Abs, {0, Infinity}] + LeafCount[e] 
FullSimplify[Abs[q + I w], Element[{q, w}, Reals], 
ComplexityFunction -> f] 

Out[8]= Sqrt[q^2 + w^2] 

。基本的には、f[e]を介してMMAにフォームAbsのすべての部分の数を100枚とカウントするように指示しています。

EDIT:ブレットで述べたように、あなたもそれをより一般的にする、と探しに原則として_Complexを使用することができます。

In[20]:= f[e_] := 100 Count[e, _Complex, {0, Infinity}] + LeafCount[e] 
FullSimplify[Abs[q + I w], Element[{q, w}, Reals], 
ComplexityFunction -> f] 

Out[21]= Sqrt[q^2 + w^2] 
+0

を返します。また、すべての複素数に対してより一般的で有益です。 – tkott

4

私はすべての変数をシステムに通知ComplexExpandを、使用することをお勧め本当です。

In[28]:= Abs[q + I*w] // ComplexExpand 

Out[28]= Sqrt[q^2 + w^2] 
-1

これらのコメントは役に立ちません。 Abs[5+i20]は変更されていないので、Mathematicaは複素数の評価に失敗している。 iは正しくコーディングされています。 「何が単純かどうか」についての抽象的な観察を行うことは、無関係で間違っている。結果として浮動小数点数があり、代数はありません。 NおよびImportFormも機能しません。

+0

小文字の「i」は未定義シンボルです。 「私」を入れて「N」を使うと、あなたはあなたが望むものを得るでしょう。この質問とは無関係です。 – agentp

関連する問題