5.4.25 · D5 · HinglishScientific Computing (Python)
Question bank — Implementing root-finding from scratch — Newton-Raphson, bisection
5.4.25 · D5· Coding › Scientific Computing (Python) › Implementing root-finding from scratch — Newton-Raphson, bis
True or false — justify
Bisection guaranteed hai ki par kisi bhi function ka root dhundhega jab ho.
False. Isko ka par continuous hona chahiye; guarantee Intermediate Value Theorem se aati hai, jiske liye koi jump nahi hona chahiye. par ke upar signs flip karte hain lekin koi root nahi hai — "crossing" ek vertical asymptote hai.
Agar ho toh mein definitely koi root nahi hai.
False. Iska sirf matlab hai ki bisection shuru nahi ho sakta. Ek parabola jaise on mein hai phir bhi do roots hain — even number of crossings sign change ko chupa deti hai.
Newton-Raphson ko hamesha bisection se kam -evaluations chahiye honge tolerance hit karne ke liye.
Cost mein False hai, chahe step count mein true bhi ho. Har Newton step par ek aur ek evaluation lagti hai, toh ek iteration roughly do guna expensive hai; faayda tabhi dikhta hai jab root ke paas quadratic convergence kick kare.
Quadratic convergence ka matlab hai error har step par square hoti hai, toh error kahan se bhi shuru karo, sidhti jaati hai.
False. law ek local statement hai — yeh tabhi hold karta hai jab chhota ho. Door se, se bada ho sakta hai, toh "squaring" cheezein better nahi, balki worse banata hai.
Tolerance ko half karne par bisection ko ek extra iteration lagti hai.
True. Steps jaise scale karte hain; ko 2 se divide karne par us count mein exactly add hota hai — har step par accuracy ka ek aur bit.
Newton's method Fixed-point iteration ka ek special case hai.
True. likhne par, Newton sirf iterate kar raha hai; ka root ka fixed point hai, aur exactly wahi reason hai ki yeh quadratically converge karta hai.
Secant method sirf Newton hai jisme derivative ko do points ke beech ke slope se replace kar diya gaya ho.
True. Yeh ki jagah use karta hai, koi derivative nahi chahiye; keemat hai slower (order , 2 nahi) convergence.
Bisection ki convergence rate ki shape par depend karti hai.
False. Bracket width har step par half hoti hai chahe kuch bhi ho — rate hamesha exactly hai. Sirf starting width aur root bracket ke andar kahaan hai woh constant ko affect karta hai, ratio ko nahi.
Spot the error
"Main fa ek baar store karunga, phir har loop mein check karunga if f(a)*f(m) < 0." — kya galat hai?
Tum har iteration mein
f(a) recompute kar rahe ho (wasted calls) — aur isse bhi bura, jab tum a move karte ho, toh woh nayi f(a) ek naya value hai jabki tumhara logic purana sign assume kar raha ho sakta hai. Stored fa ko fm se compare karo aur fa tabhi update karo jab tum left endpoint rakhte ho."Meri bisection ne midpoint return kar diya chahe f(a)f(b)>0 tha, toh phir bhi kaam kiya."
Yeh ek red flag hai. Koi sign change nahi hone par return kiya gaya midpoint meaningless hai — shayad koi root hi nahi hai. Routine ko bad bracket par raise karna chahiye, na ki chupke se ek number return karna.
"Newton diverge ho gaya, toh mera derivative formula galat hoga." — kya yahi akela cause hai?
Nahi. Sahi bhi diverge karta hai agar door ho, agar ho (giant step), ya agar iterates cycle karein. Algebra bug suspect karne se pehle starting guess aur flat-derivative cases check karo.
"Newton rok ne ke liye main f(x) == 0 test karta hun."
Floating point arithmetic almost kabhi exactly 0 par nahi utarta, toh yeh rarely trigger hota hai aur tum
maxit tak loop karte ho. abs(step) < tol (ya abs(f(x)) < tol) test karo — ek exact hit nahi, ek neighbourhood."Bisection tab ruk jaati hai jab f(m) == 0 ho, toh (b-a)/2 < tol check redundant hai."
Ulta hai. Exact-zero case rare hai; width test hi woh hai jo normally loop khatam karta hai. Ise hata do aur bisection almost har real problem par
maxit tak chala jaayega."Maine bisection(f, 2, 1, ...) (a>b) pass kiya aur garbage mila."
Width ab negative hai, toh
(b-a)/2 < tol turant true hoti hai aur tum step zero par exit karte ho. Bisection assume karta hai ; ya toh endpoints sort karo ya precondition document karo."Newton on starting at theek hai, yeh ek sundar smooth function hai."
, toh pehla hi step zero se divide karta hai — tangent horizontal hai aur kabhi x-axis se nahi milti. Smoothness kaam nahi aata; ek zero derivative tumhe le doobata hai.
Why questions
Bisection ko har step par ek bit accuracy kyun milti hai, na zyada na kam?
Har step interval ko half karta hai, aur halving ka matlab hai leading uncertain binary digit known ho jaata hai — exactly ek bit. Yeh bisection ko conceptually Binary search se jodata hai, jo bhi har comparison mein half space discard karta hai.
Newton ko quadratic convergence ke liye root par kyun chahiye?
Error law mein carry hota hai; agar ho toh yeh constant blow up ho jaata hai. Geometrically root ek tangent touch hai (repeated root), tangent line nearly flat hai, aur convergence merely linear ho jaati hai.
Newton ki speed explain karne ke liye Taylor Series tangent draw karne se better tool kyun hai?
Tangent picture dikhata hai ki Newton kya karta hai; ke around ki Taylor expansion leftover error term quantify karta hai, humein batata hai kitni tezi se. Picture intuition deta hai, series exponent deta hai.
brentq jaisa hybrid dono pure methods ko kyun beat kar sakta hai?
Yeh ek guaranteed bracket rakhta hai (bisection ki safety) lekin usme fast interpolation try karta hai (Newton/secant-like speed), aur jab bhi fast guess bracket se bahar jaaye tab bisection step par fallback karta hai — tumhe robustness aur speed milti hai. Dekho scipy.optimize.
scipy.optimize.brentq ko derivative ki zaroorat kyun nahi jabki Newton ko hai?
Brent Secant method aur inverse-quadratic interpolation use karta hai, dono sirf function values se curvature estimate karte hain — koi callback required nahi, isliye yeh black-box functions ke liye go-to hai.
"Step size below tolerance" "function value below tolerance" se better stopping test kyun hai?
Steep root ke paas tiny -error bada deta hai, toh ek test kabhi trigger nahi ho sakta; flat root ke paas bada -error tiny deta hai, toh test bahut jaldi ruk jaata hai. Step actual position change measure karta hai aur zyada predictably behave karta hai.
Edge cases
Bisection mein kya hota hai jab root exactly endpoint par ho, jaise ?
Tab hoga, nahi, toh bracket test fail ho jaata hai aur loop kabhi run nahi karta — ek real root miss ho jaata hai. Isliye tum loop se pehle endpoints check karke return karte ho.
Newton par root ke alawa kahin se bhi shuru ho toh kya karta hai?
Yeh diverge karta hai — har step opposite side par aur door jaata hai: . 0 par root ka tangent infinite-slope hai, toh linear model jhooth hai aur iterates bhaag jaate hain. Bisection ise nail kar deta.
Do roots ek bracket ke andar hain, jaise on vs — bisection kya deta hai?
par ek sign change hai toh yeh dhundhta hai; par signs match karte hain () toh yeh start karne se mana kar deta hai. Bisection ek valid odd-crossing bracket mein ek root dhundhta hai, kabhi promise nahi karta kaun sa agar tum even count ghus aao.
Bilkul flat plateau: Newton ke dauran — code ko kya karna chahiye?
Division by zero (flat tangent, koi x-intercept nahi). Error raise karo ya guess nudge karo; blindly compute karne par
inf/nan milta hai aur run silently corrupt ho jaata hai.Newton cycles: hamesha — kya yeh possible hai?
Haan. Kuch aur starting points ke liye tangent do values ke beech bounce karta hai aur kabhi converge nahi karta (jaise kuch odd functions jo root ke baare mein symmetric hain). Sirf ek
maxit guard tumhe bachata hai — step size kabhi tol se neeche nahi shrinkta.Bracket astronomically wide hai, maan lo — kya bisection tab bhi theek hai?
Haan, sirf log se slower: width ko ke liye lagbhag steps chahiye. Linear-per-bit ka matlab hai ki bahut bade brackets par bhi sirf tens of iterations lagte hain — robustness size ko hardly notice karta hai.
Agar bracket mein kahin NaN return kare (jaise negative ke liye ) toh kya hoga?
NaN ke saath har sign comparison
False hai, toh bisection baar baar galat half rakh sakti hai aur garbage value par converge kar sakti hai. NaN/inf function outputs se guard karo; ek valid bracket assume karta hai ki paar defined hai.Recall Ek-line summary
Bisection speed ke badle ek pakka guarantee leta hai (continuity + sign change chahiye); Newton guarantee ke badle quadratic speed leta hai (derivative chahiye, accha start chahiye, aur flat root nahi hona chahiye). Upar har trap unhi preconditions mein se ek hai jo chupke se violate ho rahi hai.