वैज्ञानिक प्रोग्रामिंग भाषा

कंप्यूटर प्रोग्रामिंग में, एक वैज्ञानिक प्रोग्रामिंग लैंग्वेज एक ही अवधारणा की दो डिग्री को संदर्भित कर सकती है।

व्यापक अर्थ में, एक वैज्ञानिक प्रोग्रामिंग लैंग्वेज एक प्रोग्रामिंग लैंग्वेज है जिसका उपयोग कम्प्यूटेशनल विज्ञान और कम्प्यूटेशनल गणित के लिए व्यापक रूप से किया जाता है। इस अर्थ में, C/C++ और पाइथन को वैज्ञानिक प्रोग्रामिंग लैंग्वेज माना जा सकता है।

एक शसक्त अर्थ में, एक वैज्ञानिक प्रोग्रामिंग लैंग्वेज वह है जिसे गणितीय सूत्र और आव्यूह के उपयोग के लिए डिज़ाइन और अनुकूलित किया गया है। ऐसी लैंग्वेज की पहचान न केवल गणितीय या वैज्ञानिक कार्य करने वाले लाइब्रेरी की उपलब्धता से होती है, किंतु लैंग्वेज के वाक्य-विन्यास से भी होती है। उदाहरण के लिए, न तो C++ और न ही पाइथन में आव्यूह अंकगणित (जोड़, गुणा आदि) के लिए अंतर्निहित आव्यूह प्रकार या फ़ंक्शन हैं; इसके अतिरिक्त, यह कार्यक्षमता मानक लाइब्रेरी के माध्यम से उपलब्ध कराई गई है। शसक्त अर्थों में वैज्ञानिक प्रोग्रामिंग लैंग्वेज में ALGOL, APL, फोरट्रान, J, जूलिया, मेपल, MATLAB और R सम्मिलित हैं।

वैज्ञानिक प्रोग्रामिंग लैंग्वेज को सामान्य रूप से वैज्ञानिक लैंग्वेज के साथ भ्रमित नहीं किया जाना चाहिए, जो वैज्ञानिक पद्धति के अभ्यासकर्ताओं से अपेक्षित स्पष्टता, शुद्धता और संक्षिप्तता में उच्च मानकों को संदर्भित करती है।

रैखिक बीजगणित
वैज्ञानिक प्रोग्रामिंग लैंग्वेज रैखिक बीजगणित के साथ कार्य करने की सुविधा प्रदान करती हैं। उदाहरण के लिए, निम्नलिखित जूलिया प्रोग्राम रैखिक समीकरणों की एक सिस्टम को हल करता है:

बड़े सदिश और आव्यूह के साथ कार्य करना इन लैंग्वेज की एक प्रमुख विशेषता है, क्योंकि रैखिक बीजगणित गणितीय अनुकूलन की नींव रखता है, जो बदले में गहन शिक्षण जैसे प्रमुख अनुप्रयोगों को सक्षम बनाता है।

गणितीय अनुकूलन
एक वैज्ञानिक प्रोग्रामिंग लैंग्वेज में, हम गणितीय लैंग्वेज के करीब एक वाक्यविन्यास के साथ फ़ंक्शन ऑप्टिमा की गणना कर सकते हैं। उदाहरण के लिए, निम्नलिखित जूलिया कोड बहुपद का $$P(x, y) = x^2 - 3 x y + 5 y^2 - 7 y + 3 $$ न्यूनतम पता लगाता है.

इस उदाहरण में, अनुकूलन में न्यूटन की विधि|न्यूनतमीकरण के लिए न्यूटन की विधि का उपयोग किया जाता है। आधुनिक वैज्ञानिक प्रोग्रामिंग लैंग्वेज इनपुट के रूप में दिए गए फ़ंक्शन के ग्रेडिएंट और हेसियन की गणना करने के लिए आटोमेटिक डिफरेंसिअबल  का उपयोग करेंगी; सी एफ डिफरेंसिअबल प्रोग्रामिंग। यहां, उस कार्य के लिए स्वचालित फ़ॉरवर्ड विभेदन को चुना गया है। पुरानी वैज्ञानिक प्रोग्रामिंग लैंग्वेज जैसे कि आदरणीय फोरट्रान को प्रोग्रामर को अनुकूलित किए जाने वाले फ़ंक्शन के बगल में, एक फ़ंक्शन जो ग्रेडिएंट की गणना करता है, और एक फ़ंक्शन जो हेसियन की गणना करता है, को पास करने की आवश्यकता होगी।

फ़ंक्शन के अधिक ज्ञान को कम करके, अधिक कुशल एल्गोरिदम का उपयोग किया जा सकता है। उदाहरण के लिए, कॉन्वेक्स ऑप्टिमाइजेशन तेजी से गणना प्रदान करता है जब फ़ंक्शन उत्तल होता है, द्विघात प्रोग्रामिंग तेजी से गणना प्रदान करता है जब फ़ंक्शन अपने वैरीएबल में सबसे अधिक द्विघात पर होता है, और रैखिक प्रोग्रामिंग जब फ़ंक्शन सबसे अधिक रैखिक होता है।

यह भी देखें

 * लीनियर अलजेब्रा
 * गणितीय अनुकूलन
 * कॉन्वेक्स ऑप्टिमाइजेशन
 * रैखिक प्रोग्रामिंग
 * द्विघात प्रोग्रामिंग
 * वैज्ञानिक शब्दावली