2013-03-14 4 views
18

हाल ही में, मैं कुछ समीकरणों का उपयोग करके गणना करने की कोशिश कर रहा हूं जिनमें काल्पनिक संख्या i शामिल है। हालांकि, e या π के विपरीत, कोई भी तरीका या मूल कार्य नहीं है जो i लौटाएगा। Google में quick search मुझे कोई जवाब नहीं मिला। इसे प्राप्त करने के तरीके पर कोई विचार?जावास्क्रिप्ट में काल्पनिक संख्याओं के साथ गणना कैसे करें?

function imaginary(){ 
    return { 
     rational: this, 
     imaginary: "2i" //magic code that does this 
    }; 
}; 
Number.prototype.imaginary = imaginary; 
+3

यहाँ एक नज़र डालें:: http://janhartigan.com/articles/creating-a-javascript-complex- js एक अभिव्यक्ति पार्सर, जो इसे और अधिक जटिल मूल्यों और गणितीय अभिव्यक्ति के साथ काम करने सुविधाजनक बनाता है के साथ आता है संख्या-वर्ग –

+0

^बहुत पहले परिणाम में अच्छी जानकारी होती है ... – elclanrs

+0

किस तरह की गणना? बस + - * /, या घातीय, आदि? – mbeckish

उत्तर

9

मान लिया जाये कि आप वास्तव में जटिल संख्याओं चाहते हैं, और न सिर्फ काल्पनिक घटक:

मैं एक जटिल संख्या मॉडल हैं बस के रूप में आप एक 2 डी बिंदु मॉडल हैं, यानि कि संख्या की एक जोड़ी।

बस एक बिंदु के रूप में एक्स और वाई घटक हैं, इसलिए एक जटिल संख्या में असली और काल्पनिक घटक हैं। दोनों घटकों को साधारण संख्यात्मक प्रकारों (int, float, आदि) के साथ मॉडलिंग किया जा सकता है

हालांकि, आपको सभी गणितीय परिचालनों के लिए नई कार्यक्षमता को परिभाषित करने की आवश्यकता होगी।

जटिल संख्याओं का जोड़ और घटाव उसी तरह काम करता है जैसे बिंदुओं के अतिरिक्त और घटाव - अलग-अलग घटकों को एक-दूसरे में जोड़ें, उन्हें मिश्रण न करें। उदाहरण के लिए:

(3 + 2i) + (5 + 4i) = (8 + 6i)

गुणा जब गुणा (ए + बी) * (ग + घ) = आप जैसे बीजगणित में सीखा काम करता है (एसी + विज्ञापन + bc + bd)।

अब भी आपको यह याद रखना होगा कि i * i = -1। तो:

(अ + द्वि) * (ग + di) = (एसी + आदि + बीसीआई + bdii) = (एसी-bd) + (विज्ञापन + bc) मैं

विभाजन और घातांक के लिए, देखें http://en.wikipedia.org/wiki/Complex_number

4

मैं गणित विशेषज्ञ नहीं हूं लेकिन मैंने एक और शब्द खोजने की कोशिश की और मुझे अलग-अलग परिणाम मिल गए।

चेक इन:

मुझे आशा है कि इस मदद करता है।

+0

हालांकि ये लिंक प्रश्न का उत्तर दे सकते हैं, लेकिन यहां उत्तर के आवश्यक भागों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। –

16

math.js लाइब्रेरी जटिल संख्याओं, matrices, और अधिक का समर्थन करता है। पुस्तकालय जावास्क्रिप्ट की अंतर्निहित गणित पुस्तकालय के साथ संगत है, इसलिए उपयोग करने में काफी आसान है।

math.i;       // i 
math.sqrt(-4)     // 2i 
var a = math.complex('2 + 3i'); // 2 + 3i 
var b = math.complex(4, 5);  // 4 + 5i 
math.add(a, b);     // 6 + 8i 
math.multiply(a, b);   // -7 + 22i 
math.eval('e^(pi*i) + 1');  // ~0 
// etc... 

संपादित करें::

http://mathjs.org

आप जैसी चीजों सिर्फ कर सकते हैं ध्यान दें कि गणित।

math.eval('(2 + 3i) * (4 + 5i)'); // -7 + 22i 
+0

मैथज अधिकांश अन्य भाषाओं में जटिल संख्या पुस्तकालयों के विपरीत, ध्रुवीय निर्देशांक में या उससे जटिल संख्याओं को परिवर्तित करने का समर्थन नहीं करता है। यदि आपको इसकी ज़रूरत है तो शायद https://npmjs.org/package/Complex पर देखें। – MkV

+3

mathjs अब ध्रुवीय निर्देशांक से जटिल संख्याओं को बनाने और परिवर्तित करने का समर्थन करता है, [दस्तावेज़ देखें] (https://github.com/josdejong/mathjs/blob/master/docs/datatypes/complex_numbers.md)। –

+0

जब मैं 'math.eval' (e^(pi * i) + 1 '' कोशिश करता हूं) मुझे 1.2246467991473532e-16 मिलता है। यह 'टर्मक्स' ऐप का उपयोग कर फोन पर नोड आरईपीएल में था, हालांकि। – trysis

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