C भाषा मा वर्गमूल निकाल्ने तरिका: sqrt फङ्क्शन र न्यूटन विधि

1. C भाषा मा वर्गमूल निकाल्ने तरिका: सारांश र मूलभूत「sqrt」फलन

C भाषामा, संख्याको वर्गमूललाई सजिलै गणना गर्न सकिने sqrt फलन मानक पुस्तकालयमा उपलब्ध छ। यसले, गणना जटिल हुन सक्ने वर्गमूललाई प्रभावकारी रूपमा निकाल्न सकिन्छ। यस लेखमा, sqrt फलनको मूलभूत प्रयोग विधि र यसको प्रयोगका दृश्यहरूबारे विस्तृत रूपमा व्याख्या गर्नेछौं। साथै, आफ्नै एल्गोरिदम प्रयोग गरेर वर्गमूल निकाल्ने तरिकाहरू पनि प्रस्तुत गर्नेछौं, जसले शुरुआतीदेखि उन्नत प्रयोगकर्तासम्मलाई उपयोगी हुनेछ।

2. वर्गमूल निकाल्ने आधारभूत विधि

पहिले, C भाषा मा वर्गमूल गणना गर्ने आधारभूत विधि बारे व्याख्या गर्छौं।

sqrt फलनको सारांश र प्रयोग

sqrt फलन math.h लाइब्रेरीमा समावेश गरिएको फलन हो, जुन कुनै पनि संख्याको वर्गमूल गणना गर्न सक्छ। फलनको स्वरूप तलको जस्तै छ।

#include <math.h>

double sqrt(double x);

यो फलनले, आर्ग्युमेन्टको रूपमा पास गरिएको x को वर्गमूल फिर्ता गर्छ।

आधारभूत प्रयोग उदाहरण

यहाँ, प्रयोगकर्ताले इनपुट गरेको संख्याको वर्गमूल गणना गरी देखाउने कार्यक्रम प्रस्तुत गरिन्छ।

#include <stdio.h>
#include <math.h>

int main() {
    double num;
    printf("कृपया संख्या प्रविष्ट गर्नुहोस्: ");
    scanf("%lf", &num);

    if (num < 0) {
        printf("ऋणात्मक संख्याको वर्गमूल गणना गर्न सकिँदैन।\n");
    } else {
        printf("वर्गमूल: %lf\n", sqrt(num));
    }

    return 0;
}

यो कार्यक्रममा, प्रयोगकर्ताले इनपुट गरेको संख्याको वर्गमूल गणना गरी देखाइन्छ। यदि नकारात्मक संख्या इनपुट गरियो भने, त्रुटि सन्देश देखाइन्छ र कार्यक्रम समाप्त हुन्छ।

नकारात्मक संख्याको प्रक्रिया र ध्यान दिनुपर्ने बुँदाहरू

sqrt फलन नकारात्मक संख्यामा परिभाषित छैन, त्यसैले आर्ग्युमेन्टमा नकारात्मक संख्या पास गर्दा त्रुटि उत्पन्न हुन्छ। त्यसैले, इनपुट मान नकारात्मक छैन भनी जाँच गर्ने प्रक्रिया आवश्यक छ। यदि नकारात्मक संख्याको वर्गमूल निकाल्न चाहनुहुन्छ भने, जटिल संख्याहरूलाई ह्यान्डल गर्ने complex.h लाइब्रेरीको csqrt फलन प्रयोग गर्नुहोस्।

3. अनुप्रयोग: वर्गमूल गणनाका विभिन्न उपयोग दृश्यहरू

sqrt function ले दैनिक संख्यात्मक विश्लेषण र वैज्ञानिक गणनामा बारम्बार प्रयोग गरिन्छ। यहाँ, यसको प्रतिनिधि प्रयोग उदाहरणहरू प्रस्तुत गरिन्छ।

युक्लिडियन दूरीको गणना

युक्लिडियन दूरी भनेको, द्वि-आयामिक वा त्रि-आयामिक स्थानमा दुई बिन्दुहरूबीचको दूरी हो, जसलाई वर्गमूल प्रयोग गरेर गणना गरिन्छ। उदाहरणका लागि, द्वि-आयामिक समतलमा दुई बिन्दु (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("यूक्लिड दूरी: %lf
", distance);

    return 0;
}

ग्राफिक्स प्रोग्रामिङमा प्रयोग

भेक्टरको लम्बाइ गणना गर्दा पनि sqrt function प्रयोग गरिन्छ। उदाहरणका लागि, द्वि-आयामिक भेक्टर (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("भेक्टरको लम्बाइ: %lf
", length);

    return 0;
}

समिश्र संख्याको वर्गमूल

समिश्र संख्याको वर्गमूल सामान्य sqrt function द्वारा गणना गर्न सकिँदैन, त्यसैले complex.h लाइब्रेरीको csqrt function प्रयोग गरिन्छ। तल समिश्र संख्याको वर्गमूल गणना गर्ने कोड छ।

#include <stdio.h>
#include <complex.h>

int main() {
    double complex z = -4.0 + 0.0 * I;
    double complex result = csqrt(z);
    printf("वर्गमूल: %.2f + %.2fi
", creal(result), cimag(result));

    return 0;
}

4. मानक लाइब्रेरी बाहेकको वर्गमूल गणना

वर्गमूल निकाल्दा मानक sqrt फङ्क्शन प्रयोग नगरी, आफ्नै एल्गोरिद्मले कार्यान्वयन गर्न सम्भव छ। यहाँ, Newton विधि प्रयोग गरेको कार्यान्वयन उदाहरण प्रस्तुत गर्दछौं।

Newton विधि द्वारा आफ्नै कार्यान्वयन

Newton विधि (Newton–Raphson विधि) संख्यात्मक गणनामा वर्गमूल निकाल्ने प्रसिद्ध विधिहरूमध्ये एक हो। तल Newton विधि प्रयोग गरेर वर्गमूलको गणना उदाहरण प्रस्तुत गरिएको छ।

#include <stdio.h>

double mySqrt(double num) {
    double x = num;
    double dx;

    while (1) {
        dx = (x * x - num) / (2.0 * x);
        if (dx * dx < 0.00001) break;
        x -= dx;
    }

    return x;
}

int main() {
    double num = 9.0;
    printf("वर्गमूल: %lf
", mySqrt(num));

    return 0;
}

यो कोडले दिइएको संख्याको वर्गमूललाई Newton विधि द्वारा गणना गर्दछ। शर्त पूरा नहुन्जेल लूप दोहोर्याइन्छ, क्रमशः समाधान नजिक पुग्दै जान्छ।

5. वर्गमूल गणनाका फाइदाहरू र प्रतिबन्धहरू

sqrtफङ्क्शन प्रयोग गर्दा धेरै फाइदाहरू छन्, तर केही प्रतिबन्धहरू पनि बुझ्न आवश्यक छ।

sqrt फङ्क्शनको फाइदाहरू

  • मानक पुस्तकालयमा उपलब्ध: अतिरिक्त स्थापना आवश्यक छैन, र वातावरणमा निर्भर हुँदैन।
  • दक्षता: संख्यात्मक गणनाका लागि अनुकूलित भएकोले, प्रक्रिया गति छिटो हुन्छ।
  • शुद्धता: फ्लोटिङ पोइन्ट गणनामा शुद्धता सुनिश्चित गरिन्छ।

sqrt फङ्क्शनको प्रतिबन्धहरू र उपायहरू

  • नकारात्मक संख्याको प्रतिबन्ध: नकारात्मक संख्याको वर्गमूल गणना गर्दा त्रुटि उत्पन्न हुन्छ। यदि जटिल संख्याको वर्गमूल आवश्यक छ भने, complex.h को csqrt फङ्क्शन प्रयोग गर्नुहोस्।
  • फ्लोटिङ पोइन्ट शुद्धता: अत्यन्त साना वा ठूला मानहरूमा गणना गर्दा त्रुटि हुन सक्छ। यस्तो अवस्थामा, एल्गोरिद्मको सुधार आवश्यक हुन्छ।

6. सारांश

यस लेखमा, C भाषा प्रयोग गरेर वर्गमूल निकाल्ने विधि को रूपमा, मानक पुस्तकालयको sqrt फलनबाट सुरु गरी, युक्लिडियन दूरी र ग्राफिक्स प्रोग्रामिङ जस्ता प्रयोगका उदाहरणहरू प्रस्तुत गरियो। साथै, न्यूटन विधि प्रयोग गरेर आफ्नै वर्गमूल गणना बारे पनि व्याख्या गरियो, विभिन्न विधिहरू र तिनका प्रयोगका उदाहरणहरूलाई समेटियो।

वर्गमूल गणना C भाषाको आधारभूत संख्यात्मक प्रक्रिया मध्ये एक हो, तर यसको प्रयोग क्षेत्र अत्यन्तै व्यापक छ।