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]]
の作業。
答えて
問題は、あなたが「シンプル」であると仮定し、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]
を返します。また、すべての複素数に対してより一般的で有益です。 – tkott
私はすべての変数をシステムに通知ComplexExpand
を、使用することをお勧め本当です。
In[28]:= Abs[q + I*w] // ComplexExpand
Out[28]= Sqrt[q^2 + w^2]
これらのコメントは役に立ちません。 Abs[5+i20]
は変更されていないので、Mathematicaは複素数の評価に失敗している。 i
は正しくコーディングされています。 「何が単純かどうか」についての抽象的な観察を行うことは、無関係で間違っている。結果として浮動小数点数があり、代数はありません。 N
およびImportForm
も機能しません。
小文字の「i」は未定義シンボルです。 「私」を入れて「N」を使うと、あなたはあなたが望むものを得るでしょう。この質問とは無関係です。 – agentp
- 1. ルビー:</p> <pre><code>madlib.rb:4: warning: regular expression has ']' without escape: /\[(\w*:*\w)]/ </code></pre> <p>このコードから:あなたは
- 2. Swift <<, ><, <=< and > = <
- 3. Gitは<<<<<<< HEADをファイルに追加し続けます
- 4. Heredoc <<<または<<?
- 5. <<<
- 6. このテストは同音異義語ですか?</p> <pre><code>if((x>0 || (x<=0))) </code></pre> <p>と<code>if(true)</code>の違いは何であるいくつかの</p> <pre><code>double x; </code></pre> <p>考える
- 7. $( '#table> tr')セレクタが一致しないのはなぜですか? jQueryを使って</p> <pre><code><table id='table'> <tr> <td>..</td> </tr> </table> </code></pre> <p>JSコード:
- 8. 結果cout << "Hello" + 1 << endl; (C++)
- 9. Tortoise svn <<<<をファイルに追加しています!
- 10. 「<%:」は何をしますか?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>「<%:」何をん:行う
- 11. これは何ですか:w = 200 + 200 * Math.random()<< 0;
- 12. VIM、マッピング、なぜnmap <Alt><Right><C-w><Right>が機能しますか?
- 13. 正規表現:</p>ある <pre><code>\w but without _ </code></pre> <p>は、私が求めている</p> <p>「すべての文字がwは\に含ま_除いて、」:アンダースコア
- 14. std :: operator <<とstd :: ostream :: operator <<
- 15. ドキュメントは<<< OUT
- 16. 代替は「<<<」魚
- 17. 変数が</p> <pre><code>var isUpdated:Bool = false </code></pre> <p>がtrueの場合、私はすぐに</p> <pre><code>func performSegue() { self.performSegueWithIdentifier("toTabSegue", sender: self) } </code></pre> <p>を実行したい
- 18. 私は<code>Emulator Android BlueStack</code></p> <p><code>IISExpress ASP.NET</code>で<code>ASP.NET IISExpress</code>を使用したい
- 19. のWinforms:</p> <ol> <li><code>Enviroment.Exit(0)</code></li> <li><code>Application.Exit()</code></li> <li><code>Form.Close()</code></li> </ol> <p>何:Form.Close
- 20. Ubuntuのリダイレクタ "<<<"?
- 21. ハスケル/フレーゲ<= <や= <<連想
- 22. CSS:私は、次のものがあり、CSSで</p> <pre><code><main> <section> <article></article> <aside></aside> </section> </main> </code></pre> <p>:フレックスボックスは、Firefox
- 23. PHP <<< OUTとOUT;
- 24. MySQLの:私は<strong>MySQLの</strong>テーブルに列<strong><code>my_order</code></strong>と<strong><code>alt_order</code></strong>で<strong><code>example</code></strong>と呼ばれている列
- 25. 私は2つの機能</p> <pre><code>void foo() { std::cout << 1 << std::endl; } void bar() { std::cout << 2 << std::endl; } </code></pre> <p>をお持ちの場合は2個の関数のC++
- 26. PHP式<<< EOB
- 27. </p> <pre><code>.tooltip-inner{} </code></pre> <p>を使用してtootltipsブートストラップツールチップ
- 28. 私はここにスクリプトがしばらく前に、これは</p> <pre><code>i = 1 while i <= 10: with open("{}.txt".format(i), "w") as f: f.write("content") i += 1 </code></pre> <p>で見たファイル
- 29. パッケージ私が見て</p> <pre><code>package main </code></pre> <p>を開始して実験し</p> <pre><code>func main() </code></pre> <p>を持ってきた「メイン」とFUNC「メイン」
- 30. SQL:(私はこの</p> <p><strong>ユーザー</strong><br> ID <br> matricule</p> <p><strong>ドキュメント</strong><br> ID <br> タイトル<br> user_idのようなデータベースのスキーマを持って
私はMathematicaのマシンにいませんので、何もテストできませんが、私はあなたに質問があります。どのような意味でSqrt [q^2 + w^2]はAbs [q + Iw]より簡単ですか? FullSimplifyがこの「簡素化」を実現すると期待しているのは分かりやすいでしょうか?また、もう少し考えてみると、あなたの質問のタイトルはあなたの質問とは逆です。 –
'Sqrt'では' Series'コマンドを実行できますが、 'Abs'では実行できません。 – shadesofdarkred
'ComplexExpand'を試すことができます。たとえば、 'ComplexExpand [Abs [q + I w]]'は 'Sqrt [q^2 + w^2]' – Heike