5.4.6 · HinglishScientific Computing (Python)

NumPy linear algebra — np.linalg.solve, eig, svd, norm, det

1,604 words7 min readRead in English

5.4.6 · Coding › Scientific Computing (Python)


1. Solve Karna — np.linalg.solve

WHY sirf invert kyun nahi karte? Mathematically hai. Lekin compute karna directly solve karne se slower aur kam accurate hai. Isliye hum kabhi inv(A) @ b nahi likhte; hum solve(A, b) likhte hain.

import numpy as np
A = np.array([[2., 1.],
              [1., 3.]])
b = np.array([5., 10.])
x = np.linalg.solve(A, b)   # array([1., 3.])
np.allclose(A @ x, b)        # True  <- hamesha verify karo!

2. Determinant — np.linalg.det

np.linalg.det(np.array([[2.,1.],[1.,3.]]))   # 5.0

3. Norms — np.linalg.norm

v = np.array([3., 4.])
np.linalg.norm(v)          # 5.0  (=sqrt(9+16))  default ord=2
np.linalg.norm(v, ord=1)   # 7.0
np.linalg.norm(v, ord=np.inf)  # 4.0
 
M = np.array([[1.,2.],[3.,4.]])
np.linalg.norm(M, 'fro')   # Frobenius = sqrt(sum of squares of all entries)

4. Eigenvalues / Eigenvectors — np.linalg.eig

A = np.array([[2., 0.],
              [0., 3.]])
w, V = np.linalg.eig(A)   # w = eigenvalues, V ke columns = eigenvectors
# column 0 check karo:
np.allclose(A @ V[:,0], w[0] * V[:,0])   # True

5. Singular Value Decomposition — np.linalg.svd

Figure — NumPy linear algebra — np.linalg.solve, eig, svd, norm, det
A = np.array([[3., 0.],
              [0., 2.],
              [0., 0.]])      # 3x2, NOT square -> eig would fail
U, s, Vt = np.linalg.svd(A)   # s is a 1D array of singular values
# reconstruct:
Sig = np.zeros_like(A)
np.fill_diagonal(Sig, s)
np.allclose(U @ Sig @ Vt, A)  # True

Recall Feynman: 12-saal ke bachche ko explain karo

Ek matrix arrows ke liye ek stretchy-twisty machine hai.

  • solve: "Main dekhta hoon arrow kahaan landa; woh shuru kahaan se hua tha?" (machine ko ulta chalao).
  • det: "Machine ne ek square ko kitna bada kiya?" Agar zero hai, toh usne sab kuch flat mein squish kar diya — tum un-squish nahi kar sakte, isliye koi backward nahi.
  • norm: "Yeh arrow kitna lamba hai?"
  • eig: "Kaun se arrows ko machine sirf lamba/chota karti hai, kabhi ghoomati nahi?"
  • svd: "Weird machines ke liye bhi: pehle arrow spin karo, phir stretch karo, phir phir spin karo." Stretch numbers singular values hain.

Flashcards

np.linalg.solve(A,b) ko np.linalg.inv(A)@b se kyun prefer karte hain?
solve faster hai ( lekin smaller constant ke saath) aur numerically zyada stable hai; explicit inversion error amplify karta hai aur wasteful hai.
ka geometrically aur algebraically kya matlab hai?
Transform volume ko zero par collapse kar deta hai (lower dimension par map karta hai); algebraically singular / non-invertible hai, isliye ka koi unique solution nahi.
Ek 2×2 matrix ke liye determinant formula likhiye.
.
Ek eigenvector/eigenvalue define karo.
jiske liye ho: ek direction jise matrix sirf scale karti hai (by ), kabhi rotate nahi.
Eigenvalues ke liye characteristic equation kya hai?
.
NumPy w, V = np.linalg.eig(A) mein, i-th eigenvector kaise milega?
V[:, i] — eigenvectors V ke COLUMNS hain.
Ek general matrix ka SVD batao.
jahan orthogonal hain aur non-negative singular values ka diagonal matrix hai.
Singular values aur eigenvalues ka kya relation hai?
, (aur ) ke eigenvalues hain.
Kabhi kabhi eig ki jagah SVD kyun use karte hain?
SVD KISI BHI (non-square bhi) matrix ke liye kaam karta hai aur hamesha real non-negative singular values deta hai; eig ko square matrices chahiye aur complex results de sakta hai.
Default np.linalg.norm(v) kaun sa norm compute karta hai?
Euclidean () norm .
Ax=b ka computed solution x kaise check karte hain?
np.allclose(A @ x, b).
Kaun sa function det se zyada achha solve ki trustworthiness judge karta hai?
np.linalg.cond(A), condition number.

Connections

Concept Map

undo machine

stretch directions

best stretch any matrix

measure size

volume scaling

wraps

uses

slower and inaccurate

zero means

unreliable test replaced by

Matrix transforms vectors

LAPACK Fortran core

np.linalg.solve

np.linalg.eig

np.linalg.svd

np.linalg.norm

np.linalg.det

LU factorization with pivoting

inv A then multiply

np.linalg.cond