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

From Vigyanwiki
Revision as of 08:37, 25 July 2023 by alpha>Indicwiki (Created page with "कंप्यूटर प्रोग्रामिंग में, एक वैज्ञानिक प्रोग्रामिंग भाषा एक...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

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

एक मजबूत अर्थ में, एक वैज्ञानिक प्रोग्रामिंग भाषा वह है जिसे गणितीय सूत्रों और मैट्रिक्स (गणित) के उपयोग के लिए डिज़ाइन और अनुकूलित किया गया है। रेफरी>"वैज्ञानिक भाषा की परिभाषा". PC Magazine Encyclopedia. Ziff Davis. Retrieved 13 May 2021.</ref> ऐसी भाषाओं की विशेषता न केवल गणितीय या वैज्ञानिक कार्य करने वाले पुस्तकालयों की उपलब्धता से होती है, बल्कि भाषा के वाक्य-विन्यास से भी होती है। रेफरी नाम = अल्गोंडेसी >"वैज्ञानिक भाषा - वैज्ञानिक भाषा की परिभाषा". YourDictionary. The Computer Language Company Inc. Retrieved 27 March 2014.</ref> उदाहरण के लिए, न तो C++ और न ही Python में मैट्रिक्स अंकगणित (जोड़, गुणा आदि) के लिए अंतर्निहित मैट्रिक्स प्रकार या फ़ंक्शन हैं; इसके बजाय, यह कार्यक्षमता मानक पुस्तकालयों के माध्यम से उपलब्ध कराई गई है। मजबूत अर्थों में वैज्ञानिक प्रोग्रामिंग भाषाओं में ALGOL, APL (प्रोग्रामिंग भाषा), फोरट्रान, J (प्रोग्रामिंग भाषा), जूलिया (प्रोग्रामिंग भाषा), मेपल (सॉफ्टवेयर), MATLAB और R (प्रोग्रामिंग भाषा) शामिल हैं। रेफरी नाम= BYUBlog >Ning, Andrew. "वैज्ञानिक प्रोग्रामिंग भाषाएँ". Flight, Optimization, and Wind Laboratory. Brigham Young University. Retrieved 13 May 2021.</ref>[2] वैज्ञानिक प्रोग्रामिंग भाषाओं को सामान्य रूप से वैज्ञानिक भाषा के साथ भ्रमित नहीं किया जाना चाहिए, जो वैज्ञानिक पद्धति के अभ्यासकर्ताओं से अपेक्षित सटीकता, शुद्धता और संक्षिप्तता में उच्च मानकों को संदर्भित करती है।

उदाहरण

रैखिक बीजगणित

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

A = rand(20, 20)  # A is a 20x20 matrix
b = rand(20)      # b is a 20-element vector
x = A\b           # x is the solution to A*x = b

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

गणितीय अनुकूलन

एक वैज्ञानिक प्रोग्रामिंग भाषा में, हम गणितीय भाषा के करीब एक वाक्यविन्यास के साथ फ़ंक्शन ऑप्टिमा की गणना कर सकते हैं। उदाहरण के लिए, निम्नलिखित जूलिया कोड बहुपद का न्यूनतम पता लगाता है .

using Optim

P(x,y) = x^2 - 3x*y + 5y^2 - 7y + 3

z₀ = [ 0.0
       0.0 ]     # starting point for optimization algorithm

optimize(z -> P(z...), z₀, Newton();
         autodiff = :forward)

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

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

यह भी देखें

  • लीनियर अलजेब्रा
  • गणितीय अनुकूलन
    • उत्तल अनुकूलन
    • रैखिक प्रोग्रामिंग
    • द्विघात प्रोग्रामिंग
  • वैज्ञानिक शब्दावली

संदर्भ