सामग्री पर जाएँ
Varlig गाइड
Varlig का मुख्य पृष्ठ

योग, समीकरण हल करना और कलन

यह पेज क्रम में आने वाले पदों का योग या गुणनफल निकालना, समीकरण के हल खोजना, अभिव्यक्ति का अवकलज सूत्र के रूप में या किसी बिंदु पर निकालना, और निश्चित समाकल की गणना करना समझाता है। जब सवाल में Σ या Π संकेत हों, समीकरण को हाथ से हल करने के लिए पुनर्व्यवस्थित करना कठिन हो, या पढ़ाई में अवकलज या वक्र के नीचे का क्षेत्रफल जाँचना हो, तब इसका उपयोग करें।

ये सभी फ़ंक्शन अपने तर्कों में से एक के रूप में एक चर नाम लेते हैं, जैसे कि sum(k^2, k, 1, 10) में k। वह नाम केवल कॉल के अंदर मौजूद है, इसलिए यह आपके नोट में कहीं और उसी नाम का मान कभी नहीं बदलता है।

परिमित योग और गुणनफल

calc
sum(k, k, 1, 100) परिणाम 5,050
sum(k^2, k, 1, 10) परिणाम 385
summation(2*k - 1, k, 1, 10) परिणाम 100
product(k, k, 1, 5) परिणाम 120

तर्क अभिव्यक्ति, चर, पहला मान और अंतिम मान हैं। दोनों छोर शामिल हैं, इसलिए sum(k, k, 1, 100) 1 + 2 + ... + 100 जोड़ता है। summation sum का दूसरा नाम है। तीसरी पंक्ति से पता चलता है कि पहली दस विषम संख्याएं 10² तक जोड़ती हैं, और अंतिम 5 फैक्टोरियल है।

योग मुद्रा और इकाइयों के साथ भी काम करते हैं, इसलिए नियमित बचत का हिसाब लगा सकते हैं:

calc
# £1,200 paid in at the start of each year for 5 years, at 5%
sum(£1200 * 1.05^k, k, 1, 5) परिणाम £6,962.30

प्रायिकताओं की श्रृंखला के लिए गुणनफल उपयोगी है। 23 लोगों के समूह में कम से कम दो लोगों का जन्मदिन एक ही होने की प्रायिकता, सभी 23 जन्मदिन अलग होने की प्रायिकता को 1 में से घटाकर मिलती है:

calc
p = 1 - product((365 - k)/365, k, 0, 22)
(p as %) to 1 dp परिणाम 50.7%

कुछ विवरण:

  • पहला और अंतिम मान पूर्ण संख्या होना चाहिए।
  • आखिरी मान पहले मान से छोटा हो तो कोई पद नहीं होता: योग 0 और गुणनफल 1 होता है।
  • एक योग या गुणनफल में अधिकतम 10,000 पद हो सकते हैं।
  • योग को नेस्टेड किया जा सकता है, जैसा कि sum(sum(j, j, 1, n), n, 1, 4) में है, जो 20 है। नेस्टेड कॉल एक समग्र कार्य सीमा साझा करते हैं।
  • आपके पास पहले से मौजूद मानों को जोड़ने के लिए, एक सूची का उपयोग करें: sum([4, 8, 15]). देखें लिस्ट्स और सांख्यिकी.

समीकरण का सटीक हल निकालना

केवल समीकरण देने पर solve उसके गुणांक पढ़कर उसी तरह उत्तर निकालता है जैसे आप कागज़ पर निकालते हैं:

calc
solve(2x + 6 = 10) परिणाम 2
solve(x/3 + 1 = 4) परिणाम 9
solve(5x + 3 = 2x - 9) परिणाम -4
# Candles sell for 12, cost 4 each to make, on 2,000 of fixed costs
solve(12n = 2000 + 4n) परिणाम 250

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

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

calc
solve(x^2 - 5x + 6 = 0) परिणाम [2, 3]
solve(x^2 = 9) परिणाम [-3, 3]
solve(x^2 - 6x + 9 = 0) परिणाम [3]
solve(x^2 - 2 = 0) परिणाम [-1.4142135624, 1.4142135624]

उत्तर का रूप लिखे गए समीकरण के प्रकार से तय होता है, मिले हुए मूलों से नहीं। द्विघात समीकरण हमेशा सूची लौटाता है।

रैखिक समीकरण और पूर्ण वर्ग विविक्तकर वाले द्विघात समीकरण सटीक भिन्नों से हल किए जाते हैं। इसलिए solve(x^2 - 5x + 6 = 0) के मूल ठीक 2 और 3 होते हैं। विविक्तकर पूर्ण वर्ग न हो तो दोनों मूल दशमलव वर्गमूलों के रूप में निकलते हैं। दो सन्निकट मान दिखने में समान हों, तब भी उनकी सटीक समानता भरोसेमंद नहीं होती: solve(x^2 - 2 = 0) और sqrt(2) दोनों में 1.4142135624 दिखता है, लेकिन तुलना में मान अलग होते हैं।

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

जब गणना समर्थित न हो

यह अनुमान नहीं लगाता। वास्तविक मूल न हो तो जटिल मूल देने के बजाय यही बताता है। द्विघात से उच्च घात का समीकरण अस्वीकार करके संख्यात्मक विधि का सुझाव देता है:

calc
solve(x^2 + 1 = 0) परिणाम Error: no real solution
solve(x^3 - 1 = 0) परिणाम Unsupported: solve reads equations of degree 1 and 2; this one has degree 3: write solve(expression,x,lower,upper) to search for one root numerically
solve(sin(x) = 0) परिणाम Unsupported: solve reads a polynomial in x of degree 1 or 2; write solve(expression,x,lower,upper) to search for one root numerically

अज्ञात हर या घातांक में भी नहीं हो सकता। दो अपरिभाषित नाम हों तो संदेश बताता है कि किस नाम को नहीं पढ़ सका:

calc
solve(1/x = 2) परिणाम Unsupported: The unknown cannot be a divisor; write solve(expression,x,lower,upper) to search for one root numerically
solve(2^x = 8) परिणाम Unsupported: The unknown cannot be an exponent; write solve(expression,x,lower,upper) to search for one root numerically
solve(x + y = 10) परिणाम Unsupported: solve reads one unknown, and y holds no value either; give y a value, or write solve(expression,x,lower,upper) to search for one root numerically

हर मान से संतुष्ट होने वाले समीकरण के लिए कोई एक मान चुनने के बजाय यही स्थिति बताई जाती है:

calc
solve(x - x = 0) परिणाम Unsupported: every value of x solves this equation, so it has no single answer

इन सभी अस्वीकृतियों में नीचे दिए चार आर्ग्युमेंट वाले solve का सुझाव मिलता है। वह अभिव्यक्ति के बीजगणितीय रूप पर निर्भर हुए बिना संख्यात्मक रूप से एक मूल खोजता है। कई अज्ञात वाले कई रैखिक समीकरणों के लिए सदिश और आव्यूह में दिया solve_system इस्तेमाल करें।

एक संख्यात्मक मूल खोजें

चार आर्ग्युमेंट वाला solve अलग तरीके से काम करता है: आपकी दी गई दो सीमाओं के बीच चर का ऐसा मान ढूँढता है जो समीकरण को संतुष्ट करे। ऊपर की सटीक विधि समीकरण स्वीकार न करे तो इसका उपयोग करें।

calc
solve(x^2 = 2, x, 0, 2) परिणाम 1.4142135624
solve(x^2 - 4, x, -3, 0) परिणाम -2
solve(cos(x) = x, x, 0, 1) परिणाम 0.7390851332
# How long does a stone take to fall 44.1 m?
solve(4.9*t^2 = 44.1, t, 0, 10) परिणाम 3
# Candles sell for £12, cost £4 each to make, plus £2,000 of fixed costs
solve(12*n = 2000 + 4*n, n, 0, 1000) परिणाम 250

तर्क समीकरण, चर, निचली सीमा और ऊपरी सीमा हैं। आप = के साथ एक समीकरण दे सकते हैं, या अपने आप में एक अभिव्यक्ति, जिसे solve expression = 0 के रूप में मानता है।

सीमाएं चुनना

solve के लिए दी गई सीमाओं के बीच समीकरण के दोनों पक्षों के बड़े-छोटे होने का क्रम बदलना चाहिए। अर्थात left - right एक सीमा पर धनात्मक और दूसरी पर ऋणात्मक हो, या किसी सीमा पर ठीक शून्य हो। फिर वह अंतराल छोटा करते हुए वह बिंदु ढूँढता है जहाँ दोनों पक्ष बराबर होते हैं।

इसके कुछ परिणाम हैंः

  • यदि सीमाओं के बीच दो मूल हैं, तो संकेत समग्र रूप से नहीं बदल सकता है। solve(x^2 - 4, x, -3, 3) विफल रहता है, क्योंकि x^2 - 4 दोनों सिरों पर धनात्मक है। एक रूट को घेरने वाली सीमाओं का उपयोग करें, जैसे 0 और 3।
  • जहाँ वक्र शून्य को केवल छूता है, जैसे x^2 = 0, वहाँ इस विधि से मूल नहीं मिलता क्योंकि चिह्न नहीं बदलता।
  • अभिव्यक्ति को पूरी सीमा में परिभाषित किया जाना है। solve(sqrt(x) = 2, x, -1, 10) विफल हो जाता है क्योंकि एक ऋणात्मक संख्यात्मक मान का sqrt एक त्रुटि है। इसके बजाय 0 पर रेंज शुरू करें।
  • शून्य के पार अचानक छलाँग, जैसे 0 के पास 1/x में, मूल नहीं होती। इसलिए वहाँ solve उत्तर के बजाय त्रुटि देता है।
  • निचली सीमा ऊपरी सीमा से छोटी होनी चाहिए, और दोनों सादे संख्या होनी चाहिए।

solve केवल एक मूल लौटाता है, सभी मूलों की सूची नहीं। यह केवल बिना इकाई वाली संख्याओं पर काम करता है, इसलिए समीकरण में इकाइयाँ न रखें।

राउंड करना और दोबारा इस्तेमाल करना

उत्तर निकट संख्यात्मक सन्निकटन है; दिखने वाला आखिरी अंक थोड़ा अलग हो सकता है। परिणाम को उचित दशमलव स्थानों तक दिखाने के लिए उसी पंक्ति में to 4 dp (या आवश्यक अंकों की संख्या) जोड़ें। दोबारा उपयोग करना हो तो पहले परिणाम को नाम दें:

calc
solve(sqrt(x) = 2, x, 0, 10) परिणाम 4.0000000001
solve(sqrt(x) = 2, x, 0, 10) to 4 dp परिणाम 4
side = solve(sqrt(x) = 2, x, 0, 10) परिणाम 4.0000000001
side * 3 to 2 dp परिणाम 12

आप इसे अलग-अलग मानों के साथ पुन: उपयोग करने के लिए अपने स्वयं के फ़ंक्शन में solve को लपेट सकते हैं:

calc
root(y) = solve(x^2 = y, x, 0, 10)
root(9) परिणाम 3

कई अज्ञात में कई रैखिक समीकरणों के लिए, वेक्टर और मैट्रिक्स से solve_system का उपयोग करें।

प्रतीकात्मक अवकलन

दो आर्ग्युमेंट देने पर differentiate (या derivative) अवकलज को सूत्र के रूप में देता है:

calc
differentiate(sin(x), x) परिणाम cos(x)
derivative(x^3, x) परिणाम (3*(x^(3-1)))
derivative(x * sin(x), x) परिणाम (sin(x)+(x*cos(x)))
derivative(exp(2*x), x) परिणाम (exp((2*x))*2)

परिणाम सरलीकृत नहीं है, और प्रत्येक चरण को कोष्ठक में रखा गया है: (3*(x^(3-1))) 3x² है। आपकी अभिव्यक्ति में दशमलव अंशों के रूप में वापस आते हैं, इसलिए 19.6 (98/5) के रूप में दिखाई देता है।

परिणाम पाठ है, Varlig के साथ गणना करने योग्य कुछ नहीं। इसका उपयोग करने के लिए, अपने स्वयं के फ़ंक्शन में सूत्र टाइप करें:

calc
slope(x) = 3*x^2
slope(2) परिणाम 12

प्रतीकात्मक अवकलन में ये समर्थित हैं:

  • +, -, *, / और घात; योग, गुणनफल, भागफल, घात और शृंखला के अवकलन नियमों के अनुसार
  • फ़ंक्शन sin, cos, tan, sinh, cosh, exp, ln और sqrt
  • अन्य नाम, जिन्हें स्थिरांक के रूप में माना जाता है और परिणाम में नाम के रूप में रहते हैं

नोट में हर नाम का संख्यात्मक मान देना ज़रूरी नहीं है। इसलिए दूसरे प्रतीकों वाले सूत्र का भी अवकलन कर सकते हैं:

calc
derivative(a*x^2, x) परिणाम (a*(2*(x^(2-1))))

abs, log या अपने परिभाषित फ़ंक्शन जैसे अन्य फ़ंक्शन त्रुटि देते हैं। उनके लिए नीचे दी संख्यात्मक विधि इस्तेमाल करें। निकला सूत्र मूल अभिव्यक्ति के परिभाषित होने की सीमाएँ अलग से नहीं बताता। sqrt(x) का अवकलज केवल वहाँ लागू होता है जहाँ sqrt(x) परिभाषित है, भले ही (1/(2*sqrt(x))) अपने आप में अलग सूत्र जैसा दिखे।

संख्यात्मक अवकलन

एक तीसरे तर्क के साथ, derivative उस बिंदु पर एक संख्यात्मक मूल्य के रूप में ढलान देता हैः

calc
derivative(x^3, x, 2) परिणाम 12
differentiate(sin(x), x, 0) परिणाम 1
derivative(sqrt(x), x, 4) परिणाम 0.25
height(t) = 20*t - 4.9*t^2
derivative(height(t), t, 1) परिणाम 10.2

यह फ़ॉर्म उस फ़ंक्शनों के साथ काम करता है जिन्हें आपने नोट में परिभाषित किया है, जैसे ऊपर height, जो प्रतीकात्मक रूप नहीं कर सकता। क्योंकि यह एक संख्यात्मक मान निकालता है, अभिव्यक्ति में हर दूसरा नाम एक मान की आवश्यकता रखता है। यही बात sum, product, solve और integrate के लिए भी लागू होती है:

calc
derivative(a*x^2, x, 2) परिणाम Unsupported: Unknown name: a
a = 3
derivative(a*x^2, x, 2) परिणाम 12

उत्तर बिंदु के दोनों ओर के पास के मानों से निकला अनुमान है। वास्तविक ढाल सरल संख्या हो तो Varlig वही संख्या सहेजता है, जिससे सटीक समानता की तुलना काम करती है। exp(x) की ढाल जैसे अपरिमेय मान अपने सभी अंक रखते हैं; उनकी तुलना में स्वीकार्य त्रुटि सीमा इस्तेमाल करें:

calc
derivative(x^3, x, 2) == 12 परिणाम true
abs(derivative(exp(x), x, 1) - e) < 1e-6 परिणाम true

अभिव्यक्ति को चिकनी होना चाहिए, बिना किसी कोने या अंतराल के, बिंदु के आसपास के क्षेत्र में। derivative(abs(x), x, 0) एक त्रुटि है क्योंकि abs में शून्य पर एक कोना है, और derivative(sqrt(x), x, 0) एक त्रुटि है क्योंकि sqrt शून्य के बाईं ओर परिभाषित नहीं है।

निश्चित समाकलन

calc
integrate(x^2, x, 0, 3) परिणाम 9
integrate(sin(x), x, 0, pi) परिणाम 2
integrate(x^2, x, 3, 0) परिणाम -9
integrate(4/(1 + x^2), x, 0, 1) परिणाम 3.1415926536
# Distance fallen in 3 s: integrate the speed, 9.8t m/s
integrate(9.8*t, t, 0, 3) परिणाम 44.1

आर्ग्युमेंट का क्रम अभिव्यक्ति, चर, निचली सीमा और ऊपरी सीमा है, ठीक sum की तरह। उत्तर दोनों सीमाओं के बीच वक्र के नीचे का चिह्न सहित क्षेत्रफल है। सीमाएँ बदल देने पर चिह्न उलटता है और बराबर सीमाओं पर उत्तर शून्य होता है। नोट में अपने परिभाषित फ़ंक्शन का भी समाकल निकाल सकते हैं, जैसे integrate(power(t), t, 0, 4)।

integrate संख्यात्मक विधि से काम करता है, इसलिए कुछ सीमाएँ हैं:

  • अनिश्चित समाकलन उपलब्ध नहीं है: हमेशा संख्या मिलती है, सूत्र नहीं।
  • दोनों सीमाएँ परिमित संख्याएँ होनी चाहिए; अनंत तक समाकल नहीं निकाल सकते।
  • अभिव्यक्ति को पूरी सीमा में परिभाषित किया जाना चाहिए। integrate(1/sqrt(x), x, 0, 1) एक त्रुटि है, क्योंकि 1/sqrt(0) शून्य से विभाजित करता है, भले ही क्षेत्र स्वयं परिमित हो।
  • अचानक छलाँग, तीखे शिखर या बहुत तेज़ दोलन वाली अभिव्यक्तियाँ अशुद्ध उत्तर या त्रुटि दे सकती हैं।
  • इकाइयों को स्वीकार नहीं किया जाता है, इसलिए उन्हें एक टिप्पणी में छोड़ दें, जैसा कि पिछले उदाहरण में है।

एल्गोरिदम और अभिसरण

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

solve द्विभाजन विधि इस्तेमाल करता है: वह अंतराल को बार-बार आधा करता है और वह आधा रखता है जिसमें चिह्न बदलता है। left - right का मान शून्य से अधिकतम 10⁻¹⁰ दूर हो और अंतराल पर्याप्त छोटा हो, तो रुक जाता है। 128 बार आधा करने के बाद भी हल न मिले तो त्रुटि देता है।

प्रतीकात्मक derivative बिना सरलीकरण के मानक नियम चरण-दर-चरण लागू करता है। परिणाम अधिकतम 8,192 अक्षर का हो सकता है। यह पूर्ण कंप्यूटर बीजगणित प्रणाली नहीं है।

संख्यात्मक derivative छोटे होते कदमों पर केंद्रीय अंतरों की तुलना करता है और दोनों ओर से ढाल अलग-अलग जाँचता है। उनमें मेल न हो या पास का कोई मान अपरिभाषित हो तो अनुमान लगाने के बजाय त्रुटि देता है।

integrate अनुकूली 7-बिंदु और 15-बिंदु Gauss–Kronrod नियम इस्तेमाल करता है। अंतराल के हर हिस्से पर दोनों अनुमानों की तुलना करके सबसे अधिक अनुमानित त्रुटि वाले हिस्से को बाँटता है। यह तब तक चलता है जब तक कुल अनुमानित त्रुटि 10⁻⁹ × max(1, |answer|) से कम न हो जाए। अधिकतम 2,048 विभाजन, विभाजन के 20 स्तर और साझा सीमा में 100,000 चरण अनुमत हैं। नमूना बिंदु बराबर दूरी पर नहीं होते, इसलिए 0 से 1 तक cos(128*pi*x) जैसी तेज़ दोलन वाली अभिव्यक्ति को स्थिरांक समझने के बजाय उसका समाकल लगभग शून्य मिलता है। त्रुटि का अनुमान फिर भी व्यावहारिक अनुमान है, कठोर प्रमाण नहीं; विलक्षणता या असततता वाली अभिव्यक्तियों के उत्तर सावधानी से लें।

पूर्ण नियम उन्नत गणित संदर्भ में हैं।

इसे एक साथ रखना

यहाँ एक भौतिकी गृहकार्य समस्या पर एक जाँच है: एक गेंद को 19.6 m/s की गति से सीधे ऊपर फेंका गया, गुरुत्वाकर्षण 9.8 m/s² के रूप में लिया गया:

calc
# Height in metres after t seconds
height(t) = 19.6*t - 4.9*t^2
velocity(t) = 19.6 - 9.8*t
# Lands when the height is back to zero (skip t = 0)
landing = solve(height(t) = 0, t, 1, 10) परिणाम 4
# Speed after 1 second, from the slope of the height
derivative(height(t), t, 1) परिणाम 9.8
# Highest point, where the velocity is zero
peak = solve(velocity(t) = 0, t, 0, landing) परिणाम 2
height(peak) परिणाम 19.6
# Check: integrating the velocity up to the peak gives the same height
integrate(velocity(t), t, 0, peak) परिणाम 19.6

गेंद 4 सेकंड बाद ज़मीन पर आती है और 2 सेकंड पर 19.6 m ऊँची पहुँचती है। landing पंक्ति में निचली सीमा 1 रखने से solve, t = 0 वाले दूसरे मूल से दूर रहता है। आखिरी पंक्ति वेग का समाकल निकालकर ऊँचाई की दूसरे तरीके से पुष्टि करती है।