2011-08-17 23 views
6

भागो मेथेमेटिका में निम्न कोड:गणित में सटीक साजिश घटता कैसे प्राप्त करें?

r=6197/3122; 
p[k_,w_]:=Sqrt[w^2/r^2-k^2];q[k_,w_]:=Sqrt[w^2-k^2]; 
a[k_,w_,p_,q_]:=(k^2-q^2)^2 Sin[p]Cos[q]+4k^2 p q Cos[p]Sin[q] 
a[k_,w_]:=a[k,w,p[k,w],q[k,w]]; 
ContourPlot[a[k,w]==0,{w,0,6},{k,0,14}] 

यह मैं देता बहुत गलत घटता:

The curves obtained from the code above are very inaccurate

मैं क्रमशः 30 और 20 के लिए ContourPlot की PlotPoints और WorkingPrecision सेटिंग विकल्पों की कोशिश की है करने के लिए, असफलता से। आप यह भी देखेंगे कि एकमात्र संख्यात्मक पैरामीटर, r, एक सटीक तर्कसंगत संख्या है। मुझे नहीं पता कि और क्या प्रयास करें। धन्यवाद।

संपादित करें: घटता मैं प्राप्त करने की उम्मीद तीन काले वाले (चिह्नित A1, A2, और ए 3) निम्न चित्र पर

Expected curves (the black ones)

+0

नक्शा शायद तुम http://math.stackexchange.com/ – plaes

+4

@plaes पर यह पूछ सकते हैं: इस बारे में सवाल नहीं है अंक शास्त्र। यह गणित के बारे में एक सवाल है। – becko

+0

क्या आप मोटे तौर पर अपनी तस्वीर की एक तस्वीर शामिल कर सकते हैं? –

उत्तर

6

आप चित्र और/या a के लिए परिभाषा के बारे में हैं? a की परिभाषा से k==w पर यह वक्र आपके चित्र में प्रकट नहीं होता है।

वैसे भी, यह सोचते हैं कि a की परिभाषा सही है, आकृति की साजिश रचने के साथ समस्या यह है कि डोमेन w^2/r^2-k^2<0, में दोनों p[k,w] और Sin[p[k,w]] विशुद्ध रूप से काल्पनिक जिसका अर्थ है कि a[k,w] रूप में अच्छी तरह विशुद्ध रूप से काल्पनिक हो जाता हो जाता है। चूंकि ContourPlot जटिल मूल्यवान फ़ंक्शंस को पसंद नहीं करता है, इसलिए डोमेन w^2/r^2>=k^2 डोमेन में समोच्च के कुछ हिस्सों को प्लॉट किया गया है।

ऐसा नहीं है कि Sin[p[k,w]]/p[k,w]k और w के सभी मानों के लिए असली है (और यह अच्छी तरह से सीमा p[k,w]->0 व्यवहार है)। इसलिए, जटिल होता जा रहा a की समस्या से बचने के लिए आप के बजाय आकृति a[k,w]/p[k,w]==0 साजिश सकता है:

ContourPlot[a[k, w]/p[k, w] == 0, {w, 0, 6}, {k, 0, 14}] 

परिणाम

contour plot of a/p==0

+0

आप सही थे। मुझे 'ए' की परिभाषा में गलती हुई थी। मैंने ठीक कर दिया। धन्यवाद। – becko

+0

'पी' द्वारा विभाजित इसे ठीक किया गया। मुझे प्लॉटपॉइंट्स या कुछ भी सेट करने की ज़रूरत नहीं थी! धन्यवाद! – becko

3

आपका समारोह समोच्च के क्षेत्र में जटिल संख्या देता हैं लाइनें जो आप दिखाते हैं। क्या आप यही उम्मीद करते हैं? आप इस क्षेत्र यहाँ असली है कि देख सकते हैं:

ContourPlot[a[w, k] == 0, {w, 0, 6}, {k, 0, 14}] 

enter image description here

यह है:

ContourPlot[a[k, w], {w, 0, 6}, {k, 0, 14}] 

enter image description here

मैं अगर मैं का उपयोग कुछ अपनी लाइनों के करीब तरीकों से कुछ पाने संभवतः एक प्रतिलेखन त्रुटि है?

(मेरी क्षमा याचना अगर यह बेकार है।)

+0

एक प्रतिलेखन त्रुटि थी (उपरोक्त उत्तर में हेइक द्वारा इंगित) और यह अब तय है। हालांकि, यह 'एक [के, डब्ल्यू] 'है, न कि एक [डब्ल्यू, के]', और वहां कोई त्रुटि नहीं है। फिर भी धन्यवाद। – becko

3

p ans q असली मूल्यवान केवल तभी w^2 - k^2 और w^2/r^2 - k^2 दोनों गैर नकारात्मक हैं। w^2/r^2 - k^2 केवल अपने भूखंड क्षेत्र के निम्नलिखित क्षेत्र में गैर नकारात्मक हो जाएगा:

enter image description here

इसलिए सब कुछ ContourPlot से काट दिया जाएगा। शायद आपको समीकरणों में कुछ सुधार करने की आवश्यकता है (आपको केवल वास्तविक भाग की आवश्यकता है? परिमाण?) मुझे विश्वास नहीं है कि वक्र गणित आपको बहुत गलत हैं। अन्यथा PlotPoints और MaxRecursion (कहें, 50 और 4) बढ़ते हुए समोच्चों की शुद्धता बढ़ाने के लिए जाने का तरीका।

6

मुझे l.hs.s. के वास्तविक और काल्पनिक भागों की अलग-अलग साजिश के द्वारा अपेक्षा की जाने वाली चीज़ के समान कुछ मिल गया है। समीकरण का:

ContourPlot[{[email protected][k, w] == 0, [email protected][k, w] == 0}, {w, 0, 6}, {k, 0, 14}, 
    MaxRecursion -> 7] 

enter image description here

1

अपने समीकरणों के parametrization साथ खेलने के लिए प्रयास करें। उदाहरण के लिए, a=w^2-k^2 को परिभाषित करने और b=w^2/r^2-k^2, तो a और b के लिए हल करने और उन पर k और w

संबंधित मुद्दे