4.8.18 · Maths › Numerical Methods
Hum A x = b solve karna chahte hain — n unknowns mein n equations ka system.
WHY ek special method? Hand-substitution ya Cramer's rule se solve karna bahut costly ho jaata hai (n ! kaam).
WHAT Gaussian elimination karta hai: systematically diagonal ke neeche variables ko khatam karta hai taaki
matrix upper-triangular ban jaaye, phir back-substitution se answers nikaalte hain.
WHY pivoting: ek tiny (ya zero) pivot se divide karna rounding errors ko bahut badha deta hai. Isliye har
elimination step se pehle hum rows swap karte hain taaki diagonal par sabse bada available entry aa jaaye.
Yeh ek trick method ko numerically stable banati hai.
A x = b , A ∈ R n × n , b ∈ R n .
Hum x dhundhte hain. Hum augmented matrix [ A ∣ b ] par kaam karte hain aur
elementary row operations apply karte hain (jo solution set kabhi nahi badlte):
Do rows swap karo.
Ek row ko nonzero scalar se multiply karo.
Ek row ka multiple doosri row mein add karo.
Hum column k ki diagonal ke neeche zeros chahte hain. Column k , rows k + 1 , … , n dekho.
HOW entry a ik ko zero karein (jab i > k ho) bina solution badlaaye?
Pivot row k ka multiple row i se subtract karo:
Row i ← Row i − m ik Row k .
Humein naya ( i , k ) entry 0 chahiye:
a ik − m ik a k k = 0 ⟹ m ik = a k k a ik .
WHY partial pivoting? Multiplier mein a k k denominator mein hai. Agar a k k tiny hai,
toh m ik bahut bada ho jaata hai, aur bade multipliers har doosri entry ke floating-point error ko amplify karte hain.
Definition Partial pivoting rule
Column k eliminate karne se pehle, rows k … n mein column k ki sabse badi absolute value wali entry dhundho:
p = arg max i ≥ k ∣ a ik ∣ ,
phir row k ko row p se swap karo . Yeh guarantee karta hai ki har multiplier ∣ m ik ∣ ≤ 1 satisfy kare.
Forward elimination ke baad humaare paas upper-triangular system U x = c hai:
u nn x n u n − 1 , n − 1 x n − 1 + u n − 1 , n x n = c n , = c n − 1 , …
Last equation mein sirf ek unknown hai — use solve karo. Upar ki taraf substitute karo.
Solve karo
{ 0.0003 x 1 + 3.0000 x 2 = 2.0001 1.0000 x 1 + 1.0000 x 2 = 1.0000
Exact answer: x 1 = 3 1 , x 2 = 3 2 (≈ 0.33333 , 0.66667 ).
Step 1 — Partial pivoting. Column 1 entries: ∣0.0003∣ vs ∣1.0000∣ .
Yeh step kyon? 1.0000 bada hai → rows swap karo taaki tiny 0.0003 se kabhi divide na karna pade.
[ 1 0.0003 1 3 ∣ ∣ 1 2.0001 ] .
Step 2 — Eliminate. m 21 = 0.0003/1 = 0.0003 .
Kyon: yeh woh multiplier hai jo a 21 ko zero karta hai.
Row2 ← Row2 − 0.0003 ⋅ Row1 :
a 22 = 3 − 0.0003 ( 1 ) = 2.9997 , b 2 = 2.0001 − 0.0003 ( 1 ) = 1.9998.
[ 1 0 1 2.9997 ∣ ∣ 1 1.9998 ] .
Step 3 — Back-substitute.
x 2 = 2.9997 1.9998 = 0.66667 , x 1 = 1 1 − x 2 = 0.33333. ✓
Worked example Contrast: NO pivoting (ek warning ki kahani)
Tiny pivot 0.0003 rakho. Tab m 21 = 1/0.0003 ≈ 3333.3 .
a 22 = 3 − 3333.3 ( 3 ) = − 9996.9 , b 2 = 2.0001 − 3333.3 ( 1 ) = − 3331.3 .
Sirf 4 significant digits se, 3 − 10000 ≈ − 9997 , 2 − 3333 = − 3331 , aur tumhe milega
x 2 ≈ 0.33334 , phir x 1 = ( 2.0001 − 3 x 2 ) /0.0003 — accuracy ka catastrophic loss,
aksar x 1 ≈ 0 deta hai 0.3333 ki jagah. Pivoting ne ise fix kiya. Isliye hum pivot karte hain.
3 × 3
2 − 3 − 2 1 − 1 1 − 1 2 2 ∣ ∣ ∣ 8 − 11 − 3
Col 1: sabse bada ∣ − 3 ∣ row 2 mein hai → rows 1,2 swap karo.
− 3 2 − 2 − 1 1 1 2 − 1 2 ∣ ∣ ∣ − 11 8 − 3
m 21 = 2/ − 3 = − 0.667 , m 31 = − 2/ − 3 = 0.667 . Column 1 eliminate karo:
− 3 0 0 − 1 0.333 1.667 2 0.333 0.667 ∣ ∣ ∣ − 11 0.667 4.333
Col 2 diagonal ke neeche: ∣0.333∣ vs ∣1.667∣ → rows 2,3 swap karo.
− 3 0 0 − 1 1.667 0.333 2 0.667 0.333 ∣ ∣ ∣ − 11 4.333 0.667
m 32 = 0.333/1.667 = 0.2 : a 33 = 0.333 − 0.2 ( 0.667 ) = 0.2 , b 3 = 0.667 − 0.2 ( 4.333 ) = − 0.2 .
Back-sub: x 3 = − 0.2/0.2 = − 1 ; x 2 = ( 4.333 − 0.667 ( − 1 )) /1.667 = 3 ; x 1 = ( − 11 − ( − 1 ) ( 3 ) − 2 ( − 1 )) / − 3 = 2 .
Solution ( 2 , 3 , − 1 ) . Sahi kyon hai? Eq 1 check karo: 2 ( 2 ) + 3 − ( − 1 ) = 8 ✓ .
Common mistake "Poori row mein sabse badi entry par pivot karo."
Kyon sahi lagta hai: bade numbers har jagah stable lagte hain.
Fix: partial pivoting sirf current column ke entries compare karta hai (rows k … n ).
Row across compare karna ek alag variable ko scale karna hoga, structure badal dega.
(Puri submatrix search karna = complete pivoting , ek alag, mehengi method hai.)
b par operation apply karna bhool jaana.
Kyon sahi lagta hai: "matrix" A hai, isliye tum A par focus karte ho. Fix: augmented
matrix [ A ∣ b ] par kaam karo — har row op RHS ko bhi touch karta hai, warna tumhara solution galat hai.
Common mistake Rows swap karna lekin sirf unka kuch part update karna.
Fix: row swap poori rows exchange karta hai (saare columns + RHS). Aadha swap system ko corrupt karta hai.
Common mistake Back-substitution upar se neeche karna.
Kyon sahi lagta hai: hum upar se neeche padhte hain. Fix: bottom equation mein ek hi unknown hai; tumhe
bottom-up jaana hoga, warna bracket mein abhi bhi unknowns hain.
Intuition Operation count (80/20 fact)
Forward elimination dominate karta hai: lagbhag 3 2 n 3 floating-point operations; back-substitution
sirf n 2 . Toh n double karne se kaam ~8 guna ho jaata hai. Partial pivoting sirf O ( n 2 ) comparisons add karta hai — sasta insurance hai.
Agar kisi step par column k (rows k … n ) ki saari entries zero hain, toh pivot unavoidably
0 hai: A singular hai — koi unique solution nahi.
Recall Feynman: ek 12-saal ke bacche ko samjhao
Ek equations ki staircase imagine karo. Tum pehle variable ko har equation se hatana chahte ho
sivaaye top wali ke — jaise x ko pehli row chhod ke baaki sab se erase karna. Use cleanly erase karne ke liye tum
top equation ka sahi multiple baaki sab se subtract karte ho. Lekin agar top equation mein x ke aage bahut chota
number hai, toh us se divide karna monster numbers bana deta hai aur tumhara calculator confuse ho jaata hai. Isliye pehle
woh equation dhundho jisme x -coefficient SABSE BADA ho aur use top par le jao — yahi pivoting hai.
Agla variable ke liye repeat karo, aur aise hi karte raho, jab tak last equation mein sirf ek unknown na reh jaaye. Use solve karo,
phir staircase par upar chadhte hue answers plug in karo.
"Sabse Bada Pick karo, Swap karo, Subtract karo, phir Upar Chado."
P-B-S-S-C: P ivot column → B iggest ∣ entry∣ → S wap → S ubtract multiples → C limb (back-sub).
Gaussian elimination mein forward elimination ka goal kya hai? A ko ek upper-triangular matrix U mein transform karna (diagonal ke neeche zeros) row operations use karke.
Hum partial pivoting kyon use karte hain? Tiny/zero pivots se divide karne se bachne ke liye; yeh saare multipliers ∣ m ik ∣ ≤ 1 rakhta hai, round-off error control karta hai (numerical stability).
Column k ke liye partial-pivoting rule kya hai? Rows k … n mein, column k mein sabse badi absolute value wali entry dhundho aur us row ko position k par swap karo.
Multiplier m ik ka formula? m ik = a ik / a k k — isliye choose kiya taaki a ik − m ik a k k = 0 ho.
Elimination ke dauran row update? a ij ← a ij − m ik a k j aur b i ← b i − m ik b k (poori augmented row par apply karo).
Back-substitution formula? x i = u ii 1 ( c i − ∑ j > i u ij x j ) , i = n se 1 tak compute kiya jaata hai.
Back-substitution bottom-up kyon? Last equation mein sirf ek unknown hai; har pehle wale x i ko already-known x j (j > i ) chahiye.
Gaussian elimination ka approximate flop count? ∼ 3 2 n 3 (forward elimination dominate karta hai; back-sub O ( n 2 ) hai).
Unavoidable zero pivot kya indicate karta hai? Matrix singular hai — koi unique solution nahi.
Partial aur complete pivoting mein kya fark hai? Partial: sirf current column search karo (rows k .. n ). Complete: poori remaining submatrix search karo (zyada stable, zyada costly).
LU Decomposition — Gaussian elimination hi ek LU factorization hai; pivoting P A = LU deta hai.
Back-substitution and Forward-substitution
Condition Number and Numerical Stability
Round-off Error in Floating Point
Determinants — pivots ka product (× ( − 1 ) #swaps ) det A deta hai.
Cramer's Rule — exact lekin O ( n !) , impractical contrast.
Iterative Methods (Jacobi, Gauss-Seidel) — large sparse systems ke liye alternative.
Elementary row operations
Multiplier m = a_ik / a_kk
Huge multipliers, rounding error