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

পাইথন - SymPy মডিউল দিয়ে সিম্বোলিক ম্যাথেম্যাটিক্স শুরু করা

SymPy (Symbolic Python) হলো পাইথনের জন্য একটি সিম্বোলিক ম্যাথেম্যাটিক্স লাইব্রেরি। এটি কম্পিউটার অ্যালজেব্রা সিস্টেম (CAS) হিসেবে কাজ করে—অর্থাৎ সংখ্যা দিয়ে ক্যালকুলেশন না করে সিম্বোলিক এক্সপ্রেশন ম্যানিপুলেট করে। এটি ক্যালকুলাস, অ্যালজেব্রা, ডিফারেনশিয়াল ইকুয়েশন, লিনিয়ার অ্যালজেব্রা ইত্যাদিতে ব্যাপকভাবে ব্যবহৃত হয়।

ইনস্টলেশন

pip install sympy

সিম্বোলিক নাম্বার টাইপস

  • Integer: পূর্ণসংখ্যা (সিম্বোলিক)
  • Rational: ভগ্নাংশ (হর এবং লব আলাদা সংরক্ষণ) — Rational(1, 2) = ½
  • Float: আর্বিট্রারি প্রিসিশন ফ্লোটিং পয়েন্ট

বেসিক উদাহরণ

from sympy import *

# সিম্বোলিক কনস্ট্যান্ট
p = pi**3
print("p =", p)           # pi**3 (সিম্বোলিক)
print("p.evalf() =", p.evalf())  # 31.0062766802998 (নিউমেরিক)

# evalf() দিয়ে নিউমেরিক ভ্যালু
q = pi.evalf()
print("pi =", q)          # 3.14159265358979

r = exp(1).evalf()
print("e =", r)           # 2.71828182845905

s = (pi + exp(1)).evalf()
print("pi + e =", s)      # 5.85987448204884

# Infinity
print("oo + 10000 =", oo + 10000)  # oo
print("oo > 9999999:", oo > 9999999)  # True

সিম্বোলিক ভেরিয়েবল এবং এক্সপ্রেশন

from sympy import symbols, expand, factor, simplify

# ভেরিয়েবল ডিক্লেয়ার
x, y, z = symbols('x y z')

# এক্সপ্রেশন
expr = (x + y)**2
print("Expression:", expr)           # (x + y)**2

# এক্সপ্যান্ড
expanded = expand(expr)
print("Expanded:", expanded)         # x**2 + 2*x*y + y**2

# ফ্যাক্টর
factored = factor(expanded)
print("Factored:", factored)         # (x + y)**2

# সিম্প্লিফাই
expr2 = (x**2 - y**2) / (x - y)
simplified = simplify(expr2)
print("Simplified:", simplified)     # x + y

ক্যালকুলাস: ডিফারেনশিয়েশন এবং ইন্টিগ্রেশন

from sympy import diff, integrate, limit, oo

x = symbols('x')
f = x**3 * sin(x)

# ডেরিভেটিভ
df = diff(f, x)
print("Derivative:", df)  # x**3*cos(x) + 3*x**2*sin(x)

# হাইয়ার অর্ডার ডেরিভেটিভ
d2f = diff(f, x, 2)
print("2nd Derivative:", d2f)

# ইনডিফিনিট ইন্টিগ্রাল
integral = integrate(f, x)
print("Integral:", integral)

# ডিফিনিট ইন্টিগ্রাল
def_integral = integrate(f, (x, 0, pi))
print("Definite Integral [0, π]:", def_integral)

# লিমিট
l = limit(sin(x)/x, x, 0)
print("lim(x→0) sin(x)/x =", l)  # 1

ইকুয়েশন সলভিং

from sympy import solve, Eq

x, y = symbols('x y')

# একক ভেরিয়েবল ইকুয়েশন
sol = solve(Eq(x**2 - 5*x + 6, 0), x)
print("Roots:", sol)  # [2, 3]

# সিস্টেম অফ ইকুয়েশন
eq1 = Eq(2*x + 3*y, 6)
eq2 = Eq(3*x - y, 4)
sol = solve((eq1, eq2), (x, y))
print("System solution:", sol)  # {x: 18/11, y: 10/11}

ম্যাট্রিক্স এবং লিনিয়ার অ্যালজেব্রা

from sympy import Matrix

A = Matrix([[1, 2], [3, 4]])
B = Matrix([[5, 6], [7, 8]])

print("A * B:", A * B)
print("A.det():", A.det())        # -2
print("A.inv():", A.inv())        # ইনভার্স
print("A.eigenvals():", A.eigenvals())  # আইগেনভ্যালু

# লিনিয়ার সিস্টেম: A*x = b
b = Matrix([5, 11])
x = A.gauss_jordan_solve(b)
print("Solution:", x)

সিরিজ এক্সপ্যানশন

from sympy import series

x = symbols('x')
# টেলর সিরিজ: sin(x) at x=0
print(series(sin(x), x, 0, 6))
# x - x**3/6 + x**5/120 + O(x**6)

ল্যাম্বডিফাই: সিম্বোলিক → নিউমেরিক ফাংশন

from sympy import lambdify
import numpy as np

x = symbols('x')
expr = sin(x) / x

# সিম্বোলিক এক্সপ্রেশনকে নামপাই-কম্প্যাটিবল ফাংশনে রূপান্তর
f = lambdify(x, expr, 'numpy')

# এখন নামপাই অ্যারে দিয়ে ফাস্ট ইভ্যালুয়েশন
xs = np.linspace(0.1, 10, 100)
ys = f(xs)  # ভেক্টরাইজড, খুব দ্রুত

সেরা অনুশীলন

  • from sympy import * এড়িয়ে নির্দিষ্ট ইমপোর্ট করুন (নেমস্পেস পলিউশন এড়াতে)।
  • সিম্বোলিক ক্যালকুলেশন ধীর—নিউমেরিক ইভ্যালুয়েশনের জন্য lambdify ব্যবহার করুন।
  • অসিম্পটোটিক অ্যানালাইসিস, প্রুফ ভেরিফিকেশন, ফর্মুলা ডেরিভেশনে SymPy বেস্ট।
  • নামপাই/সাইপাইর সাথে কম্বাইন করুন: SymPy ফর্মুলা ডেরাইভ করুন, তারপর lambdify দিয়ে প্রোডাকশন কোডে ব্যবহার করুন।
  1. লিনাক্সে Vagrant দিয়ে শুরু করার গাইড

  2. Redis 습득하기: 궁극의 데이터 구조 서버에 대한 초보자 가이드

  3. Apple TV+ নবীনের গাইড: সাইন আপ, নেভিগেট, এবং এক্সক্লूसিভ কন্টেন্ট উপভোগ

  4. Xen ভার্চুয়ালাইজেশনের সাথে শুরু: একটি কম্প্রিহেনসিভ বিগিনার্স গাইড