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

From Vigyanwiki
(Created page with "कंप्यूटर प्रोग्रामिंग में, एक वैज्ञानिक प्रोग्रामिंग भाषा एक...")
 
No edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[कंप्यूटर प्रोग्रामिंग]] में, एक वैज्ञानिक [[प्रोग्रामिंग भाषा]] एक ही अवधारणा की दो डिग्री को संदर्भित कर सकती है।
[[कंप्यूटर प्रोग्रामिंग]] में, एक वैज्ञानिक [[प्रोग्रामिंग भाषा|प्रोग्रामिंग]] लैंग्वेज एक ही अवधारणा की दो डिग्री को संदर्भित कर सकती है।


व्यापक अर्थ में, एक वैज्ञानिक प्रोग्रामिंग भाषा एक प्रोग्रामिंग भाषा है जिसका उपयोग [[कम्प्यूटेशनल विज्ञान]] और [[कम्प्यूटेशनल गणित]] के लिए व्यापक रूप से किया जाता है। इस अर्थ में, C/C++ और Python<ref name="TDS_R_Sci_Lang">{{cite news |last1=Karakan |first1=Burak |title=डेटा साइंस के लिए पायथन बनाम आर|url=https://towardsdatascience.com/python-vs-r-for-data-science-6a83e4541000 |access-date=13 May 2021 |work=Towards Data Science |date=1 May 2020}}</ref> को वैज्ञानिक प्रोग्रामिंग भाषा माना जा सकता है।
व्यापक अर्थ में, एक वैज्ञानिक प्रोग्रामिंग लैंग्वेज एक प्रोग्रामिंग लैंग्वेज है जिसका उपयोग कम्प्यूटेशनल विज्ञान और कम्प्यूटेशनल गणित के लिए व्यापक रूप से किया जाता है। इस अर्थ में, C/C++ और पाइथन <ref name="TDS_R_Sci_Lang">{{cite news |last1=Karakan |first1=Burak |title=डेटा साइंस के लिए पायथन बनाम आर|url=https://towardsdatascience.com/python-vs-r-for-data-science-6a83e4541000 |access-date=13 May 2021 |work=Towards Data Science |date=1 May 2020}}</ref> को वैज्ञानिक प्रोग्रामिंग लैंग्वेज माना जा सकता है।


एक मजबूत अर्थ में, एक वैज्ञानिक प्रोग्रामिंग भाषा वह है जिसे गणितीय [[सूत्रों]] और [[मैट्रिक्स (गणित)]] के उपयोग के लिए डिज़ाइन और अनुकूलित किया गया है। रेफरी>{{cite web |url=https://www.pcmag.com/encyclopedia/term/scientific-language |title=वैज्ञानिक भाषा की परिभाषा|website=[[PC Mag|PC Magazine Encyclopedia]] |publisher=[[Ziff Davis]] |access-date=13 May 2021}}</ref>
एक शसक्त अर्थ में, एक वैज्ञानिक प्रोग्रामिंग लैंग्वेज वह है जिसे गणितीय सूत्र और आव्यूह के उपयोग के लिए डिज़ाइन और अनुकूलित किया गया है।<ref name="UtahSciProg">{{cite web |last1=Zachary |first1=Joseph |title=Introduction to Scientific Programming: Computational Problem Solving Using Maple and C |url=https://www.cs.utah.edu/~zachary/IntroSciProg.html |website=[[Joseph Zachary|Joseph L. Zachary]] |publisher=[[University of Utah]] |access-date=13 May 2021}}</ref> ऐसी लैंग्वेज की पहचान न केवल गणितीय या वैज्ञानिक कार्य करने वाले लाइब्रेरी की उपलब्धता से होती है, किंतु लैंग्वेज के वाक्य-विन्यास से भी होती है। उदाहरण के लिए, न तो C++ और न ही पाइथन में आव्यूह अंकगणित (जोड़, गुणा आदि) के लिए अंतर्निहित आव्यूह प्रकार या फ़ंक्शन हैं; इसके अतिरिक्त, यह कार्यक्षमता मानक लाइब्रेरी के माध्यम से उपलब्ध कराई गई है। शसक्त अर्थों में वैज्ञानिक प्रोग्रामिंग लैंग्वेज में ALGOL, APL, फोरट्रान, J, जूलिया, मेपल, MATLAB और R सम्मिलित हैं।
ऐसी भाषाओं की विशेषता न केवल गणितीय या वैज्ञानिक कार्य करने वाले पुस्तकालयों की उपलब्धता से होती है, बल्कि भाषा के वाक्य-विन्यास से भी होती है।
 
रेफरी नाम = अल्गोंडेसी >{{cite web |url=http://www.yourdictionary.com/scientific-language |title=वैज्ञानिक भाषा - वैज्ञानिक भाषा की परिभाषा|website=YourDictionary |publisher=The Computer Language Company Inc |access-date=27 March 2014}}</ref> उदाहरण के लिए, न तो C++ और न ही Python में मैट्रिक्स अंकगणित (जोड़, गुणा आदि) के लिए अंतर्निहित मैट्रिक्स प्रकार या फ़ंक्शन हैं; इसके बजाय, यह कार्यक्षमता मानक पुस्तकालयों के माध्यम से उपलब्ध कराई गई है। मजबूत अर्थों में वैज्ञानिक प्रोग्रामिंग भाषाओं में [[ALGOL]], APL (प्रोग्रामिंग भाषा), [[फोरट्रान]], J (प्रोग्रामिंग भाषा), [[जूलिया (प्रोग्रामिंग भाषा)]], [[मेपल (सॉफ्टवेयर)]], [[MATLAB]] और R (प्रोग्रामिंग भाषा) शामिल हैं। रेफरी नाम= BYUBlog >{{cite web |last1=Ning |first1=Andrew |title=वैज्ञानिक प्रोग्रामिंग भाषाएँ|url=https://flow.byu.edu/posts/sci-prog-lang |website=Flight, Optimization, and Wind Laboratory |publisher=[[Brigham Young University]] |access-date=13 May 2021}}</ref><ref name="UtahSciProg">{{cite web |last1=Zachary |first1=Joseph |title=Introduction to Scientific Programming: Computational Problem Solving Using Maple and C |url=https://www.cs.utah.edu/~zachary/IntroSciProg.html |website=[[Joseph Zachary|Joseph L. Zachary]] |publisher=[[University of Utah]] |access-date=13 May 2021}}</ref>
वैज्ञानिक प्रोग्रामिंग लैंग्वेज को सामान्य रूप से वैज्ञानिक लैंग्वेज के साथ भ्रमित नहीं किया जाना चाहिए, जो वैज्ञानिक पद्धति के अभ्यासकर्ताओं से अपेक्षित स्पष्टता , शुद्धता और संक्षिप्तता में उच्च मानकों को संदर्भित करती है।
वैज्ञानिक प्रोग्रामिंग भाषाओं को सामान्य रूप से वैज्ञानिक भाषा के साथ भ्रमित नहीं किया जाना चाहिए, जो वैज्ञानिक पद्धति के अभ्यासकर्ताओं से अपेक्षित सटीकता, शुद्धता और संक्षिप्तता में उच्च मानकों को संदर्भित करती है।


==उदाहरण==
==उदाहरण==
Line 12: Line 11:
===रैखिक बीजगणित===
===रैखिक बीजगणित===


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


<syntaxhighlight lang="julia">
<syntaxhighlight lang="julia">
A = rand(20, 20)  # A is a 20x20 matrix
A = rand(20, 20)  # A is a 20x20 matrix
b = rand(20)      # b is a 20-element vector
b = rand(20)      # b is a 20-element vector
x = A\b          # x is the solution to A*x = b
x = A\b          # x is the solution to A*x = b                                              
                                                                                                                                             
                                                                                                                           
                                                                           
</syntaxhighlight>
</syntaxhighlight>
बड़े वैक्टर और मैट्रिक्स के साथ काम करना इन भाषाओं की एक प्रमुख विशेषता है, क्योंकि रैखिक बीजगणित [[गणितीय अनुकूलन]] की नींव रखता है, जो बदले में गहन शिक्षण जैसे प्रमुख अनुप्रयोगों को सक्षम बनाता है।
बड़े सदिश और आव्यूह के साथ कार्य करना इन लैंग्वेज की एक प्रमुख विशेषता है, क्योंकि रैखिक बीजगणित [[गणितीय अनुकूलन]] की नींव रखता है, जो बदले में गहन शिक्षण जैसे प्रमुख अनुप्रयोगों को सक्षम बनाता है।


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


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


<syntaxhighlight lang="julia">
<syntaxhighlight lang="julia">
Line 36: Line 39:
         autodiff = :forward)
         autodiff = :forward)
</syntaxhighlight>
</syntaxhighlight>
इस उदाहरण में, अनुकूलन में न्यूटन की विधि|न्यूनतमीकरण के लिए न्यूटन की विधि का उपयोग किया जाता है। आधुनिक वैज्ञानिक प्रोग्रामिंग भाषाएं इनपुट के रूप में दिए गए फ़ंक्शन के ग्रेडिएंट और हेसियन की गणना करने के लिए [[स्वचालित भेदभाव]] का उपयोग करेंगी; सी एफ [[भिन्नात्मक प्रोग्रामिंग]]। यहां, उस कार्य के लिए स्वचालित फ़ॉरवर्ड विभेदन को चुना गया है।
इस उदाहरण में, अनुकूलन में न्यूटन की विधि|न्यूनतमीकरण के लिए न्यूटन की विधि का उपयोग किया जाता है। आधुनिक वैज्ञानिक प्रोग्रामिंग लैंग्वेज इनपुट के रूप में दिए गए फ़ंक्शन के ग्रेडिएंट और हेसियन की गणना करने के लिए [[स्वचालित भेदभाव|आटोमेटिक]] [[भिन्नात्मक प्रोग्रामिंग|डिफरेंसिअबल]]  का उपयोग करेंगी; सी एफ [[भिन्नात्मक प्रोग्रामिंग|डिफरेंसिअबल प्रोग्रामिंग]]। यहां, उस कार्य के लिए स्वचालित फ़ॉरवर्ड विभेदन को चुना गया है। पुरानी वैज्ञानिक प्रोग्रामिंग लैंग्वेज जैसे कि आदरणीय फोरट्रान को प्रोग्रामर को अनुकूलित किए जाने वाले फ़ंक्शन के बगल में, एक फ़ंक्शन जो ग्रेडिएंट की गणना करता है, और एक फ़ंक्शन जो हेसियन की गणना करता है, को पास करने की आवश्यकता होगी।
पुरानी वैज्ञानिक प्रोग्रामिंग भाषाओं जैसे कि आदरणीय फोरट्रान को प्रोग्रामर को अनुकूलित किए जाने वाले फ़ंक्शन के बगल में, एक फ़ंक्शन जो ग्रेडिएंट की गणना करता है, और एक फ़ंक्शन जो हेसियन की गणना करता है, को पास करने की आवश्यकता होगी।


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


==यह भी देखें==
==यह भी देखें==
* लीनियर अलजेब्रा
* लीनियर अलजेब्रा
* गणितीय अनुकूलन
* गणितीय अनुकूलन
** उत्तल अनुकूलन
** [[उत्तल अनुकूलन|कॉन्वेक्स ऑप्टिमाइजेशन]]
** रैखिक प्रोग्रामिंग
** रैखिक प्रोग्रामिंग
** द्विघात प्रोग्रामिंग
** द्विघात प्रोग्रामिंग
Line 51: Line 53:
==संदर्भ==
==संदर्भ==
{{reflist}}
{{reflist}}
[[Category: प्रोग्रामिंग प्रतिमान]]


[[Category: Machine Translated Page]]
[[Category:Created On 25/07/2023]]
[[Category:Created On 25/07/2023]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:प्रोग्रामिंग प्रतिमान]]

Latest revision as of 10:39, 14 August 2023

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

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

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

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

उदाहरण

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

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

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)

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

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

यह भी देखें

संदर्भ

  1. Karakan, Burak (1 May 2020). "डेटा साइंस के लिए पायथन बनाम आर". Towards Data Science. Retrieved 13 May 2021.
  2. Zachary, Joseph. "Introduction to Scientific Programming: Computational Problem Solving Using Maple and C". Joseph L. Zachary. University of Utah. Retrieved 13 May 2021.