9.13 — Partial Derivatives (আংশিক অন্তরজ)¶
এই অধ্যায়ে কী শিখব: এক-চলকের calculus-এ function ছিল \(y=f(x)\) — একটা curve। এখন আমরা দুই (বা তিন) চলকে যাই: \(z=f(x,y)\), যার graph একটা surface (তল)। এই অধ্যায়ে ধাপে ধাপে শিখব — (১) surface আর তার level curve (সমমান রেখা / কনট্যুর); (২) partial derivative (আংশিক অন্তরজ) \(\partial f/\partial x\) — এক চলক নড়ায়, বাকি স্থির; (৩) tangent plane (স্পর্শক তল) ও linear approximation; (৪) gradient (গ্রেডিয়েন্ট) \(\nabla f\) আর directional derivative (দিকনির্ভর অন্তরজ) — কোন দিকে পাহাড় সবচেয়ে খাড়া; (৫) বহু-চলকের chain rule (শৃঙ্খল নিয়ম); (৬) maximum/minimum/saddle point (স্যাডল বিন্দু) — দুই-চলকে second-derivative test; আর (৭) constraint (শর্ত)-সহ optimization ও Lagrange multiplier। Strang-এর Chapter 13-এর সাতটা section একদম বেসিক থেকে, লাইন-ধরে-ধরে।
উৎস (source): Calculus — Gilbert Strang (MIT)।
১. কেন শিখব? (Motivation)¶
এতদিন আমাদের সব function ছিল এক চলকের: \(f(x)\)। কিন্তু বাস্তব পৃথিবী এক চলকে চলে না। একটা পাহাড়ের উচ্চতা নির্ভর করে দুটো স্থানাঙ্কের ওপর — পূর্ব-পশ্চিম \(x\) আর উত্তর-দক্ষিণ \(y\)। তাই উচ্চতা \(z=f(x,y)\)। একটা গ্যাসের চাপ নির্ভর করে তাপমাত্রা আর আয়তনের ওপর: \(P(T,V)\)। একটা কোম্পানির লাভ নির্ভর করে ২৬টা পণ্যের দাম ও পরিমাণের ওপর — ৫২টা চলক!
এক-চলকের calculus-এ মূল ধারণা ছিল একটাই: \(df/dx\) = ঢাল = পরিবর্তনের হার। বহু-চলকে সেই একই ধারণা, শুধু একটা নতুন কৌশল — একবারে একটা চলক নড়াও, বাকিগুলো স্থির রাখো। এটাই partial derivative। \(x\)-এর দিকে ঢাল \(\partial f/\partial x\), \(y\)-এর দিকে ঢাল \(\partial f/\partial y\)। একটা surface একই সঙ্গে \(x\)-দিকে উঠতে আর \(y\)-দিকে নামতে পারে।
কিন্তু সবচেয়ে বড় প্রশ্ন: পাহাড়ে দাঁড়িয়ে কোন দিকে গেলে সবচেয়ে দ্রুত ওপরে ওঠা যায়? এর উত্তরই হলো gradient — এবং এটাই আধুনিক machine learning-এর হৃৎপিণ্ড। একটা neural network-এর "loss function" আসলে লক্ষ-কোটি চলকের একটা function; তাকে ছোট করতে হলে প্রতিটা চলকে partial derivative নিতে হয়, gradient বানাতে হয়, আর gradient-এর উল্টো দিকে এক পা এগোতে হয়। সেটাই gradient descent।
মূল স্বজ্ঞা — এক বিন্দুর কাছে surface প্রায় সমতল
যেমন curve এক বিন্দুর কাছে প্রায় সরলরেখা (tangent line), তেমনি surface এক বিন্দুর কাছে প্রায় সমতল (tangent plane)। সেই সমতলের দুটো ঢাল \(\partial f/\partial x\) আর \(\partial f/\partial y\)। এই দুটো ঢাল জানলেই সব দিকের ঢাল জানা হয়ে যায় — কারণ যেকোনো দিকের ঢাল এই দুটোর একটা মিশ্রণ (dot product)। এই একটা কথা ধরে রাখলে gradient, directional derivative, chain rule, max–min — সব নিজে থেকে খুলে যায়।
ML-সংযোগ: deep learning-এ ওজন (weights) \(w_1,w_2,\dots,w_n\) ঠিক করা মানে \(\text{loss}(w_1,\dots,w_n)\) function-টাকে minimize করা। প্রতিটা ধাপে আমরা \(\nabla(\text{loss})\) (সব partial derivative-এর ভেক্টর) হিসাব করি — backpropagation আসলে chain rule-এরই বিশাল প্রয়োগ — তারপর \(w \leftarrow w - \eta\,\nabla(\text{loss})\) করে "খাড়া নিচের দিকে" এক পা নামি। এই অধ্যায়ই সেই পুরো যন্ত্রটার গণিত-ভিত্তি।
২. মূল ধারণা (Core idea)¶
২.১ Surfaces এবং Level Curves (তল ও সমমান রেখা)¶
\(y=f(x)\)-এর graph হলো \(xy\)-সমতলে একটা curve — দুটো চলক, \(x\) স্বাধীন আর \(y\) নির্ভরশীল। \(z=f(x,y)\)-এর graph হলো \(xyz\)-জগতে একটা surface — তিনটা চলক, \(x\) ও \(y\) স্বাধীন, \(z\) নির্ভরশীল। base plane-এর \((x,y)\) বিন্দুর ঠিক ওপরে surface-এর বিন্দু \((x,y,z)\)।

চিত্র 13.1: \(z=\sqrt{x^2+y^2}\)-এর surface একটা cone (কোণক)। base plane-এ \((0,0)\) থেকে \((x,y)\)-এর দূরত্ব যতটা, ঠিক ততটাই আমরা ওপরে উঠি — তাই ঢাল \(1\) (\(45^\circ\) cone)। level curve-গুলো বৃত্ত।
কোণকের যুক্তি সহজ: \(\sqrt{x^2+y^2}\) হলো base-এ \((0,0)\) থেকে \((x,y)\)-এর দূরত্ব। বাইরে \(5\) একক গেলে, ওপরেও \(5\) একক উঠি। এখন মূল সংজ্ঞা:
সংজ্ঞা — Level Curve (সমমান রেখা / contour line)
\(z=f(x,y)\)-এর একটা level curve বা contour line হলো সেই সব \((x,y)\) বিন্দুর সমষ্টি যাদের function-মান একই: \(f(x,y)=c\)। ওই বিন্দুগুলোর ওপরে surface-এর উচ্চতা \(z=c\) (স্থির)।
\(c=2\)-এর curve দেখতে হলে surface-টাকে অনুভূমিক সমতল \(z=2\) দিয়ে কাটো — যেখানে \(f(x,y)=2\), ঠিক সেখানে কাটবে। প্রতিটা \(c\)-এর জন্য আলাদা curve; সব curve-কে তাদের \(c\)-মান দিয়ে লেবেল করলে পাওয়া যায় একটা contour map (কনট্যুর মানচিত্র)।
- Cone \(\sqrt{x^2+y^2}=c\): বৃত্ত, ব্যাসার্ধ \(c\)।
- Paraboloid \(z=x^2+y^2\): level curve-ও বৃত্ত (\(x^2+y^2=9\)-এর ওপরে উচ্চতা \(9\)), কিন্তু surface কোণক নয় — parabola-র মতো বেঁকে ওঠে।

চিত্র 13.2: রৈখিক function \(f=2x+y\)-এর surface একটা সমতল; level curve \(2x+y=c\) — সমান্তরাল সরলরেখা। কিন্তু "spiral slide" \(z=y/x\)-এর level curve \(y=cx\) — এরাও সরলরেখা, কিন্তু origin ঘিরে ঘোরে (সমান্তরাল নয়)।
গুরুত্বপূর্ণ প্রশ্ন: contour map থেকে সবচেয়ে উঁচু বিন্দু কীভাবে চিনব? উত্তর — level curve-গুলো maximum বিন্দুকে ঘিরে loop বানায়; \(c\) বাড়লে loop ছোট হতে হতে চূড়ায় মিলিয়ে যায়। আর সবচেয়ে গুরুত্বপূর্ণ: পাহাড়ের সবচেয়ে খাড়া দিক সবসময় level curve-এর লম্ব (এর প্রমাণ আসবে §২.৪-এ)। খাড়া ঢালে contour-লাইন ঘন, সমতল জায়গায় ফাঁকা; জল সবসময় level curve-এর লম্ব বরাবর গড়ায়।

চিত্র 13.3: একটা weather map — প্রতিটা level curve একই তাপমাত্রার বিন্দুগুলোকে জোড়ে (isotherm)। এটাই contour map-এর সবচেয়ে চেনা উদাহরণ; পাহাড়ের মানচিত্রে প্রতি \(100\) ফুট উচ্চতায় একটা করে contour আঁকা হয়।
অর্থনীতিতেও এই ধারণা আসে: \(x^2y\) হলো একটা utility function (উপযোগ ফাংশন), আর \(x^2y=c\) হলো একটা indifference curve (নিরপেক্ষতা রেখা) — যার ওপরের সব বিন্দু ক্রেতার কাছে সমান পছন্দের।

চিত্র 13.4: তিন ধরনের utility function — \(x^2y\) (convex, গড় বেশি পছন্দের), \(4x+y\) (সরল বিনিময়: এক ডলার = চার কোয়ার্টার, level curve সরলরেখা), আর \(\min(x,y)\) (পরিপূরক: বাঁ-জুতো আর ডান-জুতো জোড়ায় কাজে লাগে)।
এখন আমাদের নিজের একটা পরিষ্কার ছবিতে surface-টা দেখে নিই — একটা "বাটি" (bowl):

কিড-চিত্র: \(z=x^2+y^2\) একটা bowl। লাল curve হলো \(y=0\) স্থির রেখে কাটা "partial function" \(z=x^2\); কমলা curve হলো \(x=0\) স্থির রেখে কাটা \(z=y^2\)। এই দুই curve-এর ঢালই হবে partial derivative — যা এখন শিখব।
২.২ Partial Derivatives (আংশিক অন্তরজ)¶
এক-চলকের মূল ধারণা: \(x\)-এর পরিবর্তন \(\Delta x\) → \(f\)-এর পরিবর্তন \(\Delta f\); অনুপাত \(\Delta f/\Delta x\)-এর সীমাই derivative। এখন \(f\) দুটো চলকের ওপর নির্ভর করে। নতুন ধারণা — একবারে একটা চলক নড়াও।
প্রথমে শুধু \(x\) নড়ে, \(y\) স্থির। function যদি \(x+xy\) হয়, তবে \(\Delta f=\Delta x+y\,\Delta x\), অনুপাত \(\Delta f/\Delta x=1+y\)। এটাই \(x+xy\)-এর "\(x\)-অন্তরজ"।
সংজ্ঞা — Partial Derivative \(\partial f/\partial x\)
এখানে \(\partial\) (curly d) মনে করিয়ে দেয় যে \(x\)-ই একমাত্র চলক নয় — আরেকটা চলক \(y\) আছে, কিন্তু সে নড়ছে না। উচ্চারণে এখনো "ডিএফ ডিএক্স"; সংক্ষেপে \(f_x\) ("এফ-সাব-এক্স")।
মূল নিয়ম: \(\partial f/\partial x\) বের করতে \(y\)-কে ধ্রুবক (যেমন \(6\)) ধরে সাধারণ এক-চলকের derivative নাও। \(y\)-কে শূন্য ধরবে না!
উদাহরণ লাইন-ধরে:
- \(f=x^2y^2+xy+y\) ⟹ \(y\) স্থির ধরে: \(\dfrac{\partial f}{\partial x}=2xy^2+y+0\)। (শেষ পদ \(y\)-এর \(x\)-অন্তরজ শূন্য।)
- \(f=\sin 2x\cos y\) ⟹ \(\cos y\) ধ্রুবক: \(f_x=2\cos 2x\cos y\)। আবার \(y\) নড়ালে (\(x\) স্থির): \(f_y=-\sin 2x\sin y\)।
- \(f=\sqrt{x^2+y^2}\) ⟹ chain rule-এ \(f_x=\dfrac{x}{\sqrt{x^2+y^2}}=\dfrac{x}{f}\) এবং \(f_y=\dfrac{y}{f}\)।
দূরত্ব-function-এর এই কৌতূহলী derivative \(\partial f/\partial x=x/f\) মনে রাখার মতো। এবার একটা "partial function"-এর ছবি:

চিত্র 13.5: \(\partial f/\partial x\) আর \(\partial f/\partial y\) আসলে partial function \(f(x,y_0)\) ও \(f(x_0,y)\)-এর সাধারণ derivative। এরা surface-এর দুটো উল্লম্ব সমতল (\(y=y_0\) ও \(x=x_0\)) দিয়ে কাটা cross-section। বিন্দু \((0,2)\)-তে cone-এর উচ্চতা \(2\); সেখানে \(f_x=0/2=0\) (\(x\)-দিকে সমতল) কিন্তু \(f_y=2/2=1\) (\(y\)-দিকে উঠছে)।
লক্ষ করো — cone-এর ধারালো চূড়া \((0,0)\)-তে partial derivative নেই; মাঝ বরাবর কাটলে পাওয়া যায় \(f(0,y)=\lvert y\rvert\), যার এক-পাশের derivative আছে কিন্তু দুই-পাশের নেই।
Saddle (স্যাডল)। এবার একটা নতুন ধরনের surface:
- \(f=y^2-x^2\) ⟹ \(f_x=-2x\), \(f_y=2y\)। \((1,3)\) থেকে \(x\)-দিকে গেলে partial function \(9-x^2\) — নিচের দিকে খোলা parabola; \(y\)-দিকে (\(x=1\)) partial function \(y^2-1\) — ওপরের দিকে খোলা।

কিড-চিত্র: \(z=x^2-y^2\) একটা saddle (জিন)। \(x\)-দিকে (গাঢ় লাল) উপরে খোলা — এদিকে origin সর্বনিম্ন; \(y\)-দিকে (গাঢ় নীল) নিচে খোলা — এদিকে origin সর্বোচ্চ। দুই দিকেই ঢাল শূন্য, তবু এটা max-ও নয় min-ও নয়। একই সঙ্গে পাহাড়ের চূড়া ও উপত্যকার তলা।

চিত্র 13.6: \(y^2-x^2\)-এর surface-কে বলে hyperbolic paraboloid, কারণ level curve \(y^2-x^2=c\) হলো hyperbola। বেশিরভাগ মানুষ একে "saddle" বলে; origin হলো saddle point — যেখানে দুটো partial derivative-ই শূন্য কিন্তু চরম নয়। মজার কথা: \(2xy\)-ও একই রকম saddle (৪৫° ঘোরানো)।
একাধিক চলক ও ভিন্ন নাম। চলক \(x,y\) নাও হতে পারে, function-এর নাম \(f\)-ও নাও হতে পারে। গ্যাস-সূত্র \(P(T,V)=nRT/V\)-এ:
(\(R\) রসায়নের ধ্রুবক, চলক নয় — তাই \(\partial P/\partial R\) বলে কিছু নেই।)
Second derivatives (দ্বিতীয় অন্তরজ)। দুটো first derivative \(f_x,f_y\) থেকে চারটা second derivative আসে: \(f_{xx},\,f_{xy},\,f_{yx},\,f_{yy}\)। (\(f_{xy}\) মানে "\(f_x\)-এর \(y\)-অন্তরজ"; অন্য লিখন \(\partial^2 f/\partial y\,\partial x\)।) সৌভাগ্যবশত সাধারণত \(f_{xy}=f_{yx}\)।
উদাহরণ (\(f=x/y\)): \(f_x=1/y\) ⟹ \(f_{xx}=0\), \(f_{xy}=-1/y^2\)। আবার \(f_y=-x/y^2\) ⟹ \(f_{yx}=-1/y^2\)। দুই mixed derivative সমান। আর \(f_{yy}=2x/y^3\)।
উদাহরণ (\(f=4x^2+3xy+y^2\)): \(f_x=8x+3y\), \(f_y=3x+2y\); \(f_{xx}=8\), \(f_{yy}=2\), \(f_{xy}=f_{yx}=3\)।
উপপাদ্য — Mixed derivative-এর সমতা (Clairaut/Schwarz)
যদি \(f(x,y)\)-এর second derivative-গুলো continuous হয়, তবে $\(f_{xy}=f_{yx}.\)$ একটি rectangle-এর corner difference-এ Mean Value Theorem দুই order-এ apply করলে \(f_{xy}\) ও \(f_{yx}\) সাধারণত দুইটি nearby point-এ evaluate হয়, একই point-এ নয়। Rectangle-টি target point-এ shrink করালে mixed partial-গুলোর continuity থেকে দুই limit সমান হয়। এটাই Clairaut/Schwarz theorem-এর মূল argument।

চিত্র (13.2 অনুশীলন): heat equation \(f_t=f_{xx}\) বা wave equation \(f_{tt}=f_{xx}\)-এর মতো partial differential equation (আংশিক অবকল সমীকরণ)-এ second partial derivative-রা একসঙ্গে আসে — যেমন \(f=t^{-1/2}e^{-x^2/4t}\) heat equation মেনে চলে। গণিত-পদার্থবিদ্যার সবচেয়ে বড় সমীকরণগুলো (তাপ, তরঙ্গ, Laplace) সবই partial differential equation।
২.৩ Tangent Planes এবং Linear Approximations (স্পর্শক তল ও রৈখিক আসন্নীকরণ)¶
এক-চলকে curve \(y=f(x)\) এক বিন্দুর কাছে প্রায় সরল, tangent line-এর ঢাল \(f'(x_0)\)। দুই-চলকে surface \(z=f(x,y)\) এক বিন্দুর কাছে প্রায় সমতল — সেই tangent plane-এর সমীকরণই এই অধ্যায়ের সবচেয়ে গুরুত্বপূর্ণ সূত্র।
সংজ্ঞা — Tangent Plane (স্পর্শক তল)
\((x_0,y_0,z_0)\) বিন্দুতে \(z=f(x,y)\)-এর tangent plane-এর ঢাল দুটো surface-এর ঢালের সমান। এর সমীকরণ (একটা রৈখিক সমীকরণ): $\(z-z_0=\left(\frac{\partial f}{\partial x}\right)_0(x-x_0)+\left(\frac{\partial f}{\partial y}\right)_0(y-y_0).\)$ এই সমতলের normal vector (লম্ব ভেক্টর) \(\mathbf{N}=\left(\dfrac{\partial f}{\partial x},\,\dfrac{\partial f}{\partial y},\,-1\right)_0\)।
উদাহরণ (\(z=14-x^2-y^2\), বিন্দু \((1,2,9)\)): \(f_x=-2x=-2\), \(f_y=-2y=-4\)। তাই
\(\mathbf{N}=(-2,-4,-1)\)। normal line: \((x,y,z)=(1,2,9)+t(-2,-4,-1)\)।

চিত্র 13.7: tangent plane-এর ভেতরে থাকে \(x\) ও \(y\) tangent line দুটো (বিন্দু-রেখা) — এরা partial function-এর স্পর্শক। আসলে surface-এর ভেতর দিয়ে যাওয়া প্রতিটা curve tangent plane-কে স্পর্শ করে; curve-এর tangent \(\mathbf{T}\) আর surface-এর normal \(\mathbf{N}\) পরস্পর লম্ব: \(\mathbf{T}\cdot\mathbf{N}=0\)।
Implicit surface \(F(x,y,z)=c\)। সবসময় \(z\)-এর জন্য সমাধান করা লাগে না। যেমন গোলক \(x^2+y^2+z^2=14\)-এ implicit differentiation:
\((1,2,3)\)-তে ঢাল \(-\tfrac13,-\tfrac23\); tangent plane \(x+2y+3z=14\), আর \(\mathbf{N}=(1,2,3)\) — অর্থাৎ গোলকের normal ব্যাসার্ধ বরাবর বাইরে দিকে। সাধারণভাবে:
উপপাদ্য — \(F(x,y,z)=c\)-এর Tangent Plane
$\(\left(\frac{\partial F}{\partial x}\right)_0(x-x_0)+\left(\frac{\partial F}{\partial y}\right)_0(y-y_0)+\left(\frac{\partial F}{\partial z}\right)_0(z-z_0)=0,\)$ এবং \(\mathbf{N}=(F_x,F_y,F_z)_0\)। মূল কেস \(z=f(x,y)\) এতে ঢুকে আছে: \(F=f(x,y)-z\) নিলে \(F_x=f_x,\ F_y=f_y,\ F_z=-1\)।

চিত্র 13.8: গোলকের normal \(\mathbf{N}=x_0\mathbf{i}+y_0\mathbf{j}+z_0\mathbf{k}\) — ব্যাসার্ধ বরাবর। \(F=x^2+y^2-z^2=c\) হলো hyperboloid: \(c>0\)-তে এক-পাতা, \(c=0\)-তে cone, \(c<0\)-তে দুই-পাতা।
Differentials (অন্তরকলা)। curved surface বরাবর ছোট পরিবর্তন \(\Delta x,\Delta y,\Delta z\); কিন্তু tangent plane বরাবর পরিবর্তন \(dx,dy,dz\)। plane-এর সমীকরণ ঠিক-ঠিক মেনে চলে:
একে বলে total differential (সম্পূর্ণ অন্তরকলা)।
উদাহরণ (ত্রিভুজের ক্ষেত্রফল \(A=\tfrac12 ab\sin\theta\)): \(A_a=\tfrac12 b\sin\theta\), \(A_b=\tfrac12 a\sin\theta\), \(A_\theta=\tfrac12 ab\cos\theta\), তাই
উদাহরণ (চোঙের আয়তন \(V=\pi r^2 h\)): \(V_r=2\pi rh\) (পাশের ক্ষেত্রফল), \(V_h=\pi r^2\) (তলার ক্ষেত্রফল)। তাই \(dV=2\pi rh\,dr+\pi r^2\,dh\) = পাশের একটা খোলস + ওপরের একটা স্তর। \(r=h=1\)-এ \(dV=2\pi\,dr+\pi\,dh\); \(dr=dh=0.1\) হলে খোলস \(0.2\pi\), স্তর \(0.1\pi\) — অর্থাৎ \(V\) ব্যাসার্ধের প্রতি বেশি সংবেদনশীল।

চিত্র 13.9a: \(V=\pi r^2h\)-এ \(r,h\) দুটোই \(1.0\to1.1\) হলে খোলস + স্তর মিলে \(dV=0.300\pi\)।

চিত্র 13.9b: আসল পরিবর্তন \(\Delta V=(1.1)^3\pi-\pi=0.331\pi\)। পার্থক্য \(\Delta V-dV=0.031\pi\) — খোলসের ঠিক ওপরের ওই ছোট্ট রিং, যা linear approximation বাদ দেয়। এই ভুল \((dr)^2,(dh)^2\)-এর মাপের।
উপপাদ্য — Linear Approximation (রৈখিক আসন্নীকরণ)
\((x_0,y_0)\)-এর কাছে $\(f(x,y)\approx f(x_0,y_0)+\left(\frac{\partial f}{\partial x}\right)_0(x-x_0)+\left(\frac{\partial f}{\partial y}\right)_0(y-y_0).\)$ সংক্ষেপে \(\Delta f\approx f_x\,\Delta x+f_y\,\Delta y\) — differential calculus-এর কেন্দ্রীয় সূত্র। ভুল "second order": $\(\lvert f-f_L\rvert\le M\left[(x-x_0)^2+(y-y_0)^2\right],\)$ যেখানে \(f_{xx},f_{xy},f_{yy}\) ওই পথে \(M\) দিয়ে বদ্ধ।
Newton's method দুই সমীকরণে। \(g(x,y)=0\) ও \(h(x,y)=0\) সমাধান করতে দুটোরই linear approximation শূন্য বসাই। ধাপ \(\Delta x,\Delta y\)-এর জন্য রৈখিক সমীকরণ:
Matrix-রূপে এটা Jacobian \(J\) দিয়ে লেখা যায়:

চিত্র 13.11: \(g=x^3-y=0\), \(h=y^3-x=0\)-এর তিনটা সমাধান \((1,1),(0,0),(-1,-1)\)। প্রতিটা সমাধানের একটা "basin of attraction" — যেসব শুরুর বিন্দু থেকে Newton ওই সমাধানে পৌঁছায়। basin-গুলো fractal হয়ে মিশে যায়; সীমানায় Newton সিদ্ধান্তহীন — এটাই chaos। সমাধানের কাছে থাকলে অবশ্য প্রতি ধাপে সঠিক অঙ্কের সংখ্যা দ্বিগুণ হয়।
২.৪ Directional Derivatives এবং Gradients (দিকনির্ভর অন্তরজ ও গ্রেডিয়েন্ট)¶
\(\partial f/\partial x\) পূর্ব-পশ্চিম ঢাল, \(\partial f/\partial y\) উত্তর-দক্ষিণ ঢাল। কিন্তু এরা তো একমাত্র দিক নয় — \(45^\circ\) বরাবরও যেতে পারি। যেকোনো একক দিক \(\mathbf{u}\)-এ ঢাল চাই।
সতর্কতা: \(45^\circ\)-এ \(\mathbf{u}=(1/\sqrt2,\,1/\sqrt2)\)। \(\Delta f\)-কে \(\Delta x\) দিয়ে ভাগ করা ভুল — ভাগ করতে হবে পদক্ষেপের দৈর্ঘ্য \(\Delta s\) দিয়ে।
সংজ্ঞা — Directional Derivative (দিকনির্ভর অন্তরজ)
বিন্দু \(P\)-তে \(\mathbf{u}=(u_1,u_2)\) (একক ভেক্টর) দিকে: $\(D_{\mathbf{u}}f(P)=\lim_{\Delta s\to 0}\frac{f(P+\mathbf{u}\,\Delta s)-f(P)}{\Delta s}.\)$ \(\mathbf{u}=(1,0)\) হলে এটা \(\partial f/\partial x\); \(\mathbf{u}=(0,1)\) হলে \(\partial f/\partial y\)।
গণনার দ্রুত সূত্র — linear approximation থেকে \(\Delta f\approx f_x\,\Delta x+f_y\,\Delta y=f_x u_1\Delta s+f_y u_2\Delta s\), ভাগ করে সীমা নিলে:
উপপাদ্য — Directional Derivative-এর সূত্র
$\(D_{\mathbf{u}}f=\frac{\partial f}{\partial x}u_1+\frac{\partial f}{\partial y}u_2.\)$ মূল কথা: দুই দিকের ঢাল জানলেই সব দিকের ঢাল জানা যায়।
উদাহরণ (\(f=xy\), \(P=(1,1)\), \(\mathbf{u}=(1/\sqrt2,1/\sqrt2)\)): \(f_x=y=1\), \(f_y=x=1\), তাই \(D_{\mathbf{u}}f=1\cdot\tfrac{1}{\sqrt2}+1\cdot\tfrac{1}{\sqrt2}=\sqrt2\)।
ওই যোগফল \(f_x u_1+f_y u_2\) আসলে দুটো ভেক্টরের dot product: একটা \(\mathbf{u}\) (দিক ঠিক করে), আরেকটা \((f_x,f_y)\) (function থেকে আসে)। এই দ্বিতীয়টাই gradient।
সংজ্ঞা — Gradient (গ্রেডিয়েন্ট) \(\nabla f\)
$\(\operatorname{grad}f=\nabla f=\frac{\partial f}{\partial x}\mathbf{i}+\frac{\partial f}{\partial y}\mathbf{j}\quad\left(\text{in 3D}\ +\frac{\partial f}{\partial z}\mathbf{k}\right).\)$ প্রতীক \(\nabla\)-কে বলে "grad" (Chapter 15-এ "del")। তখন \(D_{\mathbf{u}}f=(\nabla f)\cdot\mathbf{u}\)।
সাবধান — gradient কিন্তু normal vector নয়! \(\mathbf{N}=(f_x,f_y,-1)\) ৩ মাত্রায়, surface থেকে বেরিয়ে; কিন্তু \(\nabla f=(f_x,f_y)\) base plane-এ, ২ মাত্রায়। gradient নিচ থেকে বলে দেয় surface-এ কোন দিক "উপরে"।
উপপাদ্য — Gradient-এর তিন ধর্ম
- \(D_{\mathbf{u}}f=(\nabla f)\cdot\mathbf{u}\)।
- Level direction (\(\nabla f\)-এর লম্ব): \(D_{\mathbf{u}}f=0\) — function বদলায় না।
- Steepest direction (\(\nabla f\)-এর সমান্তরাল): \(D_{\mathbf{u}}f\) সর্বোচ্চ, আর সেই সর্বোচ্চ মান $\(\lvert\nabla f\rvert=\sqrt{f_x^2+f_y^2}.\)$ কারণ \(\mathbf{u}=\nabla f/\lvert\nabla f\rvert\) নিলে \((\nabla f)\cdot\mathbf{u}=\lvert\nabla f\rvert^2/\lvert\nabla f\rvert=\lvert\nabla f\rvert\)।
উদাহরণ (\(f=3x+y+1\)): \(\nabla f=(3,1)\) (ধ্রুবক)। level direction \((1,-3)\), steepest direction \((3,1)/\sqrt{10}\), সর্বোচ্চ ঢাল \(\sqrt{10}\)। খেয়াল করো \((3,1)\cdot(1,-3)=0\) — steepest সবসময় level-এর লম্ব।

চিত্র 13.12: সমতলে steepest দিক সব বিন্দুতে এক (\(\nabla f\) ধ্রুবক); পাহাড়ে ঢাল বদলালে steepest দিকও বদলায়। level curve বরাবর \(D_{\mathbf u}f=0\), তার লম্ব বরাবর creek-এর জল গড়ায়।

চিত্র 13.13: surface-এ তিনটা বিশেষ ভেক্টর — level \(\mathbf{L}=(f_y,-f_x,0)\), uphill \(\mathbf{U}=(f_x,f_y,f_x^2+f_y^2)\), আর normal \(\mathbf{N}=(f_x,f_y,-1)\) — পরস্পর লম্ব। gradient হলো \(\mathbf{U}\) (বা \(\mathbf{N}\))-এর \(xy\)-প্রক্ষেপ, নিচে base plane-এ।
এবার আমাদের পরিষ্কার ছবিতে দেখি gradient কীভাবে level curve-এর লম্ব:

কিড-চিত্র: \(f=x^2+y^2\)-এর contour map (নীল বৃত্ত)। প্রতিটা লাল তীর \(\nabla f=(2x,2y)\) — বৃত্তের লম্ব বরাবর বাইরে দিকে (uphill)। center-এ \(\nabla f=\mathbf 0\), তাই সেখানে minimum। এই "gradient level curve-এর লম্ব, uphill-এর দিকে" ধর্মই gradient descent-এর ভিত্তি।
বাঁকা পথে derivative। পথ \(\mathbf{R}(t)=x(t)\mathbf{i}+y(t)\mathbf{j}\), বেগ \(\mathbf{v}=(dx/dt,dy/dt)\), একক tangent \(\mathbf{T}=\mathbf{v}/\lvert\mathbf{v}\rvert\)। তখন

চিত্র 13.14: বাঁকা পথে \(f=r\) (দূরত্ব) বদলায়। পথ \(x=t^2,y=t\)-এ \(t=1\)-এ \(\mathbf v=2\mathbf i+\mathbf j\), \(\nabla f=\mathbf i/\sqrt2+\mathbf j/\sqrt2\); তাই \(df/dt=3/\sqrt2\) কিন্তু \(df/ds=3/\sqrt{10}\)। "roller-coaster" \(f=xy\)-এর ঢাল বৃত্তপথে \(\cos^2 t-\sin^2 t\)।

চিত্র (13.4 অনুশীলন): contour map থেকে চোখে দেখেই gradient-এর দিক ও দৈর্ঘ্য আন্দাজ করা যায় — যেখানে contour-লাইন ঘন, \(\lvert\nabla f\rvert\) সেখানে বড়; gradient সবসময় বেশি-\(c\)-এর level curve-এর দিকে লম্ব বরাবর।
২.৫ The Chain Rule (শৃঙ্খল নিয়ম)¶
\(f(g(x))\)-এর মতো "function-এর function" সব জায়গায়। দুই চলকে তিন রকম:
উপপাদ্য — Chain Rule-এর তিন রূপ
(১) \(f(g(x,y))\)-এর জন্য: $\(\frac{\partial f}{\partial x}=\frac{df}{dg}\frac{\partial g}{\partial x},\qquad \frac{\partial f}{\partial y}=\frac{df}{dg}\frac{\partial g}{\partial y}.\)$
(২) \(f(x(t),y(t))\)-এর জন্য (সবচেয়ে বেশি ব্যবহৃত): $\(\frac{df}{dt}=\frac{\partial f}{\partial x}\frac{dx}{dt}+\frac{\partial f}{\partial y}\frac{dy}{dt}.\)$
(৩) \(f(x(t,u),y(t,u))\)-এর জন্য: $\(\frac{\partial f}{\partial t}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial t}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial t}.\)$
খেয়াল করো (২)-তে দুটো পদ — \(t\) একই সঙ্গে \(x\) ও \(y\) দিয়ে \(f\)-কে প্রভাবিত করে; শুধু একটা পদ নিলে ভুল।
উদাহরণ ১ (এক-দিকের তরঙ্গ সমীকরণ): প্রতিটা \(f(x+cy)\) মেনে চলে \(\partial f/\partial y=c\,\partial f/\partial x\)। কারণ \(g=x+cy\)-এ \(g_x=1,g_y=c\), তাই \(f_x=(df/dg)\cdot 1\) আর \(f_y=(df/dg)\cdot c=c f_x\)।
উদাহরণ ২ (Florida-যাত্রা): তাপমাত্রা \(f=30+0.05x+0.01y\), দক্ষিণ-পূর্বে \(70\) mph-এ (\(dx/dt=dy/dt=70/\sqrt2\)):
দিন-রাতের সরাসরি \(t\)-নির্ভরতা থাকলে বাড়তি পদ: \(f(x,y,t)\)-এর জন্য
Second derivative সরলরেখায়। \(x=x_0+t\cos\theta\), \(y=y_0+t\sin\theta\) (একক বেগে) হলে \(f_t=f_x\cos\theta+f_y\sin\theta\), আর
এখান থেকেই আসে \(\lvert f_{tt}\rvert\le 2M\) (linear approximation-এর ভুলে দরকার ছিল)। polar-এ \(t\to r\) নিলে এবং সব যোগ করলে Laplacian-এর সুন্দর রূপ:
একটা ধাঁধা। \(r=\sqrt{x^2+y^2}\)-এ \(\partial r/\partial x=x/r=\cos\theta\)। আবার \(r=x/\cos\theta\) থেকে মনে হয় \(\partial r/\partial x=1/\cos\theta\)। \(\cos\theta=1/\cos\theta\)?!

চিত্র 13.15: ধাঁধার সমাধান — কোন চলক স্থির? প্রথমটায় \(y\) স্থির (অনুভূমিক রেখায় নড়ছি), তখন \(dr=dx\cos\theta\)। দ্বিতীয়টায় \(\theta\) স্থির (radial রেখায় নড়ছি), তখন \(dr=dx/\cos\theta\)। তাই subscript দিয়ে লিখি: \((\partial r/\partial x)_y=\cos\theta\), \((\partial r/\partial x)_\theta=1/\cos\theta\)।
অ-স্বাধীন চলক। \(x,y,z\)-এর মধ্যে সম্পর্ক থাকলে (যেমন গ্যাস-সূত্র \(PV=nRT\)) \(x\) একা নড়তে পারে না। কী স্থির তা subscript-এ বলি: \((\partial f/\partial x)_y\) মানে \(y\) স্থির। উদাহরণ: \(f=3x+2y+z\), সমতল \(z=4x+y\)-এ
কিন্তু \((\partial f/\partial x)_z=3+(2)(-4)=-5\) — subscript বদলালে উত্তর বদলায়!
২.৬ Maxima, Minima এবং Saddle Points (সর্বোচ্চ, সর্বনিম্ন ও স্যাডল বিন্দু)¶
differential calculus-এর সবচেয়ে সরল অথচ শক্তিশালী সমীকরণ: \(df/dx=0\)। দুই চলকে stationary point (স্থির বিন্দু) চাই যেখানে \(\partial f/\partial x=0\) এবং \(\partial f/\partial y=0\)।
উপপাদ্য — Interior চরমে Gradient শূন্য
যদি অভ্যন্তরীণ (interior) সর্বোচ্চ বা সর্বনিম্ন বিন্দুতে derivative থাকে, তবে $\(\frac{\partial f}{\partial x}=0\quad\text{and}\quad\frac{\partial f}{\partial y}=0\qquad(\text{i.e.}\ \nabla f=\mathbf 0).\)$ তিন চলকে যোগ করো \(\partial f/\partial z=0\)।
যুক্তি এক-চলকে ফিরে যায়: \(y=y_0\) রেখায় minimum ⟹ \(f_x=0\); \(x=x_0\) রেখায় minimum ⟹ \(f_y=0\)।

চিত্র 13.16: \((x_0,y_0)\) surface-এর সর্বনিম্ন বিন্দু; দুটো cross-section-ই তলায় ঠেকে, তাই \(f_x=f_y=0\)। "যদি derivative থাকে" শর্তটা cone-এর ধারালো চূড়ার মতো rough point বাদ দেয় (\(f=\lvert x\rvert\) বা \(f=r\)-এর minimum আছে কিন্তু \(f'=0\) নেই)।
উদাহরণ ১ (quadratic minimize): \(f=x^2+xy+y^2-x-y+1\)।
quadratic, তাই সমীকরণ রৈখিক; সমাধান \(x_0=y_0=\tfrac13\), আর \(f_{\min}=\tfrac23\)।
Steiner-সমস্যা। তিনটা প্রদত্ত বিন্দুর কাছাকাছি একটা বিন্দু খোঁজা (যেমন তিন শহরের কাছে বিমানবন্দর)। যদি খরচ = (দূরত্ব)\(^2\) হয়:
সেরা বিন্দু = ত্রিভুজের centroid (ভরকেন্দ্র)। square করলে derivative রৈখিক হয় — তাই least squares এত জনপ্রিয়।

চিত্র 13.17: খরচ = দূরত্ব\(^2\) হলে সেরা বিন্দু centroid। কিন্তু খরচ = দূরত্ব (আসল Steiner সমস্যা) হলে \(\operatorname{grad}d_i=\mathbf u_i\) প্রতিটাই একক ভেক্টর (কোণ থেকে সোজা বাইরে), আর \(\nabla f=\mathbf u_1+\mathbf u_2+\mathbf u_3=\mathbf 0\)।

চিত্র 13.18: তিনটা একক ভেক্টর শূন্যে যোগ হওয়ার একমাত্র উপায় — পরস্পর \(120^\circ\) কোণে। তাই Steiner point-এ তিন রাস্তা \(120^\circ\) কোণ বানায়। কোনো কোণ \(120^\circ\)-এর বেশি হলে সেরা বিন্দুটা ওই কোণটাই (rough point)।
Boundary-তে চরম। বাস্তব সমস্যায় \(x\ge 0\) বা \(x^2+y^2\ge 1\)-এর মতো শর্ত থাকে। তিনটা সম্ভাবনা: (১) stationary point, (২) rough point, (৩) boundary point।

চিত্র 13.19: একই \(f\)-কে \(y\le 0\)-এ minimize করলে interior সর্বনিম্ন \((\tfrac13,\tfrac13)\) আর অনুমোদিত নয়; boundary \(y=0\)-তে \(f(x,0)=x^2-x+1\), যার সর্বনিম্ন \(x=\tfrac12\)-এ, \(f=\tfrac34\)। বৃত্ত-boundary-তে \(x=\cos t,y=\sin t\) বসিয়ে \(df/dt=0\) সমাধান করি।
Max vs. min vs. saddle—second-derivative test। এক চলকে stationary point-এ \(f''>0\) হলে strict local minimum এবং \(f''<0\) হলে strict local maximum। দুই চলকে Hessian-এর quadratic form \(Q=ax^2+2bxy+cy^2\) complete the square করে analyze করি:
উপপাদ্য — Second-Derivative Test (13K/13L)
\(C^2\) function-এর stationary point-এ Hessian entries দিয়ে discriminant $\(D=f_{xx}f_{yy}-(f_{xy})^2\)$ হিসাব করো:
| অবস্থা | সিদ্ধান্ত |
|---|---|
| \(D>0\) ও \(f_{xx}>0\) | minimum (উপরে বাঁকা) |
| \(D>0\) ও \(f_{xx}<0\) | maximum (নিচে বাঁকা) |
| \(D<0\) | saddle point |
| \(D=0\) | test অনির্ণায়ক (উচ্চতর পদ দেখো) |
(Taylor quadratic term \(Q=\tfrac12 f_{xx}x^2+f_{xy}xy+\tfrac12 f_{yy}y^2\); তাই determinant test এবং \(ac-b^2\) একই sign information দেয়।)
উদাহরণ ৬: \(f=x^2+10xy+y^2\) ⟹ \(f_{xx}=2,f_{xy}=10,f_{yy}=2\), \(D=4-100=-96<0\) ⟹ saddle (যদিও তিনটাই ধনাত্মক!)। \(x=1,y=-1\)-এ \(f=1-10+1<0\)।
উদাহরণ ৭: \(f=x^2+xy+y^2\) ⟹ \(f_{xx}=2,f_{xy}=1,f_{yy}=2\), \(D=4-1=3>0\), \(f_{xx}>0\) ⟹ minimum। পার্থক্য শুধু \(f_{xy}\)-এর আকার।

চিত্র 13.20: \(a\) ও \((ac-b^2)\)-এর চিহ্ন দিয়ে তিন রকম আকার — bowl (min), গম্বুজ (max), saddle। stationary point-এ linear পদ মিলিয়ে যায়, তখন quadratic পদই surface-এর বাঁক ঠিক করে।
Taylor series ২ মাত্রায়। basepoint \((0,0)\)-তে:
প্রথম তিন পদ = linear approximation (tangent plane); quadratic পদ = second-derivative test-এর নিয়ন্ত্রক।
২.৭ Constraints এবং Lagrange Multipliers (শর্ত ও ল্যাগ্রাঞ্জ গুণক)¶
এবার বাস্তব সমস্যা: \(f(x,y)\)-কে minimize করো, কিন্তু আরেকটা function স্থির — constraint \(g(x,y)=k\) (সম্পদ/অর্থ/শক্তি সীমিত)। এখন \(f_x=0,f_y=0\) চলবে না, কারণ ওরা \(g\)-কে হিসাবে ধরে না।
উদাহরণ ১: \(f=x^2+y^2\) minimize করো, শর্ত \(g=2x+y=k\)। \(f=c\)-এর level curve বৃত্ত। \(c\) ছোট হলে বৃত্ত রেখা \(2x+y=k\) ছোঁয় না; \(c\) বাড়াও যতক্ষণ না বৃত্ত রেখাকে স্পর্শ (tangent) করে — সেই স্পর্শবিন্দুই বিজয়ী।

চিত্র 13.21: level curve \(f=c\) যখন constraint curve \(g=k\)-কে স্পর্শ করে, তখন দুটোর লম্ব একই দিকে — অর্থাৎ \(\nabla f\) আর \(\nabla g\) সমান্তরাল। এটাই Lagrange-এর মূল ধারণা।
আমাদের পরিষ্কার ছবিতে:

কিড-চিত্র: নীল বৃত্ত \(f=c\) বাড়তে বাড়তে সবুজ রেখা \(g=2x+y=k\)-কে স্পর্শ করে লাল বৃত্তে (\(f=f_{\min}\))। স্পর্শবিন্দুতে \(\nabla f=(4,2)\) (লাল) আর \(\nabla g=(2,1)\) (সবুজ) সমান্তরাল: \(\nabla f=\lambda\nabla g\) with \(\lambda=2\)।
উপপাদ্য — Lagrange Multiplier (13N)
\(f,g\) differentiable, \(g(x,y)=k\) constraint-এ local extremum \((x_0,y_0)\), এবং \(\nabla g(x_0,y_0)\ne0\) হলে \(\nabla f\) ও \(\nabla g\) parallel—কোনো scalar \(\lambda\)-র জন্য: $\(\nabla f=\lambda\,\nabla g\qquad\text{i.e.}\qquad \frac{\partial f}{\partial x}=\lambda\frac{\partial g}{\partial x},\quad \frac{\partial f}{\partial y}=\lambda\frac{\partial g}{\partial y}.\)$ এই \(\lambda\)-কে বলে Lagrange multiplier।
তিন অজানা \(x,y,\lambda\), তিন সমীকরণ:
প্রথম দুটো থেকে \(x=\lambda\), \(y=\lambda/2\); তৃতীয়টায় বসিয়ে \(\tfrac52\lambda=k\), তাই \(\lambda=\tfrac{2}{5}k\)। ফলে
\(\lambda\)-এর অর্থ — সংবেদনশীলতা (sensitivity)
\(f_{\min}=\tfrac{1}{5}k^2\)-এর derivative \(\tfrac{2}{5}k=\lambda\)! অর্থাৎ \(\lambda=df_{\min}/dk\) — constraint-কে \(\Delta k\) সরালে \(f_{\min}\) প্রায় \(\lambda\,\Delta k\) বদলায়। অর্থনীতিতে একে "shadow price" বলে।
Lagrange function। \(f_x=0,f_y=0\) হারিয়েছি, কিন্তু একটা নতুন function \(L\)-এর তিনটা derivative শূন্য:
সংজ্ঞা — Lagrange Function (13O)
$\(L(x,y,\lambda)=f(x,y)-\lambda\big(g(x,y)-k\big).\)$ এর তিন derivative শূন্য দিলে ঠিক আমাদের তিন সমীকরণ পাওয়া যায়: $\(\frac{\partial L}{\partial x}=f_x-\lambda g_x=0,\quad \frac{\partial L}{\partial y}=f_y-\lambda g_y=0,\quad \frac{\partial L}{\partial\lambda}=-(g-k)=0.\)$ শেষটা আপনাআপনি \(g=k\) ফিরিয়ে দেয় — constraint "built-in"।
উদাহরণ ২ (উপবৃত্তে): \(f=x^2+y^2\)-এর max/min, শর্ত \(g=(x-1)^2+4y^2=4\)।
দ্বিতীয় সমীকরণ: \(y=0\) অথবা \(\lambda=\tfrac14\)। \(y=0\) হলে \((x-1)^2=4\) ⟹ \(x=3\) বা \(x=-1\), \(f=9\) বা \(1\)। \(\lambda=\tfrac14\) হলে \(x=-\tfrac13\), \(y^2=\tfrac59\), \(f=\tfrac69=\tfrac23\)। তাই \(f_{\max}=9\), \(f_{\min}=\tfrac23\)।
দুই constraint। \(f(x,y,z)\)-কে minimize করো, শর্ত \(g=k_1\) এবং \(h=k_2\)। Constraint gradients \(\nabla g,\nabla h\) linearly independent হলে necessary condition
সঙ্গে \(g=k_1,h=k_2\) — মোট পাঁচ সমীকরণ, পাঁচ অজানা \(x,y,z,\lambda_1,\lambda_2\)।

চিত্র 13.22: দুই সমতল \(g=k_1,h=k_2\) একটা রেখায় মেলে। \(\nabla f,\nabla g,\nabla h\) তিনটাই ওই রেখার লম্ব — অর্থাৎ একই সমতলে। তাই \(\nabla f\) হলো \(\nabla g\) ও \(\nabla h\)-এর একটা রৈখিক সমাহার।
উদাহরণ ৩: \(x^2+y^2+z^2\) minimize করো, শর্ত \(x+y+z=9\), \(x+2y+3z=20\)। সমাধান \(\lambda_1=\lambda_2=2\), \((x,y,z)=(2,3,4)\), \(f_{\min}=29\)।
Inequality constraint ও linear programming। আমাদের convention \(L=f-\lambda(g-k)\)-এ \(g\le k\) constraint-এর জন্য KKT sign হলো minimization-এ \(\lambda\le0\) এবং maximization-এ \(\lambda\ge0\)। সঙ্গে feasibility ও complementary slackness \(\lambda(g-k)=0\) লাগে; regularity/constraint-qualification assumptions-ও দরকার। Inactive constraint (\(g<k\)) হলে \(\lambda=0\)।

চিত্র 13.23: এই linear program-এ \(f=5x+6y\) minimize করলে unique optimum vertex \(Q=(4,0)\), \(f_{\min}=20\)। সাধারণ linear program-এ finite optimum থাকলে অন্তত একটি optimal extreme point থাকে; objective boundary edge-এর parallel হলে পুরো edge optimal হতে পারে, তাই unique corner সবসময় নয়।
৩. সংজ্ঞা ও উপপাদ্য (একনজরে)¶
উপরে ছড়িয়ে-থাকা মূল সংজ্ঞা-উপপাদ্যগুলো এক জায়গায়, দ্রুত রেফারেন্সের জন্য।
১. Partial derivative। \(\dfrac{\partial f}{\partial x}=\lim\limits_{\Delta x\to0}\dfrac{f(x+\Delta x,y)-f(x,y)}{\Delta x}\) — \(y\) স্থির রেখে \(x\)-এর সাধারণ derivative। একইভাবে \(\partial f/\partial y\)।
২. Gradient। \(\nabla f=(f_x,f_y)\) (\(xy\)-সমতলে, ২ মাত্রায়)। এটা level curve-এর লম্ব, uphill-এর দিকে; দৈর্ঘ্য \(\lvert\nabla f\rvert=\sqrt{f_x^2+f_y^2}\) = সর্বোচ্চ ঢাল।
৩. Directional derivative। \(D_{\mathbf u}f=(\nabla f)\cdot\mathbf u=f_x u_1+f_y u_2\) (এখানে \(\mathbf u\) একক ভেক্টর)। level-দিকে \(0\), gradient-দিকে সর্বোচ্চ।
৪. Tangent plane। \(z-z_0=f_x(x-x_0)+f_y(y-y_0)\); normal \(\mathbf N=(f_x,f_y,-1)\)। implicit \(F=c\)-এ \(F_x(x-x_0)+F_y(y-y_0)+F_z(z-z_0)=0\), \(\mathbf N=(F_x,F_y,F_z)\)।
৫. Multivariable chain rule। পথ বরাবর \(\dfrac{df}{dt}=f_x\dfrac{dx}{dt}+f_y\dfrac{dy}{dt}\); দুই ভেতর-চলকে \(\dfrac{\partial f}{\partial t}=f_x\dfrac{\partial x}{\partial t}+f_y\dfrac{\partial y}{\partial t}\)।
৬. Second-derivative test। stationary point (\(f_x=f_y=0\))-এ \(D=f_{xx}f_{yy}-f_{xy}^2\): \(D>0,f_{xx}>0\) → min; \(D>0,f_{xx}<0\) → max; \(D<0\) → saddle; \(D=0\) → অনির্ণায়ক।
৭. Lagrange multiplier। \(g=k\) শর্তে \(f\)-এর চরমে \(\nabla f=\lambda\nabla g\); তিন সমীকরণ \(f_x=\lambda g_x,\ f_y=\lambda g_y,\ g=k\)। আর \(\lambda=df_{\min}/dk\) (সংবেদনশীলতা)।
একটা ছোট প্রমাণ — Steepest direction কেন gradient বরাবর? (\(\square\) সহ)
\(D_{\mathbf u}f=(\nabla f)\cdot\mathbf u=\lvert\nabla f\rvert\,\lvert\mathbf u\rvert\cos\phi\), যেখানে \(\phi\) হলো \(\nabla f\) ও \(\mathbf u\)-এর মধ্যে কোণ। যেহেতু \(\mathbf u\) একক ভেক্টর, \(\lvert\mathbf u\rvert=1\): $\(D_{\mathbf u}f=\lvert\nabla f\rvert\cos\phi.\)$ এটা সর্বোচ্চ হয় যখন \(\cos\phi=1\), অর্থাৎ \(\phi=0\) — \(\mathbf u\) যখন \(\nabla f\)-এর সমান্তরাল। তখন \(D_{\mathbf u}f=\lvert\nabla f\rvert\)। আর \(\cos\phi=0\) (অর্থাৎ \(\mathbf u\perp\nabla f\)) হলে \(D_{\mathbf u}f=0\) — সেটাই level direction। \(\square\)
৪. উদাহরণ ও Analogy¶
উদাহরণ ১ (partial derivative, বেসিক)। \(f=x^3y-4xy^2+7\)।
- \(f_x\): \(y\) স্থির, \(\dfrac{\partial f}{\partial x}=3x^2y-4y^2\)।
- \(f_y\): \(x\) স্থির, \(\dfrac{\partial f}{\partial y}=x^3-8xy\)।
উদাহরণ ২ (gradient ও directional derivative)। \(f=x^2-y^2\), বিন্দু \(P=(3,1)\), দিক \(\mathbf u=(3/5,4/5)\) (একক, কারণ \(9/25+16/25=1\))।
সবচেয়ে খাড়া দিক \(\nabla f=(6,-2)\) বরাবর, সর্বোচ্চ ঢাল \(\lvert\nabla f\rvert=\sqrt{36+4}=\sqrt{40}=2\sqrt{10}\)।
উদাহরণ ৩ (tangent plane)। \(z=xy\), বিন্দু \((2,3,6)\)। \(f_x=y=3\), \(f_y=x=2\)। tangent plane \(z-6=3(x-2)+2(y-3)\), অর্থাৎ \(z=3x+2y-6\)। normal \(\mathbf N=(3,2,-1)\)।
উদাহরণ ৪ (chain rule, polar)। \(f=xy\), \(x=r\cos\theta\), \(y=r\sin\theta\)।
যাচাই: \(f=r^2\cos\theta\sin\theta=\tfrac12 r^2\sin2\theta\), তাই \(\partial f/\partial r=r\sin2\theta\)। ✓
উদাহরণ ৫ (Lagrange)। \(x^2+y^2\) minimize করো, শর্ত \(x+y=6\)। \(\nabla f=(2x,2y)\), \(\nabla g=(1,1)\); \(2x=\lambda,2y=\lambda\) ⟹ \(x=y\); \(x+y=6\) ⟹ \(x=y=3\), \(f_{\min}=18\), \(\lambda=6\)। (জ্যামিতি: origin থেকে রেখার নিকটতম বিন্দু — লম্ব বরাবর।)
Analogy — কুয়াশায় ঢাকা পাহাড়ে হাইকার
কল্পনা করো তুমি ঘন কুয়াশায় একটা পাহাড়ে দাঁড়িয়ে, কিছুই দেখা যায় না, শুধু পায়ের নিচের ঢাল অনুভব করতে পারো।
- Partial derivative: ঠিক পূর্ব দিকে এক পা বাড়ালে কতটা উঁচু/নিচু হলে — \(\partial f/\partial x\)। উত্তরে বাড়ালে — \(\partial f/\partial y\)।
- Gradient: এই দুই অনুভূতি জোড়া দিলে তুমি বুঝে ফেলবে কোন দিকে সবচেয়ে খাড়া উপরে — সেটাই \(\nabla f\)-এর দিক, আর কতটা খাড়া সেটা \(\lvert\nabla f\rvert\)।
- Level direction: যে দিকে হাঁটলে উচ্চতা একটুও বদলায় না (পাহাড় ঘিরে সমান-উচ্চতার পথ) — gradient-এর লম্ব।
- Gradient descent (ML): নিচে নামতে চাইলে \(\nabla f\)-এর উল্টো দিকে এক পা — এটাই neural network প্রশিক্ষণের প্রতিটা ধাপ।
- Lagrange: তোমাকে যদি একটা নির্দিষ্ট বেড়ার (constraint curve) ওপর দিয়েই হাঁটতে বলা হয়, তবে বেড়ার ওপর সবচেয়ে নিচু বিন্দু সেখানে — যেখানে পাহাড়ের contour বেড়াটাকে ঠিক স্পর্শ করে (gradient দুটো সমান্তরাল)।
৫. Python-এ করো¶
নিচের কোডগুলো numpy, sympy, matplotlib দিয়ে এই অধ্যায়ের মূল হিসাবগুলো করে দেখায়।
(ক) sympy দিয়ে partial derivative, gradient ও second-derivative test:
import sympy as sp
# চলক ঘোষণা
x, y = sp.symbols('x y', real=True)
f = x**2 + x*y + y**2 - x - y + 1 # §২.৬-এর উদাহরণ ১
# partial derivative
fx = sp.diff(f, x) # ∂f/∂x
fy = sp.diff(f, y) # ∂f/∂y
print("fx =", fx, " fy =", fy) # fx = 2x + y - 1 , fy = x + 2y - 1
# stationary point: fx = 0, fy = 0 একসঙ্গে সমাধান
crit = sp.solve([fx, fy], [x, y], dict=True)
print("stationary point:", crit) # [{x: 1/3, y: 1/3}]
# second-derivative test: D = fxx*fyy - fxy^2
fxx = sp.diff(f, x, 2)
fyy = sp.diff(f, y, 2)
fxy = sp.diff(f, x, y)
D = fxx*fyy - fxy**2
print("fxx =", fxx, " D =", D) # fxx = 2 , D = 3 > 0 এবং fxx > 0 → minimum
(খ) numpy দিয়ে gradient (সংখ্যাগত) ও directional derivative:
import numpy as np
# f = x^2 - y^2 ; বিন্দু P = (3, 1) ; দিক u = (3/5, 4/5)
def f(x, y):
return x**2 - y**2
def grad_f(x, y, h=1e-6):
# কেন্দ্রীয় অন্তর (central difference) দিয়ে partial derivative আসন্ন
fx = (f(x+h, y) - f(x-h, y)) / (2*h)
fy = (f(x, y+h) - f(x, y-h)) / (2*h)
return np.array([fx, fy])
P = (3.0, 1.0)
g = grad_f(*P)
u = np.array([3/5, 4/5]) # একক ভেক্টর (|u| = 1)
print("grad f =", np.round(g, 4)) # [ 6. -2. ]
print("D_u f =", np.dot(g, u)) # 2.0
print("steepest slope |grad f| =", np.linalg.norm(g)) # 6.324... = 2√10
(গ) matplotlib দিয়ে contour + gradient field আঁকা:
import numpy as np
import matplotlib.pyplot as plt
xx = np.linspace(-3, 3, 300)
yy = np.linspace(-3, 3, 300)
X, Y = np.meshgrid(xx, yy)
Z = X**2 + Y**2 # bowl
fig, ax = plt.subplots(figsize=(6, 5))
ax.contourf(X, Y, Z, levels=25, cmap='YlGnBu') # রঙিন কনট্যুর
cs = ax.contour(X, Y, Z, levels=[1, 4, 9], colors='navy')
ax.clabel(cs, fmt='f=%d')
# কয়েকটা বিন্দুতে gradient (2x, 2y) তীর — level curve-এর লম্ব
px = np.linspace(-2.4, 2.4, 6)
Px, Py = np.meshgrid(px, px)
ax.quiver(Px, Py, 2*Px, 2*Py, color='crimson') # ∇f = (2x, 2y)
ax.set_aspect('equal'); ax.set_title('contour + gradient field')
plt.savefig('contour_gradient.png', dpi=150)
(ঘ) 3D surface ও saddle আঁকা:
import numpy as np
import matplotlib.pyplot as plt
X, Y = np.meshgrid(np.linspace(-2, 2, 60), np.linspace(-2, 2, 60))
fig = plt.figure(figsize=(10, 4))
ax1 = fig.add_subplot(1, 2, 1, projection='3d')
ax1.plot_surface(X, Y, X**2 + Y**2, cmap='viridis') # bowl: minimum
ax1.set_title('z = x^2 + y^2 (minimum)')
ax2 = fig.add_subplot(1, 2, 2, projection='3d')
ax2.plot_surface(X, Y, X**2 - Y**2, cmap='coolwarm') # saddle
ax2.set_title('z = x^2 - y^2 (saddle)')
plt.savefig('surface_saddle.png', dpi=150)
(ঙ) Lagrange multiplier — sympy দিয়ে সমাধান:
import sympy as sp
x, y, lam = sp.symbols('x y lambda', real=True)
f = x**2 + y**2 # minimize
g = 2*x + y - 5 # constraint g = 2x + y = 5 (k = 5)
# ∇f = λ ∇g এবং g = 0
eqs = [sp.diff(f, x) - lam*sp.diff(g, x),
sp.diff(f, y) - lam*sp.diff(g, y),
g]
sol = sp.solve(eqs, [x, y, lam], dict=True)
print(sol) # [{x: 2, y: 1, lambda: 2}]
# λ = 2 = df_min/dk (সংবেদনশীলতা)
৬. সাধারণ ভুল¶
যেসব ভুল প্রায় সবাই করে
- \(y\)-কে শূন্য ধরা। \(\partial f/\partial x\) নেওয়ার সময় \(y\) ধ্রুবক (যেমন \(6\)), শূন্য নয়। \(f=x^2y\)-এর \(f_x=2xy\), \(0\) নয়।
- Directional derivative-এ \(\mathbf u\) একক না করা। \(D_{\mathbf u}f=\nabla f\cdot\mathbf u\) শুধু তখনই ঢাল দেয় যখন \(\lvert\mathbf u\rvert=1\)। দিক \((3,4)\) দিলে আগে \((3/5,4/5)\)-এ ভাগ করো।
- Gradient-কে normal vector ভাবা। \(\nabla f=(f_x,f_y)\) base plane-এ (২ মাত্রা); surface-এর normal \(\mathbf N=(f_x,f_y,-1)\) (৩ মাত্রা)। এরা আলাদা।
- Chain rule-এ একটা পদ ভুলে যাওয়া। \(df/dt=f_x x'+f_y y'\) — দুটো পদ। শুধু \(f_x x'\) নিলে অর্ধেক উত্তর।
- Second-derivative test-এ শুধু \(f_{xx},f_{yy}>0\) দেখে min বলা। \(f_{xy}\) ভুলো না! \(x^2+10xy+y^2\)-এ তিনটাই ধনাত্মক তবু saddle, কারণ \(D=f_{xx}f_{yy}-f_{xy}^2<0\)।
- \(D=0\)-তে জোর করে সিদ্ধান্ত। \(D=0\) হলে test অনির্ণায়ক — উচ্চতর পদ দেখতে হয় (\(e^{x+y}\)-এর মতো)।
- Boundary ভুলে যাওয়া। constrained সমস্যায় interior stationary point-ই শেষ কথা নয়; boundary-তে ~\(40\%\) minimum লুকিয়ে থাকে (Strang: "\(80\%\) কাজ")।
- অ-স্বাধীন চলকে subscript বাদ। \(z=4x+y\) সম্পর্ক থাকলে \((\partial f/\partial x)_y\) আর \((\partial f/\partial x)_z\) আলাদা — কোনটা স্থির না বললে উত্তর অর্থহীন।
- Math-rendering: display
$$...$$-এর আগে-পরে ফাঁকা লাইন না দিলে inline হয়ে যায়; table-cell-এ absolute value-এ literal|না দিয়ে\lvert\rvertব্যবহার করো।
৭. এক্সারসাইজ¶
নিচের ১০টা সমস্যা নিজে চেষ্টা করো, তারপর §৮-এর সমাধান মেলাও।
- \(f=x^3y^2-x^2e^y\)-এর \(f_x\) ও \(f_y\) বের করো।
- \(f=x^2+3xy+2y^2\)-এর চারটা second derivative বের করে দেখাও \(f_{xy}=f_{yx}\)।
- \(z=x^2+y^2\)-এর \((1,1,2)\) বিন্দুতে tangent plane ও normal vector \(\mathbf N\) বের করো।
- \(f=x^2-y^2\)-এর \(P=(2,1)\)-তে gradient বের করো, তারপর \(\mathbf u=(1/\sqrt2,1/\sqrt2)\) দিকে \(D_{\mathbf u}f\)।
- \(f=3x^2+2y^2\)-এর \((1,2)\) বিন্দুতে সবচেয়ে খাড়া দিক ও সর্বোচ্চ ঢাল কত?
- Chain rule: \(f=x^2+y^2\), \(x=t\), \(y=t^2\) হলে \(df/dt\) বের করো (দুইভাবে যাচাই করো)।
- \(f=x^2+xy+y^2-x-y+1\)-এর stationary point বের করে second-derivative test দিয়ে শ্রেণিবদ্ধ করো।
- \(f=x^3+y^3-3x-3y\)-এর সব stationary point বের করে প্রতিটাকে min/max/saddle বলো।
- Lagrange দিয়ে: \(x^2+y^2=2\) বৃত্তে \(f=xy\)-এর সর্বোচ্চ মান বের করো।
- \(f=\sqrt{x^2+y^2}\)-এর \((3,4)\) বিন্দুর কাছে linear approximation ব্যবহার করে \(\sqrt{3.1^2+3.9^2}\) আসন্ন করো।
৮. সমাধান (ব্যাখ্যাসহ)¶
১-নং সমাধান দেখাও
\(f=x^3y^2-x^2e^y\)।
- \(f_x\): \(y\) স্থির। \(\dfrac{\partial f}{\partial x}=3x^2y^2-2x e^y\)।
- \(f_y\): \(x\) স্থির। \(\dfrac{\partial f}{\partial y}=2x^3y-x^2 e^y\) (কারণ \(e^y\)-এর \(y\)-অন্তরজ \(e^y\))।
২-নং সমাধান দেখাও
\(f=x^2+3xy+2y^2\)।
First: \(f_x=2x+3y\), \(f_y=3x+4y\)।
Second: \(f_{xx}=2\), \(f_{yy}=4\), আর $\(f_{xy}=\frac{\partial}{\partial y}(2x+3y)=3,\qquad f_{yx}=\frac{\partial}{\partial x}(3x+4y)=3.\)$ তাই \(f_{xy}=f_{yx}=3\)। ✓ (Clairaut-এর উপপাদ্য মেনে।)
৩-নং সমাধান দেখাও
\(z=f(x,y)=x^2+y^2\)। \(f_x=2x\), \(f_y=2y\); \((1,1)\)-তে \(f_x=2,f_y=2\)।
tangent plane: $\(z-2=2(x-1)+2(y-1),\)$ অর্থাৎ \(z=2x+2y-2\)। normal vector \(\mathbf N=(f_x,f_y,-1)=(2,2,-1)\)।
৪-নং সমাধান দেখাও
\(f=x^2-y^2\)। \(\nabla f=(2x,-2y)\); \(P=(2,1)\)-তে \(\nabla f=(4,-2)\)।
\(\mathbf u=(1/\sqrt2,1/\sqrt2)\) একক ভেক্টর (\(\tfrac12+\tfrac12=1\))। তাই $\(D_{\mathbf u}f=(4)\!\left(\tfrac{1}{\sqrt2}\right)+(-2)\!\left(\tfrac{1}{\sqrt2}\right)=\frac{4-2}{\sqrt2}=\frac{2}{\sqrt2}=\sqrt2.\)$
৫-নং সমাধান দেখাও
\(f=3x^2+2y^2\)। \(\nabla f=(6x,4y)\); \((1,2)\)-তে \(\nabla f=(6,8)\)।
সবচেয়ে খাড়া দিক \(\nabla f=(6,8)\) বরাবর (একক করলে \((6,8)/10=(0.6,0.8)\))। সর্বোচ্চ ঢাল $\(\lvert\nabla f\rvert=\sqrt{6^2+8^2}=\sqrt{100}=10.\)$
৬-নং সমাধান দেখাও
Chain rule দিয়ে: \(f_x=2x\), \(f_y=2y\); \(dx/dt=1\), \(dy/dt=2t\)। $\(\frac{df}{dt}=2x\cdot 1+2y\cdot 2t=2t+2t^2\cdot 2t=2t+4t^3.\)$ সরাসরি যাচাই: \(f=t^2+(t^2)^2=t^2+t^4\), তাই \(df/dt=2t+4t^3\)। ✓
৭-নং সমাধান দেখাও
\(f=x^2+xy+y^2-x-y+1\)। \(f_x=2x+y-1=0\), \(f_y=x+2y-1=0\)।
বিয়োগ করলে \((2x+y)-(x+2y)=0\Rightarrow x-y=0\Rightarrow x=y\)। তারপর \(2x+x-1=0\Rightarrow x=\tfrac13\)। stationary point \((\tfrac13,\tfrac13)\)।
Test: \(f_{xx}=2\), \(f_{yy}=2\), \(f_{xy}=1\), তাই \(D=2\cdot2-1^2=3>0\) এবং \(f_{xx}=2>0\) ⟹ minimum। (\(f_{\min}=\tfrac23\)।)
৮-নং সমাধান দেখাও
\(f=x^3+y^3-3x-3y\)। \(f_x=3x^2-3=0\Rightarrow x=\pm1\); \(f_y=3y^2-3=0\Rightarrow y=\pm1\)। চারটা stationary point: \((1,1),(1,-1),(-1,1),(-1,-1)\)।
Second derivatives: \(f_{xx}=6x\), \(f_{yy}=6y\), \(f_{xy}=0\), তাই \(D=36xy\)।
- \((1,1)\): \(D=36>0\), \(f_{xx}=6>0\) ⟹ minimum।
- \((-1,-1)\): \(D=36>0\), \(f_{xx}=-6<0\) ⟹ maximum।
- \((1,-1)\) ও \((-1,1)\): \(D=-36<0\) ⟹ saddle point।
৯-নং সমাধান দেখাও
\(f=xy\) maximize, শর্ত \(g=x^2+y^2=2\)। \(\nabla f=(y,x)\), \(\nabla g=(2x,2y)\)।
$\(y=\lambda\cdot 2x,\qquad x=\lambda\cdot 2y,\qquad x^2+y^2=2.\)$ প্রথম দুটো গুণ করলে \(xy=4\lambda^2 xy\), তাই \(\lambda=\pm\tfrac12\) (ধরে \(xy\ne0\))। \(\lambda=\tfrac12\) দিলে \(y=x\); তখন \(2x^2=2\Rightarrow x=\pm1\)। বিন্দু \((1,1)\) ও \((-1,-1)\), \(f=xy=1\)। তাই \(f_{\max}=1\)। (\(\lambda=-\tfrac12\) দিলে \(y=-x\), \(f=-1\) = minimum।)
১০-নং সমাধান দেখাও
\(f=\sqrt{x^2+y^2}\), basepoint \((3,4)\): \(f(3,4)=\sqrt{9+16}=5\)। $\(f_x=\frac{x}{\sqrt{x^2+y^2}}=\frac{3}{5},\qquad f_y=\frac{y}{\sqrt{x^2+y^2}}=\frac{4}{5}.\)$ \(\Delta x=3.1-3=0.1\), \(\Delta y=3.9-4=-0.1\)। linear approximation: $\(f\approx 5+\tfrac35(0.1)+\tfrac45(-0.1)=5+0.06-0.08=4.98.\)$ (আসল মান \(\sqrt{3.1^2+3.9^2}=\sqrt{9.61+15.21}=\sqrt{24.82}\approx4.982\) — খুব কাছে!)
৯. সারসংক্ষেপ ও Checklist¶
এই অধ্যায়ে এক-চলকের calculus-কে বহু-চলকে টেনে নিলাম। মূল সুতো একটাই: এক বিন্দুর কাছে surface প্রায় সমতল, আর সেই সমতলের ঢালগুলোই সব।
- Surface ও level curve: \(z=f(x,y)\) একটা surface; \(f(x,y)=c\) তার contour। খাড়া দিক সবসময় contour-এর লম্ব।
- Partial derivative: এক চলক নড়াও, বাকি স্থির। \(\partial f/\partial x\) = \(y\) স্থির রেখে সাধারণ derivative।
- Tangent plane: \(z-z_0=f_x(x-x_0)+f_y(y-y_0)\) — এই অধ্যায়ের সবচেয়ে গুরুত্বপূর্ণ সূত্র; এখান থেকেই differential, linear approximation, সব।
- Gradient: \(\nabla f=(f_x,f_y)\) — উপরের দিক দেখায়, দৈর্ঘ্য = সর্বোচ্চ ঢাল। \(D_{\mathbf u}f=\nabla f\cdot\mathbf u\)।
- Chain rule: \(df/dt=f_x x'+f_y y'\) — backpropagation-এর ভিত্তি।
- Max/min/saddle: \(\nabla f=\mathbf 0\)-এ থামো; \(D=f_{xx}f_{yy}-f_{xy}^2\)-এর চিহ্নে সিদ্ধান্ত।
- Lagrange: \(g=k\) শর্তে \(\nabla f=\lambda\nabla g\); \(\lambda\) = সংবেদনশীলতা \(df_{\min}/dk\)।
নিজেকে যাচাই করো — Checklist
- [ ] যেকোনো \(f(x,y)\)-এর \(\partial f/\partial x,\partial f/\partial y\) এবং চারটা second derivative বের করতে পারি, আর \(f_{xy}=f_{yx}\) যাচাই করতে পারি।
- [ ] একটা surface বা implicit \(F(x,y,z)=c\)-এর tangent plane ও normal vector লিখতে পারি।
- [ ] gradient বের করে বলতে পারি কোন দিক সবচেয়ে খাড়া, আর যেকোনো একক দিকে \(D_{\mathbf u}f\) হিসাব করতে পারি।
- [ ] \(\nabla f\) যে level curve-এর লম্ব — এটা কেন, ব্যাখ্যা করতে পারি।
- [ ] বহু-চলকের chain rule (দুই ও তিন পদ) প্রয়োগ করতে পারি, polar-এ রূপান্তর করতে পারি।
- [ ] stationary point বের করে second-derivative test (\(D\)) দিয়ে min/max/saddle বলতে পারি।
- [ ] Lagrange multiplier দিয়ে constrained min/max সমাধান করতে পারি এবং \(\lambda\)-এর অর্থ বলতে পারি।
- [ ] gradient descent কেন \(-\nabla f\) দিকে নামে — ML-সংযোগটা বুঝি।
➡️ পরের অধ্যায়: 9.14 — Multiple Integrals — এক-চলকের integral \(\int f(x)\,dx\)-কে দুই ও তিন মাত্রায় টেনে নিয়ে যাব: double integral \(\iint f\,dA\) দিয়ে আয়তন ও ভর, iterated integral, polar/cylindrical/spherical স্থানাঙ্কে integration, আর Jacobian দিয়ে চলক-রূপান্তর।