वैज्ञानिक कंप्यूटिंग में जटिल अंकगणित का खतरा


11

जटिल आंतरिक उत्पाद : दो अलग अलग परिभाषा सम्मेलनों द्वारा निर्णय लिया है ˉ यू टी वी या यू टी ˉ v । BLAS में, मैंने रूटीन cdotu, zdotu, और cdotc, zdotc पाया। पूर्व दो दिनचर्या वास्तव में यू टी वी (एक नकली आंतरिक उत्पाद!) की गणना करती हैं और अंतिम दो दिनचर्या आंतरिक उत्पाद में पहले वेक्टर को संयुग्मित करती हैं। इसके अलावा, या तो परिभाषा के द्वारा (संयुग्म यू या वी ), यू , वी = ¯ वी , यू u,vu¯TvuTv¯uTvuvu,v=v,u¯संयुग्मन के साथ! इसके अलावा, जैसा कि एक टिप्पणी में कहा गया है, बहु-मूल्यवान जटिल कार्यों के लिए प्रमुख मूल्यों का चयन करना कन्वेंशन पर निर्भर हो सकता है।

मेरा प्रश्न है: क्या यह जटिलता वैज्ञानिक कंप्यूटिंग में जटिल अंकगणित के उपयोग के लिए सही खतरे का कारण है? इस मुद्दे पर डील के लेखकों द्वारा जोर दिया जाता है। मैं जो हमेशा वास्तविक और काल्पनिक भाग में जटिल संख्याओं को विभाजित करने का सुझाव देता हूं और केवल वास्तविक अंकगणित का उपयोग करता हूं। लेकिन मैंने कभी नहीं पाया कि विभाजन का तरीका सुविधाजनक है। उदाहरण के लिए, समय-हार्मोनिक मैक्सवेल के समीकरणों के लिए पीएमएल के बारे में सोचें ।

ऐसा लगता है कि FreeFem ++ और libmesh को छोड़कर अधिकांश खुले स्रोत FEM सॉफ्टवेयर्स में जटिल संख्याओं का उपयोग करने की चिंता प्रचलित है। लेकिन यहां तक ​​कि दो अपवादों के लिए, जटिल अंकगणित वास्तविक की तुलना में कम परीक्षण किया गया है।

मेरा अंतिम प्रश्न है: क्या हम हमेशा जटिल संख्याओं के उपयोग से बचेंगे?


3
1ii

@hardmath धन्यवाद! मैंने इसे प्रश्न में जोड़ा।
हुई जांग

@hardmath: "परीक्षण उदाहरणों का छोटा सेट" - ज्यादातर पुस्तकालयों में जो रैखिक बीजगणित के संचालन को बड़े पैमाने पर लागू करते हैं, वहाँ संभवतः दर्जनों या सैकड़ों स्थानों पर होंगे जहां आंतरिक उत्पादों को लिया जाता है। उनकी शुद्धता को सत्यापित करने के लिए सैकड़ों परीक्षण होंगे, सही ढंग से लागू होने में महीनों लगेंगे। यह असंभव नहीं है, निश्चित रूप से, और कुछ पुस्तकालयों ने ऐसा किया है। यह सिर्फ बहुत काम है और सभी पुस्तकालय लेखकों को भरोसा नहीं है कि वे इसे सही
मान गए हैं

@WolfgangBangerth, शायद आप डील की व्याख्या कर सके।
बिल बर्थ

3
क्या हम केवल जटिल संख्याओं के उपयोग से हमेशा बचेंगे? कृपया नहीं। मेरा मानना ​​है कि प्रत्येक कम्प्यूटेशनल वैज्ञानिक को उदाहरण के लिए, असममित इगेंवल्यू डीकंपोज़िशन की आवश्यकता होती है।
फेडरिको पोलोनी

जवाबों:


2

आप कहते हैं कि जटिल अंकगणित के साथ समस्या यह है कि जटिल वैक्टर के लिए स्केलर उत्पाद को परिभाषित करने के विभिन्न तरीके हैं, वास्तविक मामले में सिर्फ एक ही तरीके की तुलना में। मुझे लगता है कि जटिल स्केलर उत्पाद के साथ वास्तविक समस्या एक और है, जो हालांकि, आपके अवलोकन से निकटता से संबंधित है।

जटिल अंकगणित में स्केलर उत्पाद के तर्कों का क्रम मायने रखता है, जबकि वास्तविक अंकगणित में वे नहीं होते हैं। कई एल्गोरिदम अनिवार्य रूप से जटिल और वास्तविक अंकगणित में समान हैं, जिसका अर्थ है कि आपको बस उन्हें एक बार लिखना होगा और फिर जटिल और वास्तविक अंकगणित के लिए समान कोड का उपयोग करना होगा। (उदाहरण के लिए, C ++ में आप इस उद्देश्य के लिए टेम्प्लेट का उपयोग कर सकते हैं।) जब आप अपना कोड लिखते हैं, तो आप आमतौर पर इसका परीक्षण करते हैं। कुछ स्केलर उत्पाद में तर्कों के क्रम में गलतियों को उजागर करने के लिए, आपको एक जटिल-मूल्यवान परीक्षण मामले के साथ अपने कोड का परीक्षण करना होगा।

जब आप जटिल मूल्यवान समस्याओं के लिए एक काम कोड रखते हैं तो आपको अक्सर एल्गोरिथ्म के लिए वास्तविक-मूल्यवान कोड मिलता है। जब आपने एक जटिल-मूल्यवान परीक्षण मामले के साथ अपने कोड का परीक्षण किया है, तो कोड अक्सर वास्तविक संख्याओं के लिए भी सही होता है। टर्निंग, एक जटिल में एक वास्तविक मूल्य कोड, हालांकि, अतिरिक्त काम की आवश्यकता होती है। इसलिए, जटिल मूल्यवान समस्याओं की तुलना में असली-मूल्यवान के लिए बस और अधिक कोड हैं जो सिर्फ काम करते हैं (और पूरी तरह से परीक्षण किए जाते हैं)।

मेरा प्रश्न है: क्या यह जटिलता वैज्ञानिक कंप्यूटिंग में जटिल अंकगणित के उपयोग के लिए सही खतरे का कारण है?

मैं "हाँ" कहूंगा, निम्नलिखित तरीके से। जब जटिल-जटिल समस्याओं के लिए कोड का अच्छी तरह से परीक्षण नहीं किया जाता है, तो कोड में कीड़े की अधिक संभावना होती है, लेकिन यह उस कंक्रीट कोड पर निर्भर करता है जिसे आप देख रहे हैं। जब कोड का अच्छी तरह से परीक्षण किया जाता है, तो कोई समस्या नहीं है।

मेरा अंतिम प्रश्न है: क्या हम हमेशा जटिल संख्याओं के उपयोग से बचेंगे?

जैसा कि पहले ही बताया गया है, ऐसी समस्याएं हैं जिनका वास्तविक संख्याओं का उपयोग करके हल नहीं किया जा सकता है। उदाहरण के लिए, असममित मेट्रिसेस के प्रतिजन की गणना। इसलिए, हमें जटिल अंकगणित की आवश्यकता है।


-1

यह पत्र प्रासंगिक है:

एलिमेंट्री कॉम्प्लेक्स फंक्शंस के लिए ब्रांच कट्स या कुछ भी नहीं साइन बिट के बारे में बहुत कुछ।

http://people.freebsd.org/~das/kahan86branch.pdf


5
SciComp में आपका स्वागत है! शायद आप इस बारे में अधिक बता सकते हैं कि आपके द्वारा लिंक किया गया पेपर प्रासंगिक क्यों है? एक सारांश आपके उत्तर को अधिक मूल्यवान बनाता है, और अधिक होने की संभावना है। हम उन उत्तरों को हतोत्साहित करते हैं जो पर्याप्त संदर्भ के बिना लिंक जोड़ते हैं।
ज्योफ ऑक्सबेरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.