কনটেন্টে যান

Chapter 0.3 — Sets, Functions & Reading Notation (সেট, ফাংশন ও Notation পড়ার নিয়ম)

🎯 এই chapter-এ যা শিখবে

  • Set(সেট) কী — এবং \(\in, \notin, \subset, \cup, \cap\) চিহ্নগুলো বাংলা বাক্যের মতো সাবলীলভাবে পড়া
  • \(\mathbb{N}, \mathbb{Z}, \mathbb{Q}, \mathbb{R}\) — বিশেষ সংখ্যা-সেটগুলোর ডাকনাম, আর \(\mathbb{R}^n\) আসলে কী
  • Set-builder notation — \(\{x \in \mathbb{R} : x > 0\}\) জাতীয় লেখা ভেঙে ভেঙে পড়া
  • Function-এর আনুষ্ঠানিক রূপ — \(f: A \to B\), domain, codomain, range
  • \(\Sigma\) (Sigma) notation — যেটা আসলে ছদ্মবেশী একটা for-loop

🖼️ এক ছবিতে মূল idea

Set as a bag

Math notation ভয়ের কিছু না — এগুলো শুধু shorthand(সংক্ষিপ্ত লিপি)। একটা set মানে একটা ব্যাগ; \(2 \in A\) মানে "২ ব্যাগটার ভেতরে আছে"; \(B \subset A\) মানে "ছোট ব্যাগটা বড় ব্যাগের ভেতরে"। প্রতিটা ভয়ঙ্কর-দেখতে চিহ্নের পেছনে এমনই একটা সরল বাংলা বাক্য লুকিয়ে থাকে।


১. কি? (What)

Notation-ভয়ের আসল কারণ

একটা গোপন কথা বলি: গণিতের বই পড়তে গিয়ে বেশিরভাগ মানুষ যেখানে আটকায়, সেটা গণিত না — সেটা ভাষা\(\{x \in \mathbb{R}^n : \|x\| \le 1\}\) দেখে মাথা ঘুরে যায়, অথচ এর মানে শুধু "সব বিন্দু যারা কেন্দ্র থেকে ১-এর বেশি দূরে না" — মানে একটা গোলক! ধারণাটা সহজ, লিপিটা অপরিচিত।

তাই এই chapter-টা আসলে একটা ভাষা শেখার ক্লাস। যেমন নতুন ভাষার বর্ণমালা শিখলে বইয়ের পাতাগুলো হঠাৎ অর্থপূর্ণ হয়ে ওঠে, তেমনি আজকের অল্প কয়েকটা চিহ্ন শিখলে সামনের ৪৪টা chapter — এবং পৃথিবীর যেকোনো math বই — তোমার কাছে পড়ার যোগ্য হয়ে যাবে।

Set: জিনিসপত্রের ব্যাগ

Set(সেট) হলো কিছু জিনিসের একটা সংগ্রহ — একটা ব্যাগ। ব্যাগের ভেতরের জিনিসগুলোকে বলে Element(উপাদান)। লেখার নিয়ম: কোঁকড়া বন্ধনীর ভেতরে, কমা দিয়ে:

\[A = \{1, 2, 3, 4, 5\}\]

পড়ো: "\(A\) হলো সেই set যার ভেতরে আছে ১, ২, ৩, ৪ আর ৫।"

Set-এর তিনটা মজার স্বভাব:

  1. ক্রম নেই: \(\{1, 2, 3\} = \{3, 1, 2\}\) — ব্যাগে জিনিস কোন ক্রমে ঢুকিয়েছ, ব্যাগের পরিচয়ে তা আসে না। (Chapter 0.2-এর ordered pair-এর ঠিক উল্টো — ওখানে ক্রমই সব!)
  2. Duplicate নেই: \(\{1, 2, 2, 3\} = \{1, 2, 3\}\) — একই জিনিস দুবার গোনা হয় না।
  3. যা খুশি রাখা যায়: সংখ্যা, বিন্দু, function, এমনকি অন্য set-ও। \(\{\)ঢাকা, চট্টগ্রাম, খুলনা\(\}\) — শহরের set-ও set।

আর একটা বিশেষ ব্যাগ: Empty set(ফাঁকা সেট) \(\emptyset = \{\}\) — যার ভেতরে কিছুই নেই। অদ্ভুত শোনালেও এ খুব দরকারি — "এই equation-এর solution set \(\emptyset\)" মানে "কোনো solution নেই" (Chapter 0.2-এর parallel লাইনদের মনে আছে?)।

প্রধান চিহ্নগুলো — বাংলা অনুবাদসহ

চিহ্ন পড়ার নিয়ম উদাহরণ
\(\in\) "...-এর element / ভেতরে আছে" \(2 \in \{1,2,3\}\)
\(\notin\) "ভেতরে নেই" \(7 \notin \{1,2,3\}\)
\(\subset\) (বা \(\subseteq\)) "subset — পুরোটাই ওর ভেতরে" \(\{1,2\} \subset \{1,2,3\}\)
\(\cup\) "union — দুই ব্যাগ ঢেলে এক ব্যাগ" \(\{1,2\} \cup \{2,3\} = \{1,2,3\}\)
\(\cap\) "intersection — দুই ব্যাগের কমন জিনিস" \(\{1,2\} \cap \{2,3\} = \{2\}\)
\(\emptyset\) "empty set — ফাঁকা ব্যাগ" \(\{1,2\} \cap \{3,4\} = \emptyset\)
\(:\) বা \(\vert\) "such that — এমন যে / যাদের জন্য" \(\{x : x > 0\}\)

⚠️ ছোট কিন্তু জরুরি পার্থক্য: \(\in\) বসে element আর set-এর মাঝে; \(\subset\) বসে দুটো set-এর মাঝে। \(2 \in A\) ✓ কিন্তু \(\{2\} \subset A\) ✓ — ২ একটা জিনিস, \(\{2\}\) হলো "২-ওয়ালা ব্যাগ"।

Set-builder notation: শর্ত দিয়ে ব্যাগ বানানো

সব element লিখে set বানানো সবসময় সম্ভব না — "সব ধনাত্মক সংখ্যা" তো অসীম! তখন আমরা শর্ত দিয়ে বলি:

\[\{x \in \mathbb{R} : x > 0\}\]

ভেঙে পড়ো, বাঁ থেকে ডানে: "\(\{\) সেই সব — \(x \in \mathbb{R}\) — real সংখ্যা \(x\)\(:\) — এমন যে — \(x > 0\)\(x\) ধনাত্মক \(\}\)"। পুরো বাক্য: "সব ধনাত্মক real সংখ্যার set।"

চিনতে পারছ? Chapter 0.2-এর লাইনও তাহলে একটা set:

\[L = \{(x, y) \in \mathbb{R}^2 : y = x + 1\}\]

"প্লেনের সেই সব বিন্দু \((x,y)\), যারা \(y = x+1\) শর্তটা মানে" — হুবহু আগের chapter-এর "শর্ত-মানা বিন্দুদের ক্লাব"! আমরা তখন কথায় যা বলছিলাম, এখন সেটাই লিখতে শিখলাম।


২. দেখতে কেমন?

সংখ্যা-পরিবারের নেস্টেড বাক্স

Nested number sets

Chapter 0.1-এর সংখ্যা-পরিবারগুলোর এখন official পোশাক: \(\mathbb{N} \subset \mathbb{Z} \subset \mathbb{Q} \subset \mathbb{R}\)। Blackboard-bold অক্ষরগুলো (\(\mathbb{N}, \mathbb{Z}, \mathbb{Q}, \mathbb{R}\)) হলো বিখ্যাত set-দের সংরক্ষিত নাম — যেমন \(\mathbb{Z}\) এসেছে জার্মান "Zahlen" (সংখ্যা) থেকে, \(\mathbb{Q}\) এসেছে "Quotient" (ভাগফল) থেকে।

Function: দুই ব্যাগের মধ্যে তীর

Function mapping

\(f: A \to B\), \(f(x) = x^2\) — Chapter 0.1-এর "মেশিন"-এর official ছবি। বাঁ ব্যাগ \(A\) = Domain(ডোমেইন) — বৈধ input-দের set। ডান ব্যাগ \(B\) = Codomain(কোডোমেইন) — output যেখানে পড়তে পারে। যে output-গুলো আসলেই কেউ পায় (\(\{1,4,9\}\)) — সেটা Range(রেঞ্জ)। লক্ষ করো: \(7\) codomain-এ আছে কিন্তু range-এ নেই — কোনো তীর তাকে ছোঁয়নি।

\(\mathbb{R}^n\): data-র ঠিকানা

R, R2, R3

\(\mathbb{R}\) = একটা সংখ্যা = লাইনের বিন্দু। \(\mathbb{R}^2\) = দুটো সংখ্যার জোড় = প্লেনের বিন্দু (Chapter 0.2!)। \(\mathbb{R}^3\) = তিনটার লিস্ট = space-এর বিন্দু। আর \(\mathbb{R}^{100}\)? — ১০০টা সংখ্যার লিস্ট। ছবি আঁকা যায় না, কিন্তু নিয়ম একই। Data science-এ প্রতিটা মানুষ/ছবি/document হলো \(\mathbb{R}^n\)-এর একেকটা বিন্দু।


৩. কোথায় ইউজ হয়?

বাস্তব জীবনে:

  • তুমি রোজ set-এর হিসাব করো: "যারা ক্রিকেটও ভালোবাসে ফুটবলও ভালোবাসে" = দুই set-এর intersection; "হয় চা নয় কফি যারা খায়" = union।
  • Database query: "১৮-র বেশি বয়সী ঢাকার customer" — এটা হুবহু set-builder: \(\{c \in Customers : c.age > 18 \text{ এবং } c.city = \text{ঢাকা}\}\)। SQL-এর WHERE মানেই "such that"!
  • ভর্তি পরীক্ষার শর্ত: "GPA ৫ এবং ৮০+ নম্বর" = intersection; "কোটা অথবা মেধা" = union।

Data Science / ML-এ:

  • Dataset নিজেই set: train set, test set, validation set — নামগুলোই বলে দিচ্ছে! Train ∩ Test \(= \emptyset\) রাখা (দুটো যেন না মেশে) ML-এর পবিত্রতম নিয়ম।
  • Feature vector: একজন রোগীর (বয়স, ওজন, রক্তচাপ, sugar) \(= (58, 71.5, 130, 6.2) \in \mathbb{R}^4\)। একটা \(128\times128\) ছবির সব pixel মিলে \(\mathbb{R}^{16384}\)-এর একটা বিন্দু। "Data lives in \(\mathbb{R}^n\)" — এই বাক্যটাই পুরো কোর্সের মঞ্চ।
  • Model মানেই function: spam filter হলো \(f: \text{Emails} \to \{0, 1\}\); ছবি-চেনা নেটওয়ার্ক \(f: \mathbb{R}^{16384} \to \{\text{বিড়াল, কুকুর, ...}\}\)। "Model train করা" = লক্ষ লক্ষ function-এর মধ্যে সেরাটা বাছাই।
  • \(\Sigma\) সর্বত্র: গড়, loss function, neural network-এর প্রতিটা neuron — ML-এর প্রায় প্রতিটা সূত্রে \(\Sigma\) আছে। এই chapter-এর পরে ওসব সূত্র দেখে আর বুক ধড়ফড় করবে না।

৪. Properties

৪.১ Union আর Intersection-এর স্বভাব

\(A = \{1,2,3\}\), \(B = \{3,4\}\) ধরে প্রতিটা নিজে যাচাই করো:

Property নিয়ম কেন (ব্যাগের যুক্তি)
Commutative \(A \cup B = B \cup A\) দুই ব্যাগ ঢালার ক্রমে কিছু আসে যায় না
\(\cap\) ছোট করে \(A \cap B \subset A\) "কমন জিনিস" সবসময় নিজের ব্যাগের অংশ
\(\cup\) বড় করে \(A \subset A \cup B\) ঢাললে নিজের সব জিনিস তো থাকেই
Empty-র সাথে \(A \cup \emptyset = A\), \(A \cap \emptyset = \emptyset\) ফাঁকা ব্যাগ ঢাললে কিছু যোগ হয় না; ফাঁকার সাথে কমন কিছু নেই

৪.২ Subset-এর সূক্ষ্মতা

  • প্রতিটা set নিজের subset: \(A \subseteq A\)
  • \(\emptyset\) সবার subset — "ফাঁকা ব্যাগের সব জিনিস তোমার ব্যাগেও আছে" — কথাটা ফাঁকা-ফাঁকা ভাবে সত্যি (কোনো জিনিসই তো নেই যে ব্যতিক্রম হবে!)
  • \(A \subseteq B\) এবং \(B \subseteq A\) হলে \(A = B\) — দুটো set সমান প্রমাণের standard কৌশল, Part IV-তে বারবার ব্যবহার হবে

৪.৩ Function-এর অলঙ্ঘনীয় নিয়ম

\(f: A \to B\) লেখার অধিকার পেতে হলে:

  1. Domain-এর প্রত্যেকে input দিতে পারবে\(A\)-র কোনো element বাদ যাবে না
  2. প্রত্যেকের output ঠিক একটা — এক input থেকে দুটো তীর বেরোনো নিষেধ

দুটো তীর এক জায়গায় পড়তে পারে (\(f(2)=4\) আর \(f(-2)=4\) — সমস্যা নেই), কিন্তু এক বিন্দু থেকে দুটো তীর বেরোতে পারে না। মনে রাখো: "বেরোয় ঠিক একটা, পড়ে যত খুশি।"

৪.৪ Sigma notation-এর ব্যাকরণ

Sigma anatomy

\(\Sigma\)-র শারীরস্থান: নিচে "কোথা থেকে শুরু" (\(i=1\)), উপরে "কোথায় শেষ" (\(4\)), ডানে "প্রতি ধাপে কী যোগ করব" (\(i^2\))। পড়ো: "\(i\)-কে ১ থেকে ৪ পর্যন্ত চালাও, প্রতিবার \(i^2\) হিসাব করো, সব যোগ করো": \(1+4+9+16 = 30\)

দরকারি properties (প্রতিটা distributive property-রই রূপ — Chapter 0.1!):

\[\sum_{i=1}^{n} c \cdot a_i = c \sum_{i=1}^{n} a_i \qquad \text{(ধ্রুবক বাইরে বের করা যায়)}\]
\[\sum_{i=1}^{n} (a_i + b_i) = \sum_{i=1}^{n} a_i + \sum_{i=1}^{n} b_i \qquad \text{(যোগ ভেঙে দেওয়া যায়)}\]
\[\sum_{i=1}^{n} c = n \cdot c \qquad \text{(শুধু ধ্রুবক যোগ = গুণ)}\]

⚠️ কিন্তু \(\sum a_i b_i \neq \left(\sum a_i\right)\left(\sum b_i\right)\) — গুণ ভাঙা যায় না! ছোট পরীক্ষা: \(a = (1,2), b = (1,2)\) নিলে বাঁ পাশ \(1+4 = 5\), ডান পাশ \(3 \times 3 = 9\)। সমান না।


৫. Intuition — কেন সত্য?

Notation মানে compression

একটা মজার তুলনা:

  • বাংলা: "১ থেকে ১০০ পর্যন্ত প্রতিটা সংখ্যাকে বর্গ করে সব যোগ করো" — ১৩টা শব্দ
  • Math: \(\sum_{i=1}^{100} i^2\) — কয়েকটা আঁকিবুঁকি
  • Python: sum(i**2 for i in range(1, 101)) — এক লাইন

তিনটা একই বাক্য, শুধু তিনটা ভাষায়। গণিতবিদরা অলস (ভালো অর্থে) — যে কথা বারবার লাগে, তার জন্য shorthand বানিয়ে নেয়। \(\in\) হলো "is an element of"-এর shorthand, \(\Sigma\) হলো for-loop-এর shorthand, \(\mathbb{R}^n\) হলো "n-টা real সংখ্যার লিস্ট"-এর shorthand।

তাহলে ভয়ের বদলে নতুন কৌশল: অচেনা notation দেখলেই জিজ্ঞেস করো — "এটা কোন লম্বা বাংলা বাক্যের shorthand?" উত্তরটা প্রায় সবসময় নিরীহ।

কেন programmer-দের জন্য এটা সহজ হবে

তুমি Python শিখতে যাচ্ছ (পরের chapter-এই!), আর দারুণ খবর হলো — math notation আর programming প্রায় একই জিনিস:

Math Python বাংলা
\(x \in A\) x in A \(x\), \(A\)-র ভেতরে আছে
\(\{x \in A : x > 0\}\) {x for x in A if x > 0} শর্ত-মানা element-দের set
\(f: \mathbb{R} \to \mathbb{R}\) def f(x): return ... সংখ্যা-থেকে-সংখ্যা মেশিন
\(\sum_{i=1}^{n} a_i\) sum(a[i] for i in ...) সব যোগ করো
\(A \cup B\), \(A \cap B\) A | B, A & B মিলন, কমন অংশ

Python-এর designer-রা ইচ্ছা করেই ভাষাটা math-এর মতো বানিয়েছেন। তাই math notation শেখা মানে একই সাথে ভালো programmer হওয়া — এক টিকিটে দুই সিনেমা।

Domain কেন এত জরুরি — একটা গল্প

\(f(x) = \frac{1}{x}\) মেশিনে \(0\) ঢোকালে কী হয়? বিস্ফোরণ — \(\frac{1}{0}\)-এর কোনো মানে নেই। তাই সততার সাথে লিখতে হয়: \(f: \mathbb{R} \setminus \{0\} \to \mathbb{R}\) ("শূন্য বাদে সব real")। Domain হলো মেশিনের গায়ে লেখা warning label: "এই input-গুলোই শুধু দাও।" ML-এও এটা বাস্তব — বাংলা text-এ train করা model-কে চাইনিজ দিলে সে আবোল-তাবোল বলবে: input টা তার domain-এর বাইরে ছিল।


৬. Code-এ কেমনে লিখে

# Python-এ set — math-এর set-এর প্রায় ফটোকপি
A = {1, 2, 3, 4, 5}
B = {2, 4}

print(2 in A)            # output: True     (2 ∈ A)
print(7 in A)            # output: False    (7 ∉ A)
print(B <= A)            # output: True     (B ⊂ A, subset পরীক্ষা)
print(A | B)             # output: {1, 2, 3, 4, 5}   (A ∪ B)
print(A & B)             # output: {2, 4}            (A ∩ B)
print({1, 2, 2, 3})      # output: {1, 2, 3}  — duplicate নিজেই মুছে যায়!

# Set-builder notation == Python-এর "set comprehension"
evens = {x for x in A if x % 2 == 0}     # {x ∈ A : x জোড়}
print(evens)             # output: {2, 4}

Output ব্যাখ্যা: শেষ লাইনটা দেখো — {x for x in A if x % 2 == 0} পড়তে হয় হুবহু set-builder-এর মতো: "সেই সব \(x\), \(A\)-র ভেতর থেকে, এমন যে \(x\) জোড়।" Math-এর : (such that) হলো Python-এর if

import numpy as np

# Sigma notation = for-loop = np.sum
total = 0
for i in range(1, 5):        # i = 1, 2, 3, 4
    total += i**2
print(total)                 # output: 30    (Σ i², i=1..4)

i = np.arange(1, 5)          # [1 2 3 4]
print(np.sum(i**2))          # output: 30 — এক লাইনে!

# R^n-এর বিন্দু = NumPy array
patient = np.array([58, 71.5, 130, 6.2])   # (বয়স, ওজন, রক্তচাপ, sugar) ∈ R⁴
print(patient.shape)         # output: (4,)  — অর্থাৎ R⁴-এর সদস্য

Output ব্যাখ্যা: তিনভাবে একই \(30\): হাতে (\(1+4+9+16\)), loop দিয়ে, আর np.sum দিয়ে। NumPy-র কায়দাটাই সবচেয়ে math-এর কাছাকাছি — পুরো array-র উপর একসাথে কাজ। আর patient.shape = (4,) মানে NumPy নিজেই বলছে: "এটা ৪-সংখ্যার লিস্ট, অর্থাৎ \(\mathbb{R}^4\)-এর বিন্দু।"


৭. Worked Examples

Example 1 — Set operations ধাপে ধাপে

\(A = \{1, 3, 5, 7\}\), \(B = \{3, 4, 5\}\)। বের করো: \(A \cup B\), \(A \cap B\), এবং \(A \cap B \subset A\) সত্য কিনা।

ধাপ ১ (Union): দুই ব্যাগ ঢালো, duplicate একবার: \(A \cup B = \{1, 3, 4, 5, 7\}\) ধাপ ২ (Intersection): কমন খোঁজো: ৩ দুটোতেই ✓, ৫ দুটোতেই ✓, বাকিরা না → \(A \cap B = \{3, 5\}\) ধাপ ৩ (Subset): \(\{3,5\}\)-এর প্রতিটা element কি \(A\)-তে? \(3 \in A\) ✓, \(5 \in A\) ✓ → হ্যাঁ, \(A \cap B \subset A\)। (§৪.১-এর "∩ ছোট করে" property-টা চোখের সামনে!)

Example 2 — Set-builder পড়া ও লেখা

\((a)\) পড়ো: \(S = \{n \in \mathbb{N} : n \le 4\}\) — element-গুলো লেখো। \((b)\) লেখো: "যে সব real সংখ্যার বর্গ ৯-এর কম"

\((a)\) ধাপে ধাপে: "natural সংখ্যা \(n\), এমন যে \(n \le 4\)" → natural মানে \(1, 2, 3, \dots\) → শর্ত মানে: \(S = \{1, 2, 3, 4\}\) \((b)\) উল্টো অনুবাদ: "real সংখ্যা \(x\)" → \(x \in \mathbb{R}\); "বর্গ ৯-এর কম" → \(x^2 < 9\):

\[\{x \in \mathbb{R} : x^2 < 9\}\]

এটা আসলে \(-3\) থেকে \(3\)-এর মাঝের সব সংখ্যা (দুই প্রান্ত বাদে) — number line-এ একটা টুকরো, যাকে interval notation-এ লেখে \((-3, 3)\)

Example 3 — Sigma খুলে হিসাব

হিসাব করো: \(\displaystyle\sum_{i=1}^{5} (2i - 1)\)

ধাপ ১: \(i\)-এর প্রতিটা মানে \(2i-1\) বের করো:

\(i\) \(1\) \(2\) \(3\) \(4\) \(5\)
\(2i-1\) \(1\) \(3\) \(5\) \(7\) \(9\)

ধাপ ২: যোগ: \(1+3+5+7+9 = 25\) ধাপ ৩ (চমক): \(25 = 5^2\)! আসলে প্রথম \(n\)টা বিজোড় সংখ্যার যোগফল সবসময় \(n^2\)। §৪.৪-এর property দিয়েও পাওয়া যায়:

\[\sum_{i=1}^{5}(2i-1) = 2\sum_{i=1}^{5} i - \sum_{i=1}^{5} 1 = 2(15) - 5 = 25 ✓\]

৮. Problems ও Solutions

Problem 1. \(A = \{2, 4, 6, 8\}\), \(B = \{1, 2, 3, 4\}\)। বের করো: \((a)\ A \cup B \quad (b)\ A \cap B \quad (c)\) \(A\)-তে আছে কিন্তু \(B\)-তে নেই এমন element-দের set

Solution
  • \((a)\ A \cup B = \{1, 2, 3, 4, 6, 8\}\) (সব একসাথে, duplicate একবার)
  • \((b)\ A \cap B = \{2, 4\}\) (দুটোতেই আছে শুধু ২ আর ৪)
  • \((c)\ \{6, 8\}\) — একে লেখে \(A \setminus B\) (set difference)। Python-এ: A - B

Problem 2. সত্য না মিথ্যা? প্রতিটার এক লাইনের কারণ দাও। \((a)\ 3 \in \{1, 3, 5\} \quad (b)\ \{3\} \in \{1, 3, 5\} \quad (c)\ \{3\} \subset \{1, 3, 5\} \quad (d)\ \emptyset \subset \{1, 3, 5\} \quad (e)\ \{1, 3, 5\} \subseteq \{1, 3, 5\}\)

Solution
  • \((a)\) সত্য — ৩ set-টার element।
  • \((b)\) মিথ্যা\(\{3\}\) (একটা ব্যাগ) set-টার element না; element-রা হলো নগ্ন সংখ্যা \(1, 3, 5\)। ব্যাগ আর ব্যাগের ভেতরের জিনিস এক না!
  • \((c)\) সত্য\(\{3\}\)-এর একমাত্র element ৩, আর \(3 \in \{1,3,5\}\) — তাই subset।
  • \((d)\) সত্য — empty set সবার subset (§৪.২)।
  • \((e)\) সত্য — প্রতিটা set নিজের subset।

Problem 3. নিচের set-builder গুলো সাধারণ বাংলায় অনুবাদ করো ও element (বা বর্ণনা) লেখো: \((a)\ \{n \in \mathbb{Z} : -2 \le n < 3\} \quad (b)\ \{x \in \mathbb{R} : x^2 = 4\} \quad (c)\ \{(x,y) \in \mathbb{R}^2 : x = y\}\)

Solution
  • \((a)\) "\(-2\) থেকে \(3\)-এর আগ পর্যন্ত integer" \(= \{-2, -1, 0, 1, 2\}\)। খেয়াল করো: \(\le\) মানে \(-2\) ঢুকবে, \(<\) মানে \(3\) ঢুকবে না।
  • \((b)\) "যে real সংখ্যার বর্গ ৪" \(= \{-2, 2\}\) — দুটো! \((-2)^2 = 4\) ভুলো না।
  • \((c)\) "প্লেনের সেই সব বিন্দু যাদের দুই coordinate সমান" — এটা একটা লাইন: \(y = x\), origin দিয়ে যাওয়া \(45°\) কোণের লাইন। (Chapter 0.2-এর "ছবি = সমীকরণ" আবার!)

Problem 4. \(f: \mathbb{R} \to \mathbb{R}\), \(f(x) = x^2 + 1\)\((a)\ f(3), f(-3), f(0)\) বের করো। \((b)\) Range-এ কি \(0\) আছে? \((c)\) Range-টা set-builder notation-এ লেখো।

Solution
  • \((a)\) \(f(3) = 9+1 = 10\); \(f(-3) = 9+1 = 10\); \(f(0) = 0+1 = 1\)। (\(3\) আর \(-3\) একই output-এ পড়ল — বৈধ! "পড়ে যত খুশি"।)
  • \((b)\) \(f(x) = 0\) মানে \(x^2 = -1\) — কোনো real সংখ্যার বর্গ ঋণাত্মক হয় না। তাই না, \(0\) range-এ নেই।
  • \((c)\) \(x^2 \ge 0\) সবসময়, তাই \(x^2 + 1 \ge 1\)। Range \(= \{y \in \mathbb{R} : y \ge 1\}\)। Codomain \(\mathbb{R}\) কিন্তু range তার ছোট্ট অংশ — ছবির সেই "৭-কে কেউ ছোঁয়নি" ঘটনা।

Problem 5. নিচের কোনগুলো বৈধ function, কোনগুলো না — কারণসহ: \((a)\) \(g: \mathbb{R} \to \mathbb{R}\), \(g(x) = \frac{1}{x}\) \((b)\) প্রতিটা মানুষকে তার জন্মদিনে পাঠানো: \(h: \text{মানুষ} \to \text{তারিখ}\) \((c)\) প্রতিটা মা-কে তার সন্তানে পাঠানো: \(k: \text{মা} \to \text{মানুষ}\)

Solution
  • \((a)\) অবৈধ যেভাবে লেখা আছে — domain বলা হয়েছে পুরো \(\mathbb{R}\), কিন্তু \(g(0)\)-এর মান নেই (\(\frac{1}{0}\)!)। Domain-এর প্রত্যেকের output লাগবে। ঠিক করতে হলে: \(g: \mathbb{R} \setminus \{0\} \to \mathbb{R}\)
  • \((b)\) বৈধ — প্রত্যেক মানুষের জন্মদিন আছে, এবং ঠিক একটাই।
  • \((c)\) অবৈধ — যে মায়ের তিন সন্তান, তার থেকে তিনটা তীর বেরোয়; "output ঠিক একটা" নিয়ম ভাঙে। (উল্টোটা — সন্তান → মা — কিন্তু বৈধ function!)

Problem 6. হিসাব করো: \((a)\ \displaystyle\sum_{i=1}^{4} 3i \quad (b)\ \displaystyle\sum_{k=0}^{3} 2^k \quad (c)\ \displaystyle\sum_{i=1}^{100} 5\)

Solution
  • \((a)\) \(3(1) + 3(2) + 3(3) + 3(4) = 3+6+9+12 = 30\)। Shortcut (§৪.৪): \(3\sum i = 3 \times 10 = 30\)
  • \((b)\) index \(0\) থেকে শুরু — সাবধান! \(2^0 + 2^1 + 2^2 + 2^3 = 1+2+4+8 = 15\)
  • \((c)\) যোগ করার জিনিসে \(i\)-ই নেই — প্রতিবার শুধু \(5\), মোট \(100\) বার: \(100 \times 5 = 500\) (§৪.৪-এর তৃতীয় property)

Problem 7. পাঁচজন ছাত্রের নম্বর: \(a_1 = 70, a_2 = 85, a_3 = 60, a_4 = 90, a_5 = 75\)\((a)\) গড় (mean) \(\bar{a} = \frac{1}{5}\sum_{i=1}^{5} a_i\) হিসাব করো। \((b)\) "গড় থেকে পার্থক্যের যোগফল" \(\sum_{i=1}^{5}(a_i - \bar{a})\) হিসাব করো। ফলটা কি কাকতালীয়?

Solution
  • \((a)\) \(\sum a_i = 70+85+60+90+75 = 380\), তাই \(\bar{a} = \frac{380}{5} = 76\)
  • \((b)\) পার্থক্যগুলো: \(-6, +9, -16, +14, -1\)। যোগফল: \(-6+9-16+14-1 = 0\)

কাকতালীয় না! §৪.৪-এর properties দিয়ে প্রমাণ:

\[\sum_{i=1}^{5}(a_i - \bar{a}) = \sum a_i - \sum \bar{a} = 380 - 5\bar{a} = 380 - 380 = 0\]

গড়ের সংজ্ঞাই এমন যে পার্থক্যরা কাটাকাটি হয়ে যায়। যেকোনো data-তে এটা সত্য — statistics-এ এই ঘটনাটাই "variance"-এর সূত্রে বর্গ ব্যবহারের কারণ।

Problem 8 (challenge). \(L_1 = \{(x,y) \in \mathbb{R}^2 : y = 2x + 1\}\) এবং \(L_2 = \{(x,y) \in \mathbb{R}^2 : y = -x + 7\}\)\((a)\) \(L_1 \cap L_2\) কী — set notation-এ উত্তর দাও। \((b)\) \(L_3 = \{(x,y) : y = 2x - 5\}\) হলে \(L_1 \cap L_3\) কী?

Solution
  • \((a)\) Intersection = দুই শর্তই মানা বিন্দু = দুই লাইনের ছেদ (Chapter 0.2!)। Solve:
\[2x + 1 = -x + 7 \implies 3x = 6 \implies x = 2,\ y = 2(2)+1 = 5\]
\[L_1 \cap L_2 = \{(2, 5)\}\]

— উত্তরটা set (একটা বিন্দুওয়ালা ব্যাগ), শুধু বিন্দু না। যাচাই: \(L_2\)-তে: \(5 = -2+7\) ✓ - \((b)\) \(L_1\) আর \(L_3\)-এর slope একই (\(2\)), intercept আলাদা — parallel! ছেদ নেই:

\[L_1 \cap L_3 = \emptyset\]

দেখো, তিন chapter-এর জ্ঞান এক লাইনে মিলে গেল: parallel লাইন (জ্যামিতি) = solution নেই (algebra) = intersection ফাঁকা set (set theory)। তিনটা ভাষা, একই সত্য।


৯. Common ভুল

ভুল ১: \(x \in A\) আর \(\{x\} \subset A\) গুলিয়ে ফেলা

  • ❌ "\(3 \subset \{1,3,5\}\)" বা "\(\{3\} \in \{1,3,5\}\)"
  • ✓ Element-এর জন্য \(\in\), set-এর জন্য \(\subset\): \(3 \in \{1,3,5\}\) এবং \(\{3\} \subset \{1,3,5\}\)। জিনিস ব্যাগে থাকে (\(\in\)), ব্যাগ ব্যাগের ভেতরে ঢোকে (\(\subset\))।

ভুল ২: Set-এ ক্রম আর ordered pair গুলিয়ে ফেলা

  • ❌ "\((2,3) = (3,2)\), কারণ set-এ ক্রম নেই"
  • \((2,3)\) ordered pair — ক্রমই তার পরিচয়, \((2,3) \neq (3,2)\)। কোঁকড়া বন্ধনী \(\{2,3\} = \{3,2\}\) — ওটা set। বন্ধনীর আকৃতিই বলে দেয় কোনটা কী।

ভুল ৩: Range আর codomain এক ভাবা

  • ❌ "\(f(x) = x^2\)-এর জন্য \(f: \mathbb{R} \to \mathbb{R}\), তাই সব real সংখ্যাই output হয়"
  • ✓ Codomain হলো "output-দের অনুমোদিত এলাকা" (\(\mathbb{R}\)), range হলো "আসলে যা যা বেরোয়" (\(\{y : y \ge 0\}\))। \(-4\) কখনো \(x^2\) থেকে বেরোবে না।

ভুল ৪: \(\Sigma\)-র সীমা ভুল পড়া

  • \(\sum_{k=0}^{3} 2^k\)-তে "৩টা term" ভেবে \(2+4+8 = 14\)
  • \(k = 0, 1, 2, 3\)চারটা term: \(1+2+4+8 = 15\)। শুরু \(0\) থেকে হলে term সংখ্যা হয় (শেষ − শুরু + ১)। সন্দেহ হলেই টেবিল বানাও।

ভুল ৫: \(\sum a_i b_i\)-কে \(\left(\sum a_i\right)\left(\sum b_i\right)\) ভাবা

  • ❌ "আগে আলাদা যোগ করি, পরে গুণ দিই — একই কথা"
  • এক না! (§৪.৪-এর পরীক্ষা: \(5 \neq 9\))। "গুণ করে যোগ" জিনিসটার আলাদা নাম আছে — dot product — আর সেটাই Part I-এর সবচেয়ে গুরুত্বপূর্ণ অধ্যায়ের নায়ক।

১০. এক নজরে

ধারণা এক লাইনে Notation
Set জিনিসের ব্যাগ — ক্রম নেই, duplicate নেই \(A = \{1,2,3\}\)
Element ব্যাগের ভেতরের জিনিস \(2 \in A\), \(7 \notin A\)
Subset এক ব্যাগ পুরোটা আরেকটার ভেতরে \(B \subset A\)
Union / Intersection ঢালা / কমন অংশ \(A \cup B\), \(A \cap B\)
Empty set ফাঁকা ব্যাগ; "solution নেই"-এর প্রতীক \(\emptyset\)
Set-builder শর্ত দিয়ে set বানানো \(\{x \in \mathbb{R} : x > 0\}\)
\(\mathbb{N}, \mathbb{Z}, \mathbb{Q}, \mathbb{R}\) সংখ্যা-পরিবারের নেস্টেড বাক্স \(\mathbb{N} \subset \mathbb{Z} \subset \mathbb{Q} \subset \mathbb{R}\)
\(\mathbb{R}^n\) \(n\)-টা real সংখ্যার লিস্ট — data-র বাড়ি \((58, 71.5, 130, 6.2) \in \mathbb{R}^4\)
Function domain-এর প্রত্যেককে ঠিক এক output \(f: A \to B\)
Domain / Codomain / Range বৈধ input / অনুমোদিত এলাকা / আসল output-রা \(f: \mathbb{R} \to \mathbb{R}\), range \(\ne\) codomain হতে পারে
\(\Sigma\) ছদ্মবেশী for-loop: চালাও, হিসাব করো, যোগ করো \(\sum_{i=1}^{4} i^2 = 30\)

পরের chapter-এর সেতু: তিন chapter ধরে আমরা কাগজে-কলমে কাজ করলাম: সংখ্যা, ছবি, ভাষা। এবার এই সবকিছুকে জীবন্ত করার পালা। পরের chapter-এ তোমার computer-এ Python, NumPy আর matplotlib install করব, আর \(\mathbb{R}^n\)-এর বিন্দুরা হয়ে যাবে np.array, function-রা হয়ে যাবে def, আর "ছবি = সমীকরণ" হয়ে যাবে সত্যিকারের plot — তোমার নিজের হাতে আঁকা। চলো Chapter 0.4-এ!


📓 Notebook Project

ch03-project notebooknotebooks/part-00/ch03-project.ipynb: Python set দিয়ে union/intersection নিজে বানাবে, sigma-ক্যালকুলেটর লিখবে (loop vs np.sum race!), আর ছাত্রদের নম্বরের data-তে গড়-থেকে-পার্থক্যের সেই জাদুকরী শূন্য নিজের চোখে দেখবে।