परिचय

समीकरण गणित की रोटी और मक्खन हैं। चाहे आप भौतिकी की गणना कर रहे हों, एल्गोरिदम को संभाल रहे हों, या बस अभ्यास कर रहे हों, कोड के साथ उन्हें हल करना जानना बहुत उपयोगी है। आइए चार मामलों पर नज़र डालते हैं:

  1. रैखिक समीकरण (ax + b = 0)
  2. द्विघात समीकरण (ax² + bx + c = 0)
  3. दो रैखिक समीकरणों की प्रणाली (दो अज्ञात)
  4. घन समीकरण (ax³ + bx² + cx + d = 0)

प्रत्येक के लिए, हम गणितीय तर्क से शुरू करेंगे, फिर C++ और Python कोड में कूदेंगे।

1. रैखिक समीकरण (ax + b = 0)

कैसे हल करें (गणित):

  • b को दूसरी तरफ ले जाएं: ax = -b।
  • यदि a = 0 और b = 0 → अनंत समाधान।
  • यदि a = 0 और b ≠ 0 → कोई समाधान नहीं।
  • अन्यथा, x = -b/a।

C++:

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double a, b;
    cin >> a >> b;

    if (fabs(a) < 1e-9) {
        if (fabs(b) < 1e-9) cout << "अनंत समाधान\n";
        else cout << "कोई समाधान नहीं\n";
    } else {
        cout << "x = " << -b/a << endl;
    }
    return 0;
}

Python:

a, b = map(float, input("a, b दर्ज करें: ").split())

if abs(a) < 1e-9:
    if abs(b) < 1e-9:
        print("अनंत समाधान")
    else:
        print("कोई समाधान नहीं")
else:
    print("x =", -b/a)

2. द्विघात समीकरण (ax² + bx + c = 0)

कैसे हल करें (गणित):

  • अवकलन की गणना करें: Δ = b² − 4ac।
  • यदि Δ < 0: कोई वास्तविक समाधान नहीं।
  • यदि Δ = 0: एक डबल मूल x = −b/(2a)।
  • यदि Δ > 0: दो मूल x₁, x₂ द्विघात सूत्र का उपयोग करके।
  • यदि a = 0: रैखिक में घटित करें।

C++:

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double a, b, c;
    cin >> a >> b >> c;

    if (fabs(a) < 1e-9) {
        cout << "x = " << -c/b << "\n";
    } else {
        double delta = b*b - 4*a*c;
        if (delta < 0) cout << "कोई वास्तविक मूल नहीं\n";
        else if (fabs(delta) < 1e-9) cout << "डबल मूल x = " << -b/(2*a) << "\n";
        else {
            cout << "x1 = " << (-b + sqrt(delta))/(2*a) << "\n";
            cout << "x2 = " << (-b - sqrt(delta))/(2*a) << "\n";
        }
    }
}

Python:

import math

a, b, c = map(float, input("a, b, c दर्ज करें: ").split())
if abs(a) < 1e-9:
    print("x =", -c/b)
else:
    delta = b*b - 4*a*c
    if delta < 0:
        print("कोई वास्तविक मूल नहीं")
    elif abs(delta) < 1e-9:
        print("डबल मूल x =", -b/(2*a))
    else:
        x1 = (-b + math.sqrt(delta))/(2*a)
        x2 = (-b - math.sqrt(delta))/(2*a)
        print("x1 =", x1, "x2 =", x2)

3. दो रैखिक समीकरणों की प्रणाली

रूप:

ax + by = c
dx + ey = f

कैसे हल करें (गणित):

  • क्रेमर के नियम का उपयोग करें।
  • निर्धारक: D = ae - bd।
  • यदि D ≠ 0: x = (ce - bf) / D y = (af - cd) / D
    • x = (ce - bf) / D
    • y = (af - cd) / D
  • यदि D = 0: यदि दोनों Dx = 0 और Dy = 0 → अनंत समाधान। अन्यथा → कोई समाधान नहीं।
    • यदि दोनों Dx = 0 और Dy = 0 → अनंत समाधान।
    • अन्यथा → कोई समाधान नहीं।

C++:

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double a,b,c,d,e,f;
    cin >> a >> b >> c >> d >> e >> f;

    double D  = a*e - b*d;
    double Dx = c*e - b*f;
    double Dy = a*f - c*d;

    if (fabs(D) < 1e-9) {
        if (fabs(Dx) < 1e-9 && fabs(Dy) < 1e-9) cout << "अनंत समाधान\n";
        else cout << "कोई समाधान नहीं\n";
    } else {
        cout << "x = " << Dx/D << ", y = " << Dy/D << "\n";
    }
}

Python:

a, b, c, d, e, f = map(float, input("a,b,c,d,e,f दर्ज करें: ").split())

D  = a*e - b*d
Dx = c*e - b*f
Dy = a*f - c*d

if abs(D) < 1e-9:
    if abs(Dx) < 1e-9 and abs(Dy) < 1e-9:
        print("अनंत समाधान")
    else:
        print("कोई समाधान नहीं")
else:
    x = Dx / D
    y = Dy / D
    print("x =", x, "y =", y)

4. घन समीकरण (ax³ + bx² + cx + d = 0)

कैसे हल करें (गणित):

  • सामान्य विधि: कार्डानो के सूत्र का उपयोग करें।
  • x² के पद को हटाने के लिए प्रतिस्थापित करें: x = t - b/(3a)।
  • कम किया गया रूप: t³ + pt + q = 0।
  • अवकलन: Δ = (q/2)² + (p/3)³। यदि Δ > 0: 1 वास्तविक मूल, 2 जटिल मूल। यदि Δ = 0: कम से कम 2 समान वास्तविक मूल। यदि Δ < 0: 3 भिन्न वास्तविक मूल।
    • यदि Δ > 0: 1 वास्तविक मूल, 2 जटिल मूल।
    • यदि Δ = 0: कम से कम 2 समान वास्तविक मूल।
    • यदि Δ < 0: 3 भिन्न वास्तविक मूल।
  • ईमानदारी से, C++ में कार्डानो के सूत्र को कोड करना थोड़ा दर्दनाक है। Python में, हम बस NumPy का उपयोग कर सकते हैं।

C++ (एक वास्तविक मूल के लिए सरलित):

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double a,b,c,d;
    cin >> a >> b >> c >> d;

    double f = ((3*c/a) - (b*b)/(a*a)) / 3;
    double g = ((2*b*b*b)/(a*a*a) - (9*b*c)/(a*a) + (27*d/a)) / 27;
    double h = g*g/4 + f*f*f/27;

    if (h > 0) {
        double R = -(g/2) + sqrt(h);
        double S = cbrt(R);
        double T = -(g/2) - sqrt(h);
        double U = cbrt(T);
        double x1 = (S+U) - (b/(3*a));
        cout << "एक वास्तविक मूल x = " << x1 << "\n";
    } else {
        cout << "कई वास्तविक मूल (पूर्ण कार्डानो की आवश्यकता)\n";
    }
}

Python (NumPy):

import numpy as np

coeffs = list(map(float, input("a, b, c, d दर्ज करें: ").split()))
roots = np.roots(coeffs)
print("मूल:", roots)

निष्कर्ष

हमने रैखिक, द्विघात, 2×2 प्रणालियों, और घन समीकरणों को हल करने के लिए गणित और कोड को कवर किया। C++ हाथ से सूत्र बनाता है; Python चीजों को संक्षिप्त रखता है (और NumPy आसानी से घन मूल खोजता है)। अपने आप प्रत्येक हल करने वाले को लागू करने का प्रयास करें ताकि आप दोनों बीजगणित और प्रोग्रामिंग कौशल विकसित कर सकें।