2012-03-07 6 views
5

के साथ एक जटिल संख्या का निरपेक्ष मूल्यों की गणना नहीं करता कोड FullSimplify[Abs[q + I*w], Element[{q, w}, Reals]] परिणाम का उपयोग करते हुए मैं क्या याद आ रही है?मेथेमेटिका</p> <pre><code>Abs[q + I w] </code></pre> <p>और नहीं</p> <pre><code>Sqrt[q^2 + w^2] </code></pre> <p>में वास्तविक गुणांकों

पीएस 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

मैं अभी अपनी गणित मशीन पर नहीं हूं इसलिए कुछ भी परीक्षण नहीं कर सकता लेकिन मेरे पास आपके लिए एक सवाल है। एसबीआरटी [क्यू^2 + डब्ल्यू^2] एब्स [q + Iw] से सरल क्या है? क्या आप निश्चित हैं कि पूर्ण उम्मीद है कि यह पूर्णीकरण 'सरलीकरण' को एक समझदार उम्मीद है? इसके अलावा, इसके बारे में थोड़ा और सोचते हुए, आपके प्रश्न का शीर्षक आपके प्रश्न के साथ बाधाओं में है। –

+0

मैं 'वर्ग' कमांड पर 'वर्ग' कमांड चला सकता हूं लेकिन 'Abs' पर नहीं। – shadesofdarkred

+0

आप 'ComplexExpand' को आजमा सकते हैं। उदाहरण के लिए 'कॉम्प्लेक्सएक्सपैंड [एबीएस [क्यू + आई डब्ल्यू]]' एसकर्ट [क्यू^2 + डब्ल्यू^2] ' – Heike

उत्तर

5

समस्या यह है कि आप "सरल" मानते हैं और एमएमए क्या सरल मानता है, दो अलग-अलग चीजें हैं। ComplexityFunction पर एक नज़र डालने से संकेत मिलता है कि एमएमए मुख्य रूप से "LeafCount" देखता है। लागू करने LeafCount देता है:

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

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

तो, एमएमए समझता है Abs प्रपत्र बेहतर होने की। (कोई भी ट्रीफॉर्म या फुलफॉर्म का उपयोग करके सादगी का दृश्यता से पता लगा सकता है)। हमें एमएमए को अधिक महंगा के रूप में इलाज करने के लिए एमएमए को क्या करना है। ऐसा करने के लिए, हम 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] के माध्यम से एमएमए को बता रहे हैं कि Abs के सभी हिस्सों की गणना 100 पत्तियों के रूप में गिना जाना चाहिए।

संपादित करें: ब्रेट द्वारा उल्लेख किया है, आप भी इसे और अधिक सामान्य बना सकते हैं, और नियम के रूप में _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] में अपरिवर्तित छोड़ा गया है। i सही ढंग से कोड किया गया है। 'क्या है या सरल नहीं है' के बारे में अमूर्त अवलोकन करना असंबंधित और गलत है। एक फ्लोट है जिसके परिणामस्वरूप कुछ बीजगणित नहीं होना चाहिए। N और ImportForm काम नहीं करते हैं, या तो।

+0

लोअरकेस 'i' एक अनिर्धारित प्रतीक है। 'मैं' रखो और 'एन' का उपयोग करें और आप जो भी उम्मीद करेंगे उसे प्राप्त करेंगे। सभी इस सवाल से असंबंधित हैं। – agentp