१. C मा वर्गमूल कसरी गणना गर्ने: अवलोकन र आधारभूत sqrt फङ्क्शन
C प्रोग्रामिङ भाषाले आफ्नो मानक लाइब्रेरीमा sqrt फङ्क्शन समावेश गर्दछ, जसले तपाईंलाई सजिलै सङ्ख्यात्मक मानको वर्गमूल गणना गर्न अनुमति दिन्छ। यसले वर्गमूलको कुशल गणना सम्भव बनाउँछ, जुन अन्यथा जटिल हुन सक्छ। यस लेखमा तपाईंले sqrt फङ्क्शन कसरी प्रयोग गर्ने सिक्नुहुनेछ, विभिन्न अनुप्रयोग परिदृश्यहरू अन्वेषण गर्नुहुनेछ, र तपाईंको आफ्नै एल्गोरिदम कार्यान्वयन गर्ने तरिका पनि हेर्नुहुनेछ—यसलाई शुरुआतीदेखि उन्नत प्रोग्रामरहरूका लागि उपयोगी बनाउँदै।
२. वर्गमूल गणना गर्ने आधारभूत विधि
पहिले, C मा वर्गमूल गणना गर्ने आधारभूत विधि व्याख्या गरौँ।
sqrt फङ्क्शनको अवलोकन र प्रयोग
sqrt फङ्क्शन math.h लाइब्रेरीमा प्रदान गरिएका फङ्क्शनहरू मध्ये एक हो, र यो कुनै पनि सङ्ख्यात्मक मानको वर्गमूल गणना गर्दछ। फङ्क्शनको प्रोटोटाइप निम्नानुसार छ:
#include <math.h>
double sqrt(double x);
यो फङ्क्शनले पास गरिएको तर्क x को वर्गमूल फर्काउँछ।
आधारभूत प्रयोग उदाहरण
यहाँ एक कार्यक्रम छ जसले प्रयोगकर्ताद्वारा प्रवेश गरिएको सङ्ख्याको वर्गमूल गणना गर्दछ र मुद्रण गर्दछ।
#include <stdio.h>
#include <math.h>
int main() {
double num;
printf("Enter a number: ");
scanf("%lf", &num);
if (num < 0) {
printf("Cannot compute square root of a negative number.n");
} else {
printf("Square root: %lfn", sqrt(num));
}
return 0;
}
यस कार्यक्रममा प्रयोगकर्ताले सङ्ख्या प्रविष्ट गर्दछ, त्यसपछि कार्यक्रमले यसको वर्गमूल गणना गर्दछ र प्रदर्शित गर्दछ। यदि नकारात्मक सङ्ख्या प्रविष्ट गरियो भने, त्रुटि सन्देश प्रदर्शित हुन्छ र कार्यक्रम समाप्त हुन्छ।
नकारात्मक सङ्ख्याहरू ह्यान्डल गर्ने र महत्वपूर्ण टिप्पणीहरू
sqrt फङ्क्शन नकारात्मक तर्कहरूका लागि परिभाषित छैन, त्यसैले नकारात्मक सङ्ख्या पास गर्दा त्रुटि उत्पन्न हुन्छ। त्यसैले तपाईंलाई प्रविष्ट मान नकारात्मक छ वा छैन जाँच गर्ने तर्क समावेश गर्न आवश्यक छ। यदि तपाईंलाई नकारात्मक सङ्ख्याहरू (जटिल सङ्ख्याहरू) को वर्गमूल गणना गर्न आवश्यक छ भने, complex.h लाइब्रेरीबाट csqrt फङ्क्शन प्रयोग गर्नुहोस्।
३. अनुप्रयोगहरू: वर्गमूल गणनाका विभिन्न प्रयोग-केसहरू
sqrt फङ्क्शन सङ्ख्यात्मक विश्लेषण र वैज्ञानिक कम्प्युटिङमा बारम्बार प्रयोग हुन्छ। यहाँ हामी प्रतिनिधि अनुप्रयोग उदाहरणहरू प्रस्तुत गर्दछौँ।
युक्लिडियन दूरी गणना गर्ने
युक्लिडियन दूरीले २-डी वा ३-डी स्पेसमा दुई बिन्दुहरूबीचको दूरी प्रतिनिधित्व गर्दछ, र यो वर्गमूल प्रयोग गरेर गणना गरिन्छ। उदाहरणका लागि, २-डी विमानमा दुई बिन्दुहरू (x1, y1) र (x2, y2) का लागि, युक्लिडियन दूरी निम्नानुसार गणना गरिन्छ:
#include <stdio.h>
#include <math.h>
int main() {
double x1 = 1.0, y1 = 2.0;
double x2 = 4.0, y2 = 6.0;
double distance = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
printf("Euclidean distance: %lfn", distance);
return 0;
}
ग्राफिक्स प्रोग्रामिङमा प्रयोग
sqrt फङ्क्शन भेक्टरको लम्बाइ गणना गर्दा पनि प्रयोग हुन्छ। उदाहरणका लागि, २-डी भेक्टर (vx, vy) का लागि, यसको लम्बाइ निम्नानुसार गणना गरिन्छ:
#include <stdio.h>
#include <math.h>
int main() {
double vx = 3.0, vy = 4.0;
double length = sqrt(vx * vx + vy * vy);
printf("Vector length: %lfn", length);
return 0;
}
जटिल सङ्ख्याहरूको वर्गमूल
मानक sqrt फङ्क्शनले जटिल सङ्ख्याहरूको वर्गमूल गणना गर्न सक्दैन किनकि तपाईंले complex.h लाइब्रेरीबाट csqrt फङ्क्शन प्रयोग गर्नुपर्छ। यहाँ जटिल सङ्ख्याको वर्गमूल गणना गर्ने कोड उदाहरण छ:
#include <stdio.h>
#include <complex.h>
int main() {
double complex z = -4.0 + 0.0 * I;
double complex result = csqrt(z);
printf("Square root: %.2f + %.2fin", creal(result), cimag(result));
return 0;
}
४. मानक लाइब्रेरी बिना वर्गमूल गणना
मानक sqrt फङ्क्शन प्रयोग नगरी पनि आफ्नै एल्गोरिदम कार्यान्वयन गरेर वर्गमूल गणना सम्भव छ। यहाँ हामी न्यूटनको विधि प्रयोग गरेर कार्यान्वयन उदाहरण प्रस्तुत गर्दछौँ।
न्यूटनको विधि प्रयोग गरेर कस्टम कार्यान्वयन
न्यूटनको विधि (न्यूटन–राफ्सन विधि) संख्यात्मक हुने प्रसिद्ध प्रविधि हो। तल न्यूटनको विधि प्रयोग गरेर वर्गमूल गणना गर्ने एउटा उदाहरण दिइएको छ।
#include <stdio.h>
double mySqrt(double num) {
double x = num;
double dx;
if (num == 0) return 0;
while (1) {
dx = (x * x - num) / (2.0 * x);
if (fabs(dx) < 0.00001) break;
x -= dx;
}
return x;
}
int main() {
double num = 9.0;
printf("Square root: %lfn", mySqrt(num));
return 0;
}
यो कोडले न्यूटनको विधि प्रयोग गरेर दिइएको संख्याको वर्गमूल गणना गर्दछ। यो शर्त पूरा नहुन्जेल लूप दोहोर्याउँछ र क्रमशः समाधान नजिक पुग्छ।

५. वर्गमूल गणनाका फाइदाहरू र सीमाहरू
sqrt फलन प्रयोग गर्दा धेरै फाइदाहरू प्राप्त हुन्छन्, तर केही सीमाहरू पनि बुझ्न आवश्यक छ।
sqrt फलनका फाइदाहरू
- मानक पुस्तकालयद्वारा प्रदान गरिएको : अतिरिक्त स्थापना आवश्यक छैन, वातावरण-स्वतन्त्र।
- दक्षता : संख्यात्मक गणनाका लागि अनुकूलित, जसले प्रक्रिया गति तेज बनाउँछ।
- सटीकता : फ्लोटिङ‑प्वाइन्ट गणनामा शुद्धता सुनिश्चित गरिएको छ।
sqrt फलनका सीमाहरू र समाधानहरू
- नकारात्मक संख्यासँगको प्रतिबन्ध : नकारात्मक संख्याको वर्गमूल गणना गर्दा त्रुटि उत्पन्न हुन्छ। यदि तपाईंलाई जटिल संख्याहरूको वर्गमूल चाहिन्छ भने,
complex.hबाटcsqrtफलन प्रयोग गर्नुहोस्। - फ्लोटिङ‑प्वाइन्ट सटीकता : अत्यन्त साना वा ठूला मानहरू गणना गर्दा त्रुटिहरू हुन सक्छन्। यस्ता अवस्थामा तपाईंले एल्गोरिद्मिक समायोजनहरू गर्नुपर्छ।
६. सारांश
यस लेखमा हामीले C मा वर्गमूल कसरी गणना गर्ने भन्ने कुरा समेट्यौं, मानक पुस्तकालयको sqrt फलनबाट सुरु गरेर युक्लिडियन दूरी र ग्राफिक्स प्रोग्रामिङ जस्ता अनुप्रयोग उदाहरणहरू प्रस्तुत गर्यौं। हामीले न्यूटनको विधि प्रयोग गरेर अनुकूलित वर्गमूल गणनाको पनि व्याख्या गर्यौं, जसले विभिन्न विधिहरू र तिनका प्रयोगहरूलाई समेट्छ।
वर्गमूल गणना C मा आधारभूत संख्यात्मक प्रक्रिया कार्यहरूमध्ये एक हो, तर यसको प्रयोग क्षेत्र अत्यन्त व्यापक छ।


