Matly

Mètodes numèrics: bisecció, Newton-Raphson, trapezis i Simpson

Vols practicar? Aquest tema té 158 exercicis interactius de 3 tipus, de deu en deu, amb correcció immediata i explicació pas a pas.

Gairebé cap equació que surt d'un problema real d'enginyeria es pot resoldre amb una fórmula, i moltes integrals no tenen primitiva elemental. Els mètodes numèrics substitueixen la solució exacta per una successió d'aproximacions amb l'error controlat, i són el que fa servir qualsevol calculadora o programa quan li demanes una arrel o una integral. En aquesta pàgina veuràs els quatre mètodes bàsics que s'estudien a primer curs: el mètode de la bisecció i el mètode de Newton-Raphson (amb la secant com a variant) per resoldre f(x)=0f(x) = 0, i les regles compostes dels trapezis i de Simpson per aproximar ∫abf(x) dx\int_a^b f(x)\,dx. Per a cadascun, la fórmula, què garanteix, quan falla i un exemple amb la taula d'iteracions.

Per què calen mètodes numèrics

L'equació x3−x−1=0x^3 - x - 1 = 0 té una única arrel real, però la fórmula de Cardano que la dona és inservible a la pràctica; cos⁡x=x\cos x = x ni tan sols té fórmula. I integrals com ∫01e−x2 dx\int_0^1 e^{-x^2}\,dx o ∫0π1+cos⁡2x dx\int_0^\pi \sqrt{1 + \cos^2 x}\,dx (una longitud d'arc) no tenen primitiva expressable amb funcions elementals. Un mètode numèric és un algorisme que, a partir de la funció i d'un punt o interval de partida, produeix aproximacions x1,x2,…x_1, x_2, \ldots i, sobretot, una fita de l'error que permet aturar-se quan la precisió és suficient. Sense fita de l'error, un nombre amb molts decimals no és un resultat.

Els mètodes d'aquesta pàgina complementen la resolució exacta que has vist a límits, continuïtat i derivada (el teorema de Bolzano és el fonament de la bisecció) i a mètodes d'integració.

Mètode de la bisecció

Fonament: teorema de Bolzano

Si ff és contínua en [a,b][a, b] i f(a) f(b)<0f(a)\,f(b) < 0, existeix almenys un r∈(a,b)r \in (a, b) amb f(r)=0f(r) = 0.

Un interval [a,b][a, b] amb canvi de signe s'anomena un bracket de l'arrel. La bisecció consisteix a partir el bracket per la meitat i quedar-se amb la meitat que conserva el canvi de signe: si m=(a+b)/2m = (a + b)/2 i f(a) f(m)<0f(a)\,f(m) < 0, l'arrel és a [a,m][a, m]; si no, és a [m,b][m, b]. Cada pas divideix la longitud del bracket per dos, de manera que la convergència està garantida (només cal continuïtat) i l'error és previsible:

∣mn−r∣≤b−a2n,|m_n - r| \leq \frac{b - a}{2^n},

on mnm_n és el punt mitjà del pas nn. Si vols error menor que una tolerància ε\varepsilon, n'hi ha prou amb

n≥log⁡2b−aε.n \geq \log_2\frac{b - a}{\varepsilon}.

Amb b−a=1b - a = 1: 1010 passos per a ε=10−3\varepsilon = 10^{-3} i 2020 passos per a ε=10−6\varepsilon = 10^{-6}. És lent (cada pas guanya un bit, uns 0,30{,}3 decimals), però mai no falla.

Bisecció en una cúbica sense arrel exacta

Sigui f(x)=x3−x−1f(x) = x^3 - x - 1. Com que f(1)=−1<0f(1) = -1 < 0 i f(2)=5>0f(2) = 5 > 0, hi ha una arrel a (1,2)(1, 2). A més, f′(x)=3x2−1>0f'(x) = 3x^2 - 1 > 0 en [1,2][1, 2], de manera que és estrictament creixent i l'arrel és única (Bolzano només dona existència; la unicitat necessita un argument a part, com la monotonia).

nnaabbmmf(m)f(m)fita de l'error
111221,51{,}5+0,875+0{,}8750,50{,}5
2111,51{,}51,251{,}25−0,297-0{,}2970,250{,}25
31,251{,}251,51{,}51,3751{,}375+0,225+0{,}2250,1250{,}125
41,251{,}251,3751{,}3751,31251{,}3125−0,052-0{,}0520,06250{,}0625
51,31251{,}31251,3751{,}3751,343751{,}34375+0,083+0{,}0830,031250{,}03125
61,31251{,}31251,343751{,}343751,3281251{,}328125+0,015+0{,}0150,0156250{,}015625
71,31251{,}31251,3281251{,}3281251,32031251{,}3203125−0,019-0{,}0190,00780{,}0078
81,32031251{,}32031251,3281251{,}3281251,324218751{,}32421875−0,002-0{,}0020,00390{,}0039

Després de 88 passos sabem que r∈[1,3203,1,3281]r \in [1{,}3203, 1{,}3281] i que ∣m8−r∣<0,004|m_8 - r| < 0{,}004. El valor exacte és r=1,324718…r = 1{,}324718\ldots; per garantir tres decimals (ε=10−3\varepsilon = 10^{-3}) calen 1010 passos.

Mètode de Newton-Raphson

Newton canvia la garantia de la bisecció per velocitat. La idea és substituir ff per la seva recta tangent al punt actual xnx_n i prendre com a aproximació següent el punt on la tangent talla l'eix. La tangent és y=f(xn)+f′(xn)(x−xn)y = f(x_n) + f'(x_n)(x - x_n), i s'anul·la a

xn+1=xn−f(xn)f′(xn).x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} .
Gràfica de f(x) = x³ − x − 1 amb la tangent a x₀ = 1,5 que talla l'eix a x₁, i la tangent a x₁ que talla l'eix a x₂, molt a prop de l'arrel r
Interpretació geomètrica de Newton: cada iterat és el zero de la tangent a l'iterat anterior.

Convergència quadràtica

Si rr és una arrel simple (f(r)=0f(r) = 0, f′(r)≠0f'(r) \neq 0), ff és de classe C2C^2 prop de rr i el punt inicial x0x_0 és prou a prop de rr, aleshores la successió de Newton convergeix a rr i

∣xn+1−r∣≤K ∣xn−r∣2|x_{n+1} - r| \leq K\,|x_n - r|^2

per a una constant KK. En la pràctica, el nombre de decimals correctes es duplica a cada pas.

Newton per a la mateixa equació

Per a f(x)=x3−x−1f(x) = x^3 - x - 1, f′(x)=3x2−1f'(x) = 3x^2 - 1 i la iteració és

xn+1=xn−xn3−xn−13xn2−1=2xn3+13xn2−1.x_{n+1} = x_n - \frac{x_n^3 - x_n - 1}{3x_n^2 - 1} = \frac{2x_n^3 + 1}{3x_n^2 - 1}.

Partint de x0=1,5x_0 = 1{,}5 (dins del bracket):

nnxnx_nf(xn)f(x_n)∣xn−r∣\lvert x_n - r \rvert
01,51{,}58,8⋅10−18{,}8 \cdot 10^{-1}1,8⋅10−11{,}8 \cdot 10^{-1}
11,34782611{,}34782611,0⋅10−11{,}0 \cdot 10^{-1}2,3⋅10−22{,}3 \cdot 10^{-2}
21,32520041{,}32520042,1⋅10−32{,}1 \cdot 10^{-3}4,8⋅10−44{,}8 \cdot 10^{-4}
31,32471821{,}32471829,2⋅10−79{,}2 \cdot 10^{-7}2,2⋅10−72{,}2 \cdot 10^{-7}
41,32471801{,}32471801,9⋅10−131{,}9 \cdot 10^{-13}4,4⋅10−144{,}4 \cdot 10^{-14}

Quatre iteracions donen tretze decimals correctes; la bisecció en necessitaria més de quaranta. Mira la columna de l'error: 10−110^{-1}, 10−210^{-2}, 10−410^{-4}, 10−710^{-7}, 10−1410^{-14}. Els exponents es dupliquen: això és la convergència quadràtica.

Quan falla Newton

El mètode és local: prop d'una arrel simple és imbatible, però lluny d'ella no hi ha cap garantia.

  • Derivada nul·la o molt petita. Si f′(xn)=0f'(x_n) = 0 la tangent és horitzontal i no talla l'eix. Per a f(x)=x3−x−1f(x) = x^3 - x - 1, els punts x=±1/3x = \pm 1/\sqrt{3} són prohibits, i prop seu el pas f/f′f/f' és enorme.
  • Mala llavor. Amb x0=0x_0 = 0, la mateixa equació dona x1=−1x_1 = -1, x2=−0,5x_2 = -0{,}5, x3=−3x_3 = -3: la successió surt del bracket i triga a tornar. Per això es recomana obtenir primer un bracket amb Bolzano i triar x0x_0 dins seu.
  • Cicles i canvi d'arrel. Si l'equació té diverses arrels, Newton pot oscil·lar entre dos valors o convergir a una arrel diferent de la que busques.
  • Arrel múltiple (f′(r)=0f'(r) = 0). El mètode convergeix, però només linealment: es perd l'avantatge.

El control pràctic és doble: vigilar el residu ∣f(xn)∣|f(x_n)| i la diferència ∣xn+1−xn∣|x_{n+1} - x_n|, i aturar-se quan tots dos són menors que la tolerància. Una diferència petita entre iterats no demostra per si sola que s'ha convergit, però combinada amb un residu petit i un bracket previ és un criteri fiable.

Mètode de la secant

Si la derivada és cara o no està disponible, se substitueix la tangent per la secant que passa pels dos últims iterats:

xn+1=xn−f(xn) xn−xn−1f(xn)−f(xn−1).x_{n+1} = x_n - f(x_n)\,\frac{x_n - x_{n-1}}{f(x_n) - f(x_{n-1})} .

Cal partir de dos punts, x0x_0 i x1x_1. La convergència és superlineal (d'ordre aproximadament 1,6181{,}618, el nombre d'or): més lenta que Newton però sense derivades. Per a x3−x−1=0x^3 - x - 1 = 0 amb x0=1x_0 = 1 i x1=2x_1 = 2, els iterats són 1,16671{,}1667, 1,25311{,}2531, 1,33721{,}3372, 1,32391{,}3239, 1,324711{,}32471, 1,32471801{,}3247180: sis passos per a set decimals correctes.

Integració numèrica

Per aproximar I=∫abf(x) dxI = \int_a^b f(x)\,dx es divideix [a,b][a, b] en nn subintervals d'amplada h=(b−a)/nh = (b - a)/n, amb nodes xi=a+ihx_i = a + ih, i es substitueix ff per una funció fàcil d'integrar en cada tros.

Regla dels trapezis composta

En cada subinterval s'aproxima ff per la recta que uneix (xi,f(xi))(x_i, f(x_i)) i (xi+1,f(xi+1))(x_{i+1}, f(x_{i+1})): l'àrea és la d'un trapezi, h2(f(xi)+f(xi+1))\tfrac{h}{2}\big(f(x_i) + f(x_{i+1})\big). Sumant,

Tn=h[f(x0)+f(xn)2+∑i=1n−1f(xi)],∣I−Tn∣≤(b−a) h212 max⁡[a,b]∣f′′∣.T_n = h\left[\frac{f(x_0) + f(x_n)}{2} + \sum_{i=1}^{n-1} f(x_i)\right], \qquad |I - T_n| \leq \frac{(b - a)\,h^2}{12}\,\max_{[a, b]}|f''| .

Els pesos són 12,1,1,…,1,12\tfrac{1}{2}, 1, 1, \ldots, 1, \tfrac{1}{2}. L'error és d'ordre h2h^2: doblar nn divideix l'error per 44.

Regla de Simpson composta

Simpson aproxima ff per una paràbola en cada parell de subintervals consecutius (per tant nn ha de ser parell):

Sn=h3[f(x0)+4f(x1)+2f(x2)+4f(x3)+⋯+4f(xn−1)+f(xn)],∣I−Sn∣≤(b−a) h4180 max⁡[a,b]∣f(4)∣.S_n = \frac{h}{3}\Big[f(x_0) + 4f(x_1) + 2f(x_2) + 4f(x_3) + \cdots + 4f(x_{n-1}) + f(x_n)\Big], \qquad |I - S_n| \leq \frac{(b - a)\,h^4}{180}\,\max_{[a, b]}|f^{(4)}| .

Els pesos són 1,4,2,4,…,2,4,11, 4, 2, 4, \ldots, 2, 4, 1: 44 als índexs senars, 22 als parells interiors. L'error és d'ordre h4h^4: doblar nn divideix l'error per 1616. A més, Simpson és exacte per a polinomis de grau ≤3\leq 3, no només de grau 22, perquè l'error de la cúbica es cancel·la per simetria.

Trapezis i Simpson amb quatre subintervals

Aproxima I=∫13dxx=ln⁡3=1,098612…I = \displaystyle\int_1^3 \frac{dx}{x} = \ln 3 = 1{,}098612\ldots amb n=4n = 4.

Aquí h=0,5h = 0{,}5 i els nodes són xi=1, 1,5, 2, 2,5, 3x_i = 1,\ 1{,}5,\ 2,\ 2{,}5,\ 3, amb valors f(xi)=1, 23, 12, 25, 13f(x_i) = 1,\ \tfrac{2}{3},\ \tfrac{1}{2},\ \tfrac{2}{5},\ \tfrac{1}{3}.

Trapezis:

T4=0,5[1+132+23+12+25]=0,5⋅2,23‾=1,116667,T4−I≈+0,0181.T_4 = 0{,}5\left[\frac{1 + \tfrac{1}{3}}{2} + \frac{2}{3} + \frac{1}{2} + \frac{2}{5}\right] = 0{,}5 \cdot 2{,}2\overline{3} = 1{,}116667, \qquad T_4 - I \approx +0{,}0181 .

Simpson:

S4=0,53[1+4⋅23+2⋅12+4⋅25+13]=0,53⋅6,6=1,100000,S4−I≈+0,0014.S_4 = \frac{0{,}5}{3}\left[1 + 4\cdot\frac{2}{3} + 2\cdot\frac{1}{2} + 4\cdot\frac{2}{5} + \frac{1}{3}\right] = \frac{0{,}5}{3}\cdot 6{,}6 = 1{,}100000, \qquad S_4 - I \approx +0{,}0014 .

Amb els mateixos cinc valors de la funció, Simpson té un error 1313 vegades més petit. Comprovem les fites: f′′(x)=2/x3f''(x) = 2/x^3 té màxim 22 a x=1x = 1, de manera que ∣I−T4∣≤2⋅0,2512⋅2≈0,083|I - T_4| \leq \tfrac{2 \cdot 0{,}25}{12}\cdot 2 \approx 0{,}083; i f(4)(x)=24/x5f^{(4)}(x) = 24/x^5 té màxim 2424, de manera que ∣I−S4∣≤2⋅0,0625180⋅24≈0,017|I - S_4| \leq \tfrac{2 \cdot 0{,}0625}{180}\cdot 24 \approx 0{,}017. Els errors reals (0,0180{,}018 i 0,00140{,}0014) compleixen les fites amb marge, com ha de ser: les fites són garanties, no prediccions exactes.

Els dos errors són positius perquè ff és convexa: els trapezis queden per sobre de la corba. Aquest és un control de signe que sempre pots fer.

Quants subintervals cal prendre?

Les fites de l'error serveixen per triar nn abans de calcular. Si a l'exemple anterior volguessis error menor que 10−410^{-4} amb trapezis, imposaries 2h212⋅2<10−4\tfrac{2h^2}{12}\cdot 2 < 10^{-4}, és a dir h<0,017h < 0{,}017 i n≥116n \geq 116. Amb Simpson, 2h4180⋅24<10−4\tfrac{2h^4}{180}\cdot 24 < 10^{-4} dona h<0,14h < 0{,}14 i n'hi ha prou amb n=16n = 16. Quan la funció és suau, Simpson guanya sempre.

Errors que costen l'apartat sencer

  1. Simpson amb nn senar. La regla necessita parells de subintervals; amb n=5n = 5 no hi ha manera de repartir els pesos 1,4,2,…,4,11, 4, 2, \ldots, 4, 1.
  2. Comptar malament els pesos. Els extrems porten 11 (Simpson) o 12\tfrac{1}{2} (trapezis); els interiors alternen 4,2,4,…4, 2, 4, \ldots començant per 44.
  3. Confondre hh amb nn. h=(b−a)/nh = (b - a)/n; amb [1,3][1, 3] i n=4n = 4, h=0,5h = 0{,}5, no 0,250{,}25.
  4. Newton sense bracket. Una llavor qualsevol pot enviar la successió lluny de l'arrel; comprova primer el canvi de signe.
  5. Afirmar unicitat amb Bolzano. Bolzano dona existència. Per a la unicitat cal, per exemple, que f′f' no canviï de signe a l'interval.
  6. Donar un resultat sense fita de l'error. «r≈1,3247r \approx 1{,}3247» sense dir quants decimals són fiables no és una resposta completa.

Protocol de resolució

Per a una equació f(x)=0f(x) = 0:

  1. Escriu l'equació en la forma f(x)=0f(x) = 0 i estudia ff: continuïtat, signe, monotonia.
  2. Troba un bracket [a,b][a, b] amb f(a) f(b)<0f(a)\,f(b) < 0 i justifica la unicitat de l'arrel dins seu si cal.
  3. Si et demanen una precisió ε\varepsilon amb bisecció, calcula el nombre de passos n≥log⁡2b−aεn \geq \log_2\frac{b - a}{\varepsilon} abans de començar.
  4. Si fas Newton, tria x0x_0 dins del bracket, escriu la fórmula d'iteració simplificada i fes una taula amb xnx_n, f(xn)f(x_n) i ∣xn+1−xn∣|x_{n+1} - x_n|.
  5. Atura't quan el residu i la diferència entre iterats siguin menors que ε\varepsilon, i dona el resultat amb els decimals que la fita justifica.

Per a una integral:

  1. Comprova que la integral és pròpia (integrand continu i fitat a [a,b][a, b]); si no, els mètodes d'aquesta pàgina no s'apliquen directament.
  2. Fixa nn (parell per a Simpson), calcula hh i fes una taula amb els nodes xix_i, els valors f(xi)f(x_i) i els pesos.
  3. Aplica la fórmula i, si te la demanen, la fita de l'error amb el màxim de ∣f′′∣|f''| o ∣f(4)∣|f^{(4)}|.
  4. Comprova el signe de l'error amb la concavitat (trapezis sobreestimen les funcions convexes) i l'ordre de magnitud del resultat.

Llista de comprovació

  1. Has verificat el canvi de signe i la continuïtat abans d'iterar?
  2. Bisecció: has calculat el nombre de passos necessari per a la tolerància?
  3. Newton: la llavor és dins del bracket i f′f' no s'anul·la a prop?
  4. Simpson: nn és parell i els pesos sumen 3n3n (els de trapezis sumen nn)?
  5. Has donat una fita de l'error o el nombre de decimals fiables?

Exercicis proposats

Exercici 1. Demostra que l'equació cos⁡x=x\cos x = x té una única solució real i aproxima-la amb bisecció (5 passos a partir de [0,1][0, 1]) i amb Newton (a partir de x0=1x_0 = 1, fins a tenir 8 decimals estables).

Solució de l'exercici 1

Sigui f(x)=cos⁡x−xf(x) = \cos x - x, contínua. f(0)=1>0f(0) = 1 > 0 i f(1)=cos⁡1−1≈−0,46<0f(1) = \cos 1 - 1 \approx -0{,}46 < 0: hi ha una arrel a (0,1)(0, 1). Com que f′(x)=−sin⁡x−1<0f'(x) = -\sin x - 1 < 0 per a tot xx (val 00 només en punts aïllats), ff és estrictament decreixent a R\mathbb{R} i l'arrel és única. Fora de [−1,1][-1, 1] no hi pot haver solucions, ja que ∣cos⁡x∣≤1|\cos x| \leq 1.

Bisecció (b−a=1b - a = 1): els brackets successius són [0,5,1][0{,}5, 1], [0,5,0,75][0{,}5, 0{,}75], [0,625,0,75][0{,}625, 0{,}75], [0,6875,0,75][0{,}6875, 0{,}75] i [0,71875,0,75][0{,}71875, 0{,}75]. Després de 5 passos, r≈0,734r \approx 0{,}734 amb error menor que 1/25≈0,0311/2^5 \approx 0{,}031.

Newton: xn+1=xn−cos⁡xn−xn−sin⁡xn−1=xn+cos⁡xn−xnsin⁡xn+1x_{n+1} = x_n - \dfrac{\cos x_n - x_n}{-\sin x_n - 1} = x_n + \dfrac{\cos x_n - x_n}{\sin x_n + 1}. Iterats: x0=1x_0 = 1, x1=0,7503639x_1 = 0{,}7503639, x2=0,7391129x_2 = 0{,}7391129, x3=0,7390851x_3 = 0{,}7390851, x4=0,7390851x_4 = 0{,}7390851. Els dos últims coincideixen en 8 decimals i el residu és de l'ordre de 10−1610^{-16}: r≈0,73908513r \approx 0{,}73908513. Newton necessita 4 passos per al que la bisecció no assoliria fins al pas 27.

Exercici 2. Calcula 2\sqrt{2} amb el mètode de Newton aplicat a f(x)=x2−2f(x) = x^2 - 2 partint de x0=1x_0 = 1. Escriu la fórmula d'iteració simplificada i fes 4 iteracions.

Solució de l'exercici 2

Amb f′(x)=2xf'(x) = 2x, la iteració és xn+1=xn−xn2−22xn=12(xn+2xn)x_{n+1} = x_n - \dfrac{x_n^2 - 2}{2x_n} = \dfrac{1}{2}\Big(x_n + \dfrac{2}{x_n}\Big): la mitjana entre xnx_n i 2/xn2/x_n (el mètode babilònic). Iterats: x1=1,5x_1 = 1{,}5, x2=1,4166667x_2 = 1{,}4166667, x3=1,4142157x_3 = 1{,}4142157, x4=1,4142136x_4 = 1{,}4142136. El valor exacte és 2=1,41421356…\sqrt{2} = 1{,}41421356\ldots: el quart iterat té 7 decimals correctes, i els errors van sent de l'ordre de 10−110^{-1}, 10−310^{-3}, 10−610^{-6}, 10−1210^{-12}. Convergència quadràtica visible a simple vista.

Exercici 3. Aproxima ∫0141+x2 dx\displaystyle\int_0^1 \frac{4}{1 + x^2}\,dx amb trapezis i Simpson per a n=4n = 4, i compara amb el valor exacte.

Solució de l'exercici 3

El valor exacte és 4arctan⁡1=π=3,141593…4\arctan 1 = \pi = 3{,}141593\ldots. Amb h=0,25h = 0{,}25, els nodes són 0, 0,25, 0,5, 0,75, 10,\ 0{,}25,\ 0{,}5,\ 0{,}75,\ 1 i els valors de ff són 44, 3,7647063{,}764706, 3,23{,}2, 2,562{,}56 i 22.

T4=0,25[4+22+3,764706+3,2+2,56]=3,131176,T4−π≈−0,0104.T_4 = 0{,}25\left[\frac{4 + 2}{2} + 3{,}764706 + 3{,}2 + 2{,}56\right] = 3{,}131176, \qquad T_4 - \pi \approx -0{,}0104 .S4=0,253[4+4(3,764706)+2(3,2)+4(2,56)+2]=3,141569,S4−π≈−0,000024.S_4 = \frac{0{,}25}{3}\Big[4 + 4(3{,}764706) + 2(3{,}2) + 4(2{,}56) + 2\Big] = 3{,}141569, \qquad S_4 - \pi \approx -0{,}000024 .

Simpson dona quatre decimals correctes amb només cinc avaluacions; trapezis, dos. L'error de trapezis és negatiu perquè aquí la funció és còncava a la major part de l'interval i els trapezis queden per sota de la corba.

Aquests mètodes són la porta d'entrada al càlcul numèric que faràs servir a les assignatures d'enginyeria amb MATLAB o Python. Els resultats que aproximen (arrels d'equacions, integrals definides) són els que has estudiat de manera exacta a mètodes d'integració i a àrees, volums i integrals dobles; i a un nivell més bàsic, a les integrals de selectivitat. Per a funcions de diverses variables, el mètode de Newton es generalitza substituint la derivada pel gradient i el hessià que veus a diverses variables.

Ara prova-ho tu. 158 exercicis d'aquest tema, de 3 tipus diferents, per resoldre en línia, de deu en deu: escrius la resposta, te la corregeix a l'instant i, si falles, t'explica com es fa pas a pas. Quan acabis una tanda, en tens deu més, amb dades noves.

Fer els exercicisSimulacre d'examen