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¶

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\) হলো সেই set যার ভেতরে আছে ১, ২, ৩, ৪ আর ৫।"
Set-এর তিনটা মজার স্বভাব:
- ক্রম নেই: \(\{1, 2, 3\} = \{3, 1, 2\}\) — ব্যাগে জিনিস কোন ক্রমে ঢুকিয়েছ, ব্যাগের পরিচয়ে তা আসে না। (Chapter 0.2-এর ordered pair-এর ঠিক উল্টো — ওখানে ক্রমই সব!)
- Duplicate নেই: \(\{1, 2, 2, 3\} = \{1, 2, 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}\) — real সংখ্যা \(x\) — \(:\) — এমন যে — \(x > 0\) — \(x\) ধনাত্মক \(\}\)"। পুরো বাক্য: "সব ধনাত্মক real সংখ্যার set।"
চিনতে পারছ? Chapter 0.2-এর লাইনও তাহলে একটা set:
"প্লেনের সেই সব বিন্দু \((x,y)\), যারা \(y = x+1\) শর্তটা মানে" — হুবহু আগের chapter-এর "শর্ত-মানা বিন্দুদের ক্লাব"! আমরা তখন কথায় যা বলছিলাম, এখন সেটাই লিখতে শিখলাম।
২. দেখতে কেমন?¶
সংখ্যা-পরিবারের নেস্টেড বাক্স¶

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: দুই ব্যাগের মধ্যে তীর¶

\(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-র ঠিকানা¶

\(\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\) লেখার অধিকার পেতে হলে:
- Domain-এর প্রত্যেকে input দিতে পারবে — \(A\)-র কোনো element বাদ যাবে না
- প্রত্যেকের output ঠিক একটা — এক input থেকে দুটো তীর বেরোনো নিষেধ
দুটো তীর এক জায়গায় পড়তে পারে (\(f(2)=4\) আর \(f(-2)=4\) — সমস্যা নেই), কিন্তু এক বিন্দু থেকে দুটো তীর বেরোতে পারে না। মনে রাখো: "বেরোয় ঠিক একটা, পড়ে যত খুশি।"
৪.৪ Sigma notation-এর ব্যাকরণ¶

\(\Sigma\)-র শারীরস্থান: নিচে "কোথা থেকে শুরু" (\(i=1\)), উপরে "কোথায় শেষ" (\(4\)), ডানে "প্রতি ধাপে কী যোগ করব" (\(i^2\))। পড়ো: "\(i\)-কে ১ থেকে ৪ পর্যন্ত চালাও, প্রতিবার \(i^2\) হিসাব করো, সব যোগ করো": \(1+4+9+16 = 30\)।
দরকারি properties (প্রতিটা distributive property-রই রূপ — Chapter 0.1!):
⚠️ কিন্তু \(\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\):
এটা আসলে \(-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 দিয়েও পাওয়া যায়:
৮. 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 দিয়ে প্রমাণ:
গড়ের সংজ্ঞাই এমন যে পার্থক্যরা কাটাকাটি হয়ে যায়। যেকোনো 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:
— উত্তরটা set (একটা বিন্দুওয়ালা ব্যাগ), শুধু বিন্দু না। যাচাই: \(L_2\)-তে: \(5 = -2+7\) ✓ - \((b)\) \(L_1\) আর \(L_3\)-এর slope একই (\(2\)), intercept আলাদা — parallel! ছেদ নেই:
দেখো, তিন 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 notebook — notebooks/part-00/ch03-project.ipynb: Python set দিয়ে union/intersection নিজে বানাবে, sigma-ক্যালকুলেটর লিখবে (loop vs np.sum race!), আর ছাত্রদের নম্বরের data-তে গড়-থেকে-পার্থক্যের সেই জাদুকরী শূন্য নিজের চোখে দেখবে।