Python Tutorial 18:Quadratic Equations solve in Bengali
গণিত ও প্রোগ্রামিংয়ের মেলবন্ধন: কোয়াড্রেটিক ইকুয়েশনের মূল নির্ণয়
প্রোগ্রামিং শুধু ডেটা সাজানো বা অ্যাপ তৈরি করা নয়, এটি জটিল গাণিতিক সমস্যা সমাধানেরও একটি শক্তিশালী মাধ্যম। আজকের এই পোস্টে আমরা গণিতের একটি অত্যন্ত গুরুত্বপূর্ণ অধ্যায়—কোয়াড্রেটিক ইকুয়েশন (Quadratic Equation)—এর সমাধান পাইথনের মাধ্যমে বের করার চ্যালেঞ্জ গ্রহণ করব।
কোয়াড্রেটিক ইকুয়েশন কী?
যেকোনো সমীকরণ যা ax² + bx + c = 0
এই সাধারণ আকারে লেখা যায়, তাকে কোয়াড্রেটিক ইকুয়েশন বা দ্বিঘাত সমীকরণ বলা হয়। এখানে a
, b
, এবং c
হলো সহগ (coefficients) বা ধ্রুবক, যেখানে a
-এর মান শূন্য হতে পারে না।
ইকুয়েশনের "মূল" বা "রুট" (Roots) বলতে কী বোঝায়?
একটি কোয়াড্রেটিক ইকুয়েশনের মূল বা রুট হলো x
-এর সেই মান(গুলো) যা সমীকরণটিকে সিদ্ধ করে, অর্থাৎ x
-এর ওই মান বসালে সমীকরণের ফলাফল শূন্য হয়। একটি কোয়াড্রেটিক ইকুয়েশনের দুটি রুট থাকে।
মূল নির্ণয়ের বিশ্বজনীন সূত্র
গণিতে রুট বের করার জন্য একটি প্রতিষ্ঠিত সূত্র রয়েছে: x = (-b ± √(b² - 4ac)) / 2a
।
এখানে ±
চিহ্নটি বোঝায় যে আমরা দুটি রুট পাব:
- প্রথম রুট:
(-b + √(b² - 4ac)) / 2a
- দ্বিতীয় রুট:
(-b - √(b² - 4ac)) / 2a
সূত্রকে পাইথন কোডে রূপান্তর
এই জটিল সূত্রটিকে পাইথন এক্সপ্রেশনে পরিণত করার জন্য আমরা math.sqrt()
ফাংশন এবং বন্ধনী ( )
ব্যবহার করব।
পাইথন এক্সপ্রেশন:
root_one = (-coeff_b + math.sqrt(discriminant)) / (2*coeff_a)
root_two = (-coeff_b - math.sqrt(discriminant)) / (2*coeff_a)
সম্পূর্ণ পাইথন প্রোগ্রাম
চলুন, x² - 8x + 12 = 0
সমীকরণটির জন্য একটি সম্পূর্ণ প্রোগ্রাম লিখি।
# ধাপ ১: math মডিউল ইম্পোর্ট করা
import math
# ধাপ ২: সহগগুলোর (coefficients) মান নির্ধারণ করা
coeff_a = 1
coeff_b = -8
coeff_c = 12
# ধাপ ৩: ডিসক্রিমিন্যান্ট অংশটি গণনা করা
discriminant = (coeff_b**2) - (4 * coeff_a * coeff_c)
# ডিসক্রিমিন্যান্ট ধনাত্মক হলেই কেবল বাস্তব রুট পাওয়া যাবে
if discriminant >= 0:
root_one = (-coeff_b + math.sqrt(discriminant)) / (2 * coeff_a)
root_two = (-coeff_b - math.sqrt(discriminant)) / (2 * coeff_a)
# ধাপ ৪: ফলাফল প্রিন্ট করা
print(f"সমীকরণটির সহগগুলো হলো: a={coeff_a}, b={coeff_b}, c={coeff_c}")
print(f"নির্ণীত রুট দুটি হলো: {root_one} এবং {root_two}")
else:
print("এই সমীকরণের কোনো বাস্তব রুট নেই।")
প্রোগ্রামটির আউটপুট:
সমীকরণটির সহগগুলো হলো: a=1, b=-8, c=12
নির্ণীত রুট দুটি হলো: 6.0 এবং 2.0
উপসংহার
এই চ্যালেঞ্জটি সমাধানের মাধ্যমে আমরা কেবল একটি গাণিতিক সমস্যার সমাধানই করিনি, বরং আরও অনেক কিছু শিখেছি:
- একটি জটিল গাণিতিক সূত্রকে কীভাবে ধাপে ধাপে ভেঙে পাইথন কোডে রূপান্তর করতে হয়।
math.sqrt()
ফাংশনের ব্যবহার।- নির্ভুল গণনার জন্য বন্ধনী
( )
-এর অপরিহার্যতা। - শর্ত (
if
) ব্যবহার করে কোডকে আরও শক্তিশালী করা।
a
, b
, এবং c
-এর মান দিয়ে প্রোগ্রামটি পরীক্ষা করুন।