কম্পিউটার টিউটোরিয়াল

দ্বিঘাত সমীকরণের মূল বের করা - JavaScript

দ্বিঘাত সমীকরণ ax² + bx + c = 0-এর বাস্তব মূল বের করা।

ফর্মুলা

বিভেদক (Discriminant): D = b² - 4ac

  • D > 0: দুটি বাস্তব মূল
  • D = 0: একটি বাস্তব মূল (ডাবল)
  • D < 0: বাস্তব মূল নেই (কомп্লেক্স)

মূল: x = (-b ± √D) / 2a

সমাধান

const findRoots = (coefficients) => {
  const [a, b, c] = coefficients;
  
  // a শূন্য হলে লিনিয়ার ইকুয়েশন
  if (a === 0) {
    if (b === 0) return c === 0 ? 'Infinite solutions' : 'No solution';
    return [-c / b];
  }
  
  const discriminant = b * b - 4 * a * c;
  
  // বাস্তব মূল নেই
  if (discriminant < 0) {
    return false; // বা { complex: true, roots: [...] }
  }
  
  const sqrtD = Math.sqrt(discriminant);
  const denominator = 2 * a;
  
  const x1 = (-b + sqrtD) / denominator;
  const x2 = (-b - sqrtD) / denominator;
  
  // D === 0 হলে দুটি একই হবে
  return discriminant === 0 ? [x1] : [x1, x2];
};

// টেস্ট
console.log(findRoots([3, 12, 2]));   // [-0.174..., -3.825...]
console.log(findRoots([1, -5, 6]));   // [3, 2] (x²-5x+6=0)
console.log(findRoots([1, 2, 1]));    // [-1] (x+1)²=0
console.log(findRoots([1, 0, 1]));    // false (x²+1=0, কমপ্লেক্স)

কমপ্লেক্স রুট হ্যান্ডলিং

const findRootsComplex = (a, b, c) => {
  const discriminant = b * b - 4 * a * c;
  const denom = 2 * a;
  const realPart = -b / denom;
  
  if (discriminant >= 0) {
    const sqrtD = Math.sqrt(discriminant);
    return [
      { real: realPart + sqrtD / denom, imag: 0 },
      { real: realPart - sqrtD / denom, imag: 0 }
    ];
  } else {
    const sqrtD = Math.sqrt(-discriminant);
    return [
      { real: realPart, imag: sqrtD / denom },
      { real: realPart, imag: -sqrtD / denom }
    ];
  }
};

উৎপাদন

[ -0.17425814164944628, -3.825741858350554 ]
  1. জাভাস্ক্রিপ্ট const কীওয়ার্ড

  2. জাভাস্ক্রিপ্টে Const এবং Let এর পার্থক্য

  3. জাভাস্ক্রিপ্টে সব সংঘর্ষের পর অবস্থা নির্ণয়

  4. C প্রোগ্রাম: দ্বিঘাত সমীকরণের মূল বের করা