পাঠ ২৩ · ৫৭-এর মধ্যে · মডিউল ৫
Home / Courses / Numerical Methods / ট্র্যাপিজয়ডাল রুল

নিউটন-কোটস ইন্টিগ্রেশন — ট্র্যাপিজয়ডাল রুল

Newton-Cotes integration — trapezoidal rule
৯ মিনিট পড়া মধ্যম · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • নিউমেরিক্যাল ইন্টিগ্রেশন কী এবং কেন এটি দরকার হয়
  • ট্র্যাপিজয়ডাল রুলের জ্যামিতিক ও বীজগাণিতিক ভিত্তি — একক ও কম্পোজিট (একাধিক সাব-ইন্টারভাল) উভয় রূপে
  • একটি সত্যিকারের Python ইমপ্লিমেন্টেশন — sin(x)-এর ইন্টিগ্রাল আনুমানিক করে জানা মানের সাথে তুলনা
  • সাব-ইন্টারভাল সংখ্যা বাড়ানোর সাথে এররের O(h²) কনভারজেন্স সত্যিকারের সংখ্যা দিয়ে যাচাই

১ · কেন নিউমেরিক্যাল ইন্টিগ্রেশন দরকার

একটি ইন্টিগ্রাল ∫ₐᵇ f(x) dx জ্যামিতিকভাবে f(x)-এর গ্রাফ ও x-অক্ষের মধ্যে থাকা ক্ষেত্রফল বোঝায়। ক্যালকুলাসে আমরা এন্টিডেরিভেটিভ বের করে এটি এনালিটিক্যালি গণনা করতে শিখি — কিন্তু অসংখ্য বাস্তব-বিশ্বের ফাংশনের কোনো ক্লোজড-ফর্ম এন্টিডেরিভেটিভ নেই (যেমন e^(-x²), যা পরিসংখ্যানে নরমাল ডিস্ট্রিবিউশনে সর্বত্র ব্যবহৃত), অথবা ফাংশনটি শুধু বিচ্ছিন্ন সেন্সর-ডেটা হিসেবে পাওয়া যায়। এই দুই ক্ষেত্রেই নিউমেরিক্যাল ইন্টিগ্রেশন (একে কোয়াড্রেচারও বলা হয়) দরকার।

২ · ট্র্যাপিজয়ডাল রুল

সবচেয়ে সহজ ধারণা — [a, b] ইন্টারভালে f(x)-কে একটি সরলরেখা দিয়ে আনুমানিক করা, যা একটি ট্র্যাপিজিয়াম তৈরি করে যার ক্ষেত্রফল সহজে গণনাযোগ্য:

$$\int_a^b f(x)\,dx \approx \frac{b-a}{2}\big[f(a) + f(b)\big]$$

এই একক ট্র্যাপিজিয়াম পুরো ইন্টারভালে খুব একটা নির্ভুল হয় না যদি ইন্টারভাল বড় হয় বা ফাংশনটি বাঁকা হয়। তাই বাস্তবে কম্পোজিট ট্র্যাপিজয়ডাল রুল ব্যবহার করা হয় — ইন্টারভালটিকে nটি সমান সাব-ইন্টারভালে ভেঙে (প্রতিটির প্রস্থ h = (b-a)/n) প্রতিটিতে আলাদা ট্র্যাপিজিয়াম বসিয়ে যোগ করা:

$$\int_a^b f(x)\,dx \approx \frac{h}{2}\Big[f(x_0) + 2f(x_1) + 2f(x_2) + \cdots + 2f(x_{n-1}) + f(x_n)\Big]$$

লক্ষ্য করুন প্রতিটি ভেতরের পয়েন্ট দুইবার গণনা হয় (কারণ এটি দুটি পাশের ট্র্যাপিজিয়ামের ভাগীদার), শুধু প্রথম ও শেষ পয়েন্ট একবার গণনা হয়।

জ্যামিতিক অন্তর্দৃষ্টি
বক্ররেখাকে সরলরেখা দিয়ে আনুমানিক করলে ফাংশনটি যেখানে বাঁকা (দ্বিতীয় ডেরিভেটিভ বড়), সেখানে এরর বেশি হয় — এটাই ট্র্যাপিজয়ডাল রুলের এরর টার্মে দ্বিতীয় ডেরিভেটিভের উপস্থিতির কারণ।
এরর অর্ডার
কম্পোজিট ট্র্যাপিজয়ডাল রুলের এরর O(h²) — L21-এর সেন্ট্রাল ডিফারেন্সের মতোই একই অর্ডার, একই টেইলর-সিরিজ যুক্তি থেকে আসে।
নিউটন-কোটস পরিবার
ট্র্যাপিজয়ডাল রুল "নিউটন-কোটস" মেথডের পরিবারের সবচেয়ে সহজ সদস্য — যেখানে ফাংশনটিকে সমান-দূরত্বের পয়েন্টে পলিনোমিয়াল দিয়ে আনুমানিক করা হয় (ডিগ্রি ১ = ট্র্যাপিজয়ডাল, ডিগ্রি ২ = সিম্পসনস, L24-এ)।

৩ · সত্যিকারের ডেমো — sin(x)-এর ইন্টিগ্রাল

∫₀^π sin(x) dx-এর প্রকৃত মান জানা আছে — এন্টিডেরিভেটিভ -cos(x) ব্যবহার করে এটি ঠিক ২। আমরা কম্পোজিট ট্র্যাপিজয়ডাল রুল হাতে-লেখা কোড দিয়ে বিভিন্ন সাব-ইন্টারভাল সংখ্যা n-এ গণনা করে দেখব এরর কীভাবে সত্যিকারের মান ২-এর দিকে কনভার্জ করে।

Python
import math

def f(x):
    return math.sin(x)

a, b = 0.0, math.pi
true_val = 2.0  # sin(x)-এর ইন্টিগ্রাল 0 থেকে pi = [-cos(x)] = 2

def trapezoidal(f, a, b, n):
    h = (b - a) / n
    total = 0.5 * (f(a) + f(b))
    for i in range(1, n):
        total += f(a + i * h)
    return total * h

print(f"true integral of sin(x) from 0 to pi = {true_val}")
print()
print(f"{'n':>4} {'h':>10} {'trapezoidal':>14} {'error':>12} {'error ratio':>12}")

prev_err = None
for n in [4, 8, 16, 32, 64, 128]:
    h = (b - a) / n
    approx = trapezoidal(f, a, b, n)
    err = abs(approx - true_val)
    ratio = (prev_err / err) if prev_err else float('nan')
    print(f"{n:>4} {h:>10.6f} {approx:>14.10f} {err:>12.3e} {ratio:>12.3f}")
    prev_err = err

    
n = 4-এ এরর ১.০৩৯ × ১০⁻¹। প্রতিবার n দ্বিগুণ করার সাথে (অর্থাৎ h অর্ধেক) এরর কমছে: n=8-এ ২.৫৭৭ × ১০⁻² (অনুপাত ৪.০৩), n=16-এ ৬.৪৩০ × ১০⁻³ (অনুপাত ৪.০১), n=32-এ ১.৬০৭ × ১০⁻³ (অনুপাত ৪.০০), এবং n=128 পর্যন্ত অনুপাত স্থিরভাবে ৪.০০-এর কাছাকাছি থাকে। এই অনুপাত ঠিক ৪ = ২² — যেমনটা O(h²) মেথডের কাছে আশা করা হয়। h অর্ধেক করলে এরর ঠিক এক-চতুর্থাংশ হয়ে যাচ্ছে, বাস্তব সংখ্যা দিয়ে নিশ্চিত হলো।
মূল কথা · Key takeaway

ট্র্যাপিজয়ডাল রুল একটি ইন্টারভালকে ছোট সাব-ইন্টারভালে ভেঙে প্রতিটিতে ফাংশনটিকে সরলরেখা দিয়ে আনুমানিক করে — এবং এর ফলে O(h²) এরর কনভারজেন্স পাওয়া যায়, উপরের কোডে সরাসরি যাচাই করা হয়েছে। পরের পাঠে (L24) আমরা দেখব একই ধারণা কিন্তু পলিনোমিয়াল ফিটের ডিগ্রি ১ বাড়িয়ে (প্যারাবোলা ব্যবহার করে) — সিম্পসনস রুল — একই n-এ কতটা বেশি নির্ভুলতা দেয়।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ কম্পোজিট ট্র্যাপিজয়ডাল রুলের ফর্মুলায় ভেতরের পয়েন্টগুলোর গুণক ২, কিন্তু প্রথম ও শেষ পয়েন্টের গুণক ১। কেন এই পার্থক্য?

প্রতিটি ভেতরের পয়েন্ট দুটি সংলগ্ন সাব-ইন্টারভালের (একটি বামে, একটি ডানে) সীমানা — তাই সেই পয়েন্টে f-এর মান দুটি আলাদা ট্র্যাপিজিয়ামের ক্ষেত্রফল গণনায় ব্যবহৃত হয়, ফলে যোগফলে এটি দুইবার আসে। প্রথম ও শেষ পয়েন্ট শুধু একটি সাব-ইন্টারভালের সীমানা, তাই একবারই গণনা হয়।

প্র ০২ যদি f(x) নিজেই একটি সরলরেখা হয় (যেমন f(x) = 3x + 2), ট্র্যাপিজয়ডাল রুলের এরর কত হবে বলে আপনার ধারণা — যেকোনো n-এ?

ঠিক শূন্য (ফ্লোটিং-পয়েন্ট রাউন্ড-অফ ছাড়া)! ট্র্যাপিজয়ডাল রুল প্রতিটি সাব-ইন্টারভালে f-কে একটি সরলরেখা দিয়ে আনুমানিক করে — যদি f নিজেই একটি সরলরেখা হয়, তাহলে এই আনুমানিকীকরণ কোনো এরর তৈরি করে না, এটি ঠিক নিখুঁত। এই যুক্তিটাই এরর ফর্মুলায় দ্বিতীয় ডেরিভেটিভের উপস্থিতি ব্যাখ্যা করে — সরলরেখার দ্বিতীয় ডেরিভেটিভ শূন্য।

প্র ০৩ উপরের কোড সেলে আমরা n-কে ৪ থেকে ১২৮ পর্যন্ত দ্বিগুণ করে গিয়েছি এবং প্রতিবার এরর প্রায় ঠিক ৪ গুণ কমেছে। এই প্যাটার্নটি কি অসীম পর্যন্ত n বাড়ালে চলতেই থাকবে?

তাত্ত্বিকভাবে O(h²) প্যাটার্ন h ছোট হতে থাকা পর্যন্ত বজায় থাকে, কিন্তু বাস্তবে L21-এর মতোই — n অত্যন্ত বড় (অর্থাৎ h অত্যন্ত ছোট) হয়ে গেলে ফ্লোটিং-পয়েন্ট রাউন্ড-অফ এরর জমতে জমতে প্রাধান্য পেতে শুরু করবে (প্রতিটি যোগফলে ছোট ছোট রাউন্ড-অফ এরর যোগ হতে থাকে), এবং একটি বিন্দুর পর মোট এরর আর কমবে না, বরং সামান্য বাড়তে পারে।

অনুশীলন

  1. চিন্তা করুন: উপরের কোড সেলে n = 256 যোগ করলে (আগের সর্বোচ্চ n=128-এর দ্বিগুণ) এরর আনুমানিক কত হবে বলে আপনার ধারণা?

    n=128-এর এরর ১.০০৪ × ১০⁻⁴। O(h²) প্যাটার্ন অনুযায়ী n=256-এ এরর এর প্রায় এক-চতুর্থাংশ, অর্থাৎ প্রায় ২.৫ × ১০⁻⁵ হওয়ার কথা।

  2. পরীক্ষা করুন: কোড সেলের [4, 8, 16, 32, 64, 128] তালিকায় 256 যোগ করে Run চেপে আপনার অনুমান যাচাই করুন।

    n=256-এ এরর হয় আনুমানিক ২.৫১ × ১০⁻⁵ — যা n=128-এর এরর (১.০০৪ × ১০⁻⁴)-এর প্রায় এক-চতুর্থাংশ, ঠিক O(h²) প্যাটার্ন বজায় রেখে। প্যাটার্নটি ধারাবাহিকভাবে বজায় থাকছে কারণ n=256 এখনো এতটা বড় নয় যে রাউন্ড-অফ এরর প্রাধান্য পাওয়া শুরু করবে।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
রিচার্ডসন এক্সট্রাপোলেশন