242
Càlcul numèric Carles Bonet Reves Angel Jorba Monte M. Teresa Martínez-Seara Alonso Joaquím Masdemont Soler Mercè Ollé Torner Antoni Susin Sánchez Marta València Guitart

Calcul Numeric - Bonet

Embed Size (px)

Citation preview

Page 1: Calcul Numeric - Bonet

Càlcul numèric

Carles Bonet RevesAngel Jorba Monte

M. Teresa Martínez-Seara AlonsoJoaquím Masdemont Soler

Mercè Ollé TornerAntoni Susin SánchezMarta València Guitart

Page 2: Calcul Numeric - Bonet

Primera edició: febrer de 1994Reimpressió: febrer de 1995

Aquesta publicació s'acull a la política de normalització lingüísticai ha comptat amb la col⋅laboració del Departament de Cultura ide la Direcció General d'Universitats, de la Generalitat de Catalunya.

En col⋅laboració amb el Servei de Llengües i Terminologia de la UPC.

Disseny de la coberta: Manuel Andreu

© Els autors, 1994

© Edicions UPC, 1994Edicions de la Universitat Politècnica de Catalunya, SLJordi Girona Salgado 31, 08034 BarcelonaTel. 93 401 68 83 Fax 93 401 58 85Edicions Virtuals: www.edicionsupc.ese-mail: [email protected]

Producció: Servei de Publicacions de la UPCi CPDA (Centre de Publicacions d'Abast)Av. Diagonal 647, ETSEIB, 08028 Barcelona

Dipòsit legal: B-3.516-94ISBN: 84-7653-376-4

Són rigorosament prohibides, sense l'autorització escrita dels titulars del copyright, sota les sancions establertes a la llei, lareproducció total o parcial d'aquesta obra per qualsevol procediment, inclosos la reprografia i el tractament informàtic, i la distribució

Page 3: Calcul Numeric - Bonet

Index 7

Index

pag:

1 Cap��tol 1: Introducci�o 11

1.1 Generalitats 111.2 Aritm�etica de coma otant i errors d'arrodoniment 12

1.2.1 Error en la representaci�o 141.2.2 Error en les operacions 15

1.3 Resoluci�o de problemes 181.3.1 Propietats dels algorismes 181.3.2 Estabilitat num�erica 191.3.3 Velocitat de c�alcul 201.3.4 Capacitat de mem�oria 20

1.4 Problemes ben o mal condicionats 221.4.1 Explicaci�o matem�atica del mal condicionament 23

2 Cap��tol 2: Sistemes lineals 27

2.1 Introducci�o 272.1.1 M�etode de Gauss 282.1.2 Eliminaci�o Gaussiana 292.1.3 Resoluci�o de sistemes triangulars 302.1.4 Nombre d'operacions en el m�etode de Gauss 312.1.5 Estrat�egies de pivot 33

2.2 M�etodes de factoritzaci�o directa 362.2.1 Factoritzaci�o triangular. Descomposici�o LU 362.2.2 Cas particular: Matrius banda 422.2.3 Esquemes compactes 43

2.3 M�etodes iteratius 472.3.2 Converg�encia dels m�etodes iteratius 492.3.3 M�etode de sobrerelaxaci�o 52

2.4 Sistemes mal condicionats 552.5 An�alisi de l'error 60

Page 4: Calcul Numeric - Bonet

8 C�alcul num�eric

2.6 Escalat de sistemes lineals 613.1 Introducci�o 653.2 El m�etode de la pot�encia 673.3 M�etodes basats en transformacions de semblan�ca 74

3.3.1 El m�etode de Jacobi 743.3.2 M�etode de Hyman 783.3.3 L'algorisme QR 80

4 Cap��tol 4: Interpolaci�o 85

4.1 Introducci�o 854.2 Interpolaci�o de Lagrange 874.3 Interpolaci�o de Newton (difer�encies dividides) 884.4 Interpolaci�o per a punts equiespaiats 914.5 L'error a les taules de difer�encies 944.6 Interpolaci�o inversa 964.7 Error en la interpolaci�o 974.8 Abscisses de Txebyshev 994.9 Interpolaci�o d'Hermite 1014.10 Fenomen de Runge 1024.11 Interpolaci�o per splines 1034.12 Construcci�o de splines 104

5 Cap��tol 5: Aproximaci�o 109

5.1 Introducci�o 1095.2 Aproximaci�o polinomial per m��nims quadrats. Polinomis ortogonals 114

5.2.1 Polinomis de Gram 1165.3 El cas continu 117

5.3.1 Polinomis de Legendre 1185.3.2 Polinomis de Txebyshev 119

5.4 Sistemes lineals sobredeterminats 1235.5 Aproximaci�o de Fourier 125

5.5.1 Canvi d'escala 1275.5.2 Interpolaci�o trigonom�etrica 128

5.6 Transformada r�apida de Fourier (FFT) 1285.6.1 La transformada de Fourier de funcions peri�odiques 1295.6.2 La transformada de Fourier de funcions \aperi�odiques" 1295.6.3 L'impuls de Dirac 1335.6.4 La transformaci�o de Fourier discreta. (DFT) 1355.6.5 Transformada r�apida de Fourier (FFT) 136

Page 5: Calcul Numeric - Bonet

Index 9

6 Cap��tol 6: Integraci�o num�erica 141

6.1 F�ormules de Newton-Cotes 1416.2 F�ormules compostes 1456.3 F�ormula d'Euler-Maclaurin 1496.4 Extrapolaci�o de Richardson 1516.5 Integraci�o gaussiana 1536.6 Derivaci�o num�erica 162

7 Cap��tol 7: Zeros de funcions 169

7.1 Introducci�o. M�etode de bisecci�o 1697.2 M�etode de Newton o de la tangent 1697.3 M�etode de la secant. Regula falsi 1717.4 Teoria d'iteraci�o. M�etodes de punt �x 173

7.4.1 Teorema del punt �x 1747.4.2 Nota sobre la condici�o de Lipschitz 175

7.5 Estudi de l'error pels m�etodes de punt �x 1767.5.1 Acceleraci�o de la converg�encia 1777.5.2 Algorisme d'Aitken 178

7.6 Converg�encia no lineal 1797.6.1 Ordre de converg�encia del m�etode de Newton 1807.6.2 Zeros m�ultiples 181

7.7 El m�etode de Newton per a sistemes d'equacions no lineals 1817.7.1 Teorema del punt �x 182

7.8 M�etodes espec���cs per a polinomis 1837.8.1 M�etode de De acci�o 1847.8.2 Problemes amb el mal condicionament 185

7.9 M�etode de Bairstow 185

8 Cap��tol 8: Programaci�o lineal i optimitzaci�o 191

8.1 Introducci�o 1918.2 Formulaci�o est�andard del problema de programaci�o lineal 1948.3 Formulaci�o geom�etrica del problema 1978.4 M�etode del s��mplex (Dantzig 1942) 2038.5 M�etode computacional del s��mplex 209

8.5.1 Forma matricial del m�etode del s��mplex 2098.5.2 El m�etode del s��mplex revisat 210

8.6 Programaci�o no lineal 2148.6.1 M�etodes b�asics de descens unidimensional 2148.6.2 M�etodes que necessiten derivades o que la f sigui regular 2208.6.3 M�etodes de descens multidimensional 221

Page 6: Calcul Numeric - Bonet

10 C�alcul num�eric

9 Cap��tol 9: Equacions diferencials 229

9.1 Introducci�o 2299.2 M�etodes d'un pas 230

9.2.1 M�etode d'Euler 2309.2.2 Errors en els m�etodes num�erics 2329.2.3 M�etodes de Taylor 2359.2.4 M�etodes de Runge-Kutta 2389.2.5 Generalitzaci�o a sistemes d'equacions diferencials ordin�aries 241

9.3 M�etodes multip�as 2429.3.1 M�etodes d'Adams-Bashforth 2439.3.2 M�etodes d'Adams-Moulton 2459.3.3 M�etodes predictor-corrector 247

9.4 Condicions de consist�encia 2489.5 Estabilitat i converg�encia 249

Bibliogra�a 255

Page 7: Calcul Numeric - Bonet

Bibliograf��a 255

Bibliograf��a

1. G. Dalquist, A. Bj�orck, \Numerical methods", 1974, Prentice Hall.

2. C. Froberg, \Introducci�on al an�alisis num�erico", 1977, Ed. Vicens-Vives.

3. P.E. Gill, W. Murray Wright, \Practical Optimization", 1981, Academic Press.

Inc.

4. P. Henrici, \Elementos de an�alis num�erico", Ed. Trillas, M�exico.

5. E. Isaacson, B. Keller, \Analysis of numerical methods", 1966, John Wiley and

Sons, Inc. New York.

6. P.E. Luenberger, \Introduction to linear and nonlinear programming", 1973,

Adison Wesleay, Menlo-Park, California.

7. Ortega, W.G.Poole, \An introduction to numerical methods for diferential

equations", 1981, Pitman Publishing Inc.

8. J. Stoer, R. Bulirsch, \Introduction to numerical analysis", Springer-Verlag.

9. C. Williams Geat, \Numerial initial Value Problems in ordinary di�erential

equations" Prentice-Hall, Inc.

Page 8: Calcul Numeric - Bonet

Introducci�o 11

Cap��tol 1 Introducci�o

1.1 Generalitats

Des de 1947, any en qu�e fou fundat a Los Angeles el "Institute of NumericalAnalysis", l'an�alisi num�erica ha tingut un desenvolupament vertigin�os i �es avui unade les branques m�es importants de les matem�atiques.

L'objectiu de l'an�alisi num�erica �es l'estudi dels m�etodes constructius en an�alisimatem�atica. Entenem per m�etode constructiu qualsevol procediment que ens permetd'obtenir la soluci�o d'un problema amb una precisi�o arbitr�aria en un nombre �nit depassos, que es poden fer de manera raonable.

Aquests m�etodes constructius se sistematitzen en una successi�o de sent�encies.Aquesta successi�o de passos s'anomena algorisme.

Per tal d'il�lustrar el tipus de problemes i conceptes que tractarem, consideremun exemple senzill.

Exemple. Considerem el problema de determinar l'arrel quadrada d'un nombre realpositiu a,

pa. La podem calcular mitjan�cant el proc�es iteratiu

xk+1 = (xk + (a=xk))=2 ; k = 0; 1; 2; : : : ; x0 > 0 ; arbitrari :

Es pot demostrar que xk �!pa si k �! 1. Com que, per raons pr�actiques, nom�es

podem considerar un nombre �nit d'iteracions, el c�alcul es realitza amb una precisi�o�xada ". L'algorisme cont�e els passos seg�uents:

1. Inicialitzaci�o: x = x0 (x0 > 0), I = 0, Imax (nombre m�axim d'iteracions), " (laprecisi�o imposada).

© Els autors, 1998; © Edicions UPC, 1998.

Page 9: Calcul Numeric - Bonet

12 C�alcul num�eric

2. Mentre I < Imax feu.

3. I � I + 1.

4. Calculeu y = (x+ (a=x))=2.

5. Si j y � x j� ", escriviu y i pareu; si no, feu x � y i continueu.

6. Fimentre.

7. Poseu "l'algorisme no convergeix" i pareu.

A l'hora de de�nir un algorisme cal tenir cura que no hi hagi ambig�uitat en passara l'operaci�o seg�uent. Entre les causes m�es senzilles de frac�as d'un algorisme podemesmentar:

- divisions per zero

- arrels quadrades de nombres negatius

- abs�encia de condicions per tal d'aturar un proc�es iteratiu, etc.

1.2 Aritm�etica de coma otant i errors d'arrodoniment

Naturalment els algorismes s'executen en un computador digital on les operacionsde suma, multiplicaci�o i divisi�o es realitzen amb un cert error. A causa de la �nitud dela m�aquina no �es possible representar tots els nombres (nom�es �ns a una certa talla),i dels que es poden representar nom�es �es possible fer-ho aproximadament (no podemguardar in�nits decimals) i les operacions no es poden fer exactament (

p2 no es pot

calcular exactament).

Des del punt de vista de l'usuari un algorisme ha de ser vist com una caixa negraque agafa un problema i, despr�es d'un gran nombre d'operacions inexactes, d�ona unaresposta. Aix�� �es necessari estudiar a priori els efectes de tots aquests errors en unalgorisme.

La majoria de c�alculs en un computador es fan utilitzant aritm�etica de coma otant. Encara que generalment operen amb representaci�o bin�aria, �es m�es f�acil dedescriure aquesta aritm�etica amb representaci�o decimal.

© Els autors, 1998; © Edicions UPC, 1998.

Page 10: Calcul Numeric - Bonet

Introducci�o 13

Tot nombre real a (a 6= 0) es pot representar de la forma

a = �10q � (0; d1d2 : : :) ;

on q 2 Z, d1 6= 0, els dj s�on d��gits i poden ser in�nits.

La representaci�o de a en un ordinador pot ser de diverses formes. La m�es usada�es la representaci�o en coma otant �ns a un nombre �xat de d��gits (que dep�en del'ordinador).

Si denotem per fl(a) la representaci�o de a en coma otant �ns a t d��gits tenim :

fl(a) = �10q � (0; �1 : : : �t) ;

on �1 6= 0 i �j s�on d��gits. La mantissa �es �1 : : : �t i l'exponent �es q.

El rang de q, �es a dir, �N � q � M , i el nombre de d��gits "t" varia segonsel computador. Tots els nombres que es poden representar exactament d'aquestaforma s'anomenen nombres de la m�aquina. Si durant el curs d'un c�alcul algunaquantitat t�e un exponent q > M o b�e q < �N , s'obt�e el que s'anomena sobreeixementi sotaeiximent, respectivament.

Hi ha dues formes en qu�e els d��gits otants �j s'obtenen dels d��gits exactes dj :

1) La representaci�o per truncament que pren

�j = dj er a j = 1; 2; : : : t :

2) La representaci�o per arrodoniment que pren

�1�2 : : : �t = [(d1d2 : : : dt; dt+1) + 0:5] ;

on [ ] indica la funci�o part entera.

El cas en qu�e d1 = d2 = � � � = dt = 9 i dt+1 � 5 es tracta incrementant q amb unaunitat i posant �1 = 1, �j = 0 , j > 1.

Exemple

representaci�o exacta 0:2574867821 � 106

representaci�o truncada (t = 7) 0:2574867 � 106

representaci�o arrodonida (t = 7) 0:2574868 � 106

© Els autors, 1998; © Edicions UPC, 1998.

Page 11: Calcul Numeric - Bonet

14 C�alcul num�eric

1.2.1 Error en la representaci�o

Proposici�o. L'error absolut en la representaci�o d'un nombre a 6= 0 en coma otant

est�a �tat per

j a� fl(a) j� 5� j a j �10�t � pp = 1 per arrodoniment

p = 2 per truncament

DEMOSTRACI�O. 1) Cas de truncament (per evitar confusions, � denotar�amultiplicaci�o):

j a� fl(a) j =j �10q � (0; d1 : : : dtdt+1 : : :)� (�10q � (0; d1d2 : : : dt)) j=

= 10q�t � (0; dt+1dt+2 : : :) =10q�t � (0; dt+1dt+2 : : :)

10q � (0; d1d2 : : :)� j a j=

= 10�t �0; dt+1dt+2 : : :

0; d1d2 : : :� j a j :

Per�o, com que 1 � d1 � 9 i 0; dt+1dt+2 : : : � 1, aix�o implica que

0; dt+1dt+2 : : :

0; d1d2�

1

0:1= 10

i, per tant,

j a� fl(a) j� 10�t� j a j �10 = 10�t� j a j �5p ;

on p = 2.

2) Cas d'arrodoniment:

j a� fl(a) j� 10q � 10�t �1

2= 10q�t �

1

2� (j a j = j a j) =

= 10q � 10�t �1

2�

j a j

10q � (0; d1d2 : : :)=

=1

2� 10�t �

j a j

0; d1d2 : : :�

1

2� 10�t �

j a j

0:1= 5� 10�t� j a j= 10�t� j a j �5p ;

on p = 1.

© Els autors, 1998; © Edicions UPC, 1998.

Page 12: Calcul Numeric - Bonet

Introducci�o 15

1.2.2 Error en les operacions

Si treballem amb aritm�etica de coma otant amb t-d��gits, el producte exacte de dosnombres t-d��gits requereix 2t-d��gits. Aix�� per for�ca es produir�a error. En general, ensreferirem a error d'arrodoniment com a l'error produ��t en les operacions aritm�etiquesde coma otant.

Suposem ara que disposem d'un ordinador (ideal) que fa les operacions correctes�ns a 2t-d��gits i despr�es o b�e arrodoneix o b�e trunca els resultats a t-coma otantnombres. Tamb�e suposem que a i b s�on nombres en t-d��gits, llavors:

COROL�LARI.

fl(a� b) = (a� b)(1 + � � 10�t)

fl(ab) = ab(1 + � � 10�t)

fl(a

b) =

a

b(1 + � � 10�t)

on0 � j � j � 5 per arrodoniment

0 � j � j � 10 per truncament.

Naturalment que si ens cal fer molts c�alculs, els errors es van afegint i podenarribar a desvirtuar totalment el resultat. Per exemple, si hem de fer el producteescalar

a1b1 + a2b2 (a i b ja en coma otant!)

cal fer

fl(a1b1) = a1b1(1 + "1) ;

f l(a2b2) = a2b2(1 + "2) ;

f l(fl(a1b1) + fl(a2b2)) = (fl(a1b1) + fl(a2b2))(1 + "3) =

= (a1b1(1 + "1) + a2b2(1 + "2))(1 + "3) ;

on hem utilitzat el corol�lari anterior.

Si els vectors s�on llargs, les coses es compliquen extraordin�ariament. De fet es potprovar:

Teorema.

fl

nX

i=1

aibi

!=

nXi=1

(ai + �ai)bi ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 13: Calcul Numeric - Bonet

16 C�alcul num�eric

on

j �a1 j� n� j a1 j �101�t

j �ai j� (n� i+ 2)� j ai j �101�t

Com a aplicaci�o de les estimacions del teorema, considerem el cas on

j a1 j=j a2 j= : : : =j an j= a

j b1 j=j b2 j= : : : =j bn j= b

)

Aleshores

fl

nX

i=1

aibi

!=

nXi=1

(ai + �ai)bi =nX

i=1

aibi +nX

i=1

�aibi :

Fitem ara l'error a partir del teorema i tindrem

jnX

i=1

�aibi j �nX

i=1

j �ai jj bi j� n j a jj b j 101�t +nX

i=2

j b jj a j 101�t(n� i+ 2) =

=j a jj b j 101�t

n+

nXi=2

(n� i+ 2)

!=

=j a jj b j 101�t

�n+

(n� 2)(n� 5)

2

�:

Aix�� que, en el pitjor dels cassos, l'error com�es creixer�a proporcionalment a n2.

Si n �es gran, per exemple n ' 106, l'error pot arribar a ser considerable.

Val a dir que aix�� �es en el pitjor dels casos. En realitat els errors es van compensant.Aix�o, afegit al gran volum d'operacions que generalment es fan, motiva l'estudi del'error per t�ecniques estad��stiques. Aix�� una cota m�es "realista" de l'error anteriorser�a substituir n per

pn.

Si a denota un nombre real qualsevol i a� una aproximaci�o seva, de�nirem l'errorabsolut com

error absolut =j a� a� ji l'error relatiu com

error relatiu =j a� a� jj a j :

Direm que a� �es un arrodoniment �ns a t xifres decimals si j a � a� j� 10�t=2. Aix�os'expressar�a, encara que no sigui estrictament cert, dient que a i a� coincideixen enles t primeres xifres decimals. Per truncament s'entendria j a� a� j� 10�t.

© Els autors, 1998; © Edicions UPC, 1998.

Page 14: Calcul Numeric - Bonet

Introducci�o 17

Si b�e l'aritm�etica de coma otant �es la m�es e�cient per a les necessitats del c�alculnum�eric, hi ha vegades que es produeixen errors inacceptables. Vegem-ne alguns casos:

* La divisi�o d'un resultat amb coma otant per un nombre molt petit (o lamultiplicaci�o per un de molt gran) d�ona un error absolut molt gran.

Si r �es el nombre que ha estat representat per r+ e, �es clar que si volem calcularr=d on d �es petit obtindrem un error aproximadament igual a e=d. Si d �es proupetit, aquest quocient pot ser m�es gran que r=d.

* La resta de nombres molt semblants d�ona un error relatiu molt gran.

Suposem que els dos nombres x i y s'expressen

fl(x) = 0:d1d2 : : : dp�p+1 : : : �k � 10`

fl(y) = 0:d1d2 : : : dp�p+1 : : : �k � 10`

la resta x� y es representar�a com

fl(fl(x)� fl(y)) = 0:�p+1 : : : �k � 10`�p ;

per a certes constants �p+1 : : : �k.

�Es a dir, ara ja nom�es tenim k� p xifres signi�catives i qualsevol c�alcul posteriorja no en podr�a donar m�es. La p�erdua de d��gits signi�catius �es perillosa nom�es si volemmantenir l'error relatiu petit, �es a dir, en els c�alculs adimensionals.

Molt sovint els dos fen�omens anteriors apareixen combinats, la qual cosa voldr�adir la total desvirtuaci�o dels resultats. Per aix�o s'han de detectar a priori i evitar-losreformulant el problema.

Exemple. Es vol calcular amb aritm�etica de 5 d��gits l'arrel de m�odul m�es petit de

x2 + 111:11x + 1:2121 = 0 :

Si s'utilitza la f�ormula

x =��111:11 +

p111:112 � 41:2121

�=2 ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 15: Calcul Numeric - Bonet

18 C�alcul num�eric

s'obt�e x = �0:01 que nom�es t�e dues xifres decimals correctes.

En canvi si utilitzem la f�ormula

x = (�2 � 1:2121)=(111:11 +q111:112 � 4 � 1:2121) ;

tenim x = �0:010910 que en t�e 4 de bones.

1.3 Resoluci�o de problemes

Sovint els problemes que cal resoldre num�ericament representen la modelitzaci�ovia lleis te�oriques a m�es de suposicions simpli�cadores d'algun fenomen real. �Es adir, mai es resol el problema en si sin�o un model aproximat que es resol tamb�e demanera aproximada, a causa de la impossibilitat de realitzar els c�alculs exactament.Una vegada calculada la soluci�o, cal contrastar-la amb la realitat per determinar elseu grau de validesa.

Que els resultats no s'adaptin a la realitat dep�en de tres factors b�asics:

* lleis err�onies, simpli�caci�o excessiva del model, errors en mesurar les dades, etc.(aqu�� no hi podem fer res)

* algorisme de resoluci�o inadequat

* problema mal condicionat

1.3.1 Propietats dels algorismes

Cada problema t�e associat un algorisme �optim, per�o tamb�e �es cert que totalgorisme t�e un problema en el qual fracassa; l'elecci�o d'un algorisme per un certproblema vindr�a molt determinada per l'experi�encia o altres raons subjectives.Tanmateix, hi ha raons objectives que poden ajudar en la selecci�o d'un algorismeo el rebuig d'un altre. Les m�es importants s�on:

- estabilitat num�erica i converg�encia

- velocitat de c�alcul

- capacitat de mem�oria

© Els autors, 1998; © Edicions UPC, 1998.

Page 16: Calcul Numeric - Bonet

Introducci�o 19

1.3.2 Estabilitat num�erica

L'estabilitat num�erica d'un algorisme es mesura per la seva resist�encia enfront alserrors d'arrodoniment. L'exemple seg�uent il�lustra perfectament aquest concepte.

Exemple. Es vol calcular

yn =

Z1

0

xn

x+ 5dx ; n = 0; 1; : : : ; 8

mitjan�cant la f�ormula yn+5yn�1 = 1=n. Fent els c�alculs amb 3 xifres decimals, s'obt�e

y0 ' 0:182 ; y1 ' 0:090 ; y2 = 0:05 ; y3 = 0:083 ; y4 = �0:165 (< 0 !!) :

Veiem doncs que la propagaci�o dels errors d'arrodoniment desvirtuen totalmentl'algorisme. En aquest cas, per�o, aix�o es pot arreglar. El que farem ser�a considerarl'algorisme de forma descendent.

Com que yn t�e l��mit quan n ! 1 (limn!1 yn = 0), �es raonable esperar quey10 ' y9, amb una certa precissi�o. Per a aix�o suposem y10 = y9. De l'algorisme tenim

y9 + 5y9 ' 1=10 =) y9 ' 0:017

i ara expressem l'algorisme de la forma

yn�1 = (1=5n) � (yn=5)

i obtenimy8 ' 0:019

...y0 ' 0:182 (correcte).

A continuaci�o presentem un altre exemple d'inestabilitat num�erica. Exemple. Laf�ormulaZ

0:3

0

sin8 �d� =

���1

8cos �

��sin4 � +

7

6sin2 � +

35

24

�) sin3 � +

105

384(� � sin 2�)

�0:30

�es matem�aticament exacta, per�o si fem els c�alculs amb 7 xifres decimals s'obt�e elmateix resultat que si es fa l'aproximaci�o sin � ' � i s'integra

Z0:3

0

�8 d� :

Aix�o il�lustra el fet que f�ormules matem�aticament perfectes poden ser ine�cients desdel punt de vista num�eric.

© Els autors, 1998; © Edicions UPC, 1998.

Page 17: Calcul Numeric - Bonet

20 C�alcul num�eric

1.3.3 Velocitat de c�alcul

Diguem una vegada per totes, als efectes de comptar el temps que un algorismetriga a fer les diverses operacions, que una multiplicaci�o m�es una suma (o resta)equivaldran a una divisi�o. Aix�o, encara que nom�es �es cert de manera aproximada,ser�a su�cient per als nostres prop�osits.

Pot passar que un cert algorisme, matem�aticament impecable, no sigui apte perqu�eel temps necessari per fer tots els c�alculs sigui prohibitiu. Aix��, per exemple, no �esraonable utilitzar la regla de Cramer per resoldre sistemes lineals de matrius 25� 25.El nombre d'operacions per a un determinant partint de la de�nici�o �es de l'ordre de25! ' 15�1024. Si el temps necessari per fer una operaci�o �es de l'ordre de 10�6 segons,resulta que el temps que l'ordinador dedica nom�es a fer operacions seria de l'ordre de15� 1018 segons, que s�on milions de segles!

En canvi, el m�etode de Gauss �es un possible algorisme adient ja que el nombred'operacions �es de l'ordre de 253=3 i el temps ja �es raonable.

1.3.4 Capacitat de mem�oria

Igual que la velocitat de c�alcul, la capacitat de mem�oria �es una de les principalsq�uestions a tenir en compte a l'hora de seleccionar un algorisme. De fet, hi haproblemes que actualment s�on impossibles de resoldre a causa de la capacitat demem�oria. Per exemple, invertir matrius plenes 104 � 104, resoldre sistemes dispersos105 � 105 pel m�etode de Gauss, etc. De totes formes hi ha algorismes que necessitenm�es capacitat de mem�oria que altres, i aix�o �es el que cal tenir en compte.

�Es a dir, a l'hora de triar un algorisme cal fer un comprom��s entre l'estabilitatnum�erica, la velocitat de c�alcul i la necessitat de mem�oria. Com optimitzar l'elecci�o�es una q�uesti�o molt condicionada per l'experi�encia. De totes formes hi ha una brancade les matem�atiques que es dedica a estudiar els algorismes. Un dels problemesfonamentals �es determinar algorismes amb un nombre m��nim d'operacions. El seg�uentexemple �es una il�lustraci�o d'un algorisme nou que �es millor que l'antic. Exemple.

Donat

P (x) = an + an�1x+ � � �+ a0xn ;

es tracta de calcular les derivades normalitzades

P (j)(z)=j! ; j = 0; 1; 2; : : : ; n :

L'algorisme cl�assic t�e m�es de 160 anys. Se'l coneix com la regla de Horner iterada o

© Els autors, 1998; © Edicions UPC, 1998.

Page 18: Calcul Numeric - Bonet

Introducci�o 21

com a divisi�o sint�etica. L'algorisme general atent a les f�ormules

T�1i = ai+1 ; i = 0; 1; 2; : : : ; n� 1

T jj = a0 ; j = 0; 1; 2; : : : ; n

T ji = T j�1

i�1 + zT ji�1 ; j = 0; 1; : : : ; n� 1

i = j + 1; : : : ; n

i t�e el seu fonament en la representaci�o de P (z) seg�uent:

P (z) = z(z(z(a0z + a1) + a2) + a3 : : :) + an :

No �es dif��cil veure que

(P (j)(z))=j! = T jn ; j = 0; 1; : : : ; n :

Observem que les dues primeres l��nies s�on condicions inicials. Per tant, tot el "treball"es realitza a la 3a l��nia. �Es f�acil veure que el nombre d'operacions necess�aries s�on

1

2n(n+ 1) multiplicacions

1

2n(n+ 1) sumes :

Tamb�e notem que aquest algorisme es basa en l'estructura

P0(x) = a0x(a1x+ (a2x+ � � �)) :

Considerem ara el nou algorisme (Shaw & Traub, 1973)

T�1i = ai+1zn�i�1 ; i = 0; 1; 2; : : : ; n� 1

T jj = a0z

n ; j = 0; 1; 2; : : : ; n

T ji = T j�1

i�1 + T ji�1 ; j = 0; 1; : : : ; n� 1

i = j + 1; : : : ; n :

Es pot demostrar que

(P (j)(z))=j! = z�jT jn ; j = 0; 1; : : : ; n� 1 :

En aquest algorisme totes les multiplicacions es fan a la inicialitzaci�o. La f�ormularecursiva nom�es requereix sumes. Las derivades normalitzades s'obtenen per divisi�outilitzant el c�alcul de zj que hem fet a la inicialitzaci�o. L'algorisme requereix

3n� 1 multiplicacions i divisions

n

�n+ 1

2

�sumes :

Notem que la depend�encia en n �es lineal (per a les multiplicacions i divisions).

© Els autors, 1998; © Edicions UPC, 1998.

Page 19: Calcul Numeric - Bonet

22 C�alcul num�eric

1.4 Problemes ben o mal condicionats

Considerem el sistema lineal

2x+ 6y = 8

2x+ 6:00001y = 8:00001 ;

la soluci�o exacta �es:x = 1

y = 1

En canvi el sistema2x+ 6y = 8

2x+ 5:99999y = 8:00002

t�e per soluci�o exacta:x = 10

y = �2 :

Veiem doncs que una difer�encia entre els coe�cients d'ordre 10�5 comporta unadifer�encia entre els resultats d'ordre 101. Som davant d'un problema mal condicionat.Aix��, si una an�alisi a priori d'un problema nom�es ha pogut garantir 4 xifres exactes,no podem con�ar en el resultat, si en un moment determinat del c�alcul ens apareix undels dos sistemes. Haurem de canviar d'estrat�egia a l'hora de resoldre el problema.

Un altre exemple de problema mal condicionat el d�ona el sistema

0:832x1 + 0:448x2 = 1:00

0:784x1 + 0:421x2 = 0 :

Si utilitzem aritm�etica de coma otant amb 3 d��gits, l'eliminaci�o gaussiana d�ona coma soluci�o:

x1 = �506

x2 = 942 :

Per�o la soluci�o exacta �es:x1 = �439

x2 = 817 :

Aquest �es un exemple en qu�e la precisi�o de les dades i la de l'aritm�etica coincideixen.En canvi el resultat �es desastr�os. La ra�o de tot aix�o �es que les equacions de�neixenrectes que s�on gaireb�e paral�leles. Es veu doncs que un canvi petit d'angle d'una d'ellescomportar�a un canvi gros en la intersecci�o (Fig. 1.1).

© Els autors, 1998; © Edicions UPC, 1998.

Page 20: Calcul Numeric - Bonet

Introducci�o 23

Fig. 1.1

1.4.1 Explicaci�o matem�atica del mal condicionament

Si f representa el proc�es num�eric per resoldre un problema (algorisme +operacions) i a representa la dada real i en canvi hem mesurat a + " (" �es l'error),llavors si suposem que f �es una funci�o prou diferenciable tindrem

f(a+ ") = f(a) + f 0(a) � "+O("2) � f(a) + f 0(a) � " :

Aleshores, encara que " sigui petit, el segon terme de l'expansi�o pot ser �ns i tot m�esgran que f(a), cosa que desvirtuar�a el resultat. Si ens trobem amb una cosa aix�� l'�unicque podem fer �es: o b�e millorar la precisi�o de les dades o b�e millorar la precisi�o delsnostres c�alculs, o b�e les dues coses. En tot cas no �es una q�uesti�o de l'algorisme triat,�es un fet intr��nsec al problema.

Per tal d'il�lustrar tot aix�o considerem un darrer exemple, degut a Wilkinson.Suposem que el polinomi "real" �es

P20 = (x� 20)(x � 19) � � � (x� 1) = x20 � 210x19 + � � �

Vegem com "reacciona" l'arrel x = 20 davant d'un petit error " al coe�cient 19. Pera aix�o cal considerar

F (x; ") = x20 + (�210 + ")x19 + � � � :

Per tal d'aplicar el teorema de la funci�o impl��cita, comprovem (a prop de l'arrel x = 20)

F (20; 0) = 0

@F

@x(20; 0) = 19! (6= 0) :

© Els autors, 1998; © Edicions UPC, 1998.

Page 21: Calcul Numeric - Bonet

24 C�alcul num�eric

Aix�� doncs, existeix una funci�o �unica x(") de manera que

x(0) = 20

F (x("); ") = 0 :

�Es f�acil veure tamb�e que

x0(0) = �2019

19!' �4:3� 107 :

Aix�� que

x(") = 20�2019

19!"+O("2) :

Per poca toler�ancia que s'exigeixi a les dades, la soluci�o pot no tenir res a veure amb20.

L'anterior exemple ens motiva la de�nici�o de problema ben condicionat(naturalment, com hem vist, �es una de�nici�o que dependr�a de la precisi�o de les dadesi de l'aritm�etica utilitzada).

Notem per a a1 : : : am les dades espec���ques d'un cert problema computacional.Si x1 : : : xn s�on les quantitats a calcular, podrem escriure

x = f(a) ; onx = (x1 : : : xn)

a = (a1 : : : am)

on f representa l'algorisme utilitzat (m�es l'aritm�etica).

De�nici�o. Direm que el problema �es ben condicionat si es compleixen elsrequeriments seg�uents:

a) La soluci�o x ha d'existir (podria no passar si pel que fos en algun moment delc�alcul apareix sobreeiximent).

b) El c�alcul ha de ser �unic. �Es a dir, ha de sortir el mateix amb les mateixes dades(si aix�o falla ser�a degut als errors de m�aquina).

c) El resultat del c�alcul cal que depengui Lipschitz - cont��nuament de les dades, amb

una constant de Lipschitz adient a la precisi�o de les dades i de l'aritm�etica. �Es adir, demanem que petits canvis a les dades produeixin tamb�e petits canvis en elsresultats. Aix�o s'expressa matem�aticament de la forma: Si

x = f(a)

x+ �(x) = f(a+ �(a))

© Els autors, 1998; © Edicions UPC, 1998.

Page 22: Calcul Numeric - Bonet

Introducci�o 25

s�on els resultats respecte de dues dades pr�oximes. Cal que

jj �(x) jj=jj f(a+ �(a)) � f(a) jj�M jj �(a) jj

i que M no sigui "excessivament" gran.

Val a dir que, com que M dep�en de a , pot passar que un problema estigui benposat per a unes dades, i en canvi no ho estigui per a d'altres.

© Els autors, 1998; © Edicions UPC, 1998.

Page 23: Calcul Numeric - Bonet

Sistemes lineals 27

Cap��tol 2 Sistemes lineals

2.1 Introducci�o

Considerem el sistema d'equacions lineals

a11x1 + a12x2 + : : :+ a1nxn = b1

a21x1 + a22x2 + : : :+ a2nxn = b2

: : :

an1x1 + an2x2 + : : : + annxn = bn

9>>>>=>>>>;

que, en notaci�o matricial, escriurem

Ax = b ;

on suposarem que A �es una matriu n � n. Per tant, tenim tantes equacions cominc�ognites, satisfent detA 6= 0 , condici�o que ens garantir�a l'exist�encia d'una �unicasoluci�o xT = (x1; x2; : : : ; xn) .

Una manera de resoldre aquest sistema lineal seria a partir de la regla de Cramer(amb c�alcul de determinants) o fent x = A�1b, per�o ambd�os procediments no s�onrecomanables, ja que la di�cultat prim�aria que aporta el c�alcul de A�1 o d'undeterminant �es la mateixa que la resoluci�o del sistema lineal.

Aix��, distingirem dos tipus de m�etodes num�erics per resoldre sistemes lineals:

{ M�etodes directes, que obtenen la soluci�o exacta en un nombre �nit de passos(suposant que en el c�alcul no es produeixi cap tipus d'error). El m�es representatiu�es el m�etode de Gauss.

© Els autors, 1998; © Edicions UPC, 1998.

Page 24: Calcul Numeric - Bonet

28 C�alcul num�eric

{ M�etodes iteratius, que parteixen d'una aproximaci�o inicial de la soluci�o i calculenuna successi�o d'aproximacions successives millorades, el l��mit de la qual �es lasoluci�o buscada. Aquests m�etodes s'apliquen sovint quan la matriu del sistema �es\escassa", �es a dir, amb molts elements que s�on zero.

2.1.1 M�etode de Gauss

Ens proposem resoldre un sistema lineal amb el m�etode de l'eliminaci�o Gaussiana

o m�etode de Gauss. Vegem amb un exemple com funciona aquest m�etode.Exemple. Resoleu el sistema lineal

4x1 � 9x2 + 2x3 = 2

2x1 � 4x2 + 4x3 = 3

�x1 + 2x2 + 2x3 = 1

9>=>; (2:1:1)

o b�e en notaci�o matricial:

0@

4 �9 22 �4 4�1 2 2

1A

0@

x1

x2

x3

1A =

0@231

1A :

(i) El primer pas consisteix a passar a un sistema triangular superior.

Aix�� doncs, eliminem primer x1 de la 2a i 3a equacions. Per aix�o restem la 2a

equaci�o menys2

4vegades la 1a i la 3a equaci�o menys �

1

4vegades la 1a:

0@4 �9 20 0:5 30 �0:25 2:5

1A

0@

x1

x2

x3

1A =

0@

221:5

1A :

Ara, per tal d'eliminar x2 de la 3a equaci�o restem la 3a equaci�o menys �0:25

0:5vegades

la 2a equaci�o: 0@4 �9 20 0:5 30 0 4

1A

0@

x1

x2

x3

1A =

0@

222:5

1A :

(ii) Un cop tenim el sistema en forma triangular, el podem resoldre de maneraimmediata:

- de la 3a equaci�o:

x3 =2:5

4= 0:625 ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 25: Calcul Numeric - Bonet

Sistemes lineals 29

- de la 2a equaci�o:

0:5x2 + 3� 0:625 = 2 =) x2 = 0:25 ;

- de la 1a equaci�o:

4x1 � 9� 0:25 + 2� 0:625 = 2 =) x1 = 0:75 :

Fem-ho ara, en general.

2.1.2 Eliminaci�o Gaussiana

Considerem el sistema

a11x1 + a12x2 + : : :+ a1nxn = b1

a21x1 + a22x2 + : : :+ a2nxn = b2

: : :

an1x1 + an2x2 + : : : + annxn = bn

9>>>>=>>>>;

i suposem que detA = det(aij) 6= 0 de manera que el sistema t�e una �unica soluci�o.Primer volem trobar un sistema equivalent en forma triangular.

Per aix�o, denotem per A(0) = A i suposem que a11 6= 0. Llavors, en el primer pas,podem eliminar x1 de les n�1 darreres equacions. En efecte, prenemmi1 = (ai1)=(a11), i = 2; 3; : : : ; n; i sumem �mi1 vegades la primera equaci�o a la i-�esima, �es a dir,

a(1)ij = a

(0)ij �mi1a

(0)1j , b

(1)i = b

(0)i �mi1b

(0)1 , i = 2; : : : ; n de manera que obtenim el

sistema equivalent

a(0)11 x1 + a

(0)12 x2 + : : : + a

(0)1n xn = b

(0)1

a(1)22 x2 + : : : + a

(1)2n xn = b

(1)2

: : :

a(1)n2 x2 + : : : + a(1)nnxn = b(1)n

9>>>>>=>>>>>;

(2:1:2)

En el segon pas, si a(1)22 6= 0 , podem eliminar de manera similar x2 de les n � 2

darreres equacions de (2.1.2): prenem mi2 =a(1)i2

a(1)22

, i = 3; : : : ; n i sumem �mi2 vegades

la segona equaci�o a la i-�esima, �es a dir, a(2)ij = a

(1)ij � mi2a

(1)2j , b

(2)i = b

(1)i � mi2b

(1)2 ,

i = 3; : : : ; n, de manera que s'obt�e el sistema lineal equivalent A(2)x = b(2).

© Els autors, 1998; © Edicions UPC, 1998.

Page 26: Calcul Numeric - Bonet

30 C�alcul num�eric

Els elements a(0)11 , a

(1)22 , a

(2)33 ; : : : , que apareixen en aquest proc�es s'anomenen

pivots. Si tots els pivots s�on no nuls, podem continuar l'eliminaci�o i en el pas (n� 1)-�esim obtenim el sistema lineal equivalent A(n�1)x = b(n�1) on A(n�1) �es una matriutriangular superior:

a(0)11 x1 + a

(0)12 x2 + : : :+ a

(0)1n xn = b

(0)1

a(1)22 x2 + : : :+ a

(1)2n xn = b

(1)2

: : :

a(n�1)nn xn = b(n�1)

n

9>>>>>=>>>>>;

2.1.3. Resoluci�o de sistemes triangulars

El segon pas del m�etode de Gauss consisteix a resoldre el sistema obtingut en

forma triangular. Si suposem a(i�1)ii 6= 0 , i = 1; 2; : : : ; n , llavors podem obtenir la

soluci�o xn; : : : ; x1 (en aquest ordre) a partir de la "substituci�o reversiva":

xn =b(n�1)n

a(n�1)nn

xn�1 =b(n�2)n�1 � a

(n�2)n�1;nxn

a(n�2)n�1;n�1

: : :

x1 =b(0)1 � a

(0)1n xn � : : :� a

(0)12 x2

a(0)11

:

Vegem, en forma esquem�atica, l'algorisme de Gauss per resoldre un sistema lineal

(i) Forma triangular:

per a k = 1; : : : ; n� 1

per a i = k + 1; : : : ; n

mik �aik

akk

per a j = k + 1; : : : ; n

© Els autors, 1998; © Edicions UPC, 1998.

Page 27: Calcul Numeric - Bonet

Sistemes lineals 31

(2.1.3) aij � aij �mikakj

� per a j

bi � bi �mikbk

� per a i

� per a k

(ii) Resoluci�o:

xn �bn

ann

per a k = n� 1; : : : ; 1

xk �

bk �nP

j=k+1akjxj

akk.

� per a k

Per tal d'implementar aquest algorisme a l'ordinador, notem que els a(k)ij que

anem obtenint es van substituint en els aij originals (vegeu (2.1.3)) i els bi tamb�e. Elsmultiplicadors mik es poden guardar al lloc de aik que no es necessiten m�es, un cops'ha calculat mik .

2.1.4 Nombre d'operacions en el m�etode de Gauss

Comptem ara el nombre d'operacions (sumes o restes, multiplicacions i divisions)que es fan en resoldre un sistema amb el m�etode de Gauss.

© Els autors, 1998; © Edicions UPC, 1998.

Page 28: Calcul Numeric - Bonet

32 C�alcul num�eric

(i) Triangularitzaci�o. A partir de l'algorisme anterior, per obtenir A(n�1), fem

n�1X

k=1

nX

i=k+1

nX

j=k+1

1 =n�1X

k=1

(n� k)2 =(n� 1)n(2n� 1)

6multiplicacions ;

n�1X

k=1

nX

i=k+1

nX

j=k+1

1 =(n� 1)n(2n� 1)

6sumes ;

n�1X

k=1

nX

i=k+1

1 =n�1X

k=1

(n� k) =n(n� 1)

2divisions :

Aqu�� hem substitu��tnP

r=1r2 =

n(n+ 1)(2n + 1)

6.

Per obtenir b(n�1) :

n�1X

k=1

nX

i=k+1

1 =n�1X

k=1

(n� k) =n(n� 1)

2multiplicacions

n�1X

k=1

nX

i=k+1

1 =n(n� 1)

2sumes :

(ii) Resoluci�o del sistema triangular:

n�1X

k=1

nX

j=k+1

1 =n�1X

k=1

(n� k) =n(n� 1)

2multiplicacions ;

n�1X

k=1

nX

j=k+1

1 =n(n� 1)

2sumes ;

nX

k=1

1 = n divisions :

© Els autors, 1998; © Edicions UPC, 1998.

Page 29: Calcul Numeric - Bonet

Sistemes lineals 33

El nombre total d'operacions, ser�a

�(n� 1)n(2n� 1)

6+ n(n� 1)

�mult.+

�(n� 1)n(2n� 1)

6+ n(n� 1)

�sumes +

+

�n(n� 1)

2+ n

�divisions :

Aix��, per exemple, un sistema 100� 100 tarda aproximadament 3 segons a fer lesoperacions (si comptem 5�s cada operaci�o).

2.1.5 Estrat�egies de pivot

A l'eliminaci�o Gaussiana, hem suposat que els pivots eren no nuls, per�o podriano ser aix��. Per exemple, sigui el sistema

x1 + x2 + x3 = 1

x1 + x2 + 2x3 = 2

x1 + 2x2 + 2x3 = 1

9>=>;

En el primer pas, ens queda el sistema

x1 + x2 + x3 = 1

x3 = 1

x2 + x3 = 0

9>=>;

i, per tant, a(1)22 = 0 . Aleshores, canviem les dues darreres equacions d'ordre i ja

tenim, en aquest cas, el sistema triangularitzat.

Aix�o �es el que farem, en general. Si al pas i-�esim (A(i�1) a A(i))

A(i�1) =

0BBBBBBB@

a(0)11 � � � a

(0)1n

. . .

a(i�1)ii � � � a

(i�1)in

0...

...a(i�1)ni � � � a

(i�1)nn

1CCCCCCCA

tenim a(i�1)ii = 0, llavors existir�a algun a

(i�1)ji 6= 0 de la columna i-�esima (ja que

detA 6= 0) . Aleshores, canviem les equacions i-�esima i j-�esima, i continuem el proc�esamb aquest pivot no nul.

© Els autors, 1998; © Edicions UPC, 1998.

Page 30: Calcul Numeric - Bonet

34 C�alcul num�eric

D'altra banda, si el pivot �es no nul, per�o molt petit, podem tenir inestabilitatnum�erica. Vegem-ne un exemple.

Considerem el sistema lineal��10�5 1

2 1

� �x1x2

�=

�10

que t�e per soluci�o exacta: x1 = �0:4999975 : : :, x2 = 0:999995 : : :.

I ara suposem que treballem amb un computador de 3 d��gits, �es a dir, cada nombrees representa per 0: � � � �10p. Aplicant Gauss, es t�e

a(0)11 6= 0 =) m21 =

�0:2� 101

0:1� 10�4= �0:2� 106

i, llavors,

a(1)22 = 0:1� 101 � (�0:2 � 106)(0:1 � 101) = 0:1� 101 + 0:2� 106 = 0:2 � 106

b(1)2 = �(�0:2� 106)(0:1 � 101) = 0:2� 106 :

Aix��,

x2 =b(1)2

a(2)22

=0:2� 106

0:2� 106= 0:1 � 101 ;

x1 =0:1� 101 � 0:1� 101

�0:1� 10�4= 0 :

Ja veiem que la soluci�o x1 �es molt inexacta. Qu�e ha passat? El multiplicador

m21 �es tan gran que no deixa intervenir a22 en el c�alcul de a(1)22 . Per tant, �es com si

hagu�essim resolt el sistema

��10�5 1

2 0

� �x1x2

�=

�10

�;

que �es diferent del sistema de partida (aquest t�e la soluci�o exacta x1 = 0 , x2 = 1).

El multiplicador ha sortit tan gran perqu�e a(0)11 �es molt petit respecte d'a

(0)21 . Podem

resoldre aquest comportament inestable intercanviant simplement les equacions.

© Els autors, 1998; © Edicions UPC, 1998.

Page 31: Calcul Numeric - Bonet

Sistemes lineals 35

�Es a dir, si ara resolem el sistema

�2 1

�10�5 1

� �x1

x2

�=

�01

en el nostre computador de 3 d��gits, tindrem:

m21 =�0:1� 10�4

0:2� 101= �0:5� 10�5

a(1)22 = 0:1� 101 � (�0:5� 10�5)(1) = 0:1� 101

b(1)22 = 0:1� 101 � (�0:5� 10�5)(0) = 0:1� 101

i d'aqu��

x2 =0:1 � 101

0:1 � 101= 1:0 ;

x1 =�(0:1 � 101)(1)

0:2 � 101= �0:5 ;

que �es un bon resultat.

Aix�� doncs, per tal de prevenir possibles errors, triarem el pivot en el pas k-�esimde la triangularitzaci�o, seguint una de les estrat�egies seg�uents.

Pivotatge parcial. Triem r com el menor enter, tal que

j a(k�1)rk j= max

k�i�nj a

(k�1)ik j ;

i intercanviem les �les k i r (vegeu la �gura).

Pivotatge total. Triem r i s com els menors enters, tals que

j a(k�1)rs j= max

k�i;j�nj a

(k�1)ij j ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 32: Calcul Numeric - Bonet

36 C�alcul num�eric

i intercanviem les �les k i r, i les columnes k i s

En general, el pivotatge parcial resulta prou e�cient i, com que requereix menystemps de c�omput, �es el m�es usual. Diguem, per�o, que de fet s'utilitza una variantanomenada pivotatge parcial escalonat, que estudiarem m�es endavant.

Observaci�o. Si la matriu A �es:

- o b�e diagonalment dominant per �les, i.e., j aii j>P

j=1

j 6=i

nj aij j, i = 1; 2; : : : ; n,

- o b�e sim�etrica (A = At) i de�nida positiva (xtAx > 0, x 6= 0), llavors no cal ferintercanvis de �les ni columnes i l'algorisme de Gauss �es num�ericament estable.

2.2 M�etodes de factoritzaci�o directa

2.2.1 Factoritzaci�o triangular. Descomposici�o LU

Sigui Ax = b un sistema lineal donat d'ordre n. Suposem que l'hem resolt pelm�etode de Gauss i hem tingut cura de guardar els pivots mij i tamb�e els intercanvisde �les efectuats. Llavors, per resoldre el sistema Ax = c (amb la mateixa A!) �esevident que no cal fer tot el proc�es de nou: nom�es caldr�a saber com ha canviat elvector c despr�es de les eliminacions i dels intercanvis de �les.

Aix��, si U denota la matriu triangularitzada relativa a A, nom�es caldr�a resoldre

Ux = ec ;

on ec �es el vector transformat de c.

Per entendre els c�alculs necessaris per obtenir ec, considerarem els canvis sofertsper b durant l'eliminaci�o. Per simplicitat suposarem que no ens calen intercanvis de�les.

© Els autors, 1998; © Edicions UPC, 1998.

Page 33: Calcul Numeric - Bonet

Sistemes lineals 37

Despr�es del 1r pas i per a i � 2 tenim

b(1)i = bi �mi1b1 :

Despr�es del 2n pas i per a i � 3 tenim

b(2)i = b

(1)i �mi2b

(1)2 :

: : :

Despr�es del pas n� 1-�esim i per a i = n tenim

b(n�1)i = b

(n�2)i �mi;n�1b

(n�2)n�1

Notem que, en fer el pas k-�esim, queden inalterats els elements b(k�1)i per i � k.

Aix�� doncs tindrem

eb1 = b1

eb2 = b(1)2 = b2 �m21

eb1eb3 = b

(2)3 = b

(1)3 �m32b

(1)2 = b3 �m31

eb1 �m32eb2

...

ebn = � � � = bn �mn1eb1 �mn2

eb2 � � � � �mn;n�1ebn�1

on eb �es la transformada de b pel m�etode de Gauss.

Si expressem la darrera relaci�o en forma matricial:

Leb = b ;

on

L =

0BBBBBB@

1

0

mij

1

1CCCCCCA

© Els autors, 1998; © Edicions UPC, 1998.

Page 34: Calcul Numeric - Bonet

38 C�alcul num�eric

Aix��, com que Ux = eb �es equivalent (t�e la mateixa soluci�o) a Ax = b, tenim

Ux = eb = L�1b ;

d'on

LUx = b :

�Es a dir, els sistemes Ax = b i LUx = b s�on equivalents.

En el cas que hi hagi estrat�egies de pivot, �es a dir intercanvis de �les, podemaplicar l'observaci�o seg�uent:

\S'obtenen les mateixes L i U si fem l'estrat�egia de pivot durant el proc�esd'eliminaci�o, que si comencem de nou el proc�es, havent intercanviat les �les d'entrada".

Basant-nos en aix�o, permutarem primer el sistema Ax = b i obtindrem el nousistema amb les �les intercanviades: A0x = b0.

En fer el proc�es a A0, obtindrem L i U , i per tant els sistemes

A0x = b0 ; LUx = b0

s�on equivalents.

Ara doncs, la pregunta natural �es: donat el sistema Ax = b, �es cert que A = LU?La resposta �es a�rmativa: en efecte, els sistemes Ax = b i LUx = b tenen la mateixasoluci�o; per tant, del primer, x = A�1b, i substituint al segon:

LUA�1b = b 8 b :

En particular prenent la base can�onica e1; : : : ; en es t�e

LUA�1ei = ei i = 1; : : : ; n ;

per tant

LUA�1 = Id ;

�es a dir,

LU = A :

Aix�� doncs hem provat el seg�uent

© Els autors, 1998; © Edicions UPC, 1998.

Page 35: Calcul Numeric - Bonet

Sistemes lineals 39

TEOREMA. SiguiA una matriu n�n amb detA 6= 0; llavors A = LU , on L = (mij)�es una matriu triangular inferior amb mii = 1, i = 1; : : : ; n, i U = (uij) �es una matriu

triangular superior.

Ja hem vist que l'emmagatzematge de L i U �es �optim en el sentit que, en fer ladescomposici�o, podem guardar L i U a la matriu A de la forma seg�uent:

0BBBB@

a11 a12 � � � a1na21 a22 � � � a2n� � �

� � �

an1 an2 � � � ann

1CCCCA

0BBBB@

u11 u12 � � � � � � � � � u1nm21 u22 � � � � � � � � � u2n

� � �

� � �

mn1 mn2 � � � mn;n�1 � � � unn

1CCCCA

i on sabem que mii = 1, i = 1� n.

Si durant la descomposici�o fem intercanvis de �les (pivotatge parcial), aleshoresobtenim LU = A0, on A0 �es la matriu que resulta de fer els intercanvis de �les a lamatriu A.

De�nim una matriu de permutaci�o P com aquella que t�e exactament un elementigual a 1 a cada �la i columna, i zeros a la resta. Per exemple,

P =

0BB@

1 0 0 00 0 0 10 0 1 00 1 0 0

1CCA :

Fer intercanvis de �les en una matriu equival a multiplicar per l'esquerra unamatriu de permutaci�o per la matriu A. Aix��, per exemple, multiplicar PA ens donariauna nova matriu amb la 1a i 3a �la invariants i la 2a i 4a commutades.

Exercici. Comproveu que P�1 = P T .

Aix�� tenim

Lema. Si Pi denota la matriu de permutaci�o corresponent a l'intercanvi de �les del

pas i-�esim de l'eliminaci�o Gaussiana, llavors es t�e

Pn�1Pn�2 : : : P2P1A = PA = A0 = LU ;

o b�e

A = P TLU :

© Els autors, 1998; © Edicions UPC, 1998.

Page 36: Calcul Numeric - Bonet

40 C�alcul num�eric

Com a conseq�u�encia la resoluci�o del sistema Ax = b queda redu��da a la resoluci�o dels

dos sistemes triangulars

Ly = Pb ; Ux = y :

NOTA.- Vegem com calcular P T i, per tant, P de manera senzilla. A cadapermutaci�o, li associem un vector permutaci�o, de la manera seg�uent:

Per exemple, si P1 =

0@

e2 e1 e3

0 1 01 0 00 0 1

1A (intercanviem la 1a i la 2a �la), li associem

el vector permutaci�o p1 = (2 1 3). Si ara P2 =

0@1 0 00 0 10 1 0

1A (intercanviem la 2a i la 3a

�la) tindrem P = P2P1 i a P li associem el nou p = (2 3 1). Aquest vector, anomenatvector de permutaci�o, ens diu qui es P�1.

En efecte, P = P2P1 =

0@0 1 00 0 11 0 0

1A i P�1 = P T =

0@

e2 e3 e1

0 0 11 0 00 1 0

1A .

Exemple. Al sistema (2.1.1) obtenim L =

0@

1 0 00:5 1 0�0:25 �0:5 1

1A, U =

0@4 �9 20 0:5 30 0 4

1A

i A = LU .

Exemple. Resolguem, aplicant pivotatge parcial, el sistema lineal:0@3 1 62 1 31 1 1

1A

0@x1x2x3

1A =

0@274

1A

Mostrem la factoritzaci�o a l'esquema seg�uent:0@3 1 62 1 31 1 1

1A

0@

3 1 62

3

1

3�1

1

3

2

3�1

1A

0@

3 1 61

3

2

3�1

2

3

1

2�

1

2

1A :

Tenim PA = LU o b�e A = P TLU , on

PA =

0@

P2

1 0 00 0 10 1 0

1A0@

P1

1 0 00 1 00 0 1

1A0@3 1 62 1 31 1 1

1A =

0B@

L

1 0 01

31 0

2

3

1

21

1CA

0B@

U

3 1 60 2

3�1

0 0 �

1

2

1CA :

© Els autors, 1998; © Edicions UPC, 1998.

Page 37: Calcul Numeric - Bonet

Sistemes lineals 41

En el primer pas, associem a P1, p = (1 2 3), �es a dir, P T1

=

0@

e1 e2 e3

1 0 00 1 00 0 1

1A. En

el segon pas, el nou p = (1 3 2) i llavors P T = P�1 =

0@

e1 e3 e2

1 0 00 0 10 1 0

1A . Ara resolem

Ly = Pb i Ux = y.

Obtenim com a resultat x1 = 19 , x2 = �7 , x3 = �8.

Notem que en la resoluci�o de Ly = Pb no necessitem la matriu P , sin�o tan sols elvector de permutaci�o p, ja que si diem Pb = b�, aleshores b�(i) = b(p(i)), 8 i = 1; : : : ; n,

Exemple. C�alcul de detA.

Un cop feta la descomposici�o tenim detA = detLdetU = a(0)11 a

(1)22 : : : a

(n�1)nn , ja

que en la triangularitzaci�o el determinant no varia.

Si hem fet intercanvis de �les o columnes, caldr�a multiplicar el resultat per (�1)s

on s �es el nombre total d'intercanvis.

Exemple. C�alcul de A�1 .

Si diem X = A�1 = (x1; : : : ; xn) on xj �es la columna j-�esima, tenim AX =I () Axj = ej , j = 1; : : : ; n (ej �es la columna j-�esima de I) llavors calcular A�1

equival a resoldre n sistemes lineals per�o on nom�es cal fer una �unica descomposici�o(triangularitzaci�o). Si fem pivotatge parcial, llavors es t�e PAxj = LUxj = Pej .

2.2.2 Cas particular: Matrius banda

Hem vist que per a un sistema amb la matriu A plena, el nombre d'operacions �esessencialment 0(n3) . Podrem estalviar temps de c�omput si la matriu t�e for�ca elementsnuls.

En particular, estudiem les matrius banda (vegeu la �gura).

© Els autors, 1998; © Edicions UPC, 1998.

Page 38: Calcul Numeric - Bonet

42 C�alcul num�eric

Direm que una matriu t�e amplada de banda p+ q + 1 si aij = 0, per als i; j talsque i� j > p o b�e j � i > q.

Si p = q = 1, tenim una matriu tridiagonal (aquestes matrius apareixen, perexemple, quan volem resoldre una equaci�o diferencial lineal de 2n ordre amb duescondicions de frontera, o tamb�e en la interpolaci�o per splines). Si apliquem l'eliminaci�oGaussiana a un sistema tridiagonal:

a11x1+a12x2 = b1

a21x1+a22x2+a23x3 = b2

a32x2+a33x3+a34x4 = b3

...

an;n�1xn�1+an;nxn = bn

9>>>>>>>>=>>>>>>>>;

i si suposem que els pivots s�on tots no nuls, llavors la descomposici�o LU �es moltsimple.

Fixem-nos que, en el primer pas, per exemple, nom�es necessitem eliminar unelement -a21- a la primera columna i l'eliminaci�o afecta nom�es a22. Per tant, femuna multiplicaci�o, una suma i una divisi�o. An�alogament, despr�es dels n � 1 passosnecessaris per a la triangularitzaci�o, haurem fet (n�1) multiplicacions +(n�1) sumes+(n� 1) divisions.

En aquest cas, la resoluci�o dels sistemes triangulars

(Ly = b

Ux = y

© Els autors, 1998; © Edicions UPC, 1998.

Page 39: Calcul Numeric - Bonet

Sistemes lineals 43

amb

L =

0BBB@

1m2

. . .. . .

mn 1

1CCCA U =

0BBBBB@

u1 a12u2

. . .. . .

an�1;nun

1CCCCCA

(2:2:1)

�es tamb�e molt senzilla. Per al sistema Ly = b, tenim les equacions

miyi�1 + yi = bi ; i = 2; : : : ; n ;

�es a dir, farem (n� 1) multiplicacions i (n� 1) sumes. Per al sistema Ux = y, faremdoncs (n� 1) multiplicacions, (n� 1) sumes i n divisions.

Aleshores, el nombre total d'operacions per a un sistema tridiagonal, ser�a

3(n� 1)multiplicacions + 3(n� 1) sumes + (2n� 1) divisions.

D'altra banda, l'emmagatzematge necessari per resoldre un sistema tridiagonaltamb�e �es m��nim. S'acostuma a guardar els elements de la matriu en tres vectors(la subdiagonal, la diagonal i la superdiagonal) i per fer la descomposici�o LU (vegeu(2.2.1)), nom�es calen 3n � 2 posicions de mem�oria en lloc de n2 com tindr��em ambuna matriu plena.

Aquests comentaris s'apliquen igualment per a matrius en bandes amb qualssevolp; q.

2.2.3 Esquemes compactes

Hem vist que amb l'eliminaci�o Gaussiana, obten��em la factoritzaci�o A = LU

(prenent per exemple, P =Identitat) i aix�o permetia resoldre el sistema Ax = b

mitjan�cant la resoluci�o dels dos sitemes triangulars Ly = b, Ux = y. Anem a descriuretot seguit altres possibles factoritzacions de la matriu del sistema: s�on els anomenatsesquemes compactes.

Considerem la factoritzaci�o A = LU , amb L i U matrius triangulars inferior isuperior respectivament

L =

0BBB@

m11

m21 0...

. . .

mn1 � � � � � � mnn

1CCCA U =

0BBBBB@

u11 � � � u1n

0. . .

...

unn

1CCCCCA

;

© Els autors, 1998; © Edicions UPC, 1998.

Page 40: Calcul Numeric - Bonet

44 C�alcul num�eric

i volem trobar, en el pas k-�esim, per a k = 1; : : : ; n una expressi�o de la k-�esima columnade L i de la k-�esima �la de U . L'equaci�o A = LU �es equivalent a les equacions

aij =rX

p=1

mipupj ; r = min(i; j) ;

i aix�o es pot pensar com n2 equacions, per a n(n+ 1) inc�ognites de L i U .

Per al pas k-�esim, utilitzem les equacions seg�uents:

akj =kX

p=1

mkpupj; j � k ; aik =kX

p=1

mipupk; i > k :

Si imposem mkk = 1 , podem calcular els elements

ukk; uk;k+1; : : : ; ukn i mk+1;k; : : : ;mnk

a partir de

ukj = akj �

k�1X

p=1

mkpupj ; j = k; k + 1; : : : ; n

mik =

aik �k�1Pp=1

mipupk

ukk; i = k + 1; : : : ; n :

Aquest m�etode s'anomena m�etode de Doolittle i d�ona els mateixos factors L, Uque l'eliminaci�o Gaussiana.

Si en lloc de normalitzar els mkk , imposem ara ukk = 1, k = 1; : : : ; n, �es a dir,imposem que els elements de la diagonal de U (en la descomposici�o A = LU), valguin1, llavors obtenim un m�etode lleugerament diferent anomenat m�etode de Crout. Lesequacions en el pas k-�esim esdevenen

mik = aik �

k�1X

p=1

mipupk ; i = k; k + 1; : : : ; n

ukj =

akj �k�1Pp=1

mkpupj

mkk

; j = k + 1; : : : ; n :

Notem, d'una banda, que podr��em obtenir diferents m�etodes, simplementimposant altres valors a mkk o a ukk .

© Els autors, 1998; © Edicions UPC, 1998.

Page 41: Calcul Numeric - Bonet

Sistemes lineals 45

D'altra banda, en aquests dos m�etodes hem suposat que no feiem cap intercanvide �les. Si volgu�essim fer la descomposici�o PA = LU , caldria con�eixer P a priori iaix�o �es dif��cil en general.

En el cas particular d'una matriu sim�etrica de�nida positiva, hi ha l'anomenatm�etode de Cholesky, que consisteix en una factoritzaci�o del tipus

A = L:Lt ;

on L �es una matriu triangular inferior que no t�e 1 a la diagonal necess�ariament.Aquesta descomposici�o �es �unica si imposem que L tingui elements positius a la dia-gonal.

En efecte, imposant la descomposici�o, tenim:

0BBB@

a11 � � � a1n......

an1 � � � ann

1CCCA =

0BBBBBBBB@

l11l21 l22 0...li1 � � � lii...ln1 � � � � � � lnn

1CCCCCCCCA

0BBBBBB@

l11 � � � li1 � � � ln1. . .

lii

0. . .

lnn

1CCCCCCA

:

A partir de la igualtat ai1 = li1l11 , la primera columna de L est�a determinadaper

l11 = (a11)1=2; li1 =

ai1

l11; i = 2; : : : ; n

i a partir de la segona columna de A, ai2 per a i � 2, obtindr��em la segona columna deL i aix�� successivament. �Es a dir, per tal d'obtenir la columna j-�esima de L, prenem

ajj =jX

k=1

l2jk; aij =jX

k=1

likljk; i = j + 1; : : : ; n ;

i podem a��llar lii i lij , i = j + 1; : : : ; n.

Aix�� doncs, l'algorisme de Cholesky permet calcular L com veurem tot seguit.

Per a j = 1; : : : ; n,

ljj � (ajj �j�1Pk=1

l2jk)1=2.

© Els autors, 1998; © Edicions UPC, 1998.

Page 42: Calcul Numeric - Bonet

46 C�alcul num�eric

Per a i = j + 1; : : : ; n,

lij �

aij�

j�1P

k=1

likljk

ljj.

� per a i

� per a j.

Notem que el m�etode es pot aplicar si les quantitats ajj � �l2jk s�on positives.Per�o, es pot demostrar (vegeu Stoer-Bulirsch: "Introduction to numerical analysis")que aix�o �es cert si A �es de�nida positiva.

Observem tamb�e que aquest m�etode �es molt e�cient en l'emmagatzematge de lesdades. En efecte, si A �es sim�etrica, nom�es cal guardar la part triangular inferior de A

i els lij es poden anar guardant en els llocs de aij a mesura que es van calculant.

Un cop tenim la matriu L , nom�es caldr�a resoldre els dos sistemes triangularsLy = b i LTx = y.

Exemple. Si resolem el sistema lineal

0@13 11 1111 13 1111 11 13

1A

0@

x1x2x3

1A =

0@13913

1A

pel m�etode de Cholesky, tenim A = L:LT

L =

0@3:6055 0 03:0508 1:9216 03:0508 0:8808 1:7078

1A ;

llavors,y1 = 3:6056; y2 = �1:0408; y3 = 1:7079;

x1 = 0:9999; x2 = �1:0000; x3 = 1:0000

i la soluci�o exacta �es (1;�1; 1) .

2.3 M�etodes iteratius

© Els autors, 1998; © Edicions UPC, 1998.

Page 43: Calcul Numeric - Bonet

Sistemes lineals 47

2.3.1. Introducci�o

Fins ara, hem estudiat m�etodes directes de resoluci�o de sistemes lineals, de maneraque necessit�avem un nombre �nit d'operacions per obtenir la soluci�o. En canvi, elsm�etodes iteratius parteixen d'una aproximaci�o inicial que es va re�nant �ns obteniruna soluci�o 'prou' aproximada. Els m�etodes iteratius s�on adequats per a matrius grans'disperses' (�es a dir, amb molts elements nuls, ja que llavors es fan poques operacions).Aquestes matrius apareixen, per exemple, estudiant xarxes el�ectriques, problemes dedifusi�o o elasticitat i en aplicar m�etodes de difer�encies �nites per resoldre equacionsen derivades parcials.

En qu�e consisteixen? Donat un sistema lineal Ax = b, es tracta d'associar-li unaltre sistema equivalent, anomenat \sistema lineal redu��t' x = Bx + c, i resoldre'lde manera iterativa, �es a dir, comen�cant amb un x(0) inicial i obtenint una successi�ox(1); x(2); : : :, a partir de

x(k+1) = Bx(k) + c ; k � 0 :

Si aquesta successi�o de vectors (x(k)), k � 0 �es convergent a un vector x, i siprenem l��mits, quan k !1, a la darrera igualtat, tenim x = Bx+c, i per tant aquestvector x ser�a la soluci�o buscada.

Vegem els m�etodes m�es usuals.

1) M�etode de Jacobi. Sigui el sistema lineal Ax = b; suposem que aii 6= 0, per ai = 1; : : : ; n. Aleshores, si a��llem de l'equaci�o i-�esima la variable xi, obtenim

xi =

�nP

j=1

j 6=i

aijxj + bi

aiii = 1; : : : ; n

de manera que el m�etode iteratiu es pot escriure

x(k+1)i =

�nP

j=1j 6=i

aijx(k)j + bi

aii; i = 1; 2; : : : ; n

on s'acostuma a prendre x(0) = 0.

Exercici. Proveu que si A = L +D + U on L;D i U s�on matrius triangular inferior,diagonal i triangular superior, respectivament, llavors el sistema redu��t associat pelm�etode de Jacobi �es x = BJx+ c on BJ = �D�1(L+ U) i c = D�1b.

© Els autors, 1998; © Edicions UPC, 1998.

Page 44: Calcul Numeric - Bonet

48 C�alcul num�eric

Exemple. El sistema lineal0@10 1 11 10 11 1 10

1A

0@x1x2x3

1A =

0@121212

1A

t�e la soluci�o exacta x1 = x2 = x3 = 1. Partint de x(0) = 0, la iteraci�o de Jacobi d�onala successi�o de la taula:

Jacobi Gauss-Seidel

x(m)1 x

(m)2 x

(m)3 m x

(m)1 x

(m)2 x

(m)3

0 0 0 0 0 0 01.2 1.2 1.2 1 1.2 1.08 0.9720.96 0.96 0.96 2 0.9948 1.0033 1.000191.008 1.008 1.008 3 0.99965 1.000016 1.0000330.9984 0.9984 0.9984 41.00032 1.00032 1.00032 50.999936 0.999936 0.999936 6

que sembla convergir cap a la soluci�o.

2) M�etode de Gauss-Seidel. Una manera natural d'intentar millorar el m�etode deJacobi �es utilitzar a cada iteraci�o una millor aproximaci�o dels xi, acabats de calcular,�es a dir,

x(k+1)i =

i�1Pj=1

aijx(k+1)j �

nPj=i+1

aijx(k)j + bi

aii; i = 1; : : : ; n :

Notem que la difer�encia entre els dos m�etodes �es que, en el m�etode de Jacobi,

x(k+1)i es calcula a partir de x

(k)1 ; : : : ; x

(k)i�1; x

(k)i+1; : : : ; x

(k)n , mentre que en el m�etode de

Gauss-Seidel, x(k+1)i es calcula a partir de x

(k+1)1 ; : : : ; x

(k+1)i�1 ; x

(k)i+1; : : : ; x

(k)n .

Exercici. Proveu que el sistema redu��t associat �es en aquest cas x = BGSx+ c, onBGS = �(L+D)�1U , c = (L+D)�1b.

© Els autors, 1998; © Edicions UPC, 1998.

Page 45: Calcul Numeric - Bonet

Sistemes lineals 49

Exemple. Aplicant aquest m�etode, en el sistema de l'exemple anterior, s'obtenen elsiterats que es mostren a la taula.

Podem observar que el m�etode de Gauss-Seidel �es aproximadament el doble der�apid que el de Jacobi. Aix�o acostuma a passar aix��, per�o no sempre. De fet, hi haexemples per als quals el m�etode de Gauss-Seidel divergeix i el de Jacobi convergeix.

2.3.2 Converg�encia dels m�etodes iteratius

Si ens proposem resoldre el sistema seg�uent:

0@2 5 55 2 55 5 2

1A

0@x1x2x3

1A =

0@121212

1A

(que t�e soluci�o exacta x1 = x2 = x3 = 1) pel m�etode de Jacobi amb x(0) = 0 ,comprovarem que la soluci�o divergeix (exercici).

Aix�� doncs, cal preguntar-se ara sota quines condicions un m�etode iteratiu de laforma

x(k+1) = Bx(k) + c

�es convergent, �es a dir, la successi�o x(0); x(1); x(2); : : :, convergeix vers x soluci�o dex = Bx+ c. La resposta ens la d�ona el resultat seg�uent, que no demostrarem.

TEOREMA. Una condici�o necess�aria i su�cient per tal que un m�etode iteratiu

x(k+1) = Bx(k) + c sigui convergent per a qualsevol aproximaci�o inicial x(0) �es que

�(B) = max1�i�n j �i j< 1, on �(B) s'anomena el radi espectral de la matriu B i

�1; : : : ; �n s�on els valors propis de B .

DEMOSTRACI�O. Vegeu G. Dahlquist, A. Bj�orck i N. Anderson, \NumericalMethods".

En particular, i aix�� es comprova a la pr�actica, aquest proc�es iteratiu ser�aconvergent si k B k< 1 per a alguna norma matricial, ja que llavors �(B) �k B k< 1.

© Els autors, 1998; © Edicions UPC, 1998.

Page 46: Calcul Numeric - Bonet

50 C�alcul num�eric

Recordem breument que les normes m�es utilitzades per a vectors i matrius s�on:

k x k1=nX

i=1

j xi j

k x k2=

nX

i=1

j x2i j

!1=2

k x k1= maxi=1�n

j xi j

per a x = (x1; : : : ; xn) 2 Rn i per a matrius

k A k1 = maxx6=0

k Ax k1k x k1

= max1�j�n

nXi=1

j aij j

k A k2 = maxx6=0

k Ax k2k x k2

=rmax

if�ig

on �i s�on els valors propis de ATA

k A k1 = maxx 6=0

k Ax k1k x k1

= max1�i�n

nXj=1

j aij j :

Les normes k k1 i k k1 s�on les m�es f�acils de calcular.

Exemple. Si A =

�1 0:10:2 �2

�, k A k1= max(1:2; 2:1) = 2:1, k A k1=

max(1:1; 2:2) = 2:2 .

Diguem que aquestes normes k k1, k k2, k k1 de�nides per a matrius s�onconsistents amb les normes k k1, k k2, k k1 per a vectors, �es a dir, x, A satisfan

k Ax k�k A k � k x k :

Notem que si coneixem k B k , llavors a cada iterat tenim una �ta de l'error,segons el resultat seg�uent:

Lema. Si k B k< 1 , es compleix

a) k x� x(k) k�k B k

1� k B kk x(k) � x(k�1) k.

© Els autors, 1998; © Edicions UPC, 1998.

Page 47: Calcul Numeric - Bonet

Sistemes lineals 51

b) k x� x(k) k�k B kkk x� x(0) k .

DEMOSTRACI�O En efecte,

(a) x� x(k�1) = x� x(k) + x(k) � x(k�1) = B(x� x(k�1)) + x(k) � x(k�1),per tant,

(1� k B k) k x� x(k�1) k�k x(k) � x(k�1) k.

Si k B k< 1, es t�e

k x� x(k�1) k�k x(k) � x(k�1) k

1� k B k:

D'altra banda,

k x� x(k) k=k B(x� x(k�1)) k �k B k � k x� x(k�1) k�

�k B k

1� k B kk x(k) � x(k�1) k :

(b) De x = Bx+ c, x(k) = Bx(k�1) + c.

Restant, x(k) � x = B(x(k�1) � x) = B2(x(k�2) � x) = � � � = Bk(x(0) � x).

En particular, de (ii) dedu��m que com m�es petit sigui k B k m�es r�apida ser�a laconverg�encia.

Exemple. Al sistema on hem aplicat Jacobi, es t�e

k BJ k1= max1�i�n

X

j 6=i

����aijaii

���� =1

5< 1

ik x(6) � x(5) k1= 0:000384 ;

llavors tenim una �ta de l'error per a x(6)

k x� x(6) k1�1=5

1� (1=5)0:000384 = 0:000096 :

© Els autors, 1998; © Edicions UPC, 1998.

Page 48: Calcul Numeric - Bonet

52 C�alcul num�eric

En efecte, k x� x(6) k1= 0:000064. Desgraciadament, no sempre �es f�acil obtenirk B k, o si est�a molt proper a 1, llavors el denominador, que apareix a l'apartat (i)del lema, es fa petit i la �ta no d�ona informaci�o.

En particular, tindrem que el m�etode de Jacobi �es convergent, per a x(0) arbitrari,si, i nom�es si, �(BJ) < 1 amb BJ = �D�1(L+ U), mentre que el m�etode de Gauss-Seidel ho ser�a si, i nom�es si, �(BGS) < 1 amb BGS = �(L + D)�1U . A m�es, es potdemostrar que

(i) Si una matriu A t�e diagonal estrictament dominant, llavors els dos m�etodes s�onconvergents.

(ii) Si A �es sim�etrica amb elements positius a la diagonal, el m�etode de Gauss-Seidelconvergeix, si, i nom�es si, A �es de�nida positiva.

2.3.3. M�etode de sobrerelaxaci�o

�Es una generalitzaci�o dels m�etodes iteratius indicats. Si sumem i restem x(k)i en

el m�etode de Gauss-Seidel, obtenim

x(k+1)i = x

(k)i �

i�1P

j=1aijx

(k+1)j +

nP

j=iaijx

(k)j � bi

aii

i aix�o ho podem interpretar de la forma seg�uent: cada iterat x(k+1)i s'obt�e a partir

de l'anterior, x(k)i , amb una correcci�o (el quocient que resta). El m�etode de sobre-

relaxaci�o consisteix a multiplicar aquesta correcci�o per un par�ametre w de maneraque s'acceleri la converg�encia, �es a dir,

x(k+1)i = x

(k)i � w

i�1P

j=1aijx

(k+1)j +

nP

j=iaijx

(k)j � bi

aii; i = 1; : : : ; n :

Es pot comprovar f�acilment que el m�etode de sobrerelaxaci�o tamb�e equival aresoldre

x = Bwx+ cw ;

ambBw = (D + wL)�1[(1� w)D � wU ]

cw = w(D + wL)�1b :

© Els autors, 1998; © Edicions UPC, 1998.

Page 49: Calcul Numeric - Bonet

Sistemes lineals 53

Notem que, per a w = 1, retrobem el m�etode de Gauss-Seidel. Veiem ara quenom�es els ! tals que 0 < w < 2 tindran inter�es.

TEOREMA. Per al m�etode de relaxaci�o, es t�e �(Bw) �j w � 1 j i, per tant, el

m�etode pot convergir nom�es quan 0 < w < 2.

En efecte, com que Bw �es un producte de matrius triangulars, es t�e

det(Bw) = det(D + wL)�1 det((1� w)D � wU) = (1� w)n :

Ara b�e,det(Bw) = �1 � �2 � : : : � �n ; per tant max

ij �i j�j 1� w j :

Vegem ara com triar w de manera que s'acceleri el proc�es iteratiu:

x(k+1) = Bwx(k) + cw :

Vegem ara com triar w de manera que s'acceleri el proc�es iteratiu:

x(k+1) = Bwx(k) + cw :

Siguin �1; : : : ; �n els valors propis de Bw i suposem que els corresponents vectorspropis u1; : : : ; un s�on linealment independents. Aleshores, donada una aproximaci�oinicial x(0) de la soluci�o x es t�e

x(0) � x = �1u1 + � � �+ �nun

i, per tant,

x(k) � x = Bw(x(k�1) � x) = � � � = Bk

w(x(0) � x) =

= �1�k

1u1 + � � �+ �n�k

nun :

Observem que la rapidesa de converg�encia de (x(k)) cap a x dep�en de �(Bw); amesura que el radi espectral sigui menor la converg�encia ser�a m�es r�apida. Aix��doncs,caldr�a escollir adequadament w per tal de minimitzar �(Bw).

Hi ha matrius que apareixen a la pr�actica, per a les quals es coneix el valor �optimde w ; llavors �(Bw) < �(BGS) i la converg�encia �es m�es r�apida.

© Els autors, 1998; © Edicions UPC, 1998.

Page 50: Calcul Numeric - Bonet

54 C�alcul num�eric

Com a exemple, enunciem el resultat seg�uent:

TEOREMA. Sigui A sim�etrica, de�nida positiva i tridiagonal en blocs:

A =

0BBBB@D1 U1

L2 D2 U2 0

0 Un�1Ln Dn

1CCCCAon Di, i = 1; : : : ; n s�on submatrius diagonals, Ui, Li, submatrius qualssevol que

satisfan Li+1 = UTi , i = 1; : : : ; n � 1. Llavors �(BGS) = �2(BJ) i el par�ametre de

relaxaci�o �w �optim �es

�w =2

1 + (1� �(BGS))1=2; �(BGS) < 1 ;

on �(BJ) �es el radi espectral de la iteraci�o de Jacobi corresponent a A . El valor �optim

de �(Bw) �es�(B �w) = �w � 1 :

Exemple. Considerem el sistema0BB@4 0 1 10 4 0 11 0 4 01 1 0 4

1CCA0BB@x1x2x3x4

1CCA =

0BB@1234

1CCAamb D1 = D2 =

�4 00 4

�, U1 =

�1 10 1

�, i que t�e la soluci�o exacta ex1 =

�49

209,

ex2 = 53

209, ex3 = 167

209, ex4 = 206

209.

Es pot comprovar que �(BJ) =

p5 + 1

8; a partir del teorema, �(BGS) = p

5 + 1

8

!2

i llavors �w = 1:04464. Resolem aquest sistema amb els diferents m�etodes

iteratius (el m�etode de sobrerelaxaci�o amb �w) i obtenim la taula seg�uent on mostrem,per exemple, la cinquena iteraci�o:

x1 x2 x3 x4 e = � j xi � exi jJacobi -0.184570 0.260742 0.798828 0.985352 0.019265Gauss-S. -0.195862 0.253780 0.798965 0.985520 0.000705Sobrerel. -0.196163 0.253595 0.799042 0.985644 0.000018Exacte -0.196172 0.253589 0.799043 0.985646 |

© Els autors, 1998; © Edicions UPC, 1998.

Page 51: Calcul Numeric - Bonet

Sistemes lineals 55

Si calculem la velocitat de converg�encia (R) per a cada m�etode, obtenim (a partirdel teorema)

RJ = � log

p5 + 1

8= 0:9 ; per al m�etode de Jacobi ;

RGS = � log

p5 + 1

8

!2

= 1:8 ; per al m�etode de Gauss-Seidel ;

Rw = � log 0:04464 = 3:1 ; per al m�etode de sobrerelaxaci�o :

2.4 Sistemes mal condicionats

Quan resolem num�ericament un sistema lineal, la soluci�o que obtenim ser�a unaaproximaci�o de la soluci�o exacta ja que intervenen els errors d'arrodoniment en elsc�alculs intermedis. El nostre objectiu �es ara estudiar l'error d'una soluci�o aproximada�x de Ax = b, sense con�eixer la soluci�o exacta.

Diguem, en primer lloc, que hi ha sistemes mal 'condicionats' on cap algorismee�cient donar�a lloc a una bona aproximaci�o de la soluci�o.

De�nici�o. Direm que un sistema lineal d'equacions est�a mal condicionat si petitscanvis en la matriu de coe�cients i/o en el terme independent produeixen grans canvisen la soluci�o. Vegem-ne un exemple.

Exemple. Considerem el sistema

0:832x1 + 0:448x2 = 1

0:784x1 + 0:421x2 = 0

)

i suposem que el resolem amb un computador tridigital. Aplicant el m�etode de Gaussamb pivotatge parcial obtenim

m21 =0:784

0:832= 0:942 � 308 : : : = 0:942

a(1)22 = 0:421 � 0:942 � 0:448 = �0:001b(1)2 = 0� 1� 0:942 = �0:942 :

© Els autors, 1998; © Edicions UPC, 1998.

Page 52: Calcul Numeric - Bonet

56 C�alcul num�eric

El sistema triangular �es

0:832x1 + 0:448x2 = 1

�0:001x2 = �0:942 :

)

La soluci�o del qual resulta ser x1 = �506, x2 = 942; i la soluci�o exacta �es x1 = �439,x2 = 817.

Malgrat que el m�etode de Gauss amb pivotatge �es molt e�cient, en aquest cas noobtenim cap decimal correcte.

Qu�e ha passat?

Les dues equacions de�neixen dues rectes que s�on quasi paral�leles i, per tant,obtenim una matriu "quasi-singular". �Es a dir, si prenem el sistema

0:832x1 + 0:448x2 = 1

0:784x1 + (0:421 + ")x2 = 0

)

llavors si " creix de 0 a 0.0012 , la segona recta gira �ns que esdev�e paral�lela a laprimera i el sistema no t�e soluci�o (vegeu la �gura).

Per tant, els sistemes propers a singulars estaran mal condicionats.

Com donar una mesura que ens indiqui com n'est�a de mal condicionat el problema?

Normalment la petitesa del determinant de la matriu del sistema ens indicar�a siel sistema �es proper a un sistema singular. A l'exemple d'abans, el determinant val0.00096. Per�o aix�o pot ser engany�os. Vegem-ne un altre exemple:

det

�10�10 00 10�10

�= 10�20

© Els autors, 1998; © Edicions UPC, 1998.

Page 53: Calcul Numeric - Bonet

Sistemes lineals 57

i aplicant Gauss al sistema associat

10�10x1 = 0

10�10x2 = 0

)

d�ona com a soluci�o x1 = x2 = 0, que �es la soluci�o exacta. Aqu�� ja veiem que, malgrat lapetitesa del determinant, les rectes s�on perpendiculars i el sistema est�a "perfectamentcondicionat".

Per tant, la petitesa del determinant no �es una bona mesura per indicar si lamatriu �es quasi-singular. S�� que ho pot ser si la matriu est�a ben escalada.

En efecte, una bona mesura del "quasi-paral�lelisme" de les dues rectes �es l'angleque formen. Una mesura essencialment equivalent �es l'�area del paral�lelogram decostat la unitat (vegeu la �gura):

Aquesta �area (�area = h = sin �) varia de 0 (rectes paral�leles) a 1 (perpendiculars)i, per tant, h �es una bona mesura del "quasi-paral�lelisme" de les rectes.

Exercici. Comproveu h =j detA j

�1�2

, on �1 =qa211

+ a212

, �2 =qa221

+ a222

.

Aix�� doncs, el determinant de la matriu escalada

det

�a11=�1 a12=�1

a21=�2 a22=�2

�ens indica, correctament, si la matriu �es propera a singular. Aquesta mesura s'est�enf�acilment a n equacions:

Si A = (aij) ,

V �j detA j

�1 : : : �n

=

������det0@ a11=�1 � � � a1n=�1

: : : : : : : : : : : : : : : : : : : :an1=�n � � � ann=�n

1A������ ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 54: Calcul Numeric - Bonet

58 C�alcul num�eric

on �i = (a2i1 + a2i2+ : : :+ a2in)1=2 i V �es el volum d'un paral�lelep��ped de costat unitat,

n-dimensional, determinat per les equacions de�nides a partir de les �les de la matriuA.

Es pot provar que aquest volum varia de zero (si dos o m�es costats coincideixen)a 1 (els costats s�on perpendiculars entre si). Si V �es proper a 0 , el sistema estar�a malcondicionat i si V �es proper a 1 el sistema estar�a "perfectament condicionat".

Una altra manifestaci�o de mal condicionament �es la seg�uent.

Sigui �x la soluci�o aproximada del sistema Ax = b. De�nim el vector residual rcom

r = b�A�x :

Com que r = 0 implica que �x = A�1b, �es a dir, �x �es la soluci�o exacta, �es naturalesperar que si r �es petit, aleshores �x ser�a una bona aproximaci�o. Per�o hi ha exemplesque demostren que aix�o pot no ser cert si la matriu est�a mal condicionada.

Exemple. Sigui

A =

�0:780 0:5630:913 0:659

�b =

�0:2170:254

i considerem la soluci�o aproximada

�x =

�0:341�0:087

�;

llavors el vector residual �es

r =

��10�6

0

�:

Ara considerem una altra i ben diferent aproximaci�o de la soluci�o

ex =

�0:999�1:001

i el corresponent vector residual

er = ��0:0013 : : :0:0015 : : :

�:

Comparant els residuals, podem concloure que �x �es una aproximaci�o millor de lasoluci�o. En canvi, la soluci�o exacta del sistema lineal donat �es (1;�1). Veiem, doncs,en aquest exemple que els residuals poden donar una informaci�o confusa.

© Els autors, 1998; © Edicions UPC, 1998.

Page 55: Calcul Numeric - Bonet

Sistemes lineals 59

Exemple. Sigui

A =

�1:2969 0:86480:2161 0:1441

�b =

�0:86420:1440

i suposem que ens donen la soluci�o aproximada seg�uent:

�x =

�0:9911�0:4870

�;

amb el corresponent vector residual

r =

��10�8

10�8

�;

per tant, sembla que �x ha de ser una bona soluci�o. Per�o, de fet, es comprova persubstituci�o, que la soluci�o exacta �es

x =

�2�2

�:

Aix�� doncs, no tenim cap xifra bona!

Una manera de veure el mal condicionament d'aquest sistema �es eliminant x1 i est�e

a(1)22 x2 = b

(1)2 ;

on a(1)22 = 0:1441 �

0:2161

1:29690:8648 = 0:1441 � 0:1440999923 � 10�8, per tant, petits

canvis en 0:1441 produiran grans canvis en a(1)22 i, per tant, en x2.

2.5 An�alisi de l'error

A causa dels errors d'arrodoniment, cal considerar tota soluci�o d'un sistema linealcom una soluci�o aproximada. Volem veure, en aquesta secci�o, com es propaguen elserrors en la soluci�o x que provenen dels errors en les dades A i b.

Suposem, doncs, que no disposem exactament del vector b, sin�o d'un vector b+�b.Aleshores no obtindrem la soluci�o buscada x del sistema Ax = b, sin�o una soluci�o delsistema pertorbat A(x+ �x) = b+ �b i, per tant,

�x = A�1�b =)k �x k�k A�1 k � k �b k :

Aix��,

Ax = b =)k b k�k A k � k x k=)k �x k � k b k�k A k � k A�1 k � k �b k � k x k

© Els autors, 1998; © Edicions UPC, 1998.

Page 56: Calcul Numeric - Bonet

60 C�alcul num�eric

o b�ek �x k

k x k� k(A)

k �b k

k b k(si b 6= 0) (2:5:1)

on de�nim k(A) =k A k � k A�1 k com el nombre de condici�o d'una matriu respecte

d'una norma donada.

An�alogament, si pertorbem la matriu de coe�cients, es t�e

(A+ �A)(x + �x) =b =) A�x+ �A(x+ �x) = 0 =) �x = �A�1�A(x + �x) =)

=)k �x k�k A�1 k � k �A k � k x+ �x k

o b�ek �x k

k x+ �x k� k(A)

k �A k

k A k: (2:5:2)

Podem concloure de (2.5.1) i (2.5.2) que si k(A) �es gran, llavors petitespertorbacions relatives en A i b produiran grans pertorbacions relatives en la soluci�o,i el problema de resoldre Ax = b estar�a mal condicionat. Notem, �nalment, que elc�alcul de k(A) implica pr�eviament el c�alcul de A�1 (i aix�o �es equivalent a resoldre elsistema, x = A�1b) .

Exemple. Considerem el sistema linealAx = b amb A =

�1:2969 0:86480:2161 0:1441

�. Hav��em

vist a la secci�o 2.4 que aquest sistema tenia un comportament "irregular". Es t�e,

A�1 = 108

�0:1441 �0:8648�0:2161 1:2969

�:

Per tant, k A�1 k1= 1:5130 � 108, k(A) = 2:1617 � 1:5130 � 108 � 3:3� 108 que ensdiu que el sistema est�a molt mal condicionat.

Finalment, diguem que si pertorbem A i b a la vegada

(A+ �A)(x + �x) = b+ �b

aleshores es pot provar la f�ormula seg�uent (vegeu E. Isaacson, H. Keller, "Analysis ofnumerical methods")

k �x k

k x k� k(A) �

�k �b k

k b k+k �A k

k A k�k x+ �x k

k x k

per �tar, de forma relativa, la norma del vector k �x k. (Notem que, a partir d'aquesta,

tenim tamb�e els dos casos particulars (2.5.1), (2.5.2).)

© Els autors, 1998; © Edicions UPC, 1998.

Page 57: Calcul Numeric - Bonet

Sistemes lineals 61

2.6 Escalat de sistemes lineals

En un sistema linealAx = b, les variables xj poden ser quantitats f��siques. Canviard'unitats aquestes variables equivaldr�a a fer un escalat, �es a dir, xj = �jx

0

j. Si a m�es,multipliquem la i-�esima equaci�o per �i, llavors el sistema original es transformar�a enun altre A0x0 = b0 (exercici), on

A0 = D2AD1 ; b0 = D2b ; x = D1x0

iD1 = diag (�1; �2; : : : ; �n) ; D2 = diag (�1; �2; : : : ; �n) :

Sembla, doncs, natural esperar que un escalat no hagi d'afectar l'exactitud de lasoluci�o computada. I, de fet, aix�o �es cert (si no hi ha errors d'arrodoniment) com homostra el seg�uent

TEOREMA. Siguin x; x0 les solucions de Ax = b i (D2AD1)x0 = D2b,

respectivament. Suposem que D1, D2 s�on matrius diagonals, amb els elements

pot�encies de la base en el sistema num�eric utilitzat i, per tant, no s'introdueixen errors

d'arrodoniment en fer l'escalat. Llavors, si l'eliminaci�o Gaussiana es fa en aritm�etica

de punt otant en els dos sistemes i si s'utilitza la mateixa elecci�o de pivots, tots

els resultats diferiran nom�es en els exponents, i es t�e exactament: x = D1x0.

Aquest teorema, que no demostrem, ens diu que l'escalat nom�es afecta l'elecci�ode pivots. Suposem ara que apliquem l'estrat�egia del pivotatge parcial. Donada unasuccessi�o de pivots (que no doni un pivot nul), existeix un escalat de les equacions, tal

que el pivotatge parcial triar�a aquests pivots. �Es clar doncs que un escalat inadequatde les equacions pot portar a triar uns pivots 'dolents'.

Exemple. Considerem el sistema

�1 100001 0:0001

� �x1x2

�=

�10000

1

que t�e la soluci�o x1 = x2 = 0:9999 arrodonida amb quatre decimals.

Aplicant pivotatge parcial, seleccionar��em a11 com a pivot i, si utilitzem aritm�eticade punt otant amb 3 decimals, la soluci�o computada seria

�x2 = 1:00 �x1 = 0 ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 58: Calcul Numeric - Bonet

62 C�alcul num�eric

que �es dolenta. Si multipliquem la primera equaci�o per 10�4, tenim el sistema equi-

valent �0:0001 1

1 0:0001

� �x1

x2

�=

�1

1

Ara a21 seria el pivot i obtindr��em

�x2 = 1:00 �x1 = 1:00 ;

que �es for�ca bona.

�Es recomanable en general, quan s'usa pivotatge parcial, 'equilibrar' la matriu

abans de l'eliminaci�o.

Per aix�o, nom�es cal escalar la matriu de manera que

max1�j�n

j aij j= 1 ; i = 1; 2; : : : ; n :

D'aquesta manera, ja no farem una selecci�o dolenta de pivots. Del teorema

enunciat, podem concloure que no �es necessari equilibrar la matriu expl��citament.

Nom�es cal modi�car l'estrat�egia del pivotatge parcial i en el pas k-�esim triar

maxk�i�n

�����a(k�1)ik

si

����� ; on si = maxk�j�n

j a(k�1)ij j ;

l'anomenarem pivotatge parcial escalonat i �es la m�es utilitzada.

Exemple. Vegem com funciona la mec�anica del pivotatge parcial escalonat. Sigui

A =

0@ 2 3 �1

4 4 �3

�2 3 �1

1A ; b =

0@ 3

3

1

1A :

Tenim s1 = 3, s2 = 4, s3 = 3. Comparem els nombres:

2

3;

4

4;

2

3

per tant, el pivot ser�a a21 i intercanviem la 1a i la 2a �la. Ens queda

A(1) =

0@ 4 4 �3

0 1 1=20 5 �5=2

1A ; b(1) =

0@ 3

7=25=2

1A :

Comparant1

1,5

5, no fem cap intercanvi i obtenim

A(2) =

0@ 4 4 �3

0 1 1=20 0 �5

1A ; b(2) =

0@ 3

7=2�15

1A :

© Els autors, 1998; © Edicions UPC, 1998.

Page 59: Calcul Numeric - Bonet

C�alcul de valors i vectors propis 65

Cap��tol 3 C�alcul de valors i vectors propis

3.1 Introducci�o

El c�alcul dels valors i vectors propis d'una matriu �es un problema num�eric benrellevant. A tall d'exemple direm que l'estabilitat d'un avi�o es determina per lalocalitzaci�o dels valors propis d'una certa matriu al pla complex; o que les freq�u�enciesnaturals de les vibracions d'una biga s�on els valors propis d'una certa matriu.

Te�oricament, el problema es redueix a calcular les arrels del polinomi caracter��stic,PA(�) = det(A��I) = 0, d'una matriu A donada i a resoldre despr�es n sistemes linealsBhomogenis per tal de calcular els vectors propis. A la pr�actica, el problema mai esresol aix�� (llevat que la matriu tingui ordre molt baix i els valors propis molt a��llats).Donarem a continuaci�o els m�etodes m�es usuals i suposarem, per simpli�car, que lamatriu �es real.

Comencem amb un teorema senzill que localitza els valors propis.

TEOREMA. (Gerschgorin) Sigui A una matriu n�n, amb valors propis �1; : : : ; �n.Llavors, cada �i pertany a la uni�o dels cercles seg�uents:

j z � aii j� ri ; ri =nX

j=1j 6=i

j aij j ;

on z �es la variable complexa z = x+ iy.

DEMOSTRACI�O. Sigui � valor propi, llavors existeix x 6= 0, Ax = �x, o b�e

(�� aii)xi =nX

j=1j 6=i

aijxj ; i = 1; 2; : : : ; n ;

Page 60: Calcul Numeric - Bonet

66 C�alcul num�eric

triem k tal que j xk j=k x k1. Llavors,

j �� akk j�nX

j=1j 6=k

j akj j j xj jj xk j � rk :

Exemple. Sigui

A =1

16

0@�8 �2 4�1 �4 22 2 �10

1A ;

llavors tenim

�1 :j z + 1

2j� 3

8; �2 :j z + 1

4j� 3

16; �3 :j z + 5

8j� 1

4

i en particular tots els valors propis tindran part real negativa.

Ja hem dit que donat un valor propi el vector propi es pot calcular resolent unsistema lineal. Per�o, a l'inrev�es, donat un vector propi xi , llavors es pot obtenir elvalor propi associat �i , a partir del quocient de Rayleigh:

�i =xTi AxixTi xi

: (3:1:1)

A l'hora de resoldre un problema de valors propis, cal tenir present quin �esl'objectiu (trobar un valor propi, o trobar-los tots, o trobar a m�es els vectors propis).En particular, si ens proposem calcular el valor propi de m�odul m�axim (el radiespectral), el m�etode que utilitzarem ser�a el seg�uent.

Page 61: Calcul Numeric - Bonet

C�alcul de valors i vectors propis 67

3.2 El m�etode de la pot�encia

Aquest m�etode �es el m�es senzill per calcular el valor propi de m�odul m�axim. Aix��,suposem que A t�e n valors propis, de manera que

j �1 j>j �2 j� : : : �j �n j ;

i n vectors propis linealment independents x1; : : : ; xn. Aleshores, per a qualsevol z0vector inicial, constru��m la successi�o

zk+1 = Azk = Ak+1z0 ; k = 0; 1; 2; : : :

i, d'altra banda, si z0 �es tal que

z0 = �1x1 + : : :+ �nxn amb �1 6= 0 ;

llavors

Az0 = �1Ax1 + � � �+ �nAxn = �1

��1x1 + �2

�2�1x2 + � � � + �n

�n�1

xn

�i iterant el proc�es

zk =nX

j=1

�kj�jxj = �k1

0@�1x1 + nXj=2

��j�1

�k�jxj

1A ; k = 0; 1; 2; : : : (3:2:1)

Ara b�e, com que

�����j�1���� < 1, j � 2, tindrem que �1x1 +

Pnj=2

��j�1

�k

�jxj tendeix

al vector propi �1x1, si �1 6= 0, quan k !1. Llavors, el valor propi s'obt�e de

�1 = limk!1

(Ak+1z0)i(Akz0)i

; i = 1; : : : ; n

(de fet es t�e(Ak+1z0)i(Akz0)i

= �1 + O

�����2�1����k!, si k �es prou gran) on el sub��ndex i indica

la component del corresponent vector.

La velocitat de converg�encia dep�en doncs del quocient �2=�1 i ser�a m�es r�apidacom m�es petit sigui j �2=�1 j. El vector propi associat a �1 es pot calcular resolent unsistema lineal o b�e fent lim

k!1

zk�k1

(vegeu (3.2.1)).

Page 62: Calcul Numeric - Bonet

68 C�alcul num�eric

Hem vist que la successi�o Akz0 compleix que(Ak+1z0)i(Akz0)i

�! �1 per�o des del

punt de vista num�eric, podria passar que s'arrib�es a l'over ow de Akz0 abans que els

quocients(Ak+1z0)i(Akz0)i

ens donessin la informaci�o requerida. Com podem resoldre aix�o?

Sigui z0; z1; : : : ; zk = Azk�1; : : : una successi�o real tal que limn!1

zk+1zk

= ` per�o

que eventualment limk!1

zk = 1. La pregunta a fer �es: com trobar una successi�o

y0; y1; : : : ; yk; : : : acotada i tal que limk!1

yk+1yk

= limk!1

zk+1zk

= `?.

La primera resposta que se'ns pot oc�orrer �es de�nir yk =zk

k zk k ; per�o llavors

limk!1

yk+1yk

= limk!1

k zk kk zk+1 k

zk+1zk

=1

k ` k � `

no ens va b�e ja que caldria que el l��mit fos `. En canvi, si de�nim

yk =zk

k zk k ;ezk+1 = zk+1

k zk k

les successions (yk)k, (ezk)k estan acotades i

limk!1

ezk+1yk

= limk!1

zk+1zk

= ` (3:2:2)

En el nostre cas, al voler calcular �1, tenim la successi�o z0; z1 = Az0; : : : ; zk =Akz0; : : :.

Considerem les successions

yk =zk

k zk k; ezk+1 = zk+1

k zk k=

Azkk zk k

= Ayk

Es t�e

yk+1 =zk+1

k zk+1 k=k zk k ezk+1k zk+1 k

=ezk+1

k ezk+1 kAix�� doncs el que farem a la pr�actica ser�a construir les successions

yk =ezk

k ezk k ; ezk+1 = Ayk ; k = 0; 1; 2; : : :

Page 63: Calcul Numeric - Bonet

C�alcul de valors i vectors propis 69

i llavors per (3.2.2) es t�e que

�1 = limk!1

(ezk+1)i(yk)i

;

� x1k x1 k = lim

k!1yk (vector propi unitari)

(3:2:3)

Si la matriu A �es sim�etrica, amb tots els valors propis diferents, podem accelerarla converg�encia a partir del quocient de Rayleigh.

En efecte, sabem que en aquest cas els vectors propis s�on ortogonals. Prenem-losortonormals; llavors, si de�nim

�k+1 =zTk AzkzTk zk

=zTk zk+1zTk zk

;

de (3.2.1) es t�e

�k+1 = �1

�21 +Pn

j=2

��j�1

�2k+1�2j

�21 +Pn

j=2

��j�1

�2k�2j

i, per tant,

limk!1

�k+1 = �1 ; i es t�e �k+1 = �1 + 0

�����2�1����2k!:

Aix�� doncs, si A �es sim�etrica, aquest proc�es per calcular el valor propi dominantconvergeix el doble de r�apid que (3.2.3). Com abans, a la pr�actica utilitzarem lasuccessi�o escalada:

yk =ezk

k ezk k2 ; ezk+1 = Ayk ; k = 0; 1; 2; : : :

on k k2 �es la norma eucl��dea, i el quocient de Rayleigh esdev�e:

�k+1 =ezTk AezkezTk ezk =

yTk AykyTk yk

= yTk ezk+1 :

Exemple. Sigui

A =

0BB@10 7 8 77 5 6 58 6 10 97 5 9 10

1CCA z0 =

0BB@1111

1CCA :

Page 64: Calcul Numeric - Bonet

70 C�alcul num�eric

Fent k = 1; 2; 3, obtenim �1 = 29:75, 30:287 i 30:288662, quan el valor exacte �es30:28868. El corresponent vector propi �es y3 :0BB@

0:957610:68892

10:91379

1CCA :

Si calculem �1 pel quocient de les components individuals, la converg�encia,efectivament, surt m�es lenta; per exemple (x3)1=(x2)1 = 30:25987.

Comentaris

1) M�etode de la pot�encia inversa. Si s'aplica el m�etode de la pot�encia a A�1,s'obt�e el valor propi de m�odul m��nim sempre que j �n j<j �n�1 j. En efecte, sabemque els valors propis de A�1 s�on els inversos dels de A. Per tant, si � �es el valor propi

dominant de A�1, aleshores1

�= �n ser�a el valor propi de m�odul m��nim de A.

2) M�etode de la pot�encia inversa despla�cada. Podemmodi�car f�acilment el m�etodede la pot�encia per tal d'obtenir altres valors propis. Recordem que si A t�e un valorpropi �, llavors A� qI t�e valor propi �� q i (A� qI)�1 t�e valor propi (�� q)�1. Aix��doncs, considerem la successi�o

yk =zk

k zk k2 ; (A� qI)zk+1 = yk ; k = 0; 1; 2; : : :

�es a dir, apliquem el m�etode de la pot�encia a la matriu (A � qI)�1. Aquest m�etode,anomenat de la pot�encia inversa, donar�a el valor propi dominant de (A� qI)�1 , �es a

dir,1

�k � q, on

j �k � q j= minij �i � q j ;

si q �es m�es proper al valor propi simple �k, que a cap altre valor propi de A. Cadaiteraci�o, despr�es de la primera descomposici�o A � qI = LU , requereix resoldre dossistemes triangulars i, per tant, nom�es n2 operacions, com el m�etode de la pot�enciasimple. Si q �es una bona aproximaci�o de �k, llavors, amb aquest m�etode, nom�es calenuna o dues iteracions per obtenir una bona aproximaci�o del valor propi.

Aquest m�etode tamb�e s'acostuma a aplicar per re�nar un valor propi aproximat.En efecte, hem vist que la rapidesa de converg�encia dep�en de j �2=�1 j. Si apliquemel m�etode de la pot�encia a la matriu A � pI en lloc de A, llavors la rapidesa de

Page 65: Calcul Numeric - Bonet

C�alcul de valors i vectors propis 71

converg�encia dependr�a de j (�2 � p)=(�1 � p) j. Prenent p "astuts", aquest quocientpot ser molt m�es petit que j �2=�1 j.

Exemple. Suposem que una matriu d'ordre 4 t�e els valors propis 14,13,12, 11. Elm�etode de la pot�encia convergeix cap a 14 amb ra�o (13=14)k . En canvi, si prenemp = 12 i treballem amb la matriu A� 12I, la ra�o de converg�encia ser�a (1=2)k .

3) M�etode de de aci�o o eliminaci�o successiva. Vegem ara una combinaci�o delm�etode de la pot�encia i un m�etode de de aci�o que permet calcular altres valors propisi vectors propis de A reduint la matriu a una altra de dimensi�o menor.

Sigui A una matriu donada. Pel m�etode de la pot�encia, calculem �1, valor propidominant, i ~v1 = (x1; : : : ; xn), vector propi (A~v1 = �1~v1), i normalitzem el vector ~v1de manera que la primera component x1 sigui igual a 1 (reordenant la base, si cal,sempre podem suposar que x1 6= 0). Volem trobar un canvi de variable que ens doniuna matriu (n� 1)� (n� 1) amb els mateixos valors propis que A excepte �1.

De�nim ara una matriu P no singular, tal que

P~e1 = ~v1 ; P~e2 = ~e2; : : : ; P~en = ~en :

�Es clar que

P =

0BBB@x1 0x2... Ixn

1CCCACalculem P�1: caldr�a que

P�1~v1 = ~e1 ; P�1~e2 = ~e2; : : : ; P

�1~en = ~en ;

�es a dir,

P�1 =

0BBB@y1 0...... Iyn

1CCCA :

Calculem yi, i = 1; : : : ; n a partir de P�1P = I i tenim:0BBBBBB@y1x1 0

y2x1 + x2 1......

ynx1 + xn 1

1CCCCCCA = I ()

8>>>>>><>>>>>>:

y1 = 1

y2 = �x2: : :

: : :

yn = �xn

(ja que x1 = 1)

Page 66: Calcul Numeric - Bonet

72 C�alcul num�eric

Aix�� doncs,

P�1 =

0BBB@1 0�x2... I

�xn

1CCCA :

Considerem ara la matriu B = P�1AP . �Es clar que

Be1 = P�1APe1 = P�1Av1 = �1P�1v1 = �1e1 ;

�es a dir, e1 �es vector propi de B de valor propi �1 i, per tant,

B =

0BBB@�1 bT

0... B1

0

1CCCA :

Com que B i A tenen els mateixos valors propis, B1 �es una matriu de dimensi�o n� 1amb els mateixos valors propis que A excepte �1.

Ara prendr��em B1 i pel m�etode de la pot�encia calcular��em �2, ~w2 (vector de n� 1components). A partir d'aqu�� podem trobar v = (s; wT

2 )T vector propi de B. En

efecte, calculem s tal que

B

�sw2

�= �2

�sw2

�()

0BBB@�1 bT

0... B1

0

1CCCA�

sw2

�=

��2s�2w2

�;

�es a dir, �1s+ bTw2 = �2s i, per tant, s =bTw2

�2 � �1.

Aix�� tenim �2 i v vector propi de la matriu B. Calculem, trivialment, elcorresponent vector propi de A, v2:

v2 = Pv :

En efecte, nom�es cal veure Av2 = �2v2 o b�e APv = �2Pv, per�o com que Bv = �2v,�es a dir, P�1APv = �2v, es t�e APv = �2Pv.

Successivament trobar��em tots els valors i vectors propis de la matriu A.

Exercici. Proveu que

bT = (a12 : : : a1n) i B1 =

0@ �a12x2 + a22 � � � �a1nx2 + a2n� � � � � �

�a12xn + an2 � � � �a1nxn + ann

1A :

Page 67: Calcul Numeric - Bonet

C�alcul de valors i vectors propis 73

Exemple. Considereu la matriu0@ 2 �1 0�1 2 �10 �1 2

1Aque apareix en estudiar la vibraci�o d'un sistema de tres masses connectades per molles.

El valor propi dominant �es �1 � 3:4142 i ~v1 = (1;�1:4142; 1)T (pel m�etode de lapot�encia). La matriu redu��da B1 �es

B1 =

�0:5858 �1

0 2

�;

llavors els valors propis s�on �2 = 2, �3 = 0:5858.

Per a �2 = 2, ~w2 = (�0:7071; 1)T .

D'aqu��:

s =(�1; 0)��0:70711

�2� 3:4142

= �0:5 i ~v =

0@ �0:5�0:7071

1

1A ;

llavors

~v2 = Pv =

0@ 1 0 0�1:4142 1 0

1 0 1

1A 0@ �0:5�0:7071

1

1A =

0@�0:500:5

1A :

Per a �3 = 0:5858, ~w3 = (1; 0)T .

D'aqu��:

�s =(�1; 0)�10�

0:5858 � 3:4142= 0:35356 i �v =

0@ 0:3535610

1Allavors

~v3 = P �v =

0@ 0:353560:5

0:35356

1A :

3.3 M�etodes basats en transformacions de semblan�ca

Els m�etodes, que tot seguit descriurem, consisteixen en la transformaci�o de lamatriu A en una altra matriu m�es senzilla (diagonal o triangular, per exemple) demanera que sigui immediat calcular els seus valors propis. Descriurem, primer, unm�etode aplicable a matrius reals sim�etriques i posteriorment, altres m�etodes per amatrius reals qualssevol.

Page 68: Calcul Numeric - Bonet

74 C�alcul num�eric

3.3.1 El m�etode de Jacobi

Un teorema b�asic d'�algebra lineal ens diu que una matriu sim�etrica real A t�e nom�esvalors propis reals i que existeix una matriu ortogonal Q (QTQ = I) tal que Q�1AQ�es diagonal. Els elements de la diagonal s�on, aleshores, els valors propis de A i lescolumnes de Q s�on els vectors propis. La transformaci�o Q�1AQ de A l'anomenaremtransformaci�o de semblan�ca i direm que A i Q�1AQ s�on similars o semblants (tenenels mateixos valors propis). Vegem com calcular Q .

Amb el m�etode de Jacobi calcularem Q mitjan�cant una successi�o in�nita dematrius ortogonals i arribarem aix�� a la forma diagonal.

Sigui doncs A una matriu real sim�etrica. Volem construir una successi�o de matriusA = A0; A1; A2; A3; : : : de la forma seg�uent:

Ak = QTkAk�1Qk ; amb QT

kQk = I ; k = 1; 2; : : :

La matriu Ak t�e els mateixos valors propis que A i els corresponents vectors propisestan relacionats per

x = Q1Q2 : : : Qkxk :

Notem primer que les matrius Ak tamb�e s�on sim�etriques,

ATk = (QT

kAk�1Qk)T = QT

kAk�1Qk ;

i busquem Qk tals que Ak tendeixi a una matriu diagonal. Com a matriu Qk , triaremrotacions planes. Recordem que una rotaci�o plana al pla (p; q), amb p < q, ve de�nidaper una matriu Rpq('), j ' j� � , que �es igual a la identitat excepte els elements

rpp = rqq = cos' ; rpq = �rqp = � sin'

i notem que RTpq(') = Rpq(�').

Aix�� doncs, Qk = Rpq('). Vegem primer com es transforma la matriu A enconjugar-la per una rotaci�o: Rpq(�')ARpq(').

Proposici�o. En conjugar una matriu A per una rotaci�o Rpq , nom�es canviem elselements de les �les i columnes p-�esima i q-�esima .

DEMOSTRACI�O. Sigui T l'aplicaci�o lineal que a la base e1; : : : ; en t�e per matriuA. �Es sabut queRpq(�')ARpq(') correspon a la matriu de T expressada en la base

Page 69: Calcul Numeric - Bonet

C�alcul de valors i vectors propis 75

transformada per la rotaci�o. Per�o nom�es canvien els vectors ep, eq que es transformenen e0p, e

0q. D'aqu�� la variaci�o de les columnes p i q.

Pel que fa a les �les, tenim que, si i 6= p; q,

Tei = ai1e1 + : : :+ aipep + : : :+ aiqeq + : : : + ainen :

Per�o com que l'espai generat per ep i eq �es el mateix que el generat per e0p i e0q, nom�es

varien aip, aiq. D'aqu�� la variaci�o de les �les p, q.

Vegem ara com determinar l'angle '.

En el m�etode cl�assic de Jacobi, busquem en Ak l'element de m�odul m�es gran fora

de la diagonal, a(k)pq ; llavors fem la transformaci�o

Ak+1 = Rpq(�')AkRpq(') ;

de manera que en Ak+1 nom�es han canviat les �les i columnes p-�esima i q-�esima i,com que Ak+1 �es sim�etrica, nom�es cal calcular la part triangular superior. Fent elproducte i denotant A0 = Ak+1, Ak = A, es comprova que

a0pp = app cos2 '+ 2apq sin' cos'+ aqq sin

2 '

a0pq = a0qp = (aqq � app) sin' cos'+ apq(cos2 '� sin2 ')

a0qq = app sin2 '� 2apq sin' cos'+ aqq cos

2 '

a0pr = apr cos'+ aqr sin'

a0qr = �apr sin'+ aqr cos'

9=; si r 6= p; q

i triem ' de manera que a0pq = 0, �es a dir, (aqq � app)sin 2'

2= �apq cos 2', o b�e

tan 2' =2apq

app � aqq;

aix�� podem triar j ' j� �

4de la manera seg�uent:

8>>>>>>><>>>>>>>:

' =1

2arctan

2apq

app � aqq

!; quan app 6= aqq

' =

8><>:�

4si apq > 0

��

4si apq < 0

; quan app = aqq ;

Page 70: Calcul Numeric - Bonet

76 C�alcul num�eric

on el valor de l'arctan es pren entre��2

i�

2.

Notem que Q1 : : : Qn tendeixen a la matriu de vectors propis.

Exemple. Calculeu els valors i vectors propis de la matriu

A =

0BB@10 7 8 77 5 6 58 6 10 97 5 9 10

1CCA :

Triant p = 3, q = 4, obtenim tan 2' =18

10� 10=1, i ' = 45�. Llavors,

A1=

0BBBBBB@1 0 0 00 1 0 0

0 01p2

1p2

0 0 � 1p2

1p2

1CCCCCCA A

0BBBBBB@1 0 0 00 1 0 0

0 01p2

� 1p2

0 01p2

1p2

1CCCCCCA=

0BBBBBBBBBB@

10 715p2

� 1p2

7 511p2

� 1p2

15p2

11p2

19 0

� 1p2

� 1p2

0 1

1CCCCCCCCCCA:

Ara prenem p = 1, q = 3, resulta tan 2' =15p2

10� 19, i ' = �33:5051�. Llavors,

A2 =

0BB@2:978281 1:543214 0 �0:5896111:543214 5 10:349806 �0:707107

0 10:349806 26:021719 �0:390331�0:589611 �0:707107 �0:390331 1

1CCA: : :

: : :

A10 =

0BB@3:858056 0 �0:000656 �0:001723

0 0:010150 0:000396 0:000026�0:000656 0:000396 30:288685 0:001570�0:001723 0:000026 0:001570 0:843108

1CCADespr�es de 17 rotacions, els elements de la diagonal s�on 3:85805745, 0:01015005,

30:28868533 i 0:84310715, mentre que la resta d'elements s�on iguals a 0 amb unaprecisi�o de 8 decimals. Aproximem la matriu de vectors propis per

Q1Q2 : : : Q17 :

Page 71: Calcul Numeric - Bonet

C�alcul de valors i vectors propis 77

Notem que cada etapa de l'algorisme de Jacobi anul�la dos elements fora de ladiagonal. En l'etapa seg�uent, mentre crea dos nous zeros, introdueix contribucions nonul�les a les posicions que abans eren zero. Malgrat aix�o, les matrius successives A1,A2, A3, : : : tendeixen a la forma diagonal buscada (vegeu la demostraci�o a FrobergC.: "Introducci�on al an�alisis num�erico").

Una altra variant del proc�es de Jacobi �es el m�etode c��clic de Jacobi.En lloc de buscar a cada pas, l'element m�es gran fora de la diagonal,es fan les rotacions en els plans (p; q) repetidament prenent els valors(1; 2); (1; 3); : : : ; (1; n); (2; 3); : : : ; (2; n); : : : ; (n � 1; n). S'anomena una 'escombrada'

el conjunt de N =1

2n(n� 1) rotacions.

Fem notar que tant el m�etode cl�assic com el c��clic tenen converg�encia quadr�atica"a la llarga". �Es a dir, denotem per �2(A), la suma dels quadrats dels elements forade la diagonal, �2(A) =

Pi

Pk 6=i

a2ik, 8A matriu; sabem que �2(Ak) �! 0 quan k �!1(ja que Ak tendeix a una matriu diagonal). Aleshores, es pot provar que, per a k prougran,

�2(Ak+N ) � K(�2(Ak))2

per a certa constant K. Podem parar el proc�es quan tots els elements no diagonalssiguin menors que una certa toler�ancia donada. Aleshores, els elements de la diagonals�on aproximadament els valors propis de A amb un error que es pot estimar a partirdel teorema de Gerschgorin. En efecte, si "i =

Pk 6=i

j aik j, sabem que j aii�� j< "i per

a algun i, i amb prou iterats, cada cercle cont�e un �unic valor propi.

3.3.2. M�etode de Hyman

S'aplica a matrius reals qualssevol (no necess�ariament sim�etriques) i consisteixa trasformar, en un nombre �nit de passos, la matriu en una matriu en forma deHessenberg, �es a dir,

H =

0BBBBBBB@

h11 h12 � � � � � � h1nh21 h22 � � � � � � h2n0 h32 h33 � � � h3n

.... . .

. . ....

0 � � � � � � hn;n�1 hnn

1CCCCCCCA:

Aix�o s'aconsegueix mitjan�cant(n� 1)(n� 2)

2girs.

Page 72: Calcul Numeric - Bonet

78 C�alcul num�eric

En efecte, donada A = A0 i tenint en compte la darrera proposici�o, anem fentgirs en el pla (i; k) amb la condici�o que a0k;i�1 = 0, i = 2; : : : ; n� 1, k = i + 1; : : : ; n.�Es a dir, el primer gir el fem al pla (2; 3) amb la condici�o que a031 = 0, despr�es al (2,4)per tal que a041 = 0, i aix�� successivament. D'aquesta manera, s'anul�len els elementsde la primera columna, excepte a011, a

021. Despr�es fem un gir al pla (3; 4) per tal que

a042 = 0, etc.

Vegem com obtenir l'angle ' a cada gir. Si denotem per

ai;i�1 = a ; ak;i�1 = c

es t�e de A0 = R(�')AR('),

a0k;i�1 = �a sin'+ c cos' = 0 ;

per tant, tan' =c

a.

Exemple. Passem a forma de Hessenberg la matriu0@ 1 2 3�1 0 12 1 1

1A :

Tenim tan' =2

�1 = �2, llavors sin' = � 2p5, cos' =

1p5.

A1 =

0BBB@1 0 0

01p5

�2p5

02p5

1p5

1CCCA0@ 1 2 3�1 0 12 1 1

1A0BBB@1 0 0

01p5

2p5

0�2p5

1p5

1CCCA =

=

0BBBB@1

�4p5

7p5

�5p5

0 �10 �1 1

1CCCCAque t�e la forma de Hessenberg.

Observaci�o. Si la matriu inicial �es sim�etrica, la forma de Hessenberg �es una matriutridiagonal.

Page 73: Calcul Numeric - Bonet

C�alcul de valors i vectors propis 79

C�alcul de valors propis d'una matriu Hessenberg

Una primera possibilitat �es aplicar algun proc�es per trobar zeros d'equacions.Aix�� doncs caldr�a disposar d'algun algorisme per avaluar la funci�o pH(�), el polinomicaracter��stic de la matriu en forma de Hessenberg H, a partir d'una f�ormula recursiva.Per aix�o, suposarem que els elements hi+1;i 6= 0, i = 1; 2; : : : ; n � 1, (si no fos aix��,det(H � �I) es pot escriure com el producte de dos determinants de submatrius deH � �I). Aquest proc�es es fonamenta en el seg�uent

Lema. Sigui H en forma de Hessenberg. Si hi+1;i 6= 0, i = 1; 2; : : : ; n� 1, de�nim lasuccessi�o de polinomis

q0 = 1 ; q1(�) =�(h11 � �)

h21

qi(�) =�(h1iq0 + � � �+ hi�1;iqi�2(�) + (hii � �)qi�1(�))

hi+1;i;

(3:3:1)

i = 2; 3; : : : ; n, on hn+1;n = 1. Llavors

(�1)n�1h21h32 : : : hn;n�1qn(�) = PH(�) = det(H � �I) :

En efecte, com que hi+1;i 6= 0, podem anar sumant m�ultiples de les �les de H��Ia la primera �la per tal d'anul�lar els n�1 primers elements de la primera �la. Aquestproc�es de�neix els polinomis fqig, i = 1; 2; : : : ; n � 1 i el valor del determinant �esinvariant. Si calculem el determinant per la primera �la obtenim qn(�).

Aix�� doncs, podem calcular qn(�) amb � n2

2operacions i derivant (3.3.1), obtenim

q0n(�) (o derivades d'ordre superior). Per tant, podem aplicar qualsevol m�etode iteratiuper tal de trobar, una a una , les arrels de qn(�) (sense avaluar els seus coe�cients).

En general, per�o, si volem tots els valors propis de la matriu, �es probablementmillor aplicar el m�etode QR que tot seguit descriurem.

3.3.3. L'algorisme QR

Un dels m�etodes recentment desenvolupat i que ha resultat ser dels m�es e�cientsa l'hora de calcular els valors propis d'una matriu real qualsevol (sim�etrica o no) �es elm�etode QR. Aquest algorisme consisteix a construir una successi�o A = A0; A1; A2; : : :,de la forma seg�uent

As = QsRs ; RsQs = As+1 ; s = 0; 1; 2; : : :

Page 74: Calcul Numeric - Bonet

80 C�alcul num�eric

�es a dir, primer es descompon la matriu As en producte d'una matriu ortogonal(QT

s = Q�1s ) i una matriu triangular superior i despr�es es calcula As+1 = RsQs.Notem que

As+1 = QTs AsQs

i, per tant, As+1 s'obt�e per una transformaci�o de semblan�ca.

Es pot demostrar (no ho farem) que sota certes condicions (per exemple sij �1 j>j �2 j> : : : >j �n j) la successi�o As convergeix cap a una matriu triangularsuperior i, per tant, els elements de la diagonal seran els valors propis de la matriu departida A.

Comentaris

1) Normalment, el m�etode per trobar la descomposici�o As = QsRs, l'anomenatm�etode de Householder, consisteix a multiplicar per l'esquerra la matriu As permatrius ortogonals -simetries- de la forma I � 2wwT , amb k w k2= 1 a � de reduir

successivament les columnes de As . �Es a dir,

(I � 2wn�1wtn�1) : : : (I � 2w1w

t1)As = Rs ;

llavorsQs = (I � 2w1w

t1) : : : (I � 2wn�1w

tn�1) :

Vegem com calcular els wi. Diguem que As = A.

Si triem el vector w1 tal que

wt1 = �(a11 � �; a21; : : : ; an1)

amb

� = �0@ nX

j=1

a2j1

1A1=2

; � =1p

2�(� � a11);

i prenem com a signe de � l'oposat a a11, llavors se satisf�a (exercici)

A(2) = (I � 2w1wT1 )A =

0BB@� � � � � �0 � � � � �� � �0 � � � � �

1CCAon � indica un element no nul, en general.

Page 75: Calcul Numeric - Bonet

C�alcul de valors i vectors propis 81

Ara triem w2 tal que

wT2 = b�(0; ba22 � b�; ba32; : : : ; ban2) ;b� = �

0@ nXj=2

ba2j21A1=2

; b� =1p

2b�(b� � ba22) ;on b denota els elements de A(2) i prenem com a signe de b� l'oposat a ba22. Llavors(I�2w2w

T2 )A

(2) t�e zeros a les dues primeres columnes per sota de la diagonal principal.Continuant aquest proc�es, tindrem de�nits w1; : : : ; wn�1 de manera que

(I � 2wn�1wTn�1) : : : (I � 2w1w

T1 )A = R ;

llavors A = QR amb R triangular superior i Q = (I � 2w1wT1 ) : : : (I � 2wn�1w

Tn�1)

ortogonal.

2) Si A �es una matriu en forma de Hessenberg, llavors la descomposici�o QR decada iteraci�o es pot fer amb simetries (com hem indicat) o tamb�e s'acostuma a feramb rotacions planes.

En efecte, sigui

A =

0BBBBB@a11 a12 � � � a1na21 a22 � � � a2n

a32 a3n

0. . . � � �

an;n�1 an;n

1CCCCCAen forma de Hessenberg i

P1 =

0BBBBB@cos � � sin �sin � cos �

1. . .

1

1CCCCCA ;

P1A =

0BBBBB@a11 cos � � a21 sin � � � � a1n cos � � a2n sin �a11 sin � + a21 cos � � � � a1n sin � + a2n cos �

a32 � � � a3n. . .

an;n�1 ann

1CCCCCA ;

Page 76: Calcul Numeric - Bonet

82 C�alcul num�eric

llavors el nou a21 ser�a zero si � = arctan�a21a11

. Amb n � 1 rotacions tindrem

Pn�1 : : : P1A = R i, per tant, A = QR (on Q = P T1 : : : P T

n�1).

3) Per a una matriu A plena , una iteraci�o QR requereix4n3

3+O(n2) operacions,

cosa que a la pr�actica resulta excessiva. Malgrat aix�o, si la matriu inicial es transformaa la forma Hessenberg o a una matriu tridiagonal sim�etrica, aleshores aquesta formaes preserva a cada iteraci�o (exercici) i el c�omput disminueix considerablement (4n2

operacions a cada iteraci�o QR amb una matriu Hessenberg no sim�etrica i 12n en elcas sim�etric).

L'experi�encia pr�actica demostra que aquest m�etode �es 4 vegades m�es r�apid queel de Jacobi, si calculem els valors i vectors propis, i 10 vegades m�es r�apid, si nom�escalculem els valors propis.

Diguem, �nalment, que hi ha un altre m�etode similar a aquest, l'anomenat m�etodeLR, que es basa a construir la mateixa successi�o que abans (amb l��mit una matriutriangular), per�o ara cada Ak = LkRk descompon en una matriu triangular inferiorLk i una triangular superior Rk.

Page 77: Calcul Numeric - Bonet

Interpolaci�o 85

Cap��tol 4 Interpolaci�o

4.1 Introducci�o

El problema de la interpolaci�o correspon a un cas d'aproximaci�o de funcions.Podr��em dir que interpolar una funci�o f en un conjunt de punts �es trobar una altrafunci�o f� de manera que sobre aquests punts la nova funci�o prengui el mateix valorque la funci�o original f . Els diferents tipus de funcions f� que podem triar determinenles diferents formes d'interpolaci�o que es poden estudiar; aix�� tindrem interpolaci�o:

- polinomial, quan f� sigui un polinomi;

- racional, quan f� sigui una funci�o racional:

- spline, quan f� sigui polin�omica a trossos;

- trigonom�etrica, quan f� sigui suma �nita de sin i cos.

Nosaltres, en principi, ens restringirem a la interpolaci�o m�es usual que �es lapolinomial i al �nal del cap��tol estudiarem tamb�e la spline.

Ja es pot intuir que la interpolaci�o ser�a de gran utilitat per estudiar funcions queno coneixem expl��citament, sin�o que nom�es les tenim tabulades, per exemple, resultatsde mesures d'un experiment, etc. El fet que coincideixin, per exemple un polinomi iuna funci�o en una s�erie de punts, ens permetr�a aproximar la funci�o en punts en elsquals no la coneixem per als valors del polinomi en aquests punts.

Comen�carem estudiant la interpolaci�o polinomial. La primera q�uesti�o que ensplantejarem �es si sempre es pot interpolar una funci�o per un polinomi. La respostal'obtindrem del teorema seg�uent:

Page 78: Calcul Numeric - Bonet

86 C�alcul num�eric

TEOREMA. Suposem conegut el valor d'una funci�o f(x) en una xarxa de n + 1punts diferents x0; x1; : : : ; xn. Aleshores existeix un �unic polinomi P (x) de grau n queinterpola f(x) en aquests punts, �es a dir, f(xi) = P (xi), i = 0; : : : ; n.

DEMOSTRACI�O. Donats els punts x0; x1; : : : ; xn constru��m la fam��lia de polinomisseg�uent:

'0(x) = 1

'1(x) = (x� x0)

: : :

'i(x) = (x� x0)(x� x1) : : : (x� xi�1) ; i = 1; : : : ; n :

Aleshores, si constru��m el polinomi p(x) =nP

i=0Ci'i(x) o b�e expl��citament

p(x) = C0 + C1(x� x0) + : : : +Cn(x� x0)(x� x1) : : : (x� xn�1) :

Aquest polinomi ser�a el polinomi d'interpolaci�o de grau n, si imposem que el valorde la funci�o i el polinomi coincideixin en els punts x0; : : : ; xn. Per determinar-lo calnom�es trobar el valor de les constants Ci i, per aix�o, si substitu��m cadascun delspunts x0; x1; : : : ; xn en el polinomi, considerant que 'i(xj) = 0 si i > j, i imposant lacondici�o f(xi) = p(xi), i = 1; : : : ; n, obtenim

f(x0) = p(x0) = C0

f(x1) = p(x1) = C0 + C1(x1 � x0)

f(x2) = p(x2) = C0 + C1(x2 � x0) + C2(x2 � x0)(x2 � x1)

: : :

Observem que els coe�cients C0; : : : ; Cn queden totalment determinats a partir delsistema triangular anterior.

Per veure la unicitat suposem que existeixi un altre polinomi q(x) que interpolif(x) en els punts x0; : : : ; xn, aleshores q(xi) = p(xi), i = 0; : : : ; n; per tant, siconsiderem el polinomi difer�encia (q � p)(x) ser�a un polinomi de grau n amb n + 1zeros (els punts x0; : : : ; xn) aix�o voldria dir que seria el polinomi zero. Es dedueix queels polinomis p(x) i q(x) coincideixen.

Fem una consideraci�o al marge.

Des del punt de vista de la computaci�o, si volem avaluar en un punt � un polinomiexpressat en la forma

p(x) = C0 +C1(x� x0) + � � �+ Cn(x� x0) � � � (x� xn�1)

Page 79: Calcul Numeric - Bonet

Interpolaci�o 87

ho podem fer f�acilment utilitzant la seg�uent f�ormula recurrent (regla de Horner):

bn = Cn

bn�i = (�� xn�i) � bn�i+1 + Cn�i ; i = 1; 2; : : : ; n ;

aix�� obtindr��em p(�) = b0.

4.2 Interpolaci�o de Lagrange

�Es, potser, el m�etode m�es simple de construir el polinomi d'interpolaci�o que passaper n+ 1 punts.

Donats x0; x1; : : : ; xn, considerem els polinomis de la forma

Li(x) =(x� x0)(x� x1) � � � (x� xi�1)(x� xi+1) � � � (x� xn)

(xi � x0)(xi � x1) � � � (xi � xi�1)(xi � xi+1) � � � (xi � xn)

=Y j=0

j 6=i

n (x� xj)

(xi � xj); i = 0; : : : ; n :

Per a aquests polinomis tenim

Li(xj) =

(0 i 6= j

1 i = j; i; j = 0; : : : ; n :

Aleshores el polinomi interpolador de Lagrange s'obt�e com

p(x) =nX

i=0

fiLi(x) ; on fi = f(xi) :

Es pot veure f�acilment que p(xi) = fi i, per tant, per la unicitat del polinomiinterpolador (de grau n) aquest ser�a el polinomi cercat.

Com hem vist, el m�etode de Lagrange �es conceptualment un m�etode molt senzill.T�e l'inconvenient, per�o, que la forma �nal en qu�e obtenim el polinomi interpoladorens obliga a calcular-ho tot de nou si afegim algun punt m�es; no es poden apro�tarels c�alculs fets amb anterioritat. En el m�etode seg�uent aquest inconvenient quedaesmenat.

Page 80: Calcul Numeric - Bonet

88 C�alcul num�eric

4.3 Interpolaci�o de Newton (difer�encies dividides)

Es basa en la construcci�o del polinomi interpolador feta a la demostraci�o del teo-rema anterior. Essencialment ens d�ona un m�etode per calcular els coe�cients Ci delpolinomi interpolador que escrivim com

p(x) = C0 + C1(x� x0) + � � � +Cn(x� x0)(x� x1) � � � (x� xn�1) :

Com que p(x) interpola f(x), tindrem que, per a x = x0,

f(x0) = p(x0) = C0

i en general per a x = xk

f(xk) = C0 + C1(xk � x0) + � � �+ Ck � (xk � x0) � � � (xk � xk�1)

a��llant

Ck =f(xk)� pk�1(xk)

(xk � x0) � � � (xk � xk�1)

on pk�1(x) = C0 + C1(x� x0) + � � �+ Ck�1(x� x0) � � � (x� xk�2).

Com veiem, per calcular cada coe�cient ck, nom�es necessitem informaci�o dels k�1punts anteriors; aix��, si introdu��m un nou punt el c�alcul no s'ha de tornar a comen�carde zero.

El c�alcul dels coe�cients ck el farem de manera m�es e�cient introduint un m�etoderecursiu anomenat de difer�encies dividides. Aix��, introdu��m

C0 = f(x0) = f0

C1 =f1 � f0x1 � x0

; que escriurem comf1 � f0x1 � x0

= f [x0; x1] ;

per a

C2 =f2 � p1(x2)

(x2 � x0)(x2 � x1)=f2 � (f0 + f [x0; x1] � (x2 � x0))

(x2 � x0)(x2 � x1)

=

f2x2 � x1

� f1x2 � x1

+f1

x2 � x1� f0x2 � x1

� f [x0; x1](x2 � x0)

x2 � x1x2 � x0

;

Page 81: Calcul Numeric - Bonet

Interpolaci�o 89

operant

=

f2 � f1x2 � x1

� f1 � f0x1 � x0

x2 � x0=f [x1; x2]� f [x0; x1]

x2 � x0= f [x0; x1; x2] ;

de manera an�aloga obtindrem

Ck =f [x1; : : : ; xk]� f [x0; : : : ; xk�1]

xk � x0= f [x0; : : : ; xk] ; k � n :

Aix��, el polinomi interpolador quedar�a:

p(x) = f0 + f [x0; x1](x� x0) + � � �+ f [x0; : : : ; xn](x� x0) � � � (x� xn�1) :

El millor m�etode per calcular les difer�encies dividides �es seguir l'esquema seg�uentper a una taula de valors

x0 f0f [x0; x1]

x1 f1 f [x0; x1; x2]f [x1; x2] f [x0; x1; x2; x3]

x2 f2 f [x1; x2; x3] f [x0; x1; x2; x3; x4]f [x2; x3] f [x1; x2; x3; x4]

x3 f3 f [x2; x3; x4]f [x3; x4]

x4 f4

Exemple. S'ha de calcular el polinomi d'interpolaci�o de la taula de punts seg�uent pelm�etode de Newton i pel m�etode de Lagrange.

xi 1 2 4 5 8

fi 10 5 2 4 14

(a) Ho farem primer pel m�etode de Newton. Ser�a

p(x) = C0 + C1(x� x0) + � � �+ C4(x� x0) � � � (x� x3) :

Page 82: Calcul Numeric - Bonet

90 C�alcul num�eric

Per calcular els Ck trobarem les difer�encies dividides

xi fi f [xi; xi+1] f [xi; xi+1; xi+2] f [xi; xi+1; xi+2; xi+3] f [xi; xi+1; xi+2; xi+3; xi+4]1 10

5�102�1 = �5

2 5 �3=2+54�1 = 7

62�54�2 = �3

27=6�7=65�1 = 0

4 2 2+3=25�2 = 7

6�5=368�1 = �5

2524�25�4 = 2 �7=6+1=3

8�2 = �536

5 4 10=3�28�4 = 1

314�48�5 = 10

38 14

Per tant,

p(x) = 10� 5(x� 1) +7

6(x� 1)(x � 2) + 0(x� 1)(x � 2)(x� 4)

� 5

252(x� 1)(x� 2)(x� 4)(x� 5) =

=�5252

x4 +5

21x3 +

13

63x2 � 146

21x+

52

3:

(b) Calculem-ho ara pel m�etode de Lagrange

Li(x) =(x� x0) � � � (x� xi�1)(x� xi+1) � � � (x� xn)

(xi � x0) � � � (xi � xi�1)(xi � xi+1) � � � (xi � xn);

L0(x) =(x� 2)(x � 4)(x� 5)(x� 8)

(1� 2)(1 � 4)(1� 5)(1 � 8)=

1

84(x4 � 19x3 + 126x2 � 344x+ 320) ;

L1(x) =(x� 1)(x � 4)(x� 5)(x� 8)

(2� 1)(2 � 4)(2� 5)(2 � 8)=

1

�36(x4 � 18x3 + 109x2 � 252x+ 160) ;

L2(x) =(x� 1)(x � 2)(x� 5)(x� 8)

(4� 1)(4 � 2)(4� 5)(4 � 8)=

1

24(x4 � 16x3 + 81x2 � 146x + 80) ;

L3(x) =(x� 1)(x � 2)(x� 4)(x� 8)

(5� 1)(5 � 2)(5� 4)(5 � 8)=

1

�36(x4 � 15x3 + 70x2 � 120x + 64) ;

Page 83: Calcul Numeric - Bonet

Interpolaci�o 91

L3(x) =(x� 1)(x� 2)(x � 4)(x� 5)

(8� 1)(8� 2)(8 � 4)(8 � 5)=

1

504(x4 � 12x3 + 49x2 � 78x+ 40) :

El polinomi d'interpolaci�o ser�a

p(x) =Xi=0

fiLi(x)

= 10 � L0(x) + 5 � L1(x) + 2 � L2(x) + 4 � L3(x) + 14 � L4(x)

=�5252

x4 +5

21x3 +

13

63x2 � 146

21x+

52

3:

4.4 Interpolaci�o per a punts equiespaiats

Suposem que la xarxa de punts en els quals hem d'interpolar una funci�o sigui unaxarxa de punts equiespaiats, �es a dir, x0; x1 = x0+h; x2 = x0+2h; : : : ; xn = x0+n �h.Com veurem es poden simpli�car una mica els c�alculs introduint l'operador difer�encia�, de�nit com

�0f(x) = f(x)

�1f(x) = f(x+ h)� f(x)

�2f(x) = �(�f(x)) = f(x+ 2h)� 2f(x+ h) + f(x) ;

en general

�k f(x) = �(�k�1f(x)) :

La relaci�o entre les difer�encies ordin�aries i les difer�encies dividides introdu��des a lainterpolaci�o de Newton es pot calcular f�acilment:

f [x0] = f(x0) = �0f(x0)

f [x0; x1] =f(x1)� f(x0)

x1 � x0=f(x0 + h)� f(x0)

h=

1

h��f(x0)

f [x0; x1; x2] =f [x1; x2]� f [x0; x1]

x2 � x0=

1

2h���f(x1)

h� �f(x0)

h

�=

1

2h2�2f(x0) ;

en general,

f [x0; x1; : : : ; xk] =1

k!hk��kf(x0) :

Page 84: Calcul Numeric - Bonet

92 C�alcul num�eric

Com a conseq�u�encia, el polinomi interpolador en funci�o de les difer�encies ordin�ariesel podrem escriure de la forma

p(x) = �0f(x0) +�f(x0)

h (x� x0) +�2f(x0)

2h2� (x� x0)(x� x1) + � � �

� � �+ �nf(x0)

n!hn� (x� x0) : : : (x� xn�1) :

El c�alcul de les difer�encies ordin�aries ser�a immediat a partir d'una taula de valors.Vegem-ho directament sobre un exemple.

Exemple. Donem el polinomi d'interpolaci�o per a la taula de valors seg�uent

x 1 2 3 4 5

f(x) 1 16 81 256 625

Fem la taula de difer�encies ordin�aries

x f � �2 �3 �4

1 115

2 16 5065 60

3 81 110 24175 84

4 256 194369

5 625

per tant el polinomi interpolador ser�a

p(x) = 1 + 15(x� 1) +50

2(x� 1)(x� 2) +

60

6(x� 1)(x� 2)(x� 3)+

+24

24(x� 1)(x � 2)(x � 3)(x� 4) = x4 :

Aquest exemple ens il�lustra la propietat seg�uent.

Propietat. Sigui pn(x) un polinomi de grau � n. Aleshores �n+1pn = 0.

DEMOSTRACI�O. Procedim per reducci�o a l'absurd.Suposem que �n+1pn 6= 0. Aix�ovol dir que existeix un polinomi qn+1 de grau n+1 que coincideix amb pn en els puntsx0; x1; : : : ; xn+1. Per tant, la seva difer�encia, qn+1 � pn, seria un polinomi de grau

Page 85: Calcul Numeric - Bonet

Interpolaci�o 93

n+1 amb n+2 zeros, �es a dir, seria nul i com a conseq�u�encia pn = qn+1, la qual cosa�es absurda.

A l'exemple anterior, si prenem un nou punt, obtenim �5p = 0

x f(x) � �2 �3 �4 �5

1 115

2 16 5065 60

3 81 110 24175 84 0

4 256 194 24369 108

5 625 302671

6 1296

Aix�o �es degut al fet que interpolem el polinomi p(x) = x4 en 6 punts i com aconseq�u�encia de la propietat �5p = 0. La interpolaci�o d'un polinomi de grau � n perun polinomi del mateix grau ser�a sempre ell mateix.

Exemple. Suposem que volem con�eixer el valor de la sumanP

k=1k2. Tenim dues

possibilitats: d'una banda sumar tots els termes i, de l'altra, utilitzar la interpolaci�o.

Per fer aquesta �ultima hem de suposar quenP

k=1k2 �es un polinomi en la variable n. El

que farem ser�a una taula de difer�encies per determinar el seu grau (incrementem elvalor de n �ns a trobar �i = 0)

n �

1 14

2 5 59 2

3 14 7 016 2

4 30 9 025 2

5 55 1136

6 91

Page 86: Calcul Numeric - Bonet

94 C�alcul num�eric

Per tant, P (n) = 1 + 4 � (n� 1) +5

2!� (n� 1)(n� 2) +

2

3!� (n� 1)(n� 2)(n� 3).

Per a n = 6,

P (6) = 1 + 4 � (5) + 5

2� (5) � 4 + 2

6� 5 � 4 � 3 =

= 1 + 20

�1 +

5

2+

6

6

�= 1 + 20 � 9

2= 91 :

Podem comprovar aquest resultat sumant directament :6P

k=1k2 = 91.

4.5 L'error a les taules de difer�encies

Una particularitat amb la qual ens podem trobar quan treballem amb taules dedifer�encies �es la caracter��stica propagaci�o de l'error. Considerem per exemple queconeixem una funci�o de manera exacta en tots els punts, llevat del punt xi en qu�etenim un error ". Podem fer la taula de propagaci�o de l'error, anomenant Ei l'errorcom�es en el punt xi:

xi Ei

x1 0"

...... "0 " �4"

" �3"xi " �2" 6"

�" 3"0 " �4"

...... �"

"xn 0

Com podem veure, l'error es propaga de manera triangular. Prescindint del signe,veiem que apareixen a les diferents columnes els coe�cients binomials (triangle deTartaglia). L'aparici�o d'aquests coe�cients en una taula delatar�a l'exist�encia d'unerror ". Per exemple, a les dues taules seg�uents s'interpola f(x) = x2 i cometem un

Page 87: Calcul Numeric - Bonet

Interpolaci�o 95

error en x = 6

xi fi1 1

32 4 2

5 03 9 2 0

7 0 �14 16 2 �1

9 �1 55 25 1 4

10 3 �106 35 4 �6

14 �3 107 49 1 4

15 18 64 2

179 81

xi fi1 1

32 4 2

5 03 9 2 0

7 0 �24 16 2 �2

9 �2 105 25 0 8

9 6 �206 34 6 �12

15 �6 207 49 0 8

15 28 64 2

179 81

Recordem que en diagonal tindrem el valor de l'error, en aquest cas " = �1 i " = �2,respectivament.

Normalment, a tota taula de difer�encies, el comportament usual (si la funci�o�es prou regular) �es que la magnitud de les difer�encies sigui decreixent i tendeixia igualar-se. Si aix�o no s'esdev�e, sin�o que les difer�encies creixen en magnitud icomencen a alternar el seu signe, normalment voldr�a dir que existeix algun errora les dades. Exemple. Suposem que tenim la taula seg�uent obtinguda a partir deresultats experimentals

xi fi �f �2f �3f �4f �5f �6f1 139140

�14442 137696 �1469

�2913 553 134783 �1414 17

�4327 72 �34 130456 �1342 14 �2

�5669 86 �55 124787 �1256 9 8

�6925 95 36 117862 �1161 12 �11

�8086 107 �87 109776 �1054 4 8

�9140 111 08 100636 �943 4

�10083 1159 90553 �828

�1091110 79642

Page 88: Calcul Numeric - Bonet

96 C�alcul num�eric

Com podem observar, les quatre primeres difer�encies tenen el mateix signe idisminueixen en magnitud, les difer�encies que segueixen es fan m�es grans i amb signesalternats. Aquest comportament delata la possible exist�encia d'un error a les dades.El fet que aquest error es detecti a la cinquena difer�encia ens indica que possiblementl'error estigui a la cinquena xifra decimal; per tant, si volem utilitzar aquesta taulaper interpolaci�o haurem d'utilitzar nom�es les quatre primeres difer�encies. Fer servirles difer�encies d'ordre superior podria portar a una aproximaci�o m�es dolenta.

4.6 Interpolaci�o inversa

Una aplicaci�o de la interpolaci�o pot ser, per exemple, calcular el valor de x peral qual f(x) = c, on f �es una funci�o que tenim tabulada en una xarxa de puntsx0; : : : ; xn.

Aquest problema es podria resoldre interpolant f i despr�es trobant els valors quedonen c en substituir en el polinomi interpolador. Aquesta seria una manera llarga defer-ho. La forma m�es pr�actica de resoldre aquest problema �es utilitzar la interpolaci�oinversa.

Es tracta d'admetre que podem invertir la funci�o f(x) de manera que si f(xi) = yi,considerem una nova funci�o g tal que g(yi) = xi, ara, interpolant la funci�o g isubstituint en el polinomi interpolador la y per la c, obtindrem l'aproximaci�o de la xbuscada. Vegem-ho en un exemple. Exemple. Suposem que volem trobar el valor dex tal que que f(x) = 2 per a la funci�o

x 0 1 2 3

f 0 1 4 9:

El que farem �es interpolaci�o inversa, per tant, interpolar la funci�o g que satisf�a lataula inversa

y 0 1 4 9

g 0 1 2 3

Aix�� doncs, farem la taula de difer�encies dividides

0 01

1 1 �16

13

160

4 2 � 160

15

9 3

Page 89: Calcul Numeric - Bonet

Interpolaci�o 97

g(y) ' 0 + 1 � y � 1

6y � (y � 1) +

1

60y(y � 1)(y � 4)

fem ara y = 2 i obtenim x = g(2) = 1:6.

4.7 Error en la interpolaci�o

Un dels problemes principals quan aproximem una funci�o per una altra �es , sensdubte, saber la magnitud de l'error que cometem. En el cas de la interpolaci�o,disposem del teorema seg�uent per estudiar l'error.

TEOREMA. Donada una funci�o f amb derivades cont��nues almenys �ns a ordren+1, si denotem per p(x) el polinomi de grau n que interpola f en els punts x0; : : : ; xn,aleshores, l'error com�es �es

f(x)� p(x) =f (n+1)(�x)

(n+ 1)!(x� x0)(x� x1) � � � (x� xn) ;

on �x �es un punt de l'interval m�es petit que cont�e x; x0; : : : ; xn.

Notem que aquesta f�ormula d'error recorda molt la resta del desenvolupamentde Taylor d'una funci�o (de fet seria una mena de cas l��mit quan tots els puntscoincideixen). Tamb�e cal fer notar que per als punts x0; : : : ; xn l'error �es zero, com �esd'esperar.

DEMOSTRACI�O Introdu��m una nova variable z i sigui

W (z) = (z � x0)(z � x1) � � � (z � xn) :

De�nim ara la funci�o

G(z) = f(z)� p(z)�R(x) �W (z) ;

on R(x) =f(x)� p(x)

W (x). Aleshores, tenim que G(z) = 0 per z = x0; : : : ; xn i, a m�es,

G(x) = 0 per la de�nici�o. Per tant, G(z) t�e n + 2 zeros a l'interval [x; x0; : : : ; xn].Com a conseq�u�encia, pel teorema de Rolle, sabem que la derivada n + 1 tindr�a unzero en aquest interval. Anomenem �x a aquest element tal que G(n+1)(�x) = 0.

Si calculem les derivades p(n+1)(z) = 0 iW (n+1)(z) = (n+1)! per a tot z. Aleshores

G(n+1)(z) = f (n+1)(z)�R(x)(n+ 1)!

Page 90: Calcul Numeric - Bonet

98 C�alcul num�eric

si fem ara z = �x obtenim R(x) =f (n+1)(�x)

(n+ 1)!.

Posem ara aquesta expressi�o a la de�nici�o de G(z) i fem z = x. Considerant queG(x) = 0 obtenim

0 = f(x)� p(x)� f (n+1)(�x)

(n+ 1)!�W (x) ;

que demostra el teorema.

Analitzant una mica la f�ormula de l'error d'interpolaci�o veiem que, per al cas d'un�unic punt, ens diu que

f(x)� p0(x) = f 0(�x)(x� x0) o equivalentment

f(x)� f(x0) = f 0(�x) � (x� x0) (teorema del valor mitj�a)

En el cas de dos punts, tindr��em

f(x)� p1(x) =f 00(�x)

2!(x� x0)(x� x1) :

Podem calcular quin seria l'error m�axim com�es per a x 2 [x0; x1],

maxx2[x0;x1]

j f(x)� p1(x) j= maxx2[x0;x1]

j (x� x0)(x� x1) j2

� j f 00(�x) j :

Si sabem que la derivada segona �es �tada j f 00 j< M a [x0; x1]. Aleshores nom�es caltrobar el

maxx2[x0;x1]

j (x� x0)(x� x1) j= maxx2[x0;x1]

�(x� x0)(x� x1) =

maxx2[x0;x1]

(�x2 + (x0 + x1)x� x0x1) :

Per trobar el m�axim d'aquesta funci�o, derivem i obtenim

�2x+ (x0 + x1) = 0 ;

�es a dir, x =x0 + x1

2, el punt mitj�a.

Substituint aquest punt a la funci�o W (x) = �x2 + (x0 + x1)x � x0x1, obtenim

W

�x0 + x1

2

�=

(x0 � x1)2

4.

Recuperant l'expressi�o de l'error, obtindr��em

error = maxx2[x0;x1]

j f(x)� p(x) j� (x0 � x1)2

8�M :

Page 91: Calcul Numeric - Bonet

Interpolaci�o 99

4.8 Abscisses de Txebyshev

Hem vist a l'apartat anterior que l'error a la interpolaci�o d'ordre n d'una funci�of(x) en un interval [a; b] t�e b�asicament dos termes. El primer �es j f (n+1)(�x) j per a �x 2[a; b]. Com veiem, dep�en nom�es de la funci�o que estudiem, aix�o signi�ca que no podremmillorar en general aquest terme. L'altre terme �esW (x) = (x�x0)(x�x1) � � � (x�xn),que dep�en dels punts x0; : : : xn escollits; per tant, podem plantejar-nos el problema detriar els punts x0; : : : ; xn a l'interval [a; b] de manera que max

x2[a;b]j (x�x0) � � � (x�xn) j

sigui el m�es petit possible.

Per resoldre aquest problema, el primer que farem ser�a passar-lo d'un intervalqualsevol [a; b] a l'interval [�1; 1]. Aix�o ho farem imposant que la proporci�o respectea l'origen de l'interval dividit per la llargada d'aquest sigui igual en els dos casos, �es

a dir que si x 2 [a; b] i y 2 [�1; 1], aleshores x� a

b� a=y � (�1)

2; a��llant

x = (b� a) ��y + 1

2

�+ a =

b� a

2� y + a+ b

2:

Fent aquest canvi de variable, passarem d'una funci�o f(x) de�nida a [a; b] a una novafunci�o �f(y) de�nida a [�1; 1].

Per tant, no �es restrictiu estudiar el problema a l'interval [�1; 1].

TEOREMA. La millor elecci�o de punts x0; : : : ; xn a l'interval [�1; 1], de maneraque max

x2[�1;1]j (x� x0) � � � (x� xn) j sigui m��nim, ve donada per les arrels del polinomi

de Txebyshev Tn+1, d'ordre n+ 1. El valor d'aquest m�axim �es1

2n.

Els polinomis de Txebyshev es poden donar de forma expl��cita com

Tn+1(x) = cos((n+ 1) arccos(x)) ;

o b�e de forma recurrent

Tn+1(x) = 2xTn(x)� Tn�1(x) amb T0 = 1 ; T1(x) = x ;

s'obtenenT2(x) = 2x2 � 1

T3(x) = 4x3 � 3x

T4(x) = 8x4 � 8x2 + 1

T5(x) = 16x5 � 20x3 + 5x

T6(x) = 32x6 � 48x4 + 18x2 � 1 :

Page 92: Calcul Numeric - Bonet

100 C�alcul num�eric

A partir de la f�ormula expl��cita podem obtenir l'expressi�o dels zeros d'aquests

polinomis, aix�� xk = cos2k + 1

2(n+ 1)�, k = 0; 1; : : : ; n que s�on el que s'anomenen abscisses

de Txebyshev.

L'expressi�o d'aquests punts per un interval [a; b] qualsevol l'obtindrem desfent elcanvi de variables anterior. Si diem

yk = cos2k + 1

2(n+ 1)� ; yk 2 [�1; 1] ; k = 0; 1; : : : ; n ;

aleshores

xk =b� a

2� cos 2k + 1

2(n+ 1)� +

a+ b

2; amb xk 2 [a; b] :

substituint ara per trobar el maxx2[a;b]

j (x� x0) � � � (x� xn) j obtindrem

maxx2[a;b]

����Qnk=0

�x�

�b� a

2� cos 2k + 1

2(n+ 1)� +

a+ b

2

������ == max

x2[a;b]

����Qnk=0

�x� a+ b

2��b� a

2� cos 2k + 1

2(n+ 1)�

������ :

Notant que x� a+ b

2=b� a

2y, podem escriure

maxy2[�1;1]

����Qnk=0

�b� a

2y � b� a

2� cos 2k + 1

2(n+ 1)�

����� ==

�b� a

2

�n+1

� maxy2[�1;1]

����Qnk=0

�y � cos

2k + 1

2(n+ 1)�

�����pel teorema

=(b� a)n+1

2n+1� 1

2n=

(b� a)n+1

22n+1:

Aix�� doncs, l'expressi�o de l'error com�es quan interpolem la funci�o f(x) en un interval[a; b] utilitzant les abscisses de Txebyshev ser�a

j f(x)� pn(x) j� (b� a)n+1

22n+1� sup j f

(n+1)(�x) j(n+ 1)!

:

Exemple. Interpoleu la funci�o f(x) = sinx a [�1; 1] per un polinomi de grau 1,utilitzant abscisses de Txebyshev.

Page 93: Calcul Numeric - Bonet

Interpolaci�o 101

En aquest cas, hem de prendre nom�es dos valors en la f�ormula xk =

cos

�2k + 1

2(n+ 1)�

�, k = 0; 1 (n = 1):

x0 = cos�

4=

p2

2;

x1 = cos3�

4= �

p2

2:

Si utilitzem per exemple interpolaci�o de Lagrange, tindrem que

p1(x) = f(x0) � x� x1x0 � x1

+ f(x1) � x� x0x1 � x0

;

�es a dir,

p1(x) = sin

p2

2�x+

p2

2p2

+ sin

�p2

2

!�x�

p2

2�p2

=p2 sin

p2

2� x :

4.9 Interpolaci�o d'Hermite

Amb aquest nom es coneix un cas particular d'interpolaci�o per la qual s'exigeixque el polinomi interpolador coincideixi amb la funci�o i, a m�es, amb la derivada de lafunci�o en una s�erie de punts. De fet, aquest polinomi es pot calcular a partir de lesdifer�encies dividides, si generalitzem aquest concepte al cas

f [x0; x0] = limx1!x0

f(x1)� f(x0)

x1 � x0= f 0(x0)

f [x0; x0; x1] =�f [x0; x0] + f [x0; x1]

�x0 + x1=�f 0(x0) + f [x0; x1]

x1 � x0:

Vegem, mitjan�cant un exemple, com es calcula el polinomi interpolador d'Hermiteque, de fet, equival a considerar dues vegades el valor en els punts i mitjan�cant lageneralitzaci�o anterior aproximar f [xi; xi] per f

0(xi). Exemple. Trobeu un polinomique interpoli una funci�o f i la seva derivada a partir de les dades seg�uents: f(0) = 3,f 0(0) = 1, f(1) = 2, f 0(1) = �2.

Page 94: Calcul Numeric - Bonet

102 C�alcul num�eric

Fem la taula de difer�encies dividides:

x0 0 3f [x0; x0] = f 0(0) = 1

x0 0 3 f [x0; x0; x1] =�1�11�0 = �2

f [x0; x1] =2�31�0 = �1 f [x0; x0; x1; x1] = 1

x1 1 2 f [x0; x1; x1] =�2+11�0 = �1

f [x1; x1] = f 0(1) = �2x1 1 2

El polinomi interpolador ser�a

p(x) = f0 + f [x0; x0](x� x0) + f [x0; x0; x1](x� x0)(x� x0)+

+ f [x0; x0; x1; x1](x� x0)(x� x0)(x� x1) =

= 3 + 1(x� 0)� 2(x� 0)2 + 1(x� 0)2(x� 1) = x3 � 3x2 + x+ 3 :

F�ormula de l'error.

Sigui H2m+1(x) el polinomi interpolador d'Hermite que interpola una funci�o f(x)de classe C2m+2. Aleshores,

f(x)�H2m+1 =f (2m+2)(�x)

(2m+ 2)![(x� x0)(x� x1) � � � (x� xm)]

2 ;

on �x pertany a l'interval m�es petit que cont�e [x; x0; x1; : : : ; xm].

4.10 Fenomen de Runge

Estudiem ara una di�cultat que trobem quan volem interpolar una funci�o f(x) enuna xarxa molt gran de punts equiespaiats. Intu��tivament podem pensar que si prenemm�es punts, i per tant el grau del polinomi interpolador �es m�es gran, aconseguirem unamillor aproximaci�o de f(x). Aix�o en general �es fals, ja que es pot demostrar quenormalment no tenim converg�encia dels polinomis interpoladors, Pn(x), cap a f(x)quan n �! 1. A la �gura podem veure la interpolaci�o de la funci�o f(x) = 1

1+30x2 a

l'interval [�1; 1].

Page 95: Calcul Numeric - Bonet

Interpolaci�o 103

La l��nia cont��nua representa la gr�a�ca de la funci�o i la l��nia discont��nua ambratlles m�es llarges �es la corresponent al polinomi interpolador de grau 10, prenentpunts equiespaiats. Com es pot observar, la discrep�ancia entre les dues gr�a�ques �esespecialment notable en els extrems de l'interval, mentre que en el centre les duesgr�a�ques s�on prou aproximades. Aquest comportament �es t��pic de la interpolaci�o enpunts equidistants amb polinomis de grau elevat, �es el que s'anomena fenomen deRunge.

A la �gura tenim una tercera corba puntejada que com veiem aproxima millorla funci�o; aquesta corba �es l'obtinguda interpolant la funci�o per un polinomi degrau 10 prenent com a xarxa de punts les abscisses de Txebyshev. Com es potobservar l'aproximaci�o �es millor, per�o en els extrems de l'interval continuem tenintm�es discrep�ancia entre les gr�a�ques que no pas en el centre de l'interval.

Com a conclusi�o podem dir que no ser�a una bona soluci�o interpolar per polinomisde grau elevat, i en tot cas no prendre punts equiespaiats per ferho. A l'apartatseg�uent, veurem quina �es l'alternativa m�es v�alida en el cas d'utilitzar molts punts enla interpolaci�o; com veurem es tractar�a de trencar l'interval en d'altres m�es petits i encada un d'ells fer una interpolaci�o per polinomis de grau baix. Exigirem que entre duesparts consecutives els dos polinomis d'interpolaci�o empalmin de manera "regular",aix�o voldr�a dir que en un cert punt exigirem que aquests polinomis coincideixin i am�es que coincideixin tamb�e les seves derivades �ns a un cert ordre. Amb aquesta

Page 96: Calcul Numeric - Bonet

104 C�alcul num�eric

condici�o aconseguirem que la gr�a�ca de la interpolaci�o en tot l'interval complet siguial m�es "suau" possible. Aquesta construcci�o descrita anteriorment �es la que es coneixcom interpolaci�o per splines, que estudiarem seguidament.

4.11 Interpolaci�o per splines

Com hem comentat anteriorment, quan es tracta d'interpolar en un conjunt depunts molt gran, el polinomi utilitzat hauria de ser de grau molt elevat i aix�o donaria,en general, molt d'error (fenomen de Runge). D'altra banda, treballar amb polinomisde grau baix �es bastant c�omode. A partir d'aquestes dues idees es fa necess�aria lautilitzaci�o d'un nou tipus d'interpolaci�o, la spline. Aquesta t�ecnica d'interpolaci�o vaser introdu��da per Schoenberg (1946) i actualment �es molt utilitzada en enginyeria,construcci�o naval, disseny gr�a�c, etc. A continuaci�o de�nirem el concepte de spline.

De�nici�o. Siguin x0 < x1 < � � � < xn un conjunt de punts ordenats, i f0; f1; � � � fnels corresponents valors d'una funci�o f. Una funci�o spline de grau p que interpola f enels nodes xi, i = 0; : : : ; n �es una funci�o s(x) amb les propietats seg�uents:

(a) s(xi) = fi , i = 0; : : : ; n

(b) En cada interval [xi; xi+1], i = 0; 1; : : : ; n� 1, s(x) �es un polinomi de grau p.

(c) s(x) i les seves (p� 1) primeres derivades s�on cont��nues a [x0; xn].

Nosaltres ens limitarem a l'estudi de les splines m�es utilitzades que s�on les degrau 3 o splines c�ubiques, ja que la funci�o global resultant ser�a una funci�o de classeC2 (su�cient per a equacions diferencials ordin�aries de segon ordre).

Fem notar en primer lloc que, per al cas c�ubic (p = 3), si comptem les variablesdel problema obtindrem que el nombre de coe�cients a determinar en cada interval�es 4, perqu�e volem construir polinomis de grau 3. De manera global, considerant quetenim n intervals, tindrem en total 4n coe�cients a determinar.

D'altra banda, les condicions que han de satisfer aquests polinomis s�on queempalmin b�e tant ells com les seves derivades, �es a dir, anomenant si(x) al polinomi

Page 97: Calcul Numeric - Bonet

Interpolaci�o 105

de grau 3 de�nit a l'interval [xi; xi+1], i = 0; : : : ; n� 1, exigirem que

si(xi+1) = si+1(xi+1)

s0i(xi+1) = s0i+1(xi+1)

s00i (xi+1) = s00i+1(xi+1)

i = 0; : : : ; n� 2

que seran un total de 3(n�1) condicions (el punt x0 no interv�e). A m�es, volem que lafunci�o global s(x) interpoli en els punts x0; : : : ; xn, aix�� s(xi) = f(xi), �es a dir, n+ 1condicions m�es. En total tindrem doncs 4n� 2 condicions.

Com veiem cal imposar dues condicions suplement�aries que es poden triar demanera diferent. Les condicions m�es utilitzades s�on que la derivada segona s'anul�lien els extrems:

s00(x0) = s00(xn) = 0 :

Aquestes condicions de�neixen un tipus especial de splines que es coneixen amb el

nom de splines c�ubiques naturals. Es pot demostrar que aquesta elecci�o �es la que fa

queR ba (s

00(x))2 sigui m��nima entre totes les splines c�ubiques (que satisfan (a) i (b)).

4.12 Construcci�o de splines

Suposem que coneixem una funci�o f(x) en un conjunt de punts x0 < x1 < � � � <xn, fi = f(xi). Volem trobar una spline c�ubica natural (s00(x0) = s00(xn) = 0) queinterpoli f .

Seguirem el que s'anomena m�etode dels moments. La idea �es apro�tar el fet quela derivada segona s00(x) ser�a una funci�o cont��nua i, com que s�on splines c�ubiques(polinomis de tercer grau), a cada subinterval [xi; xi+1] la derivada segona s00i (x) ser�auna recta. Anomenarem hi = xi+1 � xi, Mi = s00i (xi) i sabem que M0 = Mn = 0.Aleshores per a l'interval [xi; xi+1] tenim

s00i (x) =Mi +Mi+1 �Mi

hi(x� xi) : i = 0; : : : ; n� 1 ;

integrem respecte a x :Z x

xi

s00i (t)dt =

Z x

xi

Midt+

Z x

xi

Mi+1 �Mi

hi(t� xi)dt :

Anomenant Bi = s0(xi), obtenim:

s0i(x) = Bi +Mi(x� xi) +(Mi+1 �Mi)

hi

(x� xi)2

2;

Page 98: Calcul Numeric - Bonet

106 C�alcul num�eric

tornant a integrar i anomenant Ai = s(xi) :

si(x) = Ai +Bi(x� xi) +Mi(x� xi)

2

2+

(Mi+1 �Mi)

hi

(x� xi)3

6:

Ara hem d'imposar que aquest polinomi interpoli

si(xi) = fi =) Ai = fi

si(xi+1) = fi+1 =) fi+1 = fi +Bihi +Mih2i2

+Mi+1 �Mi

hi

h3i6;

a��llant

Bi =fi+1 � fi

hi� (Mi+1 �Mi)

hi6�Mi

hi2; i = 0; : : : ; n� 1 :

Finalment hem d'imposar que per a dos intervals consecutius [xi; xi+1], [xi+1; xi+2],en el punt xi+1 coincideixin la 1a i la 2a derivada. La 2a coincideix per construcci�o,ja que

s00i (xi+1) =Mi +Mi+1 �Mi

hi(xi+1 � xi) =Mi+1

s00i+1(xi+1) =Mi+1 +Mi+2 �Mi+1

hi+1(xi+1 � xi+1) =Mi+1 :

Per a la primera derivada hem d'imposar que s0i(xi+1) = s0i+1(xi+1) , i = 0; : : : ; n� 2

s0i(xi+1) = Bi +Mi(xi+1 � xi) +(Mi+1 �Mi)

hi

(xi+1 � xi)2

2

s0i+1(xi+1) = Bi+1

igualant i considerant que hi = xi+1 � xi obtenim

Bi+1 = Bi +Mi � hi + (Mi+1 �Mi) � hi2:

Anteriorment hem obtingut l'expressi�o de Bi en funci�o dels moments Mi i dels valorsde la funci�o fi, tenim que

Bi =fi+1 � fi

hi� (Mi+1 �Mi) � hi

6�Mi � hi

2:

An�alogament,

Bi+1 =fi+2 � fi+1

hi+1� (Mi+2 �Mi+1) � hi+1

6�Mi+1 � hi+1

2;

Page 99: Calcul Numeric - Bonet

Interpolaci�o 107

substituint aquestes expressions a la relaci�o obtinguda anteriorment entre Bi+1 i Bi

obtindrem

fi+2 � fi+1

hi+1� (Mi+2 �Mi+1)

hi+1

6�Mi+1 � hi+1

2=

=Mi � hi + (Mi+1 �Mi)hi2+fi+1 � fi

hi� (Mi+1 �Mi)

hi6�Mi

hi2:

Passem a la primera part de la igualtat els termes que depenen dels moments i obtenim

hi �Mi+2(hi+hi+1)Mi+1+hi+1 �Mi+2 = 6��fi+2 � fi+1

hi+1� fi+1 � fi

hi

�:i = 0; : : : ; n�2 :

A la relaci�o anterior hem d'afegir els valors M0 =Mn = 0 que hem posat inicialment.Considerant el sistema d'equacions que hem trobat per obtenir els moments Mi, si

diem di+1 = 6 ��fi+2 � fi+1

hi+1� fi+1 � fi

hi

�als termes independents, podem dir que �es

un sistema tridiagonal, de diagonal dominant, que s'expressa com

T

0BBBBBB@

M1.........

Mn�1

1CCCCCCA

=

0BBBBBB@

d1.........

dn�1

1CCCCCCA

on T �es la matriu

T =

0BBBBB@

2(h0 + h1) h1h1 2(h1 + h2) h2

. . .. . .

. . .

hn�3 2(hn�3 + hn�2) hn�2hn�2 2(hn�2 + hn�1)

1CCCCCA

Notem que la primera i �ultima equacions s�on diferents, perqu�e M0 =Mn = 0 i que nocal calcular-los.

Una vegada resolt aquest sistema i coneixent els valors de Mi, trobarem els valorsdels Bi associats i substituint a l'expressi�o dels si(x) obtindrem els polinomis de tercergrau buscats a cada interval [xi; xi+1].

Vegem-ho en un exemple.

Exemple. Determineu les splines c�ubiques (naturals) que interpolin la taula de valorsseg�uents

xi 0 1 2 3 4

fi 2 3 4 3 2

Page 100: Calcul Numeric - Bonet

108 C�alcul num�eric

Hem de plantejar el sistema tridiagonal; per aix�o calculem pr�eviament els termesindependents que es poden obtenir a partir de la taula de difer�encies mixtes

xi fi0 2

11 3 0

12 4 �2

�13 3 0

�14 2

di = 6 �0@ 0�20

1A

La primera columna la calculem per difer�erencies dividides i la segona per difer�erenciesordin�aries. El sistema ser�a

0@ 4 11 4 1

1 4

1A0@M1

M2

M3

1A = 6 �

0@ 0�20

1A :

La soluci�o �es M1 =M3 = 6=7, M2 = �24=7, hem d'afegir M0 =M4 = 0.

Ara calculem els Bi a partir de la relaci�o

Bi =fi+1 � fi

hi� (Mi+1 �Mi)

hi6�Mi

hi2; i = 0; : : : ; n� 1 ;

obtenim B0 = 6=7, B1 = 9=7, B2 = 0, B3 = �9=7. Finalment ja podem donarl'expressi�o del polinomi de tercer grau a cada interval

s0(x) =x3

7+

6

7x+ 2 a [0; 1]

s1(x) = �5

7(x� 1)3 +

3

7(x� 1)2 +

9

7(x� 1) + 3 a [1; 2]

s2(x) =5

7(x� 2)3 � 12

7(x� 2)2 + 4 a [2; 3]

s3(x) = �1

7(x� 3)3 +

3

7(x� 3)2 � 9

7(x� 3) + 3 a [3; 4]

Page 101: Calcul Numeric - Bonet

Aproximaci�o 109

Cap��tol 5 Aproximaci�o

5.1 Introducci�o

Fins ara ens hem aproximat a les funcions mitjan�cant la interpolaci�o de polinomisen certs valors. Aix�o pot ser no recomanable en el cas que no coneguem prou b�eels valors de la funci�o. Per exemple, considerem la funci�o f(x) que descriu la relaci�oentre dues quantitats f��siques i que, per experimentaci�o, s'han obtingut nombres fique estan sotmesos a un error desconegut "i

f(xi) = fi + "i :

El problema d'ajustar les dades �es recuperar f a partir de fi i la recuperaci�o es far�atenint en compte altres informacions respecte de f(x) (se sap que �es un polinomi, que�es una suma trigonom�etrica, etc).

�Es a dir, si sabem o decidim que f(x) ha de ser representada per una combinaci�olineal de funcions �0(x); : : : ;�k(x), llavors es tractar�a de trobar c0; : : : ; ck par�ametres,de forma que

c0�0(x) + � � �+ ck�k(x)

aproximin f(x) de la millor manera possible.

El terme "millor manera possible" t�e moltes accepcions. Una manera de fer-hoser�a escollir el cj de forma que la suma de desviacions di :

di = fi � (c0�0(xi) + � � �+ ck�k(xi))

nP

i=0

j di j sigui m��nima; o b�e que maxi

j di j sigui m��nima.

© Els autors, 1998; © Edicions UPC, 1998.

Page 102: Calcul Numeric - Bonet

110 C�alcul num�eric

Tots dos criteris condueixen a equacions dif��cils de tractar per les cj . Per aix�os'acostuma a determinar-les de manera que es faci m��nima la suma

nX

i=0

d2i =nX

i=0

[fi � (c0�0(xi) + � � �+ ck�k(xi)]2 :

Aquest m�etode es denomina aproximaci�o per m��nims quadrats.

C�alcul dels cj

De�nim

E(c0; : : : ; ck) =nX

i=0

[fi � (c0�0(xi) + � � � + ck�k(xi))]2

per�o si c�0; : : : ; c�k han de fer E m��nima, llavors

@E

@cj(c�0; : : : ; c

k) = 0 ; j = 0; : : : ; k ;

�es a dir, que

�2nX

i=0

(fi � (c�0�0(xi) + � � �+ c�k�k(xi)))�j(xi) = 0 ; j = 0� k :

Per tant,c�0

Pni=0 �0(xi)�j(xi) + c�

1

Pni=0 �1(xi)�j(xi) + � � �

� � � + c�kPn

i=0 �k(xi)�j(xi) =Pn

i=0 fi�j(xi) ; j = 0� k :

Com que els xi i les � estan donades, aix�o �es un sistema d'equacions lineals(xk +1)� (xk +1) per les c�j : s�on les equacions normals de l'aproximaci�o per m��nimsquadrats.

Exemple

xj 1 2 3 4 5 6 7 8 9 10 11

fj .0 .6 1.77 1.92 3.31 3.52 4.59 5.31 5.79 7.06 7.17

Dibuixem aquestes dades:

© Els autors, 1998; © Edicions UPC, 1998.

Page 103: Calcul Numeric - Bonet

Aproximaci�o 111

xi fi

1 .00

2 .60

3 1.77

4 1.92

5 3.31

6 3.52

7 4.59

8 5.31

9 5.79

10 7.06

11 7.17

Tot fa pensar que es pot tractar d'una recta. Per tant, intentarem aproximarf(x) ' c0�0(x) + c1�1(x), on

�0(x) � 1 ; �1(x) � x :

Les equacions normals seran

c0

10X

i=0

�0(xi)�0(xi) + c1

10X

i=0

�0(xi)�1(xi) =10X

i=0

fi�0(xi)

c0

10X

i=0

�1(xi)�0(xi) + c1

10X

i=0

�1(xi)�1(xi) =10X

i=0

fi�1(xi)

�es a dir,

c0 � 11 + c1

10X

i=0

xi =10X

i=0

fi

c0

10X

i=0

xi + c1

10X

i=0

x2i =10X

i=0

fixi :

© Els autors, 1998; © Edicions UPC, 1998.

Page 104: Calcul Numeric - Bonet

112 C�alcul num�eric

Si calculem els coe�cients, tindrem

10X

i=0

xi =1 + 11

211 = 66 ;

10X

i=0

fi = 41:04

10X

i=0

x2i= 506 ;

10X

i=0

fixi = 328:05

el sistema �es11c0 + 66c1 = 41:04

66c0 + 506c1 = 382:05=)

c0 = �0:7314

c1 = 0:7437

Llavors l'aproximaci�o �esf(x) ' �0:7314 + 0:7437x :

Ara b�e, en la pr�actica aquest m�etode no es fa servir perqu�e els sistemes lineals quesurten acostumen a ser mal condicionats.

Exemple

xi = 10 +i� 1

5; i = 1; : : : ; 6

f(x) = 10� 2x +x2

10:

Prenem dades exactes fi i tractem d'aproximar per m��nims quadrats

f(x) ' c0 + c1x+ c2x2 :

Naturalment, si el c�alculs es fessin exactes, hauria de sortir c0 = 10, c1 = �2,c2 = 1=10.

Ara b�e, si utilitzem aritm�etica de 14 decimals i resolem el sistema amb el m�etodede Gauss, ens surt

c0 =

6

9:9999997437 : : : ; c1 =

7

�1:9999999511 : : : c2 =

7

0:0999999976 : : : ;

de manera que l'aritm�etica de 14 decimals (coma otant) nom�es d�ona 8 xifrescorrectes.

A m�es, si a la matriu del sistema canviem l'entrada (3,3), que �es 73393:5664, per73393:6 es produeix el resultat

c0 = 6:035 : : : ; c1 = �1:243 : : : ; c2 = 0:0639 : : : :

© Els autors, 1998; © Edicions UPC, 1998.

Page 105: Calcul Numeric - Bonet

Aproximaci�o 113

Exercici. Feu els c�alculs.

Notaci�o. Per comoditat i estalvi d'escriptura introduirem la notaci�o seg�uent:

Siguin f , g dues funcions de�nides als punts x0; : : : ; xn, aleshores de�nim < f; g >

com

< f; g >=nX

i=0

f(xi)g(xi) :

Sovint ens referirem a aix�o com al "producte escalar de f i g".

En aquesta notaci�o el sistema d'equacions normals s'escriu:

c�0 < �0;�j > +c�1 < �1;�j > + � � �+ c�k < �k;�j >=< f;�j > ; j = 0� k :

L'exemple anterior ens fa posar en gu�ardia sobre el tractament del m�etode delsm��nims quadrats a partir de les equacions normals sense un treball previ.

Una manera de resoldre aquest problema �es triar les �j de manera que siguinortogonals sobre el conjunt de punts x0; : : : ; xn, �es a dir que

nX

i=0

�j(xi)�`(xi) =< �j;�` >= 0 ; si j 6= ` ;

llavors el sistema d'equacions lineal queda redu��t a

cj

nX

i=0

�2

j(xi) =nX

i=0

fi�j(xi) ; j = 0� k ;

que amb la notaci�o de�nida abans sortir�a:

cj < �j;�j >=< f;�j > :

Aquest sistema �es de f�acil resoluci�o. Ara el problema ser�a com trobar aquestes �j

ortogonals.

© Els autors, 1998; © Edicions UPC, 1998.

Page 106: Calcul Numeric - Bonet

114 C�alcul num�eric

5.2 Aproximaci�o polinomial per m��nims quadrats.

Polinomis ortogonals

Suposarem ara que les funcions que volem aproximar s�on polin�omiques.

El problema �es el seg�uent: donats

x0; : : : ; xn i f(x0) ' f0; : : : ; f(xn) ' fn ;

es tracta d'aproximarf(x) ' c0�0(x) + � � �+ ck�k(x)

de manera que:

1r. els �j siguin polinomis de grau j

2n. els �j siguin ortogonals sobre x0; : : : ; xn.

Notaci�o. A partir d'ara adoptarem per a aquests polinomis la notaci�o tradicional,P0(x); P1(x); : : :, i els suposarem m�onics.

El problema immediat �es com obtenir aquests polinomis ortogonals. Per aix�otenim el seg�uent

TEOREMA. Els polinomis ortogonals Pj(x) satisfan una llei de recurr�encia de la

forma

Notaci�o.

Pj+1(x) = (x�Bj)Pj(x)� CjPj�1(x) ; j = 0; 1; : : : ; n� 1 ;

onP�1(x) = 0 ; P0 = 1

Bj =

nX

i=0

xiP2j (xi)

!� nXi=0

P 2j (xi)

!=

< x;P 2j >

< Pj ; Pj >

C0 = 0

Cj =

nX

i=0

P 2j (xi)

!� nXi=0

P 2j�1(xi)

!=

< Pj ; Pj >

< Pj�1; Pj�1 >; j > 0 :

DEMOSTRACI �O. Est�a basada en la inducci�o. Aix�� si, P�1(x) � 0 i P0(x) � 1,

busquem P1(x) de la forma

P1(x) = x�B0 :

© Els autors, 1998; © Edicions UPC, 1998.

Page 107: Calcul Numeric - Bonet

Aproximaci�o 115

Si P1(x) ha de ser ortogonal a P0, cal que

< P1; P0 >=nX

i=0

P1(xi) =nX

i=0

(xi �B0) = 0 ;

per tant,

B0 =

nX

i=0

xi

!�(n+ 1) :

Si P2(x), el busquem de la forma

P2(x) = (x�B1)P1(x)� C1P0(x) :

Imposant la condici�o d'ortogonalitat amb P0(x), P1(x) arribem a

B1 =

nX

i=0

xiP21 (xi)

!� nXi=0

P 21 (xi)

!

C1 =

nX

i=0

P 21 (xi)

!�(n+ 1) :

Suposem que hem determinat P0, P1; : : : ; P` i busquem P`+1 de la forma

P`+1(x) = (x�B`)P`(x)� C`P`�1(x) :

Imposant la condici�o d'ortogonalitat amb P` i P`�1 determinarem B` i C`. Nom�es

resta veure que P`+1 �es ortogonal a tots els Pk amb k < `� 1. Per aix�o consideremPn

i=0 P`+1(xi)Pk(xi) =P

n

i=0 xiP`(xi)Pk(xi)�

�B`

Pn

i=0 P`(xi)Pk(xi)� C`

Pn

i=0 P`�1(xi)Pk(xi) :

Els dos darrers termes s�on zero per hip�otesi d'inducci�o. Pel primer resulta que xPk(x)�es un polinomi de grau m�es petit o igual que ` � 1; per tant, podr�a ser expressat

com a combinaci�o lineal dels `� 1 primers polinomis ortogonals i tamb�e per hip�otesi

d'inducci�o el primer terme ser�a zero.

Hi ha altres maneres de construir els polinomis ortogonals, per�o la que hem descrit�es la que s'adapta millor a la computaci�o.

Exemple. Amb les mateixes dades que a l'exemple anterior resoldrem el problemamitjan�cant els polinomis ortogonals seg�uents:

P0(x) = 1

P1(x) = (x� 10:5) B0 = 10:5

P2(x) = (x� 10:5)2 � 0:1166667 B1 = 10:5

C1 = 0:1166667

© Els autors, 1998; © Edicions UPC, 1998.

Page 108: Calcul Numeric - Bonet

116 C�alcul num�eric

Apro�tant que s�on ortogonals, calculem la millor aproximaci�o per m��nimsquadrats

P �(x) = d�0P0(x) + d�1P1(x) + d�2P2(x) :

El sistema d'equacions normals ara �es:

d�0

5X

i=0

P 2

0 (xi) =5X

i=0

fiP0(xi)

d�1

5X

i=0

P 2

1(xi) =

5X

i=0

fiP1(xi)

d�2

5X

i=0

P 2

2 (xi) =5X

i=0

fiP2(xi)

i substituintd�0= 0:03666667

d�1= 0:1

d�2= 0:0999999

calculats amb 7 xifres decimals.

Si escrivim P �(x) (per comparar-ho amb el resultat anterior), com que

P �(x) = C�

0+ C�

1x+ C�

2x2

s'obt�eC�

0 = 9:99998

C�

1 = �1:9999997

C�

2 = 0:0999999

resultat for�ca millor que l'anterior, tenint en compte que els c�alculs s'han fet amb 7xifres decimals.

Exercici. Refeu els c�alculs.

5.2.1. Polinomis de Gram

Sempre que sigui possible �es convenient, quan disposem de dades uniformementespaiades, utilitzar un nombre senar de punts i fer un canvi de variable per tal deposar l'origen al punt mitj�a del rang de les abscisses.

Aix��, si tenim les dades d'una funci�o relatives als punts xi = x0 + nh, n =0; 1; 2; : : : ; 2L. El canvi x = xL + sh porta les abscisses anteriors a les abscisses �L,�(L� 1); : : : ; 0; : : : ; L� 1; L.

© Els autors, 1998; © Edicions UPC, 1998.

Page 109: Calcul Numeric - Bonet

Aproximaci�o 117

Els polinomis ortogonals relatius a aquestes abscisses reben el nom de polinomisde Gram. Es pot demostrar que es poden escriure de la forma (no m�onica)

pj(s; 2L) =jX

k=0

(�1)k+j(j + k)(2k)

(k!)2(L+ s)(k)

(2L)(k);

on x(0) = 1, x(n) = x(x� 1)(x� 2) � � � (x� n+ 1).

D'aquesta manera, si tenim els valors de f(s) a �L, �L + 1; : : : ; 0; : : : ; L,l'aproximaci�o a f(s) per m��nims quadrats donada pels m polinomis de Gram �es

f(s) 'mX

j=0

bjpj(s; 2L) ;

onbj = wj=�j

wj =LX

s=�L

f(s) � pj(s; 2L)

�j =LX

s=�L

p2j(s; 2L) =(2L+ j + 1)!(2L � j)!

(2j + 1)[(2L)!]2:

5.3 El cas continu

Igual que en el cas discret, podem plantejar-nos l'aproximaci�o d'una funci�omitjan�cant polinomis a tot un interval. Per tal de traslladar a aquest cas el m�etode delsm��nims quadrats farem el seg�uent raonament heur��stic: sigui f(x) una funci�o de�nidaa l'interval [a; b]. Considerem la partici�o x0 = a, xi = x0 + ih, xn = b, 0 � i � n.Aproximar f(x) per una combinaci�o lineal �cjpj(x) � g(x) vol dir determinar els cjde manera que

nX

i=0

[f(xi)� g(xi)]2

sigui m��nima. Ara b�e, aix�o �es del tot equivalent a imposar la condici�o que la desviaci�oquadr�atica mitjana

1

n

nX

i=0

[f(xi)� g(xi)]2 ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 110: Calcul Numeric - Bonet

118 C�alcul num�eric

sigui m��nima. I aquesta es pot escriure de la forma

nX

i=0

[f(xi)� g(xi)]2h

nh� 1

b� a

nX

i=0

[f(xi)� g(xi)]2h :

Veiem que la s�erie �es una suma de Riemann. Si fem tendir n �!1 i les funcionsf , g s�on prou regulars, la s�erie tendeix a ser

Z b

a[f(x)� g(x)]2 dx :

Aix�� doncs, �es natural dir que aproximar per m��nims quadrats en el cas continu �estrobar c0; : : : ; ck de manera que faci m��nima

Z b

a

24f(x)�

kXj=0

cjpj(x)

352

dx :

A partir d'aqu�� tot funciona igual que en el cas discret. El producte escalar ara ser�a

< f; g >=

Z b

af � g :

Ara, els polinomis ortogonals compliran

Z b

aPk(x)Pl(x)dx = 0 si k 6= l

i tamb�e es trobaran a partir d'una llei de recurr�encia.

5.3.1. Polinomis de Legendre

S�on els polinomis ortogonals que s'obtenen quan l'interval �es el [�1; 1]. Si en

comptes d'imposar la condici�o que siguin m�onics, fem queR1

�1P 2k = 1, els polinomis

satisfan la relaci�o de recurr�encia

n+ 1p2n+ 3

Pi+1(x) =(2n+ 1)p2n+ 1

xPi(x)� np2n� 1

Pi�1(x) ;

amb P0(x) =

p2

2, P1(x) =

r3

2x. Dit altrament, aquests polinomis formen un sistema

ortonormal.

Exercici. Dedu��u la f�ormula de recurr�encia anterior.

© Els autors, 1998; © Edicions UPC, 1998.

Page 111: Calcul Numeric - Bonet

Aproximaci�o 119

5.3.2. Polinomis de Txebyshev

Algunes vegades ens cal donar m�es rellev�ancia a l'aproximaci�o en un punt (opunts) determinat que a la resta. Aix�o es formula matem�aticament multiplicant peruna "funci�o pes", w(x) > 0, les desviacions. Aix��, la quantitat a minimitzar seria enel cas discret,

nX

i=0

w(xi)[f(xi)� g(xi)]2 ;

i en els cas continu, Zb

a

w(x)[f(x) � g(x)]2 dx :

La teoria ara es desenvoluparia exactament igual que abans. Aix�� els polinomisortogonals en el cas continu hauran de complir

Zb

a

w(x)Pk(x)Pl(x) dx = 0 si k 6= l :

En el cas que l'interval �es el [�1; 1] i w(x) =1p

1� x2s'obtenen els polinomis

de Txebyshev, Ti(x), vistos ja al cap��tol anterior. Amb vista a l'apartat seg�uent, �esd'inter�es aquesta taula:

A B

T0(x) = 1 1 = T0T1(x) = x x = T1T2(x) = 2x2 � 1 x2 = 2�1(T0 + T2)T3(x) = 4x3 � 3x x3 = 2�2(3T1 + T3)T4(x) = 8x4 � 8x2 + 1 x4 = 2�3(3T0 + 4T2) + T4T5(x) = 16x5 � 20x3 + 5x x5 = 2�4(10T1 + 5T3 + T5)T6(x) = 32x6 � 48x4 + 18x2 � 1 x6 = 2�5(10T0 + 15T2 + 6T4 + T6)T7(x) = 64x7 � 112x5 + 56x3 � 7x x7 = 2�6(35T1 + 21T3 + 7T5 + T7)

Economitzaci�o de Txebyshev (o telesc�opica)

De vegades conv�e tenir la representaci�o d'una funci�o per un polinomi de maneraque quedi garantit l'error que es comet en tot un interval. Si hem d'avaluar moltscops el polinomi ens importar�a tenir-lo de manera que les avaluacions siguin al m�es"barates" possible.

© Els autors, 1998; © Edicions UPC, 1998.

Page 112: Calcul Numeric - Bonet

120 C�alcul num�eric

De�nici�o. El polinomi P �

j (x) que minimitza maxa�x�b

j f(x) � Pj(x) j sobre tots els

polinomis de grau � j, s'anomena polinomi mini-max de f a l'interval [a; b].

Trobar els polinomis mini-max d'una funci�o �es generalment un proc�es dif��cil, queno farem. En canvi farem servir una t�ecnica senzilla que de vegades ens donar�a bonesaproximacions polin�omiques de grau petit a una funci�o. Il�lustrem-ho amb un exemple.Considerem f(x) = ex a [�1; 1]. Per tal d'obtenir aproximacions per la f�ormula deTaylor que ens garanteixen un error " = 10�8 a tot l'interval, ens cal anar �ns al terme

12 de la s�erie de Taylor: si Pi(x) =nP

r=0

xr=r! obtenim que

Ri+1(x) = ex � Pi(x) =xn+1

(n+ 1)!e� ; j � j<j x j ;

per tant,

max�1�x�1

j ex � Pi(x) j= max�1�x�1

j Ri+1(x) j�e

(n+ 1)!:

Si volem " = 10�8, llavors surt n = 12, que �es un mal resultat, ja que un polinomi degrau dotze no �es pas f�acil d'avaluar.

Per tal d'obtenir una aproximaci�o polin�omica de grau baix que tingui la mateixaprecisi�o es fa servir la t�ecnica d'economitzaci�o de Txebyshev (o telesc�opica).

Partim de Pi(x), que aproxima millor (ho podem fer per Taylor) que la toler�anciaque volem

max j f(x)� Pi(x) j= "i < " :

Llavors trobem el polinomi P �i�1(x) de grau � (n� 1) que �es l'aproximaci�o mini-maxa Pi(x).

Siguimax�1�x�1

j f(x)� P �i�1(x) j� "i +Ei ;

on Ei =k Pi � P �i�1 k1, llavors

max j f(x)� P �i�1(x) j� "i +Ei :

Si encara �es cert que "i+Ei < ", es continua el procediment. Continuem el procediment�ns que

"i +Ei + � � �+Ej+1 � " < "i +Ei + � � �+Ej+1 +Ej :

Llavors P �j �es el polinomi de grau m�es baix buscat. L'aproximaci�o mini-max d'unpolinomi de grau n per polinomis de grau m�es petit, la d�ona el lemes seg�uent.

© Els autors, 1998; © Edicions UPC, 1998.

Page 113: Calcul Numeric - Bonet

Aproximaci�o 121

Lema. Si Pi(x) = aixn + q(x), grau (q(x)) < n, llavors

P �

i�1(x) = Pi(x)� ai21�nTi(x) :

DEMOSTRACI�O. Recordem que si Q(x) = xn + � � � i volem interpolar a [�1; 1] perun polinomi de grau n � 1, P �

i�1(x), de manera que supx2[�1;1]

j Q(x) � P �

i�1(x) j sigui

m��nim, s'aconsegueix interpolant a les n arrels del polinomi de Txebyshev Ti(x). Am�es tenim que

Q(x)� P �

i�1(x) = (x� x1) � � � (x� xi)Q(n)(�)

n!:

Com que

Ti(x) = 2xTi�1(x)� Ti�2(x)T0 � 1

T1 = x;

tenim que el coe�cient principal �es 2n�1.

�Es a dir, queTi(x) = 2n�1(x� x1) � � � (x� xi) ;

on x1; : : : ; xi s�on els zeros del polinomi de Txebyshev

xk = cos

�2k � 1

2�

�:

Per tant,Q(x)� P �

i�1 = 21�nTi(x) ;

multiplicant per ai tenim

Pi(x)� P �

i�1 = an21�nTi(x) :

Conclusions Sabem que podem posar de manera �unica

Pi(x) = d0T0(x) + d1T1(x) + � � �+ diTi(x)

i, siPi(x) = aix

n + � � � ;

resulta queai = di2

n�1

idi = 21�nai :

© Els autors, 1998; © Edicions UPC, 1998.

Page 114: Calcul Numeric - Bonet

122 C�alcul num�eric

Per tant,

P �

i�1(x) = d0T0 + � � � + diTi(x)� 21�naiTi(x)

P �i�1(x) = d0T0 + � � � + di�1Ti�1(x)

Ei = max�1�x�1

j Pi(x)� P �i�1(x) j=j ai j 21�n =j di j :

Finalment,P �j = d0T0 + � � �+ djTj

Ej =j dj j :

Algorisme. Economitzaci�o de s�eries de pot�encies

Objectiu. Obtenir una aproximaci�o polin�omica f(x) amb precisi�o " sobre [�1; 1].

1. Desenvolupeu en s�erie de Taylor sobre [�1; 1].

2. Trunqueu la s�erie per obtenir un polinomi

Pi(x) = a0 + a1x+ � � �+ aixi que aproxima f(x) amb un error "i < ".

3. Desenvolupeu Pi(x) = d0T0(x) + � � �+ diTi(x).

4. Escolliu k el m�es petit enter tal que "i+ j dk+1 j + � � �+ j di j� ".

5. Poseu Pk = d0T0(x) + � � � + dkTk(x) i aquest aproxima f(x) a [�1; 1] amb unatoler�ancia ".

Exemple. Trobeu un polinomi economitzat que doni el valor de ex a [�1; 1] amb un

error � 0:005 =1

210�2.

1. ex = 1 + x+ � � �+xn

n!+Ri+1(x)

2. max j Ri+1 j�e

(n+ 1)!; n = 5 R =

e

n!< 0:004 < 0:005

ex ' P5(x) = 1 + x+x2

2+ � � � +

x5

120; "5 � 0:004 :

3. P5(x) = 1:2656250+1:1302083T1 +0:2708333T2 +0:0442708T3 ++0:0052083T4 +0:0005208T5 .

© Els autors, 1998; © Edicions UPC, 1998.

Page 115: Calcul Numeric - Bonet

Aproximaci�o 123

4. "5 + d5 = 0:004 + 0:0005208 = 0:0045208 < 0:05,

per�o

"5 + d5 < 0:05 < "4 + "5 + d5

P4 = d0T0 + d1T1 + d2T2 + d3T3 + d4T4 :

Exercici. Feu el mateix amb la funci�o sin�x a [�1; 1] amb " = 0:0001.

5.4 Sistemes lineals sobredeterminats

Suposem ara que volem determinar unes certes constants x1; : : : ; xi, per�o que �esmolt dif��cil o impossible mesurar les quantitats directament. D'altra banda, �es f�acilde mesurar una certa magnitud y que dep�en de manera coneguda de les x1; : : : ; xi i am�es de condicions experimentals controlables, simbolitzades per z

y = f(z;x1; : : : ; xi) :

Suposem que fem un seguit d'experiments m > n

yk = f(zk;x1; : : : ; xi) � fk(x1; : : : ; xi) ; k = 1; : : : ;m :

En general aquestes condicions formaran un sistema sobredeterminat que normalmentno tindr�a soluci�o, a causa dels errors usuals (truncament, arrodoniment, etc.). Elproblema no ser�a "trobar la soluci�o", sin�o "trobar la millor soluci�o possible".

�Es a dir, donades f1; : : : ; fm ; y1; : : : ; ym, es tracta de trobar x1; : : : ; xi de maneraque

mX

k=1

(yk � fk(x1; : : : ; xi))2

sigui m��nim.

Si considerem el cas lineal

f1(x1; : : : ;xi) = a11x1 + � � � + a1nxi

...

fm(x1; : : : ;xi) = am1x1 + � � � + amnxi

© Els autors, 1998; © Edicions UPC, 1998.

Page 116: Calcul Numeric - Bonet

124 C�alcul num�eric

0B@

a11 a1n...

...am1 amn

1CA

0B@

x1...xn

1CA =

0B@

y1...ym

1CA

�Es a dir, Ax = y. Si volem trobar x de manera que

k y �Ax k22 ; sigui m��nim :

Les equacions normals s�on

mXk=1

(yk � fk(x1; : : : ; xi)) � aki = 0 ; i = 1; : : : ; n

mXk=1

ykaki �mXk=1

0@

nXj=1

akjxj

1Aaki = 0

mXk=1

0@

nXj=1

akjakixj

1A =

mXk=1

ykaki ; i = 1; : : : ; n :

La component i-�esima de ATAx �es

(ATAx)j = (a1ia11 + a2ia21 + � � � + amiam1)x1 + � � �

� � �+ (a1ia1m + � � �+ amiamn)xi) =nX

k=1

mXj=1

ajiajkxk :

Per tant, el sistema lineal a resoldre �es

ATAx = AT y ;

notem que aix�o �es un sistema n� n.

TEOREMA. El problema de m��nims quadrats

minx2R

n

k y �Ax k

t�e almenys un m��nim x0. Si x1 �es un altre m��nim, llavors Ax0 = Ax1. El residu

r = y � Ax0 satisf�a AT r = 0. Cada m��nim x0 �es tamb�e una soluci�o de ATAx = AT y

i a l'inrev�es.

© Els autors, 1998; © Edicions UPC, 1998.

Page 117: Calcul Numeric - Bonet

Aproximaci�o 125

5.5 Aproximaci�o de Fourier

A vegades se sap que les dades de qu�e disposem corresponen a una funci�o peri�odica.En aquests casos �es natural representar-la per combinacions lineals de les funcions1; sinx; : : : ; sinkx; cos x; cos 2x; : : : ; cos kx.

Recordem que si f(x) �es una funci�o cont��nua a salts i 2�-peri�odica, llavors

f(x) = a0=2 +1X

i=1

ai cosnx+ bi sinnx

en els punts de continuitat i

f(x+) + f(x�)

2= a0=2 +

1X

i=1

ai cosnx+ bi sinnx

en els punts de salt. Recordem que els coe�cients ai, bi (coe�cients de Fourier) venendonats per

ai =1

Z �

��f(x) cosnxdx ; bi =

1

Z �

��f(x) sinnxdx :

Els coe�cients de Fourier tenen la propietat seg�uent

TEOREMA. D'entre totes les combinacions lineals possibles de les funcions

1; sinx; cos x; : : : ; sin kx; cos kx; : : : ;, la que fa m��nima

f(x)� A0 +

kXi=1

Ai cosnx+Bi sinnx

! 2

2

=

Z �

��

"f(x)�

A0 +

kXAi cosnx+Bi sinnx

!#2dx

�es la combinaci�o lineal formada pels coe�cients de Fourier. �Es a dir, A0 = a0=2,Ai = ai, Bi = bi.

Vegem ara propietats paral�leles en el cas discret. Considerem que disposem de

dades sobre una funci�o que sabem peri�odica als punts xj =2�i

2L+ 1, i = 0 � 2L de

l'interval [0; 2�] (notem que hem dividit l'interval [0; 2�] en 2L + 1 trossos i que enprenem 2L , �es a dir, 2L+ 1 punts, sense el 2�).

© Els autors, 1998; © Edicions UPC, 1998.

Page 118: Calcul Numeric - Bonet

126 C�alcul num�eric

Per exemple,

x0 x1 x2 x3 x4 x5 x6 x7 x8

0 2�9

4�9

6�9

8�9

10�9

12�9

14�9

16�9

2�

(No prenem el punt 2� ja que les funcions se suposen 2�-peri�odiques i, per tant, en el0 i en el 2� han de valer el mateix). Suposem que disposem dels valors f0, f1; : : : ; f2L;

llavors, volem ajustar f(x) mitjan�cant1

2a0 +

mP

j=1

aj cos jx + bj sin jx de manera que

(m� L) f(x)�0@1

2a0 +

mXj=1

aj cos jx+ bj sin jx

1A 2

2

sigui m��nima, �es a dir, de manera que

2LXj=0

�fi�

�1

2a0 +

Xaj cos jxj + bj sin jxj

��2

sigui m��nim. A partir d'aquesta condici�o obtindr��em (derivant) un sistema d'equacionslineals per a les a i les b. Recordem que el sistema se simpli�cava molt si les funcionsbase eren ortogonals, cosa que passa aqu��.

Proposici�o. Sigui xj =2�i

2L+ 1, L natural positiu, i = 0� 2L, llavors es compleixen

les relacions seg�uents:

2LXj=0

sin jxj sinkxj

8>>>><>>>>:

0 ; j 6= k

2L+ 1

2; j = k 6= 0 ; 0 � j; k � m

0 ; j = k = 0

;

2LXj=0

cos jxj cos kxj

8>>>><>>>>:

0 ; j 6= k

2L+ 1

2; j = k 6= 0 ; 0 � j; k � m

2L+ 1 ; j = k = 0

;

2LXj=0

cos jxj sinkxj 0; j; k; 0 � j; k � m:

© Els autors, 1998; © Edicions UPC, 1998.

Page 119: Calcul Numeric - Bonet

Aproximaci�o 127

Aleshores, el sistema d'equacions normals d�ona lloc a

aj =2

2L+ 1

2LX

j=0

fj cos2�ij

2L+ 1; j = 0; : : : ;m

bj =2

2L+ 1

2LX

j=0

fj sin2�ij

2L+ 1; j = 1; : : : ;m :

Un cop calculats els aj i bj tenim que la desviaci�o quadr�atica mitjana vindr�adonada per

�2m =2LX

j=0

8<:fj �

2412a0 +

mXj=1

(aj cos jxj + bj sin jxj)

359=;2

=

=2LXj=0

f2j �2L+ 1

2

24a202

+mXj=1

(a2j + b2j )

35 (Parseval) :

5.5.1. Canvi d'escala

En el cas general de tenir una funci�o T -peri�odica f , es pot reduir al cas 2�-peri�odicde�nint la transformaci�o

�f(y) = f

�yT

2�

(o b�e f(x) = �f

�x2�

T

�) :

Llavors tindrem que l'aproximaci�o per �f(y) �es

�f(y) ' a0=2 +mXj=1

aj cos jy + bj sin jy

f

�yT

2�

�' a0=2 +

mXj=1

aj cos jy + bj sin jy

f(x) ' a0=2 +mXj=1

aj cos j2�x

T+ bj sin j

2�x

T:

© Els autors, 1998; © Edicions UPC, 1998.

Page 120: Calcul Numeric - Bonet

128 C�alcul num�eric

5.5.2. Interpolaci�o trigonom�etrica

Si m = L, llavors l'aproximaci�o esdev�e interpolaci�o, ja que es compleix

yL(x) = a0=2 +LX

j=1

(aj cos jx+ bj sin jx)

i es t�e queyL(xj) = fj ; i = 0� 2L :

Si el nombre de punts �es parell, 2L, llavors el polinomi interpolador trigonom�etricve donat per

yL(x) = a0=2 +L�1X

j=1

(aj cos jx+ bj sin jx) +aL2

cosLx ;

on

aj =1

L

2L�1X

k=0

fk cos�kj

L

bj =1

L

2L�1X

k=0

fk sin�kj

L:

5.6 Transformada r�apida de Fourier (FFT)

Si de�nim �0 = a0=2, �j =1

2(aj � ibj), �2L�j =

1

2(aj + ibj), �L =

aL2,

j = 1; : : : ; L� 1, llavors el polinomi trigonom�etric es pot escriure de la forma

yL(x) =2L�1X

j=0

�jeijx ;

on els �j compleixen

�j =1

2L

2L�1X

k=0

fke�

�ijk

2L ; j = 0; 1; : : : ; 2L� 1 :

La darrera expressi�o rep el nom de "transformada discreta de Fourier de lasuccessi�o ffjg " (DFT). Aquesta transformaci�o �es una eina molt utilitzada en teoriadel senyal. El seu c�alcul e�cient es fa mitjan�cant la transformada r�apida de Fourier(FFT), que �es l'objectiu dels apartats seg�uents.

© Els autors, 1998; © Edicions UPC, 1998.

Page 121: Calcul Numeric - Bonet

Aproximaci�o 129

5.6.1 La transformada de Fourier de funcions peri�odiques

Se sap que les funcions peri�odiques admeten una representaci�o en s�erie de Fourier:

x(t) �1X

i=�1

X(n)ei2�nft

on T �es el per��ode, f �es la freq�u�encia (f = 1=T ) i

X(n) =1

T

Z T=2

�T=2x(t)ei2�nftdt

s�on els coe�cients de Fourier.

La representaci�o en s�erie de Fourier ens permet associar a cada funci�o peri�odica,una funci�o \discreta"de�nida sobre Z

x(t) *) X(n)

Parlarem aix�� que la funci�o X(n) �es la transformada de Fourier de x(t) i que x(t) �esl'antitransformada de x(t).

Aquestes transformacions tenen molt inter�es en teoria de la senyal, ja que elsharm�onics (coe�cients de Fourier) d'un senyal peri�odic (una funci�o peri�odica) es poden,

mitjan�cant �ltres associats, calcular amb molta aproximaci�o. �Es a dir, disposemde mitjans per a calcular la funci�o X(n) i llavors utilitzar l'antitransformada per arecuperar x(t).

Per altra banda X(n) es pot calcular num�ericament amb molta e�ci�encia doncs,com es pot veure al cap��tol d'integraci�o num�erica, el m�etode dels trapezis donaresultats extremadament acurats per a les funcions peri�odiques.

5.6.2. La transformada de Fourier de funcions \aperi�odiques"

Sovint apareixen senyals que no s�on peri�odics, encara que tenen una durada detemps �nita (un impuls)

© Els autors, 1998; © Edicions UPC, 1998.

Page 122: Calcul Numeric - Bonet

130 C�alcul num�eric

Volem trobar un proc�es semblant que ens permeti representar aquest tipus desenyals. �Es a dir, ens cals de�nir un concepte de transformada de Fourier.

Per tal de motivar-ne la de�nici�o, considerem el seg�uent "tren d'impulsos", queescriurem per x1(t)

on x1(t) �es T peri�odica i

x1(t) =

(A 0 � t � t1

0 t1 < t < T � t1

© Els autors, 1998; © Edicions UPC, 1998.

Page 123: Calcul Numeric - Bonet

Aproximaci�o 131

La representaci�o en s�erie complexa de Fourier �es

x1(t) =1X

i=�1

�iein

2�

Tt

�i = 2A

�t1

T

�sin

�2�nt1T

2�nt1T

:

Si ara representem la funci�o sinc x �sinx

x,

tenim que �i �

T

2At1�i �es una successi�o de punts de la gr�a�ca de sinc x

Si fem tendir T �! 1, i mantenim t1 quiet, el tren d'impulsos inicial tendir�a al'impuls x2(t)

© Els autors, 1998; © Edicions UPC, 1998.

Page 124: Calcul Numeric - Bonet

132 C�alcul num�eric

A la vegada, la successi�o �i s'acumular�a m�es i m�es, �ns a "omplir" tota la gr�a�cade sinc x. Aquest proc�es el "matematitzem" de la forma seg�uent: Sabem que el trend'impulsos x1(t) es pot expressar

x1(t) =1X

i=�1

264 1

T

Z T=2

�T=2x1(s)e

��i

2�ns

T

�ds

375 ei

2�n

Tt:

Ara ho posem de la forma

x1(t) =1

2�

1Xi=�1

ei2�n

Tt�

2�

T

Z T=2

�T=2x1(s)e

�i2�ns

T ds :

Per a T molt gran, tindrem

x1(t) '1

2�

1Xi=�1

ei2�n

Tt�

2�

T

Z1

�1

x2(s)e�i

2�ns

T ds :

Per�o aix�o darrer no �es m�es que una suma de Riemann de la funci�o

eitwZ1

�1

x2(s)e�iwsds

per a la variable w en els punts w =2�

Tn. Per tant, si T �! 1 la s�erie "s'ha de

convertir" en la integral

1

2�

Z1

�1

eitw�Z

1

�1

x2(s)e�iwsds

�dw

© Els autors, 1998; © Edicions UPC, 1998.

Page 125: Calcul Numeric - Bonet

Aproximaci�o 133

i el tren d'impulsos x1(t), en x2(t). Aix��, tindrem

x2(t) =1

2�

Z1

�1

eitw�Z

1

�1

x2(s)e�iwsds

�dw :

Si examinem el proc�es seguit, veurem queZ1

�1

x2(s)e�iwsds

ha de correspondre al l��mit quan T �!1 dels coe�cients �i (llevat d'una constant).Naturalment en el cas que ens ocupa es t�e queZ

1

�1

x2(s)e�iwsds = 2A � t1sincwt1 :

En general es de�neix la transformada de Fourier d'una funci�o x(t) com

X(w) =

Z1

�1

x(s)e�iwsds :

Ja hem vist que (sota certes condicions t�ecniques que no precisem),

x(t) =1

2�

Z1

�1

X(w)eiwtdw

i aix�o de�neix l'antitransformada de Fourier.

5.6.3. L'impuls de Dirac

Basant-se en el tractament num�eric de la transformada de Fourier, es de�nir�al'anomenada transformaci�o discreta de Fourier (DFT) , la qual ens donar�a una (bona)aproximaci�o de la transformada de Fourier. Aquesta discretitzaci�o utilitza la funci�o �de Dirac, que passem r�apidament i heur��stica a introduir. Considerem la successi�o defuncions 'i(t) donades per

�Es clar queR'i(t)dt = 1 ; 8n. Aix��, existeix lim

i!1

R1

�1'i(t)dt = 1.

© Els autors, 1998; © Edicions UPC, 1998.

Page 126: Calcul Numeric - Bonet

134 C�alcul num�eric

En canvi no existeix cap funci�o ' de manera que

'(t) = limi!1

'i(t) :

Si pensem com es passa de Q a R, podem pensar a "ampliar" el concepte de funci�ode manera que dins d'aquest nou concepte s�� que hi hagi una funci�o tal que sigui ellimi!1

'i(t). Per aix�o "confondrem" (representarem) tota funci�o f de�nida a R amb la

seva actuaci�o sobre les funcions cont��nues a suport compacte, via l'operaci�o

'f�!

Z1

�1

f(t)'(t)dt :

Sota aquest concepte es de�neix la "funci�o" � de Dirac com a

'��!'(0) :

Representarem aquesta funci�o per �(t) (si est�a centrada al 0) o per �(t � a) (si est�a

centrada a t = a). �Es a dir,

'�(t�a)�! '(a) :

�Es doncs sota aquest prisma que es pot dir que la funci�o � "�es una funci�o que val 0per a t 6= 0, val 1 per a t = 0 i la seva integral val 1" .

Aix��, amb aquest concepte tenim que

limi!1

'i(t) = � ;

ja que, 8' (de suport compacte) tenim que

limi!1

Z1

�1

'i(t)'(t)dt =

Z1

�1

�(t)'(t) = '(0) :

Es pot \ampliar"la de�nici�o de transformada de Fourier a les � de Direac. Aix�� tenim

�(t� t0) *) e�iwt0

© Els autors, 1998; © Edicions UPC, 1998.

Page 127: Calcul Numeric - Bonet

Aproximaci�o 135

5.6.4. La transformaci�o de Fourier discreta. (DFT)

Per necessitats del c�omput num�eric de la transformada de Fourier, ens cal"discretitzar-la". En general, disposarem d'un conjunt �nit de dades del senyalrelatives a un interval �nit de temps. A partir d'aix�o, hem de construir un conjunt�nit de dades que aproximi la transformada de Fourier de la funci�o inicial.

Si tenim els valors xi = x(nh), n = 0; 1; : : : ; N � 1 del senyal i les freq�u�encies

wk =2�

Nhk, es de�neix la DFT com a

X(wk) =n�1X

i=0

xie�iwknh :

La teoria de senyals dona les eines necess�aries per a justi�car aquesta de�nici�o ila seva relaci�o amb la transformada de Fourier.

Aix�� s'apliquen al senyal inicial x(t) una s�erie d'operacions de manera que enresulta una successi�o peri�odica d'impulsos de Dirac. La transformada de Fourierd'aquesta successi�o peri�odica, en les freq�u�encies wk, �es tamb�e una successi�o peri�odica.Matem�aticament la successi�o d'aquests passos �es:

La primera operaci�o �es la de discretitzar x(t) en una successi�o d'impulsos. Aix��posem

x(t) '1X

k=0

x(kh)�[kh;(k+1)h] ;

on � �es la funci�o caracter��stica.

Si ara trunquem, resultar�a

x(t) 'n�1X

k=0

x(kh)�[kh;(k+1)h] :

Fixem ara Nh. Si N �es molt gran (o b�e h �es petit), resultar�a

x(t) 'n�1X

k=0

x(kh)�[kh;(k+1)h]

h� h � �x(kh)�(t � kh) :

Considerem ara la successi�o d'impulsos

�1(t) =1X

r=�1

Nh�(t � rNh) :

© Els autors, 1998; © Edicions UPC, 1998.

Page 128: Calcul Numeric - Bonet

136 C�alcul num�eric

En fer la convoluci�o amb l'aproximaci�o a x(t), quedar�a�Pn�1k=0 x(kh)�(t � kh)

��

�P1

r=�1Nh�(t� rNh)�=

= NhP1

r=�1

�Pn�1k=0 x(kh)�(t � kh� rNh)

�;

que �es una "funci�o" Nh-peri�odica. La seva transformada de Fourier en les freq�u�encieswk �es:

1Xi=�1

n�1Xk=0

x(kh)e�i2�kn

N :

Per�o nom�es hi ha N valors diferents i, per tant, nom�es cal considerar-los a l'intervalNh. Aix�� doncs, la transformada discreta de Fourier dels valors x(0); : : : ; x((N � 1)h)�es

X

�2�k

Nh

�=

n�1Xi=0

x(nh)e�i2�kn

N ; k = 0; 1; : : : ; N � 1 :

Es pot comprovar que l'antitransformada respon a la f�ormula

x(nh) =1

N

n�1Xk=0

X

�2�k

Nh

�e�i2�kn

N :

5.6.5. Transformada r�apida de Fourier (FFT)

FFT �es el nom gen�eric que porten alguns algorismes que fan r�apidament els c�alculsde la DFT. Nosaltres ens limitarem al cas que N = 2m (el nombre de punts). SiguiXk la DFT d'una successi�o discreta x0; : : : ; xn�1 de punts.

Per de�nici�o

Xk =n�1Xi=0

xie�i2�kn

N :

Posem Wn = e�

2�i

N . Se'n despr�en que

Xk =n�1Xi=0

xiWknn :

Com que N �es una pot�encia de 2, podem fer

Xk =

n=2�1Xi=0

x2nW2knn +

n=2�1Xi=0

x2n+1W(2n+1)kn ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 129: Calcul Numeric - Bonet

Aproximaci�o 137

per�o,

e

2�i

(N=2) = e

4�i

N ;

aix��,W 2

n =Wn=2

i podem escriure

Xk =

n=2�1X

i=0

x2nWknn=2 +W k

n

n=2�1X

i=0

x2n+1Wnkn=2 �

� Gk +W knHk ; 0 � k � N � 1 ;

on Gk �es la DFT dels punts parells i Hk la dels senars.

F�acilment es pot establir que

Gk = Gk+(N=2)

Hk = Hk+(N=2)

W k+(N=2)n = �W k

n :

Aix��, podem escriure

Xk = Gk +W knHk ; k = 0; 1; : : : ; N=2 � 1

Xk+(N=2) = Gk �W knHk ; k = 0; 1; ; N=2 � 1 :

Si coneixem Gk i Hk, el c�alcul requereix N sumes (complexes) i N=2 multiplicacions.Queda doncs redu��t al c�alcul de Gk i Hk , el qual necessitar�a 2(N=2) sumes +2(N=22) multiplicacions. Iterant el proc�es, arribarem a necessitarmN sumes i (m=2)Nmultiplicacions. Aix�o representa un important estalvi sobre el m�etode directe, querequereix N(N � 1) sumes i (N � 1)2 multiplicacions.

L'element b�asic computacional de la FFT es pot representar gr�a�cament per

A A+BW kn

W kn

B A�BW kn

A causa d'aquesta estructura, nom�es cal un espai m�es de mem�oria per tal de calcularla DFT d'una successi�o de N punts, sempre que els resultats s'emmagatzemin en els

© Els autors, 1998; © Edicions UPC, 1998.

Page 130: Calcul Numeric - Bonet

138 C�alcul num�eric

mateixos llocs. La seg�uent subrutina rg�t (Rabiner & Gold) (McGuillen & Cooper,pag. 179) pren com a valors d'entrada una successi�o xi, n = 1; 2; : : : ; N , on N = 2m icalcula la DFT mitjan�cant

Xk =nX

i=1

xie�i

2�(n� 1)(k � 1)

N ; k = 1; 2; 3; : : : ; N :

subroutine rgfft(a;m; n; sign)

a = complex array of length 2 � �m

m = power of two of the number of points

n = number of data points (power of 2)

sign = �1.{ direct fft

1. { inverse fft

complex a(n); u; w; t

n� 2 � �m

nv2 = n=2

nm1 = n� 1

j = 1

do 7 i = 1; nm1

if (i. ge. j) go to 5

t = a(j)

a(j) = a(i)

a(i) = t

5 k = nv2

6 if (k. ge. j) go to 7

j = j � k

k = k=2

© Els autors, 1998; © Edicions UPC, 1998.

Page 131: Calcul Numeric - Bonet

Aproximaci�o 139

go to 6

7 j = j + k

pi = 3:141592653

do 20 l = 1;m

le = 2 � �l

le1 = le=2

u = (1:0; 0:0)

w = cmplx(cos(pi=le1); sin(pi � sign=le1))

do 20 j = 1; le1

do 10 i = j; n; le

ip = i+ le1

t = a(ip) � u

a(ip) = a(i)� t

10 a(i) = a(i) + t

20 u = u � w

if(sign.lt.0.0) return

do 8 i = 1; n

a(i) = a(i)=float(n)

8 continue

return

end

© Els autors, 1998; © Edicions UPC, 1998.

Page 132: Calcul Numeric - Bonet

Integraci�o num�erica 141

Cap��tol 6 Integraci�o num�erica

6.1 F�ormules de Newton-Cotes

Aquestes f�ormules s'obtenen en substituir la funci�o a integrar per un polinomip(x) que la interpoli en un conjunt de punts equiespaiats de l'interval base, i prenent

el valorR ba p(x)dx com una aproximaci�o a

R ba f(x)dx.

Per calcular aquestes f�ormules, considerem la partici�o de l'interval [a; b] donada

per xi = a + ih, i = 0; 1; : : : ; n amb h =b� a

n, n > 0. Ara busquem el polinomi

d'interpolaci�o Pn que compleix Pn(xi) = f(xi) = fi, i = 0; 1; : : : ; n. La f�ormulad'interpolaci�o de Lagrange ens diu quin �es aquest polinomi:

Pn(x) =nXi=0

fiLi(x) ; amb Li(x) =nY

k=0

k 6=i

x� xkxi � xk

:

Ara, prenent Pn com una aproximaci�o de f , obtenim

Z b

af(x) dx �

Z b

aPn(x) dx =

nXi=0

fi

Z b

aLi(x) dx = (�) :

Fent el canvi de variable x = a+ ht, tenim que Li(x) = 'i(t) =nQ

k=0

k 6=i

t� k

i� ki, per tant,

(�) = hnXi=0

fi

Z n

0'i(t) dt :

Page 133: Calcul Numeric - Bonet

142 C�alcul num�eric

Si escrivim �i =R n0 'i(t) dt, obtenim la f�ormula d'aproximaci�o seg�uent:

Z b

af(x) dx � h

nXi=0

�ifi :

Aquestes s�on les f�ormules de Newton-Cotes. Notem que els coe�cients �i nodepenen ni de l'interval [a; b] ni de f , nom�es depenen de n i, a m�es, s�on racionals.

Calculem ara els valors de les �i per a alguns valors de n.

Per a n = 1,

�0 =

Z 1

0

t� 1

0� 1dt =

Z 1

0(1� t) dt =

"t� t2

2

#=

1

2

�1 =

Z 1

0

t� 0

1� 0dt =

Z 1

0t dt =

"t2

2

#=

1

2:

Per tant, Z b

af(x) dx � h

2(f0 + f1) =

h

2(f(a) + f(b)) ;

que �es la coneguda f�ormula dels trapezis.

Per a n = 2,

�0 =

Z 2

0

t� 1

0� 1

t� 2

0� 2dt =

1

2

Z 2

0(t2 � 3t+ 2) dt =

1

3;

�1 =

Z 2

0

t� 0

1� 0

t� 2

1� 2dt = �

Z 2

0(t2 � 2t) dt =

4

3;

�2 =

Z 2

0

t� 0

2� 0

t� 1

2� 1dt =

1

2

Z 2

0(t2 � t) dt =

1

3;

d'on Z b

af(x) dx � h

3(f0 + 4f1 + f2) =

h

3(f(a) + 4f

�a+ b

2

�+ f(b)) ;

que �es l'anomenada f�ormula de Simpson.

Els valors de les �i per a valors de n m�es grans estan ja tabulats i els donaremm�es endavant.

Per �tar l'error en el cas dels trapezis podem aplicar la proposici�o seg�uent:

Page 134: Calcul Numeric - Bonet

Integraci�o num�erica 143

Proposici�o. Si f 2 C2([a; b]), es t�e

E =h

2(f(a) + f(b))�

Z b

af(x) dx =

h3

12f 00(c) c 2]a; b[ ;

on h = b� a.

DEMOSTRACI�O. Sigui y = p(x) la recta que passa pels punts (a; f(a)) i (b; f(b)).Llavors,

E =h

2(f(a) + f(b))�

Z b

af(x) dx =

Z b

ap(x) dx�

Z b

af(x) dx =

Z b

a(p(x)� f(x)) dx:

Per la f�ormula de l'error en la interpolaci�o sabem que

f(x)� p(x) =f 00(�x)

2!(x� a)(x� b)

i, per tant,

E = �Z b

a

f 00(�x)

2!(x� a)(x� b) dx = �f

00(c)

2

Z b

a(x� a)(x� b) dx

per a algun c 2]a; b[ Per fer la integral fem el canvi x = a+ ht:

Z b

a(x� a)(x� b) dt =

Z 1

0ht(a� b+ ht)h dt = �h

3

6

i, per tant,

E =h3

12f 00(c) ;

com vol��em demostrar.

En el cas general tenim la f�ormula seg�uent per a l'error.

Proposici�o. Si f 2 Cp([a; b]), es t�e

hnXi=0

�ifi �Z b

af(x) dx = hp+1Kf (p)(c) ; c 2]a; b[ ;

on h =b� a

n. A m�es, p i K nom�es depenen de n.

No demostrarem aquesta f�ormula, per�o precisarem els valors de p i K en casosconcrets. Per aix�o �xem un valor de n i diem s al com�u denominador de les �i, i

Page 135: Calcul Numeric - Bonet

144 C�alcul num�eric

de�nim �i com �i = s�i, i = 0; 1; : : : ; n. (Observeu que els �i s�on enters.) Ambaquesta notaci�o, la f�ormula d'integraci�o queda

Z b

af(x) dx � b� a

ns

nXi=0

�ifi :

A continuaci�o donem una taula que cont�e els casos m�es importants de Newton-Cotes.

n nom �i ns error

1 trapezis 1 1 2 h3 112f

(2)(c)

2 Simpson 1 4 1 6 h5 190f

(4)(c)

3 regla 3/8 1 3 3 1 8 h5 380f

(4)(c)

4 Milne 7 32 12 32 7 90 h7 8945f

(6)(c)

5 | 19 75 50 50 75 19 288 h7 27512096f

(6)(c)

6 Weddle 41 216 27 272 27 216 41 840 h9 91400f

(8)(c)

Hi ha dos motius per no donar les f�ormules amb valors de n m�es grans:

i) Com s'ha vist al tema d'interpolaci�o, el fet d'usar polinomis interpoladors de graualt pot ser contraproduent (fenomen de Runge).

ii) Per a n gran, algunes �i s�on negatives i les f�ormules obtingudes no s�on adequadesper a un m�etode num�eric, perqu�e hi ha cancel�lacions en calcular ��ifi, que fanque creixi molt l'error.

Aix�o d�ona una restricci�o molt forta a aquest m�etode: si n �es petit, tenim un granerror en la f�ormula d'interpolaci�o i, si n �es gran, tamb�e podem tenir aquest error am�es de la cancel�laci�o abans esmentada.

Page 136: Calcul Numeric - Bonet

Integraci�o num�erica 145

6.2 F�ormules compostes

Una manera de resoldre les di�cultats anteriors s�on les f�ormules de Newton-Cotescompostes. La idea �es dividir l'interval [a; b] en intervals m�es petits i aplicar les reglesanteriors a aquests subintervals. Farem aix�o en un parell d'exemples.

Considerem n = 1 i la partici�o xi = a + ih, i = 0; 1; : : : ; N , h =b� a

N. La regla

dels trapezis a cada subinterval [xi; xi+1] d�ona

Ii =h

2[f(xi) + f(xi+1)] :

Per tant, per a tot l'interval [a; b] tenim que

R ba f(x) dx �

PN�1i=0 Ii =

h

2[f(a) + 2f(a+ h) + 2f(a+ 2h) + � � �

� � �+ 2f(b� h) + f(b)] = TN (f) :

Com que l'error en un subinterval [xi; xi+1] �es

Ii �Z xi+1

xif(x) dx =

h3

12f (2)(ci) ; ci 2]xi; xi+1[ ;

sumant aquests errors i tenint en compte que f �es C2 a [a; b], obtindrem l'error global

TN (f)�Z b

af(x) dx =

h3

12

N�1Xi=0

f (2)(ci) =h2

12

b� a

N

N�1Xi=0

f (2)(ci) :

Com que

minif (2)(ci) � 1

N

N�1Xi=0

f (2)(ci) � maxi

f (2)(ci)

i f (2) �es cont��nua, existeix c 2 [min ci;max ci] �]a; b[, tal que

f (2)(c) =1

N

N�1Xi=0

f (2)(ci)

i, per tant,

TN (f)�Z b

af(x) dx =

b� a

12h2f (2)(c) ; c 2]a; b[ :

Page 137: Calcul Numeric - Bonet

146 C�alcul num�eric

Com que f (2) �es cont��nua a [a; b], �es �tada; per tant, fent disminuir h (fent cr�eixer N), podrem aconseguir, en principi, errors tan petits com vulguem.

Es pot fer el mateix per la regla de Simpson. Suposem ara que N �es parell

i apliquem Simpson a cada subinterval [x2i; x2i+1; x2i+2], i = 0; 1; : : : ;N

2� 1,

obtenim l'aproximaci�o (h=3)(f(x2i) + 4f(x2i+1) + f(x2i+2)). Sumant aquestesN

2aproximacions, tindrem la regla de Simpson composta

R ba f(x) dx �

h

3[f(a) + 4f(a+ h) + 2f(a+ 2h) + 4f(a+ 3h) + 2f(a+ 4h) + � � �� � �+ 2f(b� 2h) + 4f(b� h) + f(b)] = SN (f) :

Igual que abans, l'error �es la suma delsN

2errors de cada interval

SN (f)�Z b

af(x) dx =

h5

90

(N=2)�1Xi=0

f (4)(ci) =

=h4

90

b� a

2

2

N

(N=2)�1Xi=0

f (4)(ci) ;

per tant,

SN (f)�Z b

af(x) dx =

b� a

180h4f (4)(c) ; c 2]a; b[ :

Nota: �obviament, cal suposar que f 2 C4([a; b])), igual que abans, aix�� es pot obteniruna precisi�o considerable escollint un nombre de punts N (aqu�� N ha de ser parell)prou gran.

Podr��em fer el mateix per a les altres f�ormules, per�o per les raons comentadesabans (possible comportament dels polinomis d'interpolaci�o d'ordre alt) les f�ormulesobtingudes no s�on gaire usades. Per tant, en lloc de fer aix�o, donarem maneres demillorar encara m�es la precisi�o de la regla de trapezis composta.

Vegem ara uns quants exemples d'aplicaci�o d'aquestes f�ormules.

Exemple. CalculeuR 10 e

�x2 dx amb un error m�es petit que 10�4.

Ho farem aplicant les dues f�ormules compostes que hem vist abans: trapezis iSimpson. Apliquem primer la de trapezis.

Page 138: Calcul Numeric - Bonet

Integraci�o num�erica 147

En primer lloc, ens cal determinar amb quin pas h hem de fer la integral. Sabem

que l'error �esb� a

12h2f 00(c). En el nostre cas,

h2

12f 00(c). Com que no tenim cap manera

de calcular el valor c 2]0; 1[, trobarem una �ta de f 00 sobre [0; 1]: derivant s'obt�e

f(x) = e�x2

=) f 0(x) = �2xe�x2 =) f 00(x) = (4x2 � 2)e�x2

j f 00(x) j=j 4x2 � 2 jj e�x2 j�j 4x2 � 2 j= 2 j 2x2 � 1 j� 2 ; per a x 2 [0; 1] :

Per tant, �����h2

12f 00(c)

����� = h2

12j f 00(c) j� h2

122 =

h2

6:

Si fem queh2

6< 10�4, obtenim h <

p6 � 10�2. Agafem h = 2 � 10�2, �es a dir,

N = 50.

Aplicant la regla dels trapezis, amb aquestes dades i l'ajut d'un ordinador,s'obt�e

R 10 e

�x2 dx � 0:7467996 : : : ; Si comparem amb el valor exacteR 10 e

�x2 dx �0:74682413 : : : veiem que l'error �es 2:4� 10�5 < 10�4, com hav��em demanat.

Ara aplicarem el m�etode de Simpson. Com que l'error en aquest m�etode �esb� a

180h4f (4)(c), en primer lloc ens cal obtenir una �ta per a f (4) a [0; 1]. Derivant

l'expressi�o de f 00 obtinguda abans:

f (3)(x) = (�8x3 + 12x)e�x2

=) f (4)(x) = (16x4 � 48x2 + 12)e�x2

j f (4)(x) j=j 16x4 � 48x2 + 12 jj e�x2 j�j 16x4 � 48x2 + 12 j� 20 ; x 2 [0; 1]

Per tant, imposant la condici�o que l'error sigui m�es petit que 10�4

����b� a

180h4f (4)(c)

���� = h4

180j f (4)(c) j� h4

180� 20 < 10�4 =) h4 < 9� 10�4 ;

d'on h <p3 � 10�1; agafem N = 6, que d�ona h = 0:166 : : : <

p3 � 10�1 = 0:17 : : :.

Aplicant ara la f�ormula de Simpson composta (ho podem fer perque N = 6 �es parell)

surtR 10 e

�x2 dx � 0:74683039 : : :. Es comprova que l'error �es 6 � 10�6, menys del

que hav��em demanat. Aix�o passa perqu�e la �taci�o de f (4)(c) que hem fet �es massapessimista.

En aquest exemple es veu un avantatge del m�etode de Simpson sobre el delstrapezis, i �es que h pot ser molt m�es gran en el de Simpson, i per tant, amb menys

Page 139: Calcul Numeric - Bonet

148 C�alcul num�eric

operacions obtenim la mateixa precisi�o. Hom pot pensar que, quan es treballa amb unordinador, el nombre d'operacions que es fan �es poc important. Aix�o no �es del tot cert,perqu�e quan es fan moltes operacions es propaguen molt els errors d'arrodoniment.Per il�lustrar-ho, vegem la taula 1.

TRAPEZIS

N Valor Error Errorcalculat real predit

2 0.73137021 0.15E-01 0.42E-014 0.74298406 0.38E-02 0.10E-018 0.74586558 0.96E-03 0.26E-0216 0.74658459 0.24E-03 0.65E-0332 0.74676436 0.60E-04 0.16E-0364 0.74680907 0.15E-04 0.41E-04128 0.74682051 0.36E-05 0.10E-04256 0.74682313 0.10E-05 0.25E-05512 0.74682385 0.30E-06 0.64E-061024 0.74682355 0.60E-06 0.16E-062048 0.74682522 0.11E-05 0.40E-07

SIMPSON

N Valor Error Errorcalculat real predit

2 0.74718046 0.36E-03 0.69E-024 0.74685544 0.31E-04 0.43E-038 0.74682617 0.20E-05 0.27E-0416 0.74682426 0.12E-06 0.17E-0532 0.74682403 0.12E-06 0.11E-0664 0.74682420 0.60E-07 0.66E-08128 0.74682403 0.12E-06 0.41E-09256 0.74682444 0.30E-06 0.26E-10512 0.74682403 0.12E-06 0.16E-111024 0.74682474 0.60E-06 0.10E-122048 0.74682325 0.89E-06 0.63E-14

La integral amb 8 xifres exactes �es: 0.74682413Taula 1

Taula 1. Aix�o s�on diverses aproximacions al valorR 10 e

�x2 dx pel m�etode delstrapezis i pel de Simpson. Notem com a trapezis, en passar de 512 a 1024 punts,hi ha una p�erdua de precisi�o deguda als errors d'arrodoniment. Aix�o mateix s'observaper al m�etode de Simpson en passar de 64 a 128 punts. Notem tamb�e que per a 32

Page 140: Calcul Numeric - Bonet

Integraci�o num�erica 149

punts, l'error real del de Simpson �es m�es gran que l'error predit. Aquest �ultim s'ha

calculat amb les f�ormules que hem usat a l'exemple: E � h2

6per al dels trapezis i

E � h4

9per al de Simpson.

(Nota: tots els c�alculs s'han fet amb precisi�o simple.)

Per tant, ara buscarem f�ormules per augmentar la precisi�o sense augmentar gaire

el nombre d'operacions.

6.3 F�ormula d'Euler-Maclaurin

De�nirem els nombres de Bernouilli com els nombres Bn que compleixen

x

ex � 1=

1Xn=0

Bn

n!xn :

Els primers nombres s�on B0 = 1, B1 = �1

2, B2 =

1

6, B3 = 0, B4 = � 1

30, B5 = 0,

B6 =1

42, B7 = 0, B8 = � 1

30, B9 = 0, B10 =

5

66.

TEOREMA. Sigui f 2 C2k+2([a; b]), N 2 N i diguem que h =b� a

N. Igual que

abans, notem

TN (f) =h

2[f(a) + 2f(a+ h) + � � �+ 2f(b� h) + f(b)] :

Llavors,

TN (f)�Z b

af(x) dx =

B2

2!h2[f 0(b)� f 0(a)] +

B4

4!h4[f 000(b)� f 000(a)] + � � �

� � �+ B2k

(2k)!h2k[f (2k�1)(b)� f (2k�1)(a)] +

B2k+2

(2k + 2)!h2k+2(b� a)f (2k+2)(c) ; c 2]a; b[ :

(F�ormula d'Euler-Maclaurin)

No donarem la demostraci�o d'aquesta f�ormula.

Page 141: Calcul Numeric - Bonet

150 C�alcul num�eric

Farem aplicacions importants d'aquest teorema. La primera ser�a afegir termes ala regla dels trapezis per obtenir m�etodes m�es precisos. Per exemple, considerem

Z b

af(x) dx � TN (f)� B2

2!h2(f 0(b)� f 0(a)) = TN (f)� h2

12(f 0(b)� f 0(a)) :

Aquesta regla de trapezis corregida �es m�es precisa que la de trapezis normal. Agafantk = 1 a la f�ormula d'Euler-Maclaurin, tenim

TN (f)� h2

12(f 0(b)� f 0(a))�

Z b

af(x) dx =

B4

4!h4(b� a)f (4)(c) :

Per tant, aquest m�etode t�e un ordre de converg�encia similar al de Simpson. Com aexemple, calculem un cop m�es

R 10 e

�x2 dx amb un error < 10�4. Com hem vist abans,

j f (4)(c) j� 20, c 2]0; 1[ i B4 = � 1

30. Per tant,

����B4

4!h4(b� a)f (4)(c)

���� � 1

30� 24h4 � 20 =

h4

36< 10�4 =) h <

p6� 10�1 = 0:24 : : : :

Agafant N = 5, tenim que h = 0:2. Aplicant trapezis, per a N = 5, tenimT5(f) = 0:74436834 : : :. Com que f 0(x) = �2xe�x2 , f 0(0) = 0 i f 0(1) = �2e�1, d'on

h2

12(f 0(b)� f 0(a)) =

1=25

12

��21

e

�= � 1

150e:

Restant aquests factors, obtenim

Z 1

0e�x

2

dx � 0:74682087 : : : ;

que t�e un error de 3� 10�6.

Es poden obtenir m�etodes amb ordres de precisi�o m�es alts incorporant m�es termes

de la f�ormula d'Euler-Maclaurin a la regla dels trapezis de la manera que hem fet

aqu��.

Page 142: Calcul Numeric - Bonet

Integraci�o num�erica 151

6.4 Extrapolaci�o de Richardson

Un altre �us molt important de la f�ormula d'Euler-Maclaurin �es l'extrapolaci�o.Aquest m�etode es pot aplicar sempre que l'error del m�etode s'expressi com a s�erie depot�encies de h. En el nostre cas,

Z b

af(x) dx = Th(f) + a2h

2 + a4h4 + � � � :

Si fem aix�o, per ah

2, tenim

Z b

af(x) dx = Th=2(f) +

a24h2 +

a416h4 + � � � :

Combinant aquestes dues f�ormules tenim

Z b

af(x) dx =

4Th=2(f)� Th(f)

3+ b4h

4 + b6h6 + � � � ;

amb la qual cosa tenim una f�ormula d'ordre m�es alt. Aquest proc�es es pot anarrepetint �ns a obtenir un ordre tan gran com vulguem.

La manera de dur-lo a terme �es en una taula:

Th4T(h=2) � Th

3= T 1

(h=2)

T(h=2)16T 1

(h=4) � T 1(h=2)

15= T 2

(h=4)

4T(h=4) � T(h=2)3

= T 1(h=4)

...

T(h=4)...

T(h=2n�1)16T 1

(h=2n) � T 1(h=2n�1)

15= T 2

(h=2n)

4T(h=2n) � T(h=2n�1)3

= T 1(h=2n)

T(h=2n)

El pas gen�eric �es T k(h=2i) =

4kT k�1(h=2i) � T k�1

(h=2i�1)

4k � 1.

Page 143: Calcul Numeric - Bonet

152 C�alcul num�eric

Usem com a exemple la taula 1. Agafant els 3 primers valors de la taula detrapezis, tenim

N trapezis extrap.1a extrap.2a2 0:73137021

0:74685534

4 0:74298406 0:74682414 �Z 1

0e�x

2

dx

0:746826098 0:74586558

Observem que aquest m�etode �es el que ens ha donat m�es precisi�o i, a m�es, necessitamolt poques operacions. Per aquest motiu �es un dels m�etodes m�es usats en laintegraci�o num�erica de funcions.

Per acabar aquesta secci�o, considerem una funci�o f 2 C4([a; b]) que compleixque f 0(a) = f 0(b). Llavors, de la f�ormula d'Euler-Maclaurin es despr�en que l'error detrapezis ja no �es d'ordre h2, sin�o d'ordre h4. Si f �es C6 i a m�es f 000(a) = f 000(b), l'error�es d'ordre h6, etc. Per a aquest tipus de funcions, �es molt avantatjosa la regla delstrapezis, encara que s'ha d'anar amb compte en aplicar l'extrapolaci�o. Per exemple,si f 0(a) = f 0(b) i f 000(a) 6= f 000(b), el m�etode d'extrapolaci�o ha de comen�car pel segonpas.

Un cas especial d'aix�o s�on les funcions C1([a; b]) i peri�odiques de per��ode b� a.Sigui f una d'aquestes funcions. De la f�ormula d'Euler-Maclaurin es despr�en quel'error com�es en avaluar

R ba f(x) dx pel m�etode de trapezis �es d'ordre m�es petit que

hk per a tot k. Es pot provar (no ho farem) que l'error decreix com una exponencial.Aix�o fa que en aquests casos el m�etode de trapezis doni resultats extremadament bons.

Exemple. CalculeuR 2�0 esin x dx.

Com que f(x) = esinx �es una funci�o peri�odica de per��ode 2�, apliquem el m�etodede trapezis i obtenim la taula 2.

N trapezis Simpson

2 6.28318548 6.283185484 7.98932362 8.558035856 7.95464373 7.954644208 7.95492887 7.9434628510 7.95492601 7.9549274412 7.95492697 7.95502138

Taula 2.

Page 144: Calcul Numeric - Bonet

Integraci�o num�erica 153

El valor exacte �es 7:95492649 : : :

Aqu�� es veu la millor converg�encia de trapezis enfront de Simpson. A partir deN = 10, les dues �ultimes xifres s'emmascaren per errors d'arrodoniment.

Finalment, remarquem que l'extrapolaci�o en aquest �ultim exemple no funciona.(Per qu�e?)

6.5 Integraci�o gaussiana

Considerem ara integrals del tipusR ba f(x)w(x) dx, on w(x) �es una funci�o positiva

a [a; b]. Agafem x0; : : : ; xm punts diferents de [a; b], i sigui pm(x) =mPi=0

fiLi(x) el

polinomi d'interpolaci�o en aquest punts (la notaci�o �es la mateixa que abans, �es a dir,

fi = f(xi) i Li(x) =mQk=0

k 6=i

x� xkxi � xk

).

Aproximant f per pm , tenim

R ba f(x)w(x) dx �

R ba pm(x)w(x) dx =

=Pm

i=0

R ba fiLi(x)w(x) dx =

Pmi=0

�R ba Li(x)w(x) dx

�fi :

Dient Ai =R ba Li(x)w(x) dx, tenim que

Z b

af(x)w(x) dx �

mXi=0

Aifi :

Observeu que, si w(x) � 1 i els punts xi estan equiespaiats, el que obtindremseran les f�ormules de Newton-Cotes. Tamb�e es remarca el fet que aquesta f�ormulad'aproximaci�o obtinguda �es exacta si f �es un polinomi de grau m�es petit o igual quem (aix�o �es perque en aquest cas f � pm). En aquesta secci�o intentarem millorar el graud'exactitud d'aquestes f�ormules, escollint de manera �optima els punts x0; x1; : : : ; xm.

TEOREMA. Sigui w(x) una funci�o positiva sobre [a; b]. Direm 'm al polinomi de

graum ortogonal respecte al producte escalar (g1; g2) =R ba g1(x)g2(x)w(x) dx. Llavors,

'm t�e m zeros simples dins l'interval [a; b].

Page 145: Calcul Numeric - Bonet

154 C�alcul num�eric

DEMOSTRACI�O. Com que el polinomi 'm �es ortogonal al polinomi constant '0 = 1,tenim que

< 'm; '0 >= 0 =)Z b

a'm(x)w(x) dx = 0

i com que w(x) > 0 sobre [a; b], cal que 'm(x) presenti un canvi de signe (i, per tant,un zero) en aquest interval.

Suposem ara que 'm t�e n zeros dins de [a; b], �es a dir,

'm(x) = (x� x0) � � � (x� xn)Qm�n(x)

on Qm�n(x) no presenta cap canvi de signe a [a; b]. Llavors, si n < m tenim que

0 =< 'm; (x� x0) � � � (x� xn) >=

Z b

a(x� x0)

2 � � � (x� xn)2Qm�n(x) dx ;

cosa que �es absurda. Per tant, cal que n = m. Finalment, veiem que aquests zeross�on simples. Suposem que n'existeix un de doble, �es a dir, 'm(x) = (x� a)2Qm�2(x).Llavors,

0 =< 'm; Qm�2 >=

Z b

a(x� a)2Q2

m�2(x) dx ;

la qual cosa �es absurda.

TEOREMA. Sigui w(x) una funci�o positiva sobre [a; b]. Direm 'm+1 al polinomi

de grau m+1 ortogonal respecte del producte escalar (g1; g2) =R ba g1(x)g2(x)w(x) dx.

Siguin x0; x1; : : : ; xm els zeros de 'm+1. Llavors, la f�ormula d'aproximaci�o

Z b

af(x)w(x) dx �

mXi=0

Aifi ;

Ai =

Z b

aLi(x)w(x) dx ;

Li(x) =mYk=0

k 6=i

x� xkxi � xk

;

�es exacta per a tots els polinomis de grau 2m+ 1 (o menys).

DEMOSTRACI�O. Suposem que f(x) �es un polinomi de grau 2m+1. Direm q(x) i r(x)

al quocient i al residu de la divisi�o f(x)='m+1(x). �Es a dir, f(x) = q(x)'m+1(x)+r(x).Notem que q(x) i r(x) s�on polinomis de grau m�es petit o igual que mZ b

af(x)w(x)d x =

Z b

aq(x)'m+1(x)w(x) dx +

Z b

ar(x)w(x) dx =

Z b

ar(x)w(x) dx :

Page 146: Calcul Numeric - Bonet

Integraci�o num�erica 155

perqu�e q(x) �es de grau � m i 'm+1(x) �es ortogonal a tots els polinomis de grau � m.D'altra banda,

mXi=0

Aifi =mXi=0

Aiq(xi)'m+1(xi) +mXi=0

Air(xi) =mXi=0

Air(xi) ;

perqu�e xi s�on els zeros de 'm+1(x).

Com que r(x) �es un polinomi de grau � m, tenim

Z b

ar(x)w(x) dx =

mXi=0

Air(xi)

i per tant, hem demostrat que

Z b

af(x)w(x) dx =

mXi=0

Aifi ;

que �es el que vol��em provar.

Anomenarem f�ormules gaussianes les f�ormules d'integraci�o num�erica descrites enaquest �ultim teorema.

Proposici�o. Els coe�cients Aj que apareixen a les f�ormules gaussianes s�on positius.

DEMOSTRACI�O. Com que la f�ormula �es exacta per a f(x) = [Lj(x)]2 (polinomi de

grau 2m), tenim que

Z b

a[Lj(x)]

2w(x) dx =mXi=0

Ai[Lj(xi)]2 = Aj :

Per tant, com que [Lj(x)]2 � 0 i w(x) � 0, tenim que

R ba (Li(x))

2w(x) dx > 0 i,per tant, Aj > 0.

Cal remarcar que si les Aj no fossin sempre positives, tindr��em problemes num�ericsa causa de la cancel�laci�o de xifres signi�catives.

TEOREMA. L'error a les f�ormules gaussianes �es

Z b

af(x)w(x) dx �

mXi=0

Aifi =f (2m+2)(c)

(2m+ 2)!

Z b

a[�(x)]2w(x) dx = cmf

(2m+2)(c) ;

Page 147: Calcul Numeric - Bonet

156 C�alcul num�eric

on �(x) =mQi=0

(x� xi).

DEMOSTRACI�O. Sigui Q(x) el polinomi de grau 2m+1 que compleix Q(xi) = f(xi),Q0(xi) = f 0(xi), i = 0; 1; : : : ;m. La f�ormula gaussiana �es exacta per a aquest polinomi

Z b

aQ(x)w(x) dx =

mXi=0

AiQ(xi) =mXi=0

Aifi :

Per tant,

mXi=0

Aifi �Z b

af(x)w(x) dx =

Z b

a(Q(x)� f(x))w(x) dx :

Recordem que l'error de la f�ormula d'interpolaci�o d'Hermite �es

f(x)�Q(x) =f (2m+2)(�x)

(2m+ 2)![�(x)]2 ;

d'on, aplicant el teorema del valor mitj�a per a integrals, s'obt�e el resultat demanat.

Vegem ara uns casos particulars (els m�es importants) de f�ormules gaussianes.

D'ara endavant, i per simpli�car la notaci�o, direm n al nombre de punts de laf�ormula gaussiana, �es a dir, n = m+ 1 segons la notaci�o anterior.

1. F�ormules de Gauss-Legendre

Tenen lloc quan w(x) � 1 i [a; b] = [�1; 1]. Els polinomis ortogonals s�onllavors els polinomis de Legendre Pn(x), que es poden generar com:

Pn(x) =1

2nn!

dn

dxn(x2 � 1)n ;

amb P0(x) = 1.

Els zeros xk d'aquests polinomis i els pesos Ak es troben a la taula seg�uent:

Page 148: Calcul Numeric - Bonet

Integraci�o num�erica 157

n xk Ak n xk Ak

2 �0; 57735027 1; 00000000 14 �0; 08628381 0; 03511946

4 �0; 86113631 0; 34785485 �0; 92843488 0; 08015809�0; 33998104 0; 65214515 �0; 82720132 0; 12151857

6 �0; 93246951 0; 17132449 �0; 68729290 0; 15720317�0; 66120939 0; 36076157 �0; 51524864 0; 18553840�0; 23861919 0; 46791393 �0; 31911237 0; 20519846

8 �0; 96028986 0; 10122854 �0; 10805495 0; 21526385

�0; 79666648 0; 22381034 16 �0; 98940093 0; 02715246�0; 52553241 0; 31370665 �0; 94457502 0; 06225352�0; 18343464 0; 36268378 �0; 86563120 0; 09515851

10 �0; 97390653 0; 06667134 �0; 75540441 0; 12462897�0; 86506337 0; 14945135 �0; 61787624 0; 14959599�0; 67940957 0; 21908636 �0; 45801678 0; 16915652�0; 43339539 0; 26926672 �0; 28160355 0; 18260342�0; 14887434 0; 29552422 �0; 09501251 0; 18945061

12 �0; 98156063 0; 04717534�0; 90411725 0; 10693933�0; 76990267 0; 16007833�0; 58731795 0; 20316743�0; 36783150 0; 23349254�0; 12533341 0; 24914705

En aquest cas particular, l'error �es

E =22n+1(n!)4

(2n+ 1)[(2n)!]3f (2n)(c) ; c 2]� 1; 1[ :

2. F�ormules de Gauss-Laguerre

Corresponen a w(x) = e�x i [a; b] = [0;+1[. La fam��lia de polinomisortogonals s�on els polinomis de Laguerre, de�nits per

Ln(x) = exdn

dxn(e�xxn) :

Page 149: Calcul Numeric - Bonet

158 C�alcul num�eric

Els zeros xk d'aquest polinomi i els coe�cients Ak v�enen donats per

n xk Ak n xk Ak

2 0; 58578644 0; 85355339 12 0; 11572212 0; 264731373; 41421356 0; 14644661 0; 61175748 0; 37775928

4 0; 32254769 0; 60315410 1; 51261027 0; 244082011; 74576110 0; 35741869 2; 83375134 0; 090449224; 53662030 0; 03888791 4; 59922764 0; 020102389; 39507091 0; 00053929 6; 84452545 0; 00266397

6 0; 22284660 0; 45896467 9; 62131684 0; 000203231; 18893210 0; 41700083 13; 00605499 0; 000008372; 99273633 0; 11337338 17; 11685519 0; 000000175; 77514357 0; 01039920 22; 15109038 0; 000000009; 83746742 0; 00026102 28; 48796725 0; 0000000015; 98287398 0; 00000090 37; 09912104 0; 00000000

8 0; 17027963 0; 36918859 14 0; 09974751 0; 231815580; 90370178 0; 41878678 0; 52685765 0; 353784692; 25108663 0; 17579499 1; 30062912 0; 258734614; 26670017 0; 03334349 2; 43080108 0; 115482897; 04590540 0; 00279454 3; 93210282 0; 0331920910; 75851601 0; 00009077 5; 82553622 0; 0061928715; 74067864 0; 00000085 8; 14024014 0; 0007398922; 86313174 0; 00000000 10; 91649951 0; 00005491

10 0; 13779347 0; 30844112 14; 21080501 0; 000002410; 72945455 0; 40111993 18; 10489222 0; 000000061; 80834290 0; 21806829 22; 72338163 0; 000000003; 40143370 0; 06208746 28; 27298172 0; 000000005; 55249614 0; 00950152 35; 14944366 0; 000000008; 33015275 0; 00075301 44; 36608171 0; 0000000011; 84378584 0; 0000282616; 27925783 0; 0000004221; 99658581 0; 0000000029; 92069701 0; 00000000

En aquest cas concret, l'error �es

E =(n!)2

(2n)!f (2n)(c) ; c 2 [0;+1[ :

Page 150: Calcul Numeric - Bonet

Integraci�o num�erica 159

3. F�ormules de Gauss-Hermite

S�on les que tenen w(x) = e�x2

i [a; b] =]�1;+1[. Els polinomis ortogonalss�on els polinomis d'Hermite

Hn(x) = (�1)nex2 dn

dxn

�e�x

2�:

Els valors dels zeros xk de Hn i dels pesos Ak s�on:

n xk Ak n xk Ak

2 �0; 70710678 0; 88622693 12 �0; 31424038 0; 57013524

4 �0; 52464762 0; 80491409 �0; 94778839 0; 26049231�1; 65068012 0; 08131284 �1; 59768264 0; 05160799

6 �0; 43607741 0; 72462960 �2; 27950708 0; 00390539�1; 33584907 0; 15706732 �3; 02063703 0; 00008574�2; 35060497 0; 00453001 �3; 88972490 0; 00000027

8 �0; 38118699 0; 66114701 14 �0; 29174551 0; 53640591�1; 15719371 0; 20780233 �0; 87871379 0; 27310561�1; 98165676 0; 01707798 �1; 47668273 0; 06850553�2; 93063742 0; 00019960 �2; 09518326 0; 00785005

10 �0; 34290133 0; 61086263 �2; 74847072 0; 00035509�1; 03661083 0; 24013861 �3; 46265693 0; 00000472�1; 75668365 0; 03387439 �4; 30444857 0; 00000001�2; 53273167 0; 00134365�3; 43615912 0; 00000764

Aqu��, l'error de truncament �es

E =n!p�

2n(2n)!f (2n)(c) ; c 2]�1;+1[ :

4. F�ormules de Gauss-Txebixev

Corresponen a w(x) =1p

1� x2amb [a; b] = [�1; 1]. Els polinomis

ortogonals s�on Tn(x) = cos(n arccos x). Els zeros d'aquest polinomi s�on

xk = cos

�(2k � 1)�

2n

�i tots els coe�cients s�on Ak =

n. L'error �es

E =2�

22n(2n)!f (2n)(c) ; c 2 [�1; 1] :

Page 151: Calcul Numeric - Bonet

160 C�alcul num�eric

Vegem ara uns exemples d'aquest tipus d'integraci�o.

Exemple. CalculeuR 10 sinx dx amb un error < 10�6.

Intentarem aplicar Gauss-Legendre. Per aix�o hem de convertir l'intervald'integraci�o en l'interval [�1; 1], per tant, fem el canvi t = 2x� 1

x =t+ 1

2; dx =

1

2dt

Z 1

0sinx dx =

Z 1

�1sin

t+ 1

2

dt

2=

Z 1

�1

1

2sin

t+ 1

2dt :

Ara ja hem reduit la integral al tipus de Gauss-Legendre. Busquem quants punts hemd'agafar:

- si n = 2, com que j f (2n)(x) j� 2�2n�1, tenim que E � 16

5 � (4!)3 = 2:36 � 10�4.

- si n = 4, E =(24)4

9(8!)3= 5:6� 10�10.

Per tant, agafem n = 4. Ara fem

Z 1

�1

1

2sin

�t+ 1

2

�dt � 1

2

Xk

Ak sin

�xk + 1

1

�:

Treient els valors Ak i xk de les taules tenim

1

2

Z 1

�1sin

�t+ 1

2

�dt � 0:459697695 : : : :

El valor exacte �es Z 1

0sin(x) dx = 0:45969769413 : : : :

Exemple. CalculeuR1

0 sinxe�x dx, amb dues xifres correctes.

Aplicarem Gauss-Laguerre. Aqu�� f(x) = sinx i, per tant, j f (2n)(x) j� 1. La

f�ormula de l'error queda E � (n!)2

(2n)!.

n = 2 =) E � 4

24=

1

6.

Page 152: Calcul Numeric - Bonet

Integraci�o num�erica 161

n = 4 =) E � (24)2

8!= 1:4� 10�2.

n = 6 =) E � (720)2

12!= 1:08 � 10�3.

Llavors, agafem n = 6.

Per tant, femR1

0 sinxe�x dx =PAk sinxk. Agafant els Ak i xk de les taules surt

0:500049 : : :. Compareu aix�o amb el valor exacte, que �es 0.5.

Exemple. CalculeuR1

�1ex�x

2

dx amb 5 xifres correctes.

Com queR1

�1ex�x

2

dx =R1

�1exe�x

2

dx, ho farem per Gauss-Hermite. En aquest

cas, com que f (2n)(x) = ex, que no �es �tada a R, la f�ormula d'estimaci�o de l'error noens serveix de res. Per tant, farem la integral per a diversos valors de n

n Integral

2 2.23434086494 2.27580169996 2.27587575418 2.275875703610 2.2758757983

D'aquesta successi�o de valors, podem donar una aproximaci�o heur��stica de laintegral

Z1

�1

exe�x2

dx � 2:27587 : : :

Encara que aquest tipus de criteri no d�ona cap seguretat en el resultat, s'acostumaa usar en la pr�actica, quan no hi ha res millor (el valor exacte d'aquesta integral �esp�e1=4).

Exemple. CalculeuR 1�1

cos xp1� x2

dx amb un error m�es petit que 10�6.

Aqu�� aplicarem Gauss-Txebixev. Com que f(x) = cos x, tenim que j f (2k)(x) j� 1,

Page 153: Calcul Numeric - Bonet

162 C�alcul num�eric

per tant, E � 2�

22n(2n)!. Avaluant aix�o per a diversos valors de n tenim

n = 2 =) E � 2�

24 � 4! = 0:016 : : :

n = 3 =) E � 2�

26 � 6! = 1:3 : : : � 10�4

n = 4 =) E � 2�

28 � 8! = 6:08 : : : � 10�7.

Per tant, farem el c�alcul amb n = 4. Agafant xk = cos

�(2k � 1)�

2n

�, Ak =

n,

tenim

Z 1

�1

cos xp1� x2

dx �Xk

Ak cos(xk) = 2:4039388386 : : : :

Compareu-ho amb el valor exacte 2:40393943 : : :.

6.6 Derivaci�o num�erica

Aqu�� veurem uns algorismes que ens permetran avaluar f (k)(x) quan nom�esconeixem o b�e una taula de valors de f , o b�e un algorisme per calcular f(x).

Vegem primer un exemple del que pot passar si s'intenta calcular directament lesderivades a partir de la seva de�nici�o.

Recordem que f 0(a) = limh!0

f(a+ h)� f(a)

h. Si s'intenta calcular el valor

f(a+ h)� f(a)

hdirectament, per a una h petita, i donar-lo com a aproximaci�o de

f 0(a), passa el seg�uent: com que f(a+h) i f(a) s�on dos nombres propers, en restar-loshi ha una important cancel�laci�o de xifres i en dividir per h (que �es petit) aquest errors'ampli�ca molt.

Vegem-ne un exemple: suposem que volem calcular num�ericament la derivada de

f(x) = ln x en el punt x = 7 (anal��ticament sabem que aquesta derivada val1

7).

Page 154: Calcul Numeric - Bonet

Integraci�o num�erica 163

Apliquem la f�ormulaf(a+ h)� f(a)

hper a diversos valors de h. Treballant amb 7

xifres decimals, obtenim la taula seg�uent:

h Derivada aproximada

0.2 0.140854640.1 0.141846880.05 0.142350420.01 0.142760490.005 0.142816720.001 0.142899830.0005 0.142957820.0001 0.143384990.00005 0.143914370.00001 0.148145720.000005 0.153434460.000001 0.19574393

El valor exacte �es1

7= 0:142857142 : : :. Observeu que la millor aproximaci�o �es

l'obtinguda per h = 0:005 i que aix�o no es pot deduir veient tan sols la taula.

Tot seguit veurem millors maneres de fer-ho. En primer lloc de�nim l'operadordifer�encia centrada com

�kf(a) =kXi=0

(�1)i k

i

!f

�a+

�k

2� i

�h

�:

Per a k = 1, tenim

�f(a) = f

�a+

h

2

�� f

�a� h

2

�;

i, per a k = 2,�2f(a) = f(a+ h)� 2f(a) + f(a� h) :

TEOREMA. Si f 2 C1, tenim que

f (k)(a) = h�k�kf(a) + c1h2f (k+2)(a) + c2h

4f (k+4)(a) + � � �on els coe�cients cj depenen �unicament de k.

DEMOSTRACI�O. Nom�es la farem per a k = 1 i per a k = 2. Per la f�ormula deTaylor, sabem que

Page 155: Calcul Numeric - Bonet

164 C�alcul num�eric

f(a+ t)� f(a) = tf 0(a) +t2

2!f 00(a) +

t3

3!f (3)(a) +

t4

4!f (4)(a) + � � � (6.6.1)

f(a� t)� f(a) = �tf 0(a) + t2

2!f 00(a)� t3

3!f (3)(a) +

t4

4!f (4)(a) + � � � (6.6.2)

per a k = 1, restem l'equaci�o (6.6.2) de la (6.6.1):

f(a+ t)� f(a� t) = 2tf 0(a) + 2t3

3!f (3)(a) + 2

t5

5!f (5)(a) + � � �

Dividim per 2t i diem que h = 2t

1

h�f(a) = f 0(a) +

1

24h2f (3)(a) +

1

1920h4f (5)(a) + � � �

d'on f�acilment surt la f�ormula demanada. Per a k = 2, sumem les equacions (6.6.1) i(6.6.2)

f(a+ t)� 2f(a) + f(a� t) = 2

t2

2!f 00(a) +

t2

4!f (4)(a) +

t6

6!f (6)(a) + � � �

!

dividint per t2 i dient que t = h

1

h2�2f(a) = f 00(a) +

1

12h2f (4)(a) +

1

360h4f (6)(a) + � � �

com vol��em demostrar.

La utilitat d'aquest m�etode �es que permet extrapolar, de la mateixa manera queho feiem amb la f�ormula d'Euler-Maclaurin.

Exemple. Calculeu f 0(7) i f 00(7), amb f(x) = ln x.

Fem primer f 0(7)

h = 0:4 =) 1

h�f(7) =

1

0:4(f(7:2)� f(6:8)) = 0:142896035

h = 0:2 =) 1

h�f(7) =

1

0:2(f(7:1)� f(6:9)) = 0:14286686

Extrapolant amb aquests dos valors

4(0:14286686) � 0:142896035

3= 0:142857135 :

Page 156: Calcul Numeric - Bonet

Integraci�o num�erica 165

Donem com a aproximaci�o f 0(7) = 0:142857135. Si comparem amb el valor exacte

f 0(7) =1

7= 0:142857142, es veu que el resultat �es molt bo.

Calculem ara f 00(7)

h = 0:4 =) 1

h2�2f(7) =

1

(0:4)2(f(7:4)� 2f(7) + f(6:6)) = �0:020441555,

h = 0:2 =) 1

h2�2f(7) =

1

(0:2)2(f(7:2)� 2f(7) + f(6:8)) = �0:0204165.

Extrapolant,

4(�0:0204165) � (�0:020441555)3

= �0:020408148

i l'aproximaci�o que donem �es f 00(7) = �0:020408148. El valor exacte �es f 00(7) =

� 1

49= �0:020408163.

Tamb�e aqu�� es veu l'augment de precisi�o que proporciona l'extrapolaci�o.L'inconvenient que t�e aquest m�etode �es que no proporciona �tes precises de l'errorcom�es. �Es possible trobar f�ormules que �tin l'error en funci�o de f (k)(c), per�o a efectespr�actics no les podem utilitzar perque no coneixerem aquesta derivada ni cap �ta seva.

Introduirem ara un altre m�etode per calcular derivades num�ericament, basat entaules de difer�encies.

De�nim �f(a) =f

�a+

h

2

�+ f

�a� h

2

�2

, que en direm operador mitj�a.

TEOREMA. Si f 2 C1, tenim

hf 0(a) = ��f(a)� 1

6��3f(a) +

1

30��5f(a)� 1

140��7f(a) + � � �

h2f 00(a) = �2f(a)� 1

12�4f(a) +

1

90�6f(a)� 1

560�8f(a) + � � �

DEMOSTRACI�O. �Es excessivament complicada i no aporta res, per tant, no la farem.

La manera d'aplicar aquestes f�ormules �es amb una taula de difer�encies. Aquesteses construeixen aix��:

Page 157: Calcul Numeric - Bonet

166 C�alcul num�eric

x f � �2 �3 �4

x�2 f�2f�1 � f�2 = ��1:5

x�1 f�1 ��0:5 � ��1:5 = �2�1

f0 � f�1 = ��0:5 �20 � �2�1 = �3

�0:5

x0 f0 �0:5 � ��0:5 = �20 �30:5 � �3�0:5 = �40

f1 � f0 = �0:5 �21 � �20 = �30:5x1 f1 �1:5 � �0:5 = �21

f2 � f1 = �1:5x2 f2

Vegem-ne un exemple num�eric. Agafem f(x) = ln x, h = 0:2

x f � �2 �3 �4

6.6 1.8870696490.029852963

6.8 1.916922612 �8:65426 � 10�5

0.028987537 4:8766 � 10�5

7.0 1.945910149 �8:1666 � 10�5 �4:009 � 10�5

0.028170877 4:4757 � 10�5

7.2 1.974081026 �7:71903 � 10�5

0.0273989747.4 2.001480000

Calculem f 0(7). Pel teorema anterior,

��f(7) =0:028987537 + 0:028170877

2= 0:028579207

��3f(7) =4:8766 � 10�5 + 4:4757 � 10�5

2= 4:67615 � 10�5 :

Observem ara que hf 0(7) sembla estar de�nit per una s�erie r�apidament decreixenten valor absolut. A partir d'aqu��, es poden donar estimacions heur��stiques de l'error.Per exemple, en aquest cas, podem donar l'aproximaci�o

f 0(7) =1

0:2

0:028579207 � 4:67615 � 10�5

6

!= 0:142857067 ;

Page 158: Calcul Numeric - Bonet

Integraci�o num�erica 167

i una �ta aproximada de l'error seria l'�ultim terme de la s�erie que hem considerat:

E � 1

6� 0:2� 4:67615e � 5 = 3:89679e � 5 :

Notem que l'error real �es E = 7:57e � 8, que �es m�es petit de l'error predit.

Es deixa com a exercici per al lector fer el mateix per a f 00(7).

Nota. En construir aquestes taules de difer�encies, s'ha d'anar amb molt de compteamb com es propaguen els errors d'arrodoniment, perqu�e cont��nuament s'estan restantnombres propers. Per exemple, si repet��ssim l'�ultima taula que hem fet treballant amb6 xifres signi�catives, el valor �4f(7) quedaria determinat pels errors d'arrodonimenti no tindria cap xifra bona. Per tant, si volgu�essim incloure m�es termes de l'�ultimas�erie en el c�alcul de f 0(7) (o f 00(7)) per tenir m�es precisi�o, haur��em de refer tamb�e elsc�alculs treballant amb m�es xifres signi�catives.

Page 159: Calcul Numeric - Bonet

Zeros de funcions 169

Cap��tol 7 Zeros de funcions

7.1 Introducci�o. M�etode de bisecci�o

En aquest cap��tol volem calcular zeros de funcions, �es a dir, resoldre equacionsdel tipus f(x) = 0.

La primera possiblitat de soluci�o que se'ns pot acudir �es determinar dos valors x0i x1 de manera que tinguem un canvi de signe a la funci�o, �es a dir, f(x0)f(x1) < 0.El teorema de Bolzano ens assegura que, si f �es continua, 9 s 2 (x0; x1) tal quef(s) = 0. El m�etode m�es simple de trobar el valor de s (i a la vegada un dels m�etodesque menys recomenarem) �es l'anomenat m�etode de bisecci�o. Es tracta de prendre

un nou punt x2 =x0 + x1

2i dels dos punts inicials menysprear aquell que la seva

imatge tingui el mateix signe que f(x2). Iterant aquest procediment tenim en general

xn+1 =xn + xn�1

2, �es a dir, sempre prenem el punt mig entre els dos anteriors (d'aqu��

el nom del m�etode).

Aquest primer m�etode tan elemental, ens d�ona l'ess�encia de la resta de m�etodes

per trobar zeros de funcions. Una vegada determinat aproximadament on est�a el

zero de la funci�o (el canvi de signe) donarem un procediment (la majoria de vegades

utilitzant un raonament geom�etric), per poder calcular successives aproximacions de

la soluci�o s de l'equaci�o f(x) = 0.

7.2 M�etode de Newton o de la tangent

Aquest �es el m�etode m�es utilitzat i tamb�e el m�es convenient per les raons queveurem posteriorment.

© Els autors, 1998; © Edicions UPC, 1998.

Page 160: Calcul Numeric - Bonet

170 C�alcul num�eric

La idea des d'un punt de vista geom�etric �es utilitzar la tangent a la gr�a�ca de lafunci�o en un punt per donar el valor de la seg�uent aproximaci�o de la soluci�o. Aix��si considerem la recta tangent a la gr�a�ca de la funci�o f(x) en un punt (xn; f(xn))tindrem l'equaci�o

y � f(xn) = f 0(xn)(x� xn) :

Tallant aquesta recta amb l'eix de les x (veure �gura) obtindrem la nova aproximaci�oxn+1 de la soluci�o buscada. En general tindrem

xn+1 = xn �f(xn)

f 0(xn)

Com ja es pot intuir el fet que l'aplicaci�o successiva d'aquest m�etode ens porticap a la soluci�o dep�en de diversos factors. Entre ells del fet que triem el punt inicialx0 proper a la soluci�o s, tamb�e del fet que al llarg de la successi�o de punts xn queobtindrem no anul�li el denominador, f 0(xn) = 0, per exemple, si la funci�o presenta unextrem relatiu. Per assegurar la converg�encia cap a la soluci�o del m�etode de Newtontenim el seg�uent teorema de converg�encia global.

TEOREMA. Sigui f : [a; b] �! R, f 2 C2([a; b]) a m�es f satisf�a les condicions:

© Els autors, 1998; © Edicions UPC, 1998.

Page 161: Calcul Numeric - Bonet

Zeros de funcions 171

(i) f(a)f(b) < 0

(ii) f 0(x) 6= 0, 8x 2 [a; b]

(iii) f 00(x) � 0 o f 00(x) � 0, 8x 2 [a; b]

(iv) Sigui c l'extrem a o b en el qual tenim un valor de jf 0(x)j m��nim. Demanem����

f(c)

f 0(c)

���� � b� a.

Aleshores el m�etode de Newton convergeix cap a la �unica soluci�o s de f(x) = 0per a qualsevol punt inicial x0 2 [a; b].

Observacions: Podem comentar el que signi�quen des d'un punt de vista geom�etricles hip�otesis d'aquest teorema.

(i) Indica que tenim un canvi de signe entre a i b; aix�o voldr�a dir (T. de Bolzano)que almenys existir�a una soluci�o a l'interval [a; b].

(ii) Assegura que dins de [a; b] la tangent sempre tallar�a l'eix x i es podr�a aplicarel m�etode de Newton. Tamb�e assegura que la soluci�o �es �unica.

(iv) Aquesta condici�o assegurar�a que prenent qualsevol punt inicial x0, el seg�uent

punt quedar�a dins de [a; b].

7.3 M�etode de la secant. Regula falsi

Aquest m�etode el podem pensar com una variant del m�etode de Newton, en laqual en lloc d'utilitzar la recta tangent per donar la seg�uent aproximaci�o de la soluci�o,utilitzarem la recta entre dos punts consecutius.

Aix��, donats (xn�1; f(xn�1)) i (xn; f(xn)) dos punts de la corba f(x), la recta queels uneix s'anomena recta secant i es pot expressar de la forma seguent:

y � f(xn) =f(xn)� f(xn�1)

xn � xn�1(x� xn)

tallant aquesta recta amb l'eix de les x obtindrem la seg�uent aproximaci�o, que podemexpressar com

xn+1 = xn � f(xn)(xn � xn�1)

f(xn)� f(xn�1)

© Els autors, 1998; © Edicions UPC, 1998.

Page 162: Calcul Numeric - Bonet

172 C�alcul num�eric

El que s'anomena m�etode de Regula falsi o de la falsa posici�o �es una petita variant delm�etode de la secant que consisteix en menysprear entre xn i xn�1 aquell que tingui laimatge per f del mateix signe que la imatge de xn+1 (de manera semblant al m�etodede bisecci�o) (veure �gura).

Fem notar que el m�etode de la secant ser�a molt utilitzat en aquells casos en que laderivada de la funci�o sigui dif��cil o costosa d'avaluar, ja que en realitat aquest m�etodecoincideix amb el de Newton si fem l'aproximaci�o de f 0(xn) pel quocient d'increments

f(xn)� f(xn�1)

xn � xn�1:

Exemple. Busquem les arrels de l'equaci�o

4 sinx+ 1� x = 0

Pel teorema de Bolzano, podem veure que hi ha almenys tres arrels

s1 2

���;�

2

�; s2 2

��

2; 0

�; s3 2 (0; �)

Donem els c�alculs en la seg�uent taula:

© Els autors, 1998; © Edicions UPC, 1998.

Page 163: Calcul Numeric - Bonet

Zeros de funcions 173

Bisecci�o Secant Newton

x0 �� �� ��

x1 �

2�

2�2; 31327412

x2 �2; 35619449 �1; 97378600 �2; 21444913

x3 �1; 96349540 �2; 36694993 �2; 21009292

x4 �2; 15984495 �2; 19144324 �2; 21008394

x5 �2; 25801972 �2; 20882694 �2; 21008394

x6 �2; 20893233 �2; 21009521

x7 �2; 23347603 �2; 21008393

x8 �2; 22120418 �2; 21008394

......

x22 �2; 21008357

x23 �2; 21008394

Observem que el m�etode de Newton convergeix m�es r�apidament cap a l'arrel queel m�etode de la secant, i aquest �es m�es r�apid que el m�etode de bisecci�o.

Fent els c�alculs per a s2, s3 s'obt�e

s2 = �0; 342185 : : :

s3 = 2; 70206 : : :

7.4 Teoria d'iteraci�o. M�etodes de punt �x

Podem passar ara a considerar el problema de trobar el zero d'una funci�o f(x) = 0d'una forma m�es general. Per aix�o passarem de f(x) = 0 a x = g(x), per exemplea��llant alguna de les x de la funci�o original. A partir d'aqu�� de�nirem una successi�o(xn)n de manera recursiva a partir de la relaci�o xn = g(xn�1), n = 1; 2; : : :. Si aquesta

successi�o �es convergent, �es a dir, xn�!

n !1s, i si la funci�o g(x) �es cont��nua prenent

© Els autors, 1998; © Edicions UPC, 1998.

Page 164: Calcul Numeric - Bonet

174 C�alcul num�eric

l��mits a les dues bandes g(xn) = xn+1�!

n !1s = g(s), ser�a un punt �x per la funci�og(x).

Mostrem una interpretaci�o geom�etrica del m�etode d'iteraci�o.

En aquests exemples podem veure que el m�etode iteratiu pot ser convergent ob�e divergent, tot i que existeixi el punt �x. Per garantir la converg�encia del m�etodetindrem el seg�uent resultat.

7.4.1 Teorema del punt �x

Sigui I = [a; b] i g : I �! R que compleix

i) g(I) � I

ii) g �es una funci�o de Lipschitz amb constant de Lipschitz menor que 1, �es adir: existeix una constant (constant de Lipschitz) L, 0 < L < 1, tal quej g(x1)� g(x2) j� L j x1 � x2 j, 8x1; x2 2 I.

Aleshores 8x0 2 I, la successi�o xn = g(xn�1) convergeix cap a l'�unica soluci�o de

© Els autors, 1998; © Edicions UPC, 1998.

Page 165: Calcul Numeric - Bonet

Zeros de funcions 175

l'equaci�o g(x) = x dins de I.

DEMOSTRACI�O. Fem notar que tota funci�o de Lipschitz �es continua.

Exist�encia. Nom�es cal considerar la funci�o F (x) = g(x) � x, x 2 I i aplicar elteorema de Bolzano ja que F (a) � 0, F (b) � 0 i F �es cont��nua.

Unicitat. Suposarem dues solucions de l'equaci�o g(x) = x, �es a dir, g(s1) = s1,g(s2) = s2 amb s1 6= s2. Per ii),

j s1 � s2 j=j g(s1)� g(s2) j� L j s1 � s2 j<j s1 � s2 j (absurd) :

Sigui doncs s l'�unica soluci�o, tal que g(s) = s. Prenem un valor x0 2 I qualsevol iconstru��m la successi�o xn = g(xn�1). Llavors la difer�encia xn � s val:

xn � s = g(xn�1)� s = g(xn�1)� g(s) ;

aplicant Lipschitz reiteradament

j xn � s j =j g(xn�1)� g(s) j� L j xn�1 � s j

� L2 j xn�2 � s j� � � � � Ln j x0 � s j

i com que 0 < L < 1 =) Ln �! 0 =) limn!1

j xn � s j= 0 =) limn!1

xn = s.

7.4.2 Nota sobre la condici�o de Lipschitz

Si g 2 C1(I), es pot substituir la condici�o de Lipschitz per la hip�otesi

iii) j g0(x) j� L < 1 ; 8x 2 I

De fet (iii) �! (ii), pel Teorema del Valor Mig.

Exemple. Trobeu una soluci�o de x = e�x. Aqu�� g(x) = e�x �es una funci�o cont��nua

8x 2 R. Si prenem I = [0; 1], g(I) =

�1

e; 1

�� [0; 1] = I, per�o j g0(x) j=j e�x j� 1,

x 2 I, per tant no satisf�a que L < 1. Aleshores escollim un altre interval I =

�1

2; ln 2

�,

g(I) =

�1

2; e�1=2

�� [

1

2; ln 2] = I i tamb�e j g0(x) j� e�1=2 < 1, 8x 2 I; en conseq�u�encia

es compleix el teorema del punt �x. Fent la iteraci�o amb valor inicial x0 = 0:5, s'obt�ela soluci�o en quatre xifres exactes per a x13 = 0:5671

x0 = 0:500000 x2 = 0:545239 x4 = 0:560065

x1 = 0:606531 x3 = 0:579703 x5 = 0:571172

© Els autors, 1998; © Edicions UPC, 1998.

Page 166: Calcul Numeric - Bonet

176 C�alcul num�eric

7.5 Estudi de l'error pels m�etodes de punt �x

Per con�eixer la precisi�o del resultat �es important trobar una �ta de l'error com�esal donar xn com a aproximaci�o del valor veritable s de l'equaci�o g(x) = x, �es a dirj xn � s j.

TEOREMA. L'error com�es en un m�etode de punt �x que aturem en el pas n-�essim

es pot �tar per

jxn � sj �Ln

1� Ljx1 � x0j

on L �es la constant de Lipschitz de la funci�o d'iteraci�o.

DEMOSTRACI�O. Sigui n un enter �x i m > n, trobem una �ta per a xm�xn. Es t�e

xm � xn = (xm � xm�1) + (xm�1 � xm�2) + � � � + (xn+1 � xn) ;

aplicant m�oduls

j xm � xn j�j xm � xm�1 j + j xm�1 � xm�2 j + � � �+ j xn+1 � xn j :

F�acilment es pot veure que

j xk+1 � xk j� Lk j x1 � x0 j :

Per tant,j xm � xn j� (Lm�1 + � � � + Ln) j x1 � x0 j ;

per�o j L j< 1, per tant,

Lm�1 + � � �+ Ln = Ln(1 + L+ � � � + Lm�n�1) � Ln1

1� L;

aleshores,

j xm � xn j�Ln

1� Lj x1 � x0 j ;

si fem m �!1, amb n �x, limm!1

xm �! s, i obtenim

j s� xn j�Ln

1� Lj x1 � x0 j

© Els autors, 1998; © Edicions UPC, 1998.

Page 167: Calcul Numeric - Bonet

Zeros de funcions 177

7.5.1 Acceleraci�o de la converg�encia

Suposem que g compleix les hip�otesis del teorema del punt �x, que g 2 C1(I),I � R i g0(x) 6= 0, x 2 I. Llavors �es f�acil veure, si x0 6= s, que la soluci�o exacta s

no s'obt�e per iteraci�o en un nombre �nit de passos. Per tant, l'error "n = xn � s mais'anul�la.

DEFINICI�O. Es diu que un m�etode t�e ordre p si i nom�es si, existeix limn!1

"n+1

"p

n

i �es

diferent de zero i in�nit.

Al nostre cas

"n+1 = xn+1 � s = g(xn)� g(s) = g(s+ "n)� g(s) =

= g0(s+ �n"n)"n ; 0 < �n < 1 :

De�nim �n per�n = g0(s+ �n"n)� g0(s)

per tant,"n+1 = (g0(s) + �n)"n ;

i per a n �!1 =) �n �! 0, llavors

limn!1

"n+1

"n= g0(s) :

�Es a dir, l'ordre �es lineal, "n+1 = O("n). Aix�o mostra que l'error en el pas (n+1)-�esim �es aproximadament igual a g0(s) per l'error en el pas n-�esim. Com que s no esconeix, el l��mit tampoc. Ara b�e, podem accelerar la converg�encia tenint en compte elsresultats anteriors.

Fixem-nos que, si �n � 0, tindr��em "n+1 = g0(s)"n, llavors

xn+1 � s � g0(s)(xn � s)

xn+2 � s � g0(s)(xn+1 � s) :(7:1

Restant terme a terme:

g0(s) �xn+2 � xn+1

xn+1 � xn;

a��llant s de (7.1),

s =1

1� g0(s)(xn+1 � g0(s)xn) = xn +

1

1� g0(s)(xn+1 � xn)

= xn �(xn+1 � xn)

2

xn+2 � 2xn+1 + xn:

© Els autors, 1998; © Edicions UPC, 1998.

Page 168: Calcul Numeric - Bonet

178 C�alcul num�eric

Com que �n no �es zero, per�o per a n prou gran �n � g0(s), aleshores podem esperarque el valor

x0

n= xn �

(xn+1 � xn)2

xn+2 � 2xn+1 + xn

convergeixi m�es r�apidament a s que les quantitats xn. Aix�o d�ona lloc a un algorismeanomenat algorisme d'Aitken.

7.5.2 Algorisme d'Aitken

Introdu��m l'operador de difer�encies � per simpli�car l'algorisme. Si fxng �esqualsevol successi�o, es t�e

�xn = xn+1 � xn ; n = 0; 1; 2; : : : ;

recursivament, s'obt�e �2

�2xn = �(�xn) = �xn+1 ��xn = xn+2 � 2xn+1 + xn :

En conseq�u�encia, es pot escriure

x0

n= xn �

(�xn)2

�2xn;

que �es la forma habitual de l'algorisme d'Aitken. Per justi�car l'aplicaci�o d'aquestalgorisme podem enunciar el teorema seg�uent

TEOREMA. Sigui fxng una successi�o convergent cap a s tal que els errors "n =xn � s compleixen les condicions

i) "n 6= 0

ii) "n+1 = (A+ �n)"n, on A �es una constant tal que j A j< 1 i �n�!

n !10.

Llavors, la successi�o fx0ng dedu��da per l'algorisme d'Aitken a partir de fxng est�a

de�nida per n su�cientment gran i x0n� s = o(xn � s), �es a dir, lim

n!1

x0n� s

xn � s= 0.

DEMOSTRACI�O. Consulteu P. Henrici, "Elementos de an�alisis num�erico".

Corol�lari. Suposem que una funci�o g compleix les hip�otesis del teorema del punt�x g 2 C1(I), I � R, g0(x) 6= 0, x 2 I. Si x0 6= s, llavors la successi�o fxng generada

© Els autors, 1998; © Edicions UPC, 1998.

Page 169: Calcul Numeric - Bonet

Zeros de funcions 179

pel m�etode d'iteraci�o compleix les hip�otesis del teorema anterior prenent A = jg0(s)ji l'algorisme d'Aitken d�ona una accel�leraci�o de la converg�encia.

Exemple. Aplicant l'algorisme d'Aitken al darrer exemple, x = e�x, es pot trobarla taula seg�uent:

n xn x0n

0 0.500000 {1 0.606531 {2 0.545239 0.5676243 0.579703 0.5672994 0.560065 0.5671935 0.571172 0.5671936 0.564863 0.5671597 0.568438 0.5671488 0.566410 0.7671459 0.567560 0.567144

Com es pot veure x0n ja s'ha estabilitzat, en canvi xn no. Fem notar que la formausual d'utilitzar l'algorisme d'Aitken �es fer tres passos d'iteraci�o usual, a partir d'ellses calcula el primer pas d'Aitken i es pren aquest com a nou punt per tornar a fer elstres passos d'iteraci�o usual.

7.6 Converg�encia no lineal

Com hem vist anteriorment, en principi un m�etode iteratiu �es de converg�encialineal (d'ordre 1). El que volem �es donar condicions perqu�e els m�etodes tinguin unaconverg�encia m�es r�apida.

Proposici�o. Sigui xn+1 = g(xn) un m�etode iteratiu i s = g(s) un punt �x. Si

suposem que g 2 Cn(s � �; s + �) i que les derivades g(j)(s) = 0, j = 1; : : : ; p � 1 i

g(p)(s) 6= 0, p � n, aleshores si " �es prou petit, el m�etode iteratiu �es convergent i t�e

ordre p.

DEMOSTRACI�O. Desenvolupant per Taylor la funci�o g(x) al voltant del punt s

obtindrem

g(x) = g(s) + g0(s)(x� s) + � � � +g(p)(�x)

p!(x� s)p ; �x 2 (s; x)

© Els autors, 1998; © Edicions UPC, 1998.

Page 170: Calcul Numeric - Bonet

180 C�alcul num�eric

imposant les condicions g(s) = s i g(j)(s) = 0, j = 1; : : : ; p� 1 tindrem

g(x) = s+g(p)(�x)

p!(x� s)p :

Per als punts de la successi�o tindrem

"n+1 = xn+1 � s =g(p)(�xn)

p!(xn � s)p =

g(p)(�xn)

p!"pn

d'on es dedueix la converg�encia considerant que g(p)(�xn) �es �tat. Finalment passantal l��mit,

limn!1

"n+1

"pn

= limn!1

g(p)(�xn)

p!=

g(p)(s)

p!6= 0

�es a dir, el m�etode t�e ordre p.

7.6.1 Ordre de converg�encia del m�etode de Newton

Considerem ara l'equaci�o f(x) = 0, i suposem que 9 s tal que f(s) = 0 ambf 0(s) 6= 0, pel que hem vist anteriorment, el m�etode de Newton �es un m�etode iteratiu

amb funci�o d'iteraci�o g(x) = x� f(x)

f 0(x). Per veure que aquest m�etode t�e almenys ordre

2 nom�es cal demostrar que g0(s) = 0 on s �es el zero de la funci�o f(x). Calculant

g0(x) = 1� (f 0(x))2 � f(x)f 00(x)

(f 0(x))2=

f(x)f 00(x)

(f 0(x))2

si fem ara x = s i considerant que f(s) = 0 i que f 0(s) 6= 0 tenim que g0(s) = 0, laqual cosa ens diu que el m�etode t�e un ordre de converg�encia � 2. Es pot veure que,en general, g00(s) 6= 0 i per tant l'ordre del m�etode �es 2.

Pel que fa als m�etodes de bisecci�o i la secant es pot demostrar que el m�etode debisecci�o �es lineal, �es a dir d'ordre 1, i que el m�etode de la secant t�e un ordre intermig

entre el de bisecci�o i el de Newton, �es d'ordre1 +

p5

2= 1:618054:::

Fem notar tamb�e que en general el m�etode de Regula falsi, si b�e sempre �esconvergent per funcions continues, la seva converg�encia �es lineal. Aleshores podem dirque �es un bon m�etode per trobar les primeres aproximacions, per�o no �es aconsellableprop d'una arrel.

© Els autors, 1998; © Edicions UPC, 1998.

Page 171: Calcul Numeric - Bonet

Zeros de funcions 181

7.6.2 Zeros m�ultiples

Veiem ara com pot variar la converg�encia d'un m�etode segons la multiplicitat del'arrel buscada.

Per de�nici�o, direm que una arrel s de l'equaci�o f(x) = 0 �es de multiplicitat q sii nom�es si f (j)(s) = 0; j = 0; : : : ; q � 1 o b�e equivalenment, f(x) = (x � s)qh(x) ambh(s) 6= 0. Si prenem una funci�o f(x) amb un zero de multiplicitat q i apliquem el

m�etode de Newton, �es f�acil veure que si g(x) = x�f(x)

f 0(x)tindrem jg0(s)j =

q � 1

q, �es

a dir que si q 6= 1 tindrem que el m�etode de Newton �es de converg�encia lineal.

Per recuperar la converg�encia quadr�atica d'aquest m�etode podem fer una petitavariant i prendre

xn+1 = xn � qf(xn)

f 0(xn):

Aix�o per�o no ser�a possible en general, ja que voldria dir que coneixem a priori lamultiplicitat de l'arrel i aix�o no ser�a aix�� en la majoria dels casos.

En el cas doncs de tenir una arrel m�ultiple haurem de recorrer a una altra

estrat�egia, que consisteix en de�nir una funci�o U(x) =f(x)

f 0(x)per a la qual l'arrel

s tindr�a multiplicitat 1, i amb aquesta funci�o ja podrem aplicar el m�etode de Newton:

xn+1 = xn �U(xn)

U 0(xn)on U 0(xn) = 1�

f 00(xn)

f 0(xn)U(xn) :

7.7 El m�etode de Newton per a sistemes d'equacions no lineals

Els algorismes anteriors tamb�e es poden utilitzar per a sistemes d'equacions. Enslimitarem a dues equacions del tipus

f(x; y) = 0

g(x; y) = 0

on f; g 2 C2(I � J), I � J � R2. De forma vectorial escriurem F =�fg

�.

Per a sistemes, tamb�e es pot enunciar el teorema del punt �x, que permet aplicarl'algorisme d'iteraci�o.

© Els autors, 1998; © Edicions UPC, 1998.

Page 172: Calcul Numeric - Bonet

182 C�alcul num�eric

7.7.1 Teorema del punt �x

Sigui I � J = [a; b]� [c; d] � R2 i f; g : I � J �! R2 funcions tals que

i) F (I � J) � I � J .

ii) Existeix una constant L < 1 tal que per a tot z1; z2 2 I � J es compleixk F (z1)� F (z2) k� L k z1 � z2 k.

Llavors,

a) l'equaci�o F (z) = z =)

�f(x; y)g(x; y)

�=

�x

y

�t�e una �unica soluci�o (s; t) en I � J .

b) per a qualsevol valor inicial z0 2 I�J la successi�o zn = F (zn�1), n = 1; 2; 3; : : :est�a de�nida i convergeix a la soluci�o s.

c) per a n = 1; 2; : : : es compleix la desigualtat seg�uent:

k zn � (s; t) k�Ln

1� Lk z1 � z0 k :

DEMOSTRACI�O. �es una generalitzaci�o del teorema del punt �x d'una variable.Consulteu P. Henrici.

Si apliquem el m�etode de Newton per resoldre una equaci�o F (x) = 0, el quefa el m�etode �es a partir d'un valor inicial x, trobar una correcci�o � de maneraque x + � sigui la soluci�o que estem buscant, �es a dir F (x + �) = 0. Linealitzant

F (x+ �) ' F (x) + F 0(x)� = 0 i, per tant, podem aproximar � � �F (x)

F 0(x). Aleshores,

substitu��m x per x�F (x)

F 0(x).

Aquesta t�ecnica �es la utilitzada per a sistemes. Suposem que (x; y) �es un puntproper a la soluci�o cercada (s; t). Volem trobar una correcci�o (�; ") de manera que(

x+ � = s

y + " = tPer fer-ho, considerem el sistema

(f(x+ �; y + ") = 0

g(x+ �; y + ") = 0

Aplicant Taylor �ns a 1r ordre en " i � s'obt�e,

fx(x; y)� + fy(x; y)" + f(x; y) +O2("; �) ;

gx(x; y)� + gy(x; y)" + g(x; y) +O2("; �) ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 173: Calcul Numeric - Bonet

Zeros de funcions 183

menyspreant els termes de segon ordre i resolent aquest sistema per la regla de Cramer,obtenim

� =gfy � fgy

fxgy � fygx; " =

fgx � gfx

fxgy � fygx;

es pot observar que per hip�otesi el determinant del sistema no s'anul�la.

Per tant, l'algorisme �es f�acil: a partir del valor inicial (x0; y0) es troba (x1; y1) =(x0; y0) + (�; "), i aix�� successivament.

Vectorialment podr��em representar el m�etode de Newton per a sistemes a partirde

zn+1 = zn � J�1(zn)F (zn)

on

zn =

�xnyn

�i F (zn) =

�f(xn; yn)g(xn; yn)

�;

i J �es la matriu jacobiana de F .

Exemple. Resoldrex� 0:7 sinx� 0:2 cos y = 0

y � 0:7 cos x+ 0:2 sin y = 0

a l'entorn de x0 = y0 = 0.

Aplicant el m�etode de Newton es troben els valors seg�uents:

n = 1 x1 = 0:6666667 y1 = 0:583333n = 2 x2 = 0:536240 y2 = 0:5088490n = 3 x3 = 0:5265620 y3 = 0:5079319n = 4 x4 = 0:5265226 y4 = 0:5079197n = 5 x5 = 0:5265226 y5 = 0:5079197

7.8 M�etodes espec���cs per a polinomis

Suposem que volem determinar els zeros del polinomi

p(x) = a0xn + a1x

n�1 + � � �+ an ; a0 6= 0 ; ai 2 R 8 i :

Si anomenem �1; : : : ; �n 2 C o R les n arrels podem escriure p(x) = a0(x��1) : : : (x�

�n). Si els coe�cients s�on reals, les arrels complexes seran conjugades.

© Els autors, 1998; © Edicions UPC, 1998.

Page 174: Calcul Numeric - Bonet

184 C�alcul num�eric

En general podrem aplicar el m�etode de Newton. El c�alcul del valor de la funci�oen el punt i la seva derivada pot ser avaluat successivament pel m�etode de Horner(veure tamb�e secci�o 1.3.4)

p(xk) = bn ; p0(xk) = cn�1 ; p00(xk) = 2!dn�2

onb0 = a0 ; bi = bi�1xk + ai i = 1; 2; : : : ; n

c0 = b0 ; ci = ci�1xk + bi i = 1; 2; : : : ; n� 1

d0 = c0 ; di = di�1xk + ci i = 1; 2; : : : ; n� 2

Aquests m�etodes anirant prou b�e si partim d'una aproximaci�o for�ca bona del zero.Aix�o en general no �es possible. Una opci�o alternativa pot ser aplicar el m�etode de

Laguerre que t�e una millor converg�encia global. La seva f�ormula �es

xk+1 = xk �np(xk)

p0(xk)�pH(xk)

on H(z) = (n� 1)[(n � 1)(p0(z))2 � np(z)p00(z)] i n �es el grau del polinomi.

El signe del denominador s'escollir�a de manera que jxk+1 � xkj sigui el m�es petitpossible.

El m�etode de Laguerre �es de converg�encia c�ubica (tercer ordre) per a arrels simplesi per polinomis �unicament amb arrels reals el m�etode �es convergent per a qualsevolvalor inicial que triem.

Si suposem que les arrels s�on totes reals i que �1 � �2 � � � � � �n i triemx0 2 (�j�1; �j) aleshores el m�etode de Laguerre convergeix cap a �j o �j�1,j = 1; : : : ; n. Si x0 < �1 o �n < x0 convergeix cap a �1 o �n respectivament.

Quan el polinomi t�e arrels complexes, ja no �es cert que tinguem converg�encia pera qualsevol x0 inicial.

7.8.1 M�etode de De acci�o

En el c�alcul de la regla de Horner explicitat anteriorment estem utilitzant quep(x) = (x� xk)g1(x) + bn on bn = p(xk) i on g1(x) = b0x

n�1 + � � �+ bn�2x+ bn�1.

Si suposem que xk = � �es una arrel de p(x) = 0, aleshores bn = 0 i les restantsarrels tamb�e s�on arrels de g1(x). Podem reduir el grau del polinomi i estudiar els

© Els autors, 1998; © Edicions UPC, 1998.

Page 175: Calcul Numeric - Bonet

Zeros de funcions 185

zeros de g1(x). Aquest m�etode s'anomena De acci�o, i es pot iterar a mida que anemtrobant diferents arrels del polinomi.

7.8.2 Problemes amb el mal condicionament

Moltes vegades apareixeran di�cultats degut al mal condicionament del problemasi existeixen arrels m�ultiples. Per�o tamb�e en els casos en que siguin "properes" podemtrobar problemes. Veiem el seg�uent exemple degut a Wilkinson (veure tamb�e secci�o1.4.1).

Exemple: p(x) = (x � 1)(x � 2) � � � (x � 20) = x20 � 210x19 + � � � + 20!. Els zerosd'aquest polinomi s�on tots reals �1 = 1; : : : ; �20 = 20. Suposem que tenim un error ales dades i el coe�cient a1 = �210 passa a ser �a1 = �(210 + 10�10) o sigui que tenimun altre polinomi �p(x) = x20+�a1x

21+ � � �+20! (tots els altres coe�cients iguals). Peraquest polinomi podr��em trobar com arrels

16:730737466 � i2:812624894 (complexes!!!)

L'explicaci�o d'aquest fet �es que la noci�o d'arrels separades s'ha de matitzar i

introduir el concepte de separaci�o relativa. Si �1 < �2 < � � � < �k, s =Q

k�1

i=1

�i+1 � �i

j�ij(�i 6= 0) d�ona una mesura de la separaci�o. Si s �es petit els valors �i estan poc separats.En el nostre exemple �i = i, i = 1; : : : ; 20 tenim s = 8:210�18.

7.9 M�etode de Bairstow

Si diem P (x) = a0xn + a1x

n�1 + � � �+ an, ai 2 R, a0 6= 0, an 6= 0, aquest m�etodeconsisteix en determinar factors quadr�atics que divideixin a P (x), �es a dir, volem ep, eqtals que la divisi�o

P (x)

x2 + epx+ eqsigui exacta. Per aix�o, calcularem les dues arrels del factor quadr�atic, considerarem

el polinomi de accionatP (x)

x2 + epx+ eq de grau n� 2 i seguirem el proc�es.

{ C�alcul de ep, eq.

Si dividim P (x) per x2 + px+ q, amb p, q qualssevol, s'obt�e

P (x) = Q(x)(x2 + px+ q) +R(p; q)x+ S(p; q) (7:9:1)

© Els autors, 1998; © Edicions UPC, 1998.

Page 176: Calcul Numeric - Bonet

186 C�alcul num�eric

amb Q(x) = b0xn�2 + b1x

n�3 + � � �+ bn�2 i volem ep, eq tals que(R(ep; eq) = 0

S(ep; eq) = 0

�es a dir, hem de resoldre un sistema de dues equacions no lineals amb 2 inc�ognites ep,eq. Per aix�o aplicarem el m�etode de Newton, �es a dir, considerem8>>>>><>>>>>:

(p0; q0) inicial

�pm+1

qm+1

�=

�pmqm

��

0BB@@R

@p

@R

@q@S

@p

@S

@q

1CCA�1 �

R(pm; qm)S(pm; qm)

Sabem que si l'aproximaci�o inicial (p0; q0) �es prou propera a (ep; eq) llavors (pm; qm)covergeix a (ep; eq).

Veiem ara com aplicar el m�etode de Newton de manera e�cient. Si denotem perp = pm, q = qm, �p = pm+1� pm, �q = qm+1� qm haurem de resoldre el sistema lineal0BB@

@R

@p

@R

@q@S

@p

@S

@q

1CCA� �p�q�=

��R(p; q)�S(p; q)

Aix�� doncs caldr�a avaluar de manera e�cient

(i) R(p; q), S(p; q)

(ii)@R

@p,@R

@q,@S

@p,@S

@qen (p; q)

(iii) �p, �q

(i) De la identitat

a0xn + � � �+ an = (b0x

n�2 + b1xn�3 + � � �+ bn�2)(x

2 + px+ q) +Rx+ S

i igualant coe�cient, obtenim8>>>>>>>>>>>><>>>>>>>>>>>>:

a0 = b0

a1 = b0p+ b1

a2 = b0q + b1p+ b2

a3 = b1q + b2p+ b3

� � �

an�1 = bn�3q + bn�2p+R

an = bn�2q + S

()

8>>>>>>>>><>>>>>>>>>:

b0 = a0

b1 = a1 � b0p

b2 = a2 � b1p� b0q

� � �

R = an�1 � bn�2p� bn�3q

S = an � bn�2q

© Els autors, 1998; © Edicions UPC, 1998.

Page 177: Calcul Numeric - Bonet

Zeros de funcions 187

aix�� ontenim R, S.

Aquest proc�es equival a fer la divisdi�o sint�etica:

a0 a1 a2 a3 � � � an�2 an�1 an

�p �pb0 �pb1 �pb2 � � � �pbn�3 �pbn�2 �pbn�1

�q �qb0 �qb1 � � � �qbn�4 �qbn�3 �qbn�2

b0 b1 b2 b3 � � � bn�2 bn�1 bn

Per tal de facilitar la programaci�o i calcular els bi de forma recurrent afegim elterme �pbn�1 i llavors els bk es calculen

(b�1 = b

�2 = 0

bk = ak � pbk�1 � qbk�2 ; k = 0; 1; : : : ; n

i (R = bn�1

S = bn + pbn�1

(ii) Calculem les derivades parcials

Derivant (7.9.1) respecte p:

0 = xQ(x) +@Q

@p(x2 + px+ q) +

@R

@px+

@S

@p

�es a dir,

xQ(x) =@Q

@p(x2 + p+ q)�

@R

@px�

@S

@p

per tant �@R

@px�

@S

@p�es el reste de dividir xQ(x) per x2 + px+ q.

Derivant (1) respecte q:

Q(x) = �

@Q

@q(x2 + px+ q)�

@R

@qx�

@S

@q

per tant �@R

@qx�

@S

@q�es el reste de dividir Q(x) per x2 + px+ q.

© Els autors, 1998; © Edicions UPC, 1998.

Page 178: Calcul Numeric - Bonet

188 C�alcul num�eric

Aix�� doncs, les derivades parcials s'obtenen de fer la divisi�o sint�etica de Q(x) ixQ(x) per x2 + px+ q:

b0 b1 b2 b3 � � � bn�3 bn�2 bn�1

�p �pc0 �pc1 �pc2 � � � �pcn�4 �pcn�3 �pcn�2

�q �qc0 �qc1 � � � �qcn�5 �pcn�4 �pcn�3

c0 c1 c2 c3 � � � cn�3 cn�2 cn�1

on b0; b1; : : : ; bn�2 corresponen a Q(x) i per a xQ(x), afegim bn�1 en lloc de 0; es t�ealeshores (

c�2 = c

�1 = 0

ck = bk � pck�1 � qck�2 ; k = 0; 1; : : : ; n� 1

i d'aqu��@R

@p= �cn�2

@S

@p= �(cn�1 + pcn�2 � bn�1)

@R

@q= �cn�3

@S

@q= �(cn�2 + pcn�3)

(iii) Calculem �p, �q resolent el sistema lineal 2� 2 per Cramer8>>>>>>>>>>><>>>>>>>>>>>:

�p =

�R@S

@q+ S

@R

@q

D

�q =

�S@R

@p+R

@S

@p

D

D =@R

@p

@S

@q�

@R

@q

@S

@p

i substituint 8>>><>>>:�p =

bn�1cn�2 � bncn�3

c2n�2 � cn�1cn�3 + bn�1cn�3

�q =cn�2bn � bn�1cn�1 + b2n�1

c2n�2 � cn�1cn�3 + bn�1cn�3

Diguem �nalment, que per tal de poder aplicar el m�etode de Newton, calgarantir que

J(ep; eq) =��������@R

@p

@R

@q@S

@p

@S

@q

�������� 6= 0

© Els autors, 1998; © Edicions UPC, 1998.

Page 179: Calcul Numeric - Bonet

Zeros de funcions 189

on el determinant s'avalua en (ep; eq) tal que x2+ epx+ eq �es un factor quadr�aticde P (x).

TEOREMA. Sigui x2 + epx + eq un factor quadr�atic de P (x) i siguin z1; z2 els seus

zeros diferents. Llavors J(p; q) 6= 0.

DEMOSTRACI�O. Veure P. Henrici.

Exemple. Trobeu els dos factors quadr�atics de l'equaci�o x4+5x3+3x2�5x�9 = 0prenent com a valors inicials p0 = 3, q0 = �5.

Aplicant recursivament les relacions obtingudes anteriorment, obtenim

p3 = 2:902953 q3 = �4:917736

�p3 = 0:00000081 �q3 = �0:00000202

p4 = 2:902954 q4 = �4:917738

Podem agafar aquests �ultims valors com a correctes, excepte l'�ultima xifra. D�ona unafactoritzaci�o aproximada de

x4 + 5x3 + 3x2 � 5x� 9 ' (x2 + 2:90295x � 4:917738)

(x2 + 2:097046x + 1:830110) :

© Els autors, 1998; © Edicions UPC, 1998.

Page 180: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 191

Cap��tol 8 Programaci�o lineal i optimitzaci�o

8.1 Introducci�o

La programaci�o lineal �es una teoria matem�atica i un m�etode de c�alcul per

determinar el m�axim o el m��nim d'una funci�o lineal on el domini de variables queda

restringit amb un sistema de desigualtats lineals. Situacions d'aquest tipus s�on molt

freq�uents en economia, problemes de transport i plans de producci�o, encara que tamb�e

s�on importants les seves aplicacions en telecomunicacions, aproximaci�o i d'altres �arees.

Vegem-ne, per comen�car, un exemple senzill.

Exemple. Suposem una f�abrica que disposa de 3 m�aquines M1, M2, M3 per a la

fabricaci�o de dos productes P1 i P2.

M1 M2 M3

P1 5 3 4

P2 1 4 3

El temps en minuts que cada producte s'ha d'estar en una m�aquinaMi abans de passar

a la seg�uent fase de la seva producci�o es pot veure a la taula. Aix��, la producci�o d'una

unitat de P1 necessita 12 minuts repartits en 5, 3 i 4, respectivament, a M1, M2 i M3.

Suposem que el bene�ci net obtingut amb una unitat de P1 �es de 30 duros i per a P2,

20 duros.

El problema consisteix a trobar quin �es el pla de producci�o que ens donar�a el

m�axim bene�ci.

© Els autors, 1998; © Edicions UPC, 1998.

Page 181: Calcul Numeric - Bonet

192 C�alcul num�eric

Suposem que cada hora es produeixen x1 unitats de P1 i x2 unitats de P2; elproblema �es maximitzar f(x) = 30x1 + 20x2, restringit per

5x1 + x2 � 60 (per a M1) ;

3x1 + 4x2 � 60 (per a M2) ;

4x1 + 3x2 � 60 (per a M3) ;

x1 � 0 ;

x2 � 0 ;

Podem il�lustrar geom�etricament el problema amb la �gura seg�uent. La primerade les desigualtats indica que el punt (x1; x2) s'ha de trobar a l'esquerra o sobre lal��nia AB d'equaci�o 5x1 + x2 = 60, an�alogament es poden anar interpretant les altresdesigualtats. Com que el punt (x1; x2) les ha de satisfer totes, s'haur�a de trobar dinso sobre la vora del pent�agon OABCD.

Els valors de f(x) = 30x1+20x2 = k, �es a dir, les corbes de nivell de f(x) s�on rectesparal�leles a la recta 30x1 +20x2 = 0. Per tant, el m�axim valor s'assolir�a en els puntsdel pent�agon pels quals podem fer passar la recta m�es allunyada de 30x1 + 20x2 = 0.

Aix�o passa en el punt B i, per tant, la soluci�o del problema �es x1 =120

11, x2 =

60

11,

i tenim que el bene�ci m�axim resulta ser f(B) =4800

11duros/hora. Resulta a m�es

que M1 i M3 s'hauran d'utilitzar de manera cont��nua ja que es satisfan les sevesconstriccions amb igualtat, mentre que M2 s'utilitza 54,55 min/hora.

Com que el problema �es molt senzill, amb nom�es dues variables, ha estat possiblefer un dibuix i localitzar l'extrem amb una simple inspecci�o. A la pr�actica aix�ogeneralment no es pot fer d'una manera tan directa. Hem de tenir en compte quealguns problemes, especialment sobre xarxes, poden tenir de l'ordre de centenars,

© Els autors, 1998; © Edicions UPC, 1998.

Page 182: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 193

o �ns i tot, milers d'inc�ognites, la qual cosa fa del tot impossible la representaci�ogeom�etrica "visible" del problema i, per aix�o, ens caldr�a desenvolupar la teoria.

De totes maneres, encara que ja ho veurem amb m�es precisi�o, podem avan�car queel fet que la soluci�o del problema s'hagi trobat en el v�ertex B no ha estat una casualitat.Hem de tenir en compte que la diferencial d'una aplicaci�o lineal �es constant i, per tant,no pot haver-hi punts extrems a l'interior dels hiperplans; per for�ca la soluci�o s'haur�ade trobar en un v�ertex (o si s'esdev�e en m�es d'un punt, inclour�a un v�ertex).

Abans de continuar amb la teoria, vegem un segon exemple senzill relacionat ambel problema de transport per fer-nos una idea del nombre de variables que ens podenapar�eixer.

Exemple (problema del transport)

Suposem que tenim m centres de producci�o d'un cert producte, que produeixenquantitats a1; a2; : : : ; am, respectivament. D'altra banda, tenim n centres de consumels quals han de rebre quantitats b1; : : : ; bn, respectivament. El transport d'una unitatde producte des del centre de producci�o i al centre de consum j t�e un cost cij.

El problema �es determinar les quantitats xij que s'han de transportar del centrede producci�o i (i = 1; : : : ;m) al centre de consum j (j = 1; : : : ; n) de manera queminimitzem el cost del transport satisfent alhora les necessitats de consum.

Per formular aquest problema com un de programaci�o lineal, comencem permuntar la matriu seg�uent:

a1 x11 x12 � � � x1m

a2 x21 x22 � � � x2m

......

......

am xm1 xm2 � � � xmn

b1 b2 � � � bn

La i-�esima �la d'aquesta matriu de�neix les variables associades amb l'i-�esim origen,mentre que la j-�esima columna de�neix les variables associades amb la j-�esimdestinaci�o. El problema �es trobar variables no negatives xij d'aquesta matriu demanera que la suma de la i-�esima �la sigui ai, la suma de la j-�esima columna sigui

bj i que la suma ponderadanP

j=1

mP

i=1

cijxij , que representa el cost de transport, sigui

© Els autors, 1998; © Edicions UPC, 1998.

Page 183: Calcul Numeric - Bonet

194 C�alcul num�eric

m��nima. Obtenim doncs el seg�uent problema de programaci�o lineal:

minimitzeuX

ij

cijxij ;

subjecte anX

j=1

xij = ai ; per a i = 1; 2; : : : ;m (8:1:1)

mX

i=1

xij = bj ; per a j = 1; 2; : : : ; n (8:1:2)

xij � 0 per a , i = 1; 2; : : : ;m ;

per a , j = 1; 2; : : : ; n :

A m�es, per tal que les constriccions (8:1:1) i (8:1:2) siguin consistents, s'ha de

suposar quemP

i=1

ai =nP

j=1

bj ; �es a dir, que tot el que es transporta �es el que al �nal

reben els centres de consum.

Veiem doncs que el problema de transport queda clarament posat com unproblema de programaci�o lineal amb m � n variables. Aix��, si per exemple suposem10 centres de producci�o i 50 de consum, el total de variables a determinar s�on 500 iaix�o tenint nom�es en compte el transport d'un sol tipus de producte; si el que es fa�es transportar per una xarxa diversos productes alhora, de manera que la quantitatd'un producte transportat in ueix sobre la quantitat de l'altre, el problema es potcomplicar considerablement. De fet, les equacions (8.1.1) i (8.1.2) i les an�alogues pera aquest tipus de problemes amb transport de m�es d'un producte es poden organitzaren matrius, en el nostre cas de dim (m + n)�mn que nom�es tenen zeros i uns; aix�oha fet que es desenvolupin algorismes molt e�cients especialitzats nom�es per a aquestcas.

8.2 Formulaci�o est�andard del problema de programaci�o lineal

Com hem vist, un problema de programaci�o lineal �es un problema d'optimitzaci�o,on la funci�o objectiu �es lineal i les constriccions s�on un sistema lineal d'igualtats idesigualtats. La forma exacta de les constriccions pot variar d'un problema a unaltre, �es per aix�o que ens cal una formulaci�o est�andard per treballar.

La formulaci�o est�andard que triarem �es la seg�uent:

© Els autors, 1998; © Edicions UPC, 1998.

Page 184: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 195

minimitzeu c1x1 + c2x2 + � � � + cnxn ;

subjecte aa11x1 + a12x2 + � � � + a1nxn = b1 ;

a21x1 + a22x2 + � � � + a2nxn = bn ;

� � � � � � � � �

� � � � � � � � �

am1x1 + am2x2 + � � � + amnxn = bn ;

i

x1 � 0 ; x2 � 0 ; � � � xn � 0 ;

on les bi � 0 (si no, nom�es cal canviar de signe l'equaci�o corresponent) i el rang delsistema �es m. Vectorialment ho escriurem

[MIN ] Cx ;

subjecte aAx = b ;

x � 0 :

Ara veurem com qualsevol problema de programaci�o lineal es pot reduir a aquest cas.

1. Si el que volem �es [MAX] Cx, nom�es cal tenir en compte que

[MAX] Cx = [MIN ]� Cx :

2. Variables de folga

Si alguna de les restriccions �es del tipus

�a1x1 + �a2x2 + � � �+ �anxn � �b ;

la passem a igualtat afegint una folga y, i queda

�a1x1 + �a2x2 + �anxn + y = �b; y � 0;

�es a dir, que si aquest problema el teniem en k-restriccions, ho passem a unproblema en el qual apareixen k noves variables, les c de les quals en la funci�oobjectiu seran zero.

© Els autors, 1998; © Edicions UPC, 1998.

Page 185: Calcul Numeric - Bonet

196 C�alcul num�eric

3. Variables d'exced�encia

Si alguna de les restriccions �es del tipus

�a1x1 + �a2x2 + � � � + �anxn � �b ;

la passem a una igualtat restant una variable d'exced�encia y :

�a1x1 + �a2x2 + �anxn � y = �b; y � 0 :

Com en el cas anterior si aix�o passa a l-equacions el problema augmenta en l

variables, les c de les quals s�on zero en la funci�o objectiu.

4. Variables lliures

Si alguna de les variables, per �xar idees suposem que la x1, no est�a restringidaa x1 � 0, sin�o que pot prendre qualsevol valor de la recta real, positiu onegatiu, podem fer dues coses:

a) Si en alguna de les equacions de Ax = b es t�e un ai1 6= 0, a��llem la x1 enfunci�o de les altres i la substitu��m arreu on aparegui, ens queda llavors unproblema amb n� 1 variables: x2 : : : xn.

b) Fem x1 = u1 � v1 amb u1 � 0 i v1 � 0, i substitu��m la x1 per u1 � v1a tot arreu on aparegui. El problema s'expressa llavors en termes de n + 1variables u1, v1, x2, x3 : : : xn.

Com a exemple d'aplicaci�o agafem el primer exemple que present�avem i redu��m-lo aforma est�andard.

L'exemple era[MAX] 30x1 + 20x2 ;

subjecte a5x1 + x2 � 60 ;

3x1 + 4x2 � 60 ;

4x1 + 3x2 � 60 ;

x1 � 0 x2 � 0 :

Per passar a forma est�andard, cal afegir 3 folgues, que anomenarem x3, x4, x5; llavorsel problema queda:

[MIN ] � 30x1 � 20x2 ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 186: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 197

subjecte a

5x1 + x2 + x3 = 60 ;

3x1 + 4x2 + x4 = 60 ;

4x1 + 3x2 + x5 = 60 ;

x1 � 0 x2 � 0 x3 � 0 x4 � 0 x5 � 0 :

8.3 Formulaci�o geom�etrica del problema

En aquest apartat anem a precisar el que d�eiem al �nal del primer exemple, que no�es casual que l'�optim s'hagu�es trobat en un v�ertex del pent�agon. Per aix�o, necessitemunes de�nicions i propietats senzilles.

De�nici�o, (combinaci�o lineal convexa) Siguin x1 : : : xm punts de Rn; una

combinaci�o lineal convexa d'aquests punts �es x =mP

i=1

�ixi amb 0 � �i � 1 i

mP

i=1

�i = 1.

Per exemple, si m = n = 2, una combinaci�o lineal convexa ser�a:

x = �x1 + (1� �)x2

i pot representar qualsevol dels punts que es troben al segment x1x2.

Per exemple, si m = 3, n = 2, una combinaci�o lineal convexa de 3 punts x1, x2 ix3 serveix per representar qualsevol dels punts del triangle que t�e per v�ertex x1, x2 ix3

© Els autors, 1998; © Edicions UPC, 1998.

Page 187: Calcul Numeric - Bonet

198 C�alcul num�eric

De�nici�o. (conjunt convex) Sigui K � Rn, K 6= ;. Direm que K �es convex si per atot x; y 2 K es t�e que �x+ (1� �)y 2 K, per a tot � 2 [0; 1].

En altres paraules, un conjunt �es convex, si donats dos punts qualssevol delconjunt, cont�e tamb�e el segment que els uneix.

Convex No convex

�Es f�acil veure que la intersecci�o no buida de conjunts convexos �es convexa.

De�nici�o. (Punts extrems o v�ertex d'un convex) Un punt x 2 K � Rn, on K �esconvex, �es un v�ertex de K si no hi ha dos punts diferents x1 i x2 de K tals quex = �x1 + (1� �)x2 per a algun 0 < � < 1.

Un punt extrem �es, per tant, un punt que no podem posar estrictament a l'interiordel segment que uneix qualssevol altres dos punts del conjunt. Aix��, per exemple, elspunts extrems d'un triangle s�on els seus tres v�ertexs.

Proposici�o. El conjunt K = fx 2 Rn;Ax = b; x � 0g �es convex.

DEMOSTRACI�O. K �es intersecci�o dels conjunts Ax = b i x � 0. x � 0 �es convex(exercici). Ax = b �es convex ja que A(�x + (1 � �)y) = �Ax + (1 � �)Ay =�b+ (1� �)b = b suposant que Ax = b i Ay = b.

© Els autors, 1998; © Edicions UPC, 1998.

Page 188: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 199

Nota. D'ara endavant, si no es diu el contrari, K es referir�a a aquest conjunt.

De�nici�o. (Soluci�o b�asica) Donat el sistema Ax = b, sigui B qualsevol submatrium�m no singular obtinguda agafant m columnes de A. Aleshores, si a les altres n�mcomponents de x no associades a les columnes de B les fem zero, la soluci�o resultant�es una soluci�o b�asica del sistema Ax = b respecte de la base B. Les components de xassociades a les columnes de B s'anomenen variables b�asiques.

Exemple : Continuant amb el nostre exemple, el sistema Ax = b era:

5x1 + x2 + x3 = 60 ;

3x1 + 4x2 + x4 = 60 ;

4x1 + 3x2 + x5 = 60 :

El menor format per les 3 primeres columnes �es

������

5 1 13 4 01 3 0

������

6= 0, per tant, podem

agafar B =

0@5 1 13 4 04 3 0

1A i, aix��, les variables b�asiques serien x1, x2, x3, mentre

que les variables no b�asiques s�on x4 i x5, i fent-les zero obtenim la soluci�o b�asica(x1; x2; x3; x4; x5) = (60

7; 607; 607; 0; 0).

De�nici�o. (Soluci�o b�asica degenerada) Si una o m�es de les variables b�asiques en unasoluci�o b�asica t�e el valor zero, es diu que tenim una soluci�o b�asica degenerada.

A l'exemple que tractem, la soluci�o b�asica �es no degenerada ja que tant x1, x2com x3, que s�on les variables b�asiques, han pres valor diferent de zero.

De�nici�o. (Soluci�o b�asica factible) �Es una soluci�o b�asica que, a m�es, compleix l'altracondici�o del conjunt K, �es a dir, x � 0.

La soluci�o b�asica obtinguda en el nostre exemple �es doncs factible, ja que totesles components s�on � 0. An�alogament una soluci�o b�asica degenerada pot ser factibleo no ser-ho.

TEOREMA. (Equival�encia entre v�ertexs i solucions b�asiques factibles) Un vector x�es un v�ertex de K si, i nom�es si, x �es una soluci�o b�asica factible.

© Els autors, 1998; © Edicions UPC, 1998.

Page 189: Calcul Numeric - Bonet

200 C�alcul num�eric

DEMOSTRACI�O. Suposem que tenim una soluci�o b�asica factible, per �xar ideessuposarem que les variables b�asiques s�on les m-primeres: x = (x1; : : : ; xm; 0; 0; : : : ; 0).Llavors

x1a1 + x2a2 + � � � + xmam = b ;

on a1; a2; : : : ; am s�on les m-primeres columnes de A i s�on linealment independents.

Suposem que x es pot expressar com a combinaci�o lineal convexa de dos altrespunts de K, x = �y+(1��)z amb 0 < � < 1 i y 6= z. Com que totes les componentsde x, y, z s�on no negatives (ja que s�on punts de K i 0 < � < 1, tenim que les �ultimesn�m components de y i de z han de ser zero (ja que x les t�e aix��) i, com que y; z 2 K

(tenim Ay = b i Az = b), ha de passar que

y1a1 + y2a2 + � � �+ ymam = b ;

z1a1 + z2a2 + � � �+ zmam = b :

Per�o, com que a1; : : : ; am s�on linealment independents, resulta que x = y = z i,per tant, x �es un v�ertex de K.

Vegem el rec��proc: suposem que x �es un v�ertex deK i suposem que les componentsdiferents de zero de x s�on les k primeres. Tenim x1a1 + x2a2 + � � � + xkak = b

amb xi > 0, i = 1; : : : ; k (ja que x 2 K). Per veure que x �es una soluci�ob�asica factible (degenerada o no degenerada) nom�es cal veure que les columnes de A,a1; : : : ; ak, s�on linealment independents. Anem a fer-ho reduint a l'absurd: suposemque s�on linealment dependents; existeixen llavors y1; : : : ; yk no tots zero, tal quey1a1 + y2a2 + � � � + ykak = 0. Considerem el n-vector y = (y1; : : : ; yk; 0; : : : ; 0). Comque xi > 0, 1 � i � k podem trobar " tal que x+ "y � 0, x� "y � 0.

Aleshores, x = 1

2(x + "y) + 1

2(x � "y), que expressa x com a combinaci�o lineal

convexa de dos punts diferents de K. Contradicci�o ja que supos�avem que x era unv�ertex. Per tant, a1; : : : ; ak s�on linealment independents i x �es una soluci�o b�asicafactible (degenerada si k < m).

Proposici�o. Si K �es no buit, almenys t�e un v�ertex.

DEMOSTRACI�O. Sigui x 2 K, tenim que x1a1+x2a2+ � � �+xnan = b on a1; : : : ; ans�on les columnes de A i xi � 0, i = 1� n.

Suposem que exactament p de les variables xi s�on estrictament m�es grans quezero. Agafem les p primeres per �xar idees. Es t�e x1a1+x2a2+ � � �+xpap = b i podenpassar dues coses:

© Els autors, 1998; © Edicions UPC, 1998.

Page 190: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 201

Cas 1 (a1; : : : ; ap linealment independents)

Aleshores �es clar que p � m. Si p = m, la x com a soluci�o del sistema �es b�asicai pel teorema d'equival�encies anterior �es un v�ertex. Si p < m, com que rangA = m per hip�otesi agafa m � p vectors columna de A de manera que amba1; : : : ; ap siguin linealment independents assigna valor zero a les variablesassociades a aquests vectors i s'obt�e una soluci�o b�asica factible degenerada.Pel teorema d'equival�encia se segueix el resultat.

Cas 2 (a1; : : : ; ap linealment dependents)

Aleshores existeixen y1; : : : ; yp no tots zeros i hom pot suposar que almenysun �es positiu tal que y1a1 + � � �+ y1ap = 0. Si multipliquem aquesta equaci�oper " i la restem de x1a1 + � � � xpap = b, obtenim

(x1 � "y1)a1 + (x2 � "y2)a2 + � � � + (xp � "yp)ap = b ;

igualtat certa per a tot ".

Tenim aix�� que si denominem y el n-vector y = (y1; : : : ; yp; 0; 0; : : : ; 0) resulta quex� "y �es soluci�o de A�x = b que per " = 0 d�ona lloc a la x. Quan " s'incrementa desde 0, les components de x� "y augmenten disminueixen o es queden igual, depenentde si el signe de yi �es negatiu, positiu o yi = 0, respectivament. Com que hemsuposat que almenys una yi > 0, una component decreixer�a quan " creixi. Aix�� femcr�eixer " �ns all�a on una o m�es components de x � "y valguin zero (espec���cament" = minf(xi=yi); yi > 0g). Per a aquest valor de " obtenim una soluci�o que t�e a totestirar p � 1 variables positives. Anem repetint aquest proc�es, si es necessari, �ns aobtenir una soluci�o corresponent al cas 1.

Corol�lari. El conjunt K t�e com a m�axim un nombre �nit de punts extrems.

DEMOSTRACI�O. De solucions b�asiques se'n tenen com a m�axim�n

m

�.

Proposici�o. Sigui C un conjunt convex, �tat i tancat amb un nombre �nit de v�ertexs;

aleshores qualsevol punt de C es pot posar com a combinaci�o lineal convexa dels

v�ertexs de C.

(No farem la demostraci�o d'aquesta proposici�o.)

Vegem ara com s'interpreta el que hem anat dient sobre el nostre exemple

© Els autors, 1998; © Edicions UPC, 1998.

Page 191: Calcul Numeric - Bonet

202 C�alcul num�eric

El dibuix que teniem al principi i que podem tornar a veure aqu��, un cop afegidesles folgues al problema, de manera que ens queda:

5x1 + x2 + x3 = 60 ;

3x1 + 4x2 + x4 = 60 ;

4x1 + 3x2 + x5 = 60 ;

x1 � 0 x2 � 0 x3 � 0 x4 � 0 x5 � 0 ;

representa el primer tall pel pla x1, x2 de l'espai de solucions possibles. Notem araque cada costat del pent�agon ve donat per alguna xi = 0 i que els v�ertexs s'obtenenfent dues xi zero, per exemple B = (x3 = 0; x5 = 0) mentre que si fem per exemplex3 = 0 i x4 = 0 o x1 = 0 i x5 = 0 obtindrem solucions b�asiques no factibles.

Finalment anem a veure que el m�axim (o m��nim) d'una funci�o lineal en el conjuntK s'assoleix en un v�ertex.

TEOREMA. (x0 = cx t�e l'�optim en un v�ertex de K)

Si existeix bx 2 K tal que bx0 = cbx � cx per a tot x 2 K, aleshores bx es pot agafarcom un v�ertex de K.

DEMOSTRACI�O. Suposem que bx no fos un v�ertex, aleshores bx es pot posar com acombinaci�o lineal convexa dels v�ertexs de K. Si fx1; x2; : : : ; xrg s�on els v�ertexs de K,

tenim que bx =rP

i=1

�ixi, 0 � �i � i,

rPi=1

�i = 1.

© Els autors, 1998; © Edicions UPC, 1998.

Page 192: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 203

Aleshores bx0 = cbx = crP

i=1

�ixi =

rPi=1

�icxi. Si denominem xi0 = cxi, �es a dir, el

valor de la funci�o objectiu en el v�ertex xi i xk0= MINfx1

0; : : : ; xr

0g, �es a dir, el m��nim

de la funci�o objectiu en els v�ertexs. Tenim

bx0 =rX

i=1

�ixi

0 � xk0

rXi=1

�i = xk0 �es a dir, bx0 � xk0 i per tant,

el valor de la funci�o en un punt interior �es m�es gran o igual que el valor de la funci�oen un cert v�ertex, per tant el m��nim de la funci�o s'assoleix en un v�ertex. (Notem qued'una manera an�aloga el m�axim de la funci�o s'assoleix tamb�e en un v�ertex i que ni elm�axim ni el m��nim tenen per qu�e ser �unics.)

D'una manera te�orica, doncs, ja tenim resolt el problema de programaci�o lineal,nom�es ens caldria anar mirant el valor de la funci�o a cada v�ertex i triar el que doniun valor m�es petit. Passa, per�o, que el nombre de v�ertexs pot arribar a ser

�n

m

�i

segons com sigui el problema aix�o �es un nombre molt gran. El m�etode que veurem acontinuaci�o ser�a m�es e�cient. La t�ecnica b�asica �es fer un algorisme que d'una soluci�ob�asica factible inicial passi a una altra, �es a dir, que passi de v�ertex a v�ertex per�o demanera que el valor de la funci�o objectiu disminueixi a cada pas.

8.4 M�etode del s��mplex (Dantzig 1942)

No farem la discussi�o te�orica de com funciona el m�etode del s��mplex i com porta auna soluci�o del problema, ja que les seves bases s�on molt semblants a les demostracionsque hem fet en el cap��tol anterior. Ens limitarem a il�lustrar-ho amb l'exemple queseguim.

Recordem que posat en forma st�andard el nostre problema �es

[MIN ] � 30x1 � 20x2 ;

subjecte a5x1 + x2 + x3 = 60 ;

3x1 + 4x2 + x4 = 60 ;

4x1 + 3x2 + x5 = 60 ;

x1 � 0 x2 � 0 x3 � 0 x4 � 0 x5 � 0 :

El primer pas consisteix a trobar una soluci�o b�asica factible (�es a dir, situar-nosen un v�ertex). Aquest �es un problema que en principi pot semblar senzill, per�o quan

© Els autors, 1998; © Edicions UPC, 1998.

Page 193: Calcul Numeric - Bonet

204 C�alcul num�eric

tenim moltes variables en joc pot ser molt dif��cil, ja que el que hem de fer es triar lesvariables no b�asiques, fer-les zero, i ha de passar que, en resoldre el sistema resultantper trobar les b�asiques, aquestes prenguin valor m�es gran o igual que zero. En elnostre exemple �es certament f�acil, ja que si fem x1 = x2 = 0 com a no b�asiquesobtenim x3 = x4 = x5 = 60 com a b�asiques i �es un punt inicial factible. Al �naldel cap��tol, per�o, comentarem algun dels m�etodes que es fan servir per aconseguir-hoen casos m�es dif��cils. Un cop es t�e la soluci�o b�asica factible constru��m la taula del

s��mplex

x1 x2 x3 x4 x5 b

5 1 1 0 0 60

3 4 0 1 0 60

4 3 0 0 1 60

Aquesta taula es construeix de manera que sota les variables b�asiques nom�es hihagi un 1 i tot l'altre sigui zero, de manera que quan fem les no b�asiques zero la soluci�osigui trivial, nom�es cal mirar la b corresponent a la �la de l'1 per saber el valor quepren la variable b�asica.

El proc�es, com ja hem apuntat, consisteix a passar de v�ertex a v�ertex de maneraque disminueixi la funci�o objectiu per aix�o cada pas del s��mplex consisteix a canviaruna variable no b�asica per una de b�asica �ns arribar a l'�optim. Per saber quina deles variables no b�asiques ha d'entrar a la base per deixar de ser no b�asica i passar aser b�asica, fem una taxaci�o de les variables no b�asiques. Per aix�o mirem el valor dela funci�o objectiu en termes de les variables no b�asiques en aquell pas.

La nostra funci�o objectiu �es f(x) = �30x1 � 20x2. En el nostre cas ja latenim en funci�o de les variables no b�asiques. Notem que, com que ens trobem enel cas on x1 = 0, x2 = 0, tenim que f(x) = 0 i a m�es ens trobem en el v�ertexO del pent�agon. Als coe�cients de les variables no b�asiques en la funci�o objectiuels direm costos redu��ts, aix�� direm que en aquest pas x1 t�e un cost redu��t �30 ix2 un cost redu��t �20. Les variables no b�asiques candidates a entrar a la bases�on aquelles que tenen cost redu��t negatiu (d'aquesta manera quan augmenti el seuvalor disminuir�a la funci�o objectiu). En el nostre cas tant x1 com x2 s�on bonescandidates a entrar a la base. Malgrat que a priori no se sap quina elecci�o �es la millor,normalment s'agafa la de cost redu��t m�es negatiu, �es a dir, en el nostre cas x1. Sitotes les variables no b�asiques tinguessin cost redu��t positiu, voldria dir que l'�optimja s'ha aconseguit i el proc�es de l'algorisme s'ha acabat.

© Els autors, 1998; © Edicions UPC, 1998.

Page 194: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 205

Un cop s'han taxat les variables no b�asiques i s'ha decidit quina entra a la base,s'ha de fer la prova de passa. Quan es fa cr�eixer el valor de la variable no b�asicaescollida resulta que el valor d'algunes b�asiques disminueix, la primera d'aquestes queprengui el valor zero ser�a la que haur�a d'abandonar la base i passar a ser no b�asica

x1 x2 x3 x4 x5 b

5 1 1 0 0 60

3 4 0 1 0 60

4 3 0 0 1 60

Aix�� doncs, la prova de passa serveix per saber �ns on podem "in ar" x1, segonsel que permetin les b�asiques x3, x4 i x5.

El l��mit per a cada variable b�asica s'aconsegueix dividint en la �la en qu�e aquestat�e un 1 , el valor de b pel corresponent valor que hi ha sota la variable no b�asica. Aix��,tenim:

x3 � 0 ; si �x1 �60

5= 12 ;

x4 � 0 ; si �x1 �60

3= 20 ;

x5 � 0 ; si �x1 �60

4= 15 :

D'aquests valors s'ha de triar el m�es petit i positiu (de fet, si algun del nombresde sota x1 �es negatiu a la variable b�asica corresponent ja no se li fa la prova de passa);en cas que tots fossin negatius resulta que el problema no t�e �ta inferior (el recinte noestaria �tat i a m�es no hi hauria m��nim). En el nostre cas, el m�axim que se'ns permet"in ar" x1 �es 12, moment en el qual x3 passar�a a tenir valor zero i, per tant, haur�ad'abandonar la base i passar a ser no b�asica.

El pas seg�uent del m�etode �es la pivotaci�o; x3 ha d'abandonar la base mentre quex1 ha d'entrar-hi. S'ha d'actualitzar la taula tenint en compte que el vector (1; 0; 0)que hi ha sota x3 ha de passar sota x1; les transformacions s�on semblants a les que esfan per triangular un sistema d'equacions: en el nostre cas dividim la primera �la per5 i despr�es sumem el que calgui a les altres dues , tenint en compte que les b han deser positives o zero.

© Els autors, 1998; © Edicions UPC, 1998.

Page 195: Calcul Numeric - Bonet

206 C�alcul num�eric

Resulta la nova taula:

x1 x2 x3 x4 x5 b

1 1

5

1

50 0 12

0 17

5�

3

51 0 24

0 11

5�

4

50 1 12

Ara les variables no b�asiques s�on x2 i x3, i les b�asiques x1, x4, x5. La soluci�ob�asica factible en aquest moment �es (x1; x2; x3; x4; x5) = (12; 0; 0; 24; 12); hem saltatdoncs al v�ertex A.

Continuem ara el proc�es �ns arribar a l'�optim. Cal fer la taxaci�o; escrivim f entermes de les no b�asiques. Aix�� ten��em que f(x) = �30x1 � 20x2. Mirant la taulaes t�e x1 = 12 � (x2 + x3)=5. Tenim doncs f(x) = �30(12 � (x2 + x3)=5 � 20x2 =�360� 14x2 + 6x3.

El valor de la funci�o en el v�ertex A �es, doncs, �360 i la variable x2 �es l'�unicacandidata a entrar a la base.

Prova de passa:

x1 � 0 ; �x2 �12

1=5= 60 ;

x4 � 0 ; �x2 �24

17=5=

120

17;

x5 � 0; �x2 �12

11=5=

60

11:

Per tant, x5 ha de deixar la base perqu�e hi entri x2

x1 x2 x3 x4 x5 b

1 0 7

550 � 1

11

120

11

0 0 35

551 �17

11

60

11

0 1 � 4

110 5

11

60

11

© Els autors, 1998; © Edicions UPC, 1998.

Page 196: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 207

Som, doncs, en el punt (x1; x2; x3; x4; x5) =�120

11; 6011; 0; 60

11; 0�, �es a dir, en el v�ertex

B.

Si mirem els costos redu��ts f(x) = �4800

11+ 10

11x3 + 70

11x5 s�on tots positius i ens

trobem en l'�optim; el valor de f en l'�optim �es �4800

11; com que hem maximitzat f

buscant el m��nim de �f , el valor m�axim, tal com haviem calculat d'entrada, �es 4800

11.

Hem vist, per tant, que l'algorisme del s��mplex segueix els passos seg�uents:

Pas 0. Formar la taula corresponent a una soluci�o b�asica factible.

Pas 1 (taxaci�o). Calcular els costos redu��ts de les variables no b�asiques, per determinarquina pot entrar a la base. Si totes tenen el cost redu��t positiu, la soluci�o actual �es�optima.

Pas 2 (prova de passa). Determinar �ns on podem in ar la variable no b�asica queentrar�a a la base i determinar aix�� quina de les variables b�asiques ha de deixar la base;si tots els quocients surten negatius, el problema no est�a �tat inferiorment.

Pas 3 (pivotatge). Intercanviar el paper de les variables b�asica i no b�asica triades enels passos 1 i 2 , actualitzant la taula per �les. Tornar al pas 1.

Acabarem aquest cap��tol amb uns comentaris sense entrar-hi en detall.

1. (Degeneracions). Pot passar que mentre anem fent el proc�es del s��mplexobtinguem una soluci�o b�asica degenerada factible i resulti que al moment de ferla prova de passa el m��nim dels quocients que s'han de fer sigui zero. Si enstrobem amb aix�o, fem la pivotaci�o de la manera usual, encara que no es millori elresultat de la funci�o objectiu, ja que de fet estem en el mateix v�ertex. Si repetintl'algorisme entrem en un cicle, aleshores aquell v�ertex �es l'�optim.

2. (Obtenci�o de la soluci�o b�asica factible inicial). Pot passar que costi trobar lasoluci�o b�asica factible inicial; aleshores un dels procediments que podem fer servir�es afegir una variable arti�cial. Per tal que aquesta no surti a la soluci�o �nal, seli associa un cost molt elevat. Ho il�lustrarem amb un exemple.

Suposem el problema

[MIN ] x1 � x2 ;

subjecte a

© Els autors, 1998; © Edicions UPC, 1998.

Page 197: Calcul Numeric - Bonet

208 C�alcul num�eric

2x1 � x2 � x3 = 2 ;

x1 � 2x2 + x4 = 2 ;

x1 + x2 + x5 = 5 ;

xi � 0 (i = 1� 5) :

No podem triar x1 i x2 com a no b�asiques, ja que x3 pren un valor negatiu; agafemdoncs l'equaci�o 2x1�x2�x3 = 2 i hi afegim una nova variable x6 : 2x1�x2�x3+x6 = 2amb x6 � 0. Per assegurar-nos que en el resultat �nal la variable x6 val zero, el quefem �es afegir-la a la funci�o objectiu amb un cost molt elevat M , i aix�� la funci�o quedax1 � x2 +Mx6, on M es podria per exemple escollir M = 1000.

3. (Variables amb l��mits superiors). Per a problemes del tipus

[MIN ] Cx ;

subjecte a

Ax = b ;

0 � x � h ;

el proc�es del s��mplex es pot modi�car sense haver-hi d'afegir noves variables.Ara b�e, podem reduir el problema a forma est�andard afegint n variables novesy1; : : : ; yn , i el problema queda

[MIN ] Cx ;

subjecte a

Ax = b ;

x+ y = h ;

x � 0 y � 0 :

4. (No unicitat de l'�optim). Pot ser que el problema no tingui soluci�o �unica, �es adir, que el m��nim s'assoleixi en m�es d'un punt (malgrat que el valor del m��nim �es�unic). Aquesta situaci�o es fa evident en els c�alculs quan una o m�es de les variablesno b�asiques �es absent a l'expressi�o de f quan el criteri del m��nim se satisf�a.

© Els autors, 1998; © Edicions UPC, 1998.

Page 198: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 209

8.5 M�etode computacional del s��mplex

8.5.1 Forma matricial del m�etode del s��mplex

Anem a preparar ara la notaci�o, i uns resultats que se'n deriven, per anar cap auna programaci�o e�cient del m�etode del s��mplex.

La primera observaci�o del desenvolupament �es que la taula en qualsevol punt delprocediment del s��mplex es pot determinar �unicament sabent quines variables s�onles b�asiques. Com abans, anomenarem B la submatriu de A que correspon a les mvariables b�asiques. Sabem que aquestes columnes s�on linealment independents i, pertant, les columnes de B formen base de Rm. A B li direm la matriu b�asica.

Farem la seg�uent partici�o de A, de les variables X i dels costos C:

A = [B;D] ; X = [XB ;XD] i CT = [CTB ; CT

D] :

Aleshores el nostre problema est�andard esdev�e

[MIN ] CTBXB + CTDXD ;

subjecte aBXB +DXD = b ;

XB � 0 ;

XD � 0 :

La soluci�o b�asica que suposarem tamb�e factible, corresponent a la base B, �esX = [XB ; 0] on XB = B�1b. Com sabem, la soluci�o b�asica s'obt�e fent XD = 0; arab�e, per a qualsevol valor XD el valor XB necessari per satisfer la constricci�o d'igualtates pot calcular a partir d'aquesta constricci�o aillant

XB = B�1b�B�1DXD ;

d'aquesta manera ho podem substituir a la funci�o de cost i resulta

z = CTB(B�1b�B�1DXD) + CTDXD = CTBB

�1b+ (CTD �CTBB�1D)XD ;

i aix�� tenim expressat el cost de qualsevol soluci�o.

Per tant, rTD

= CTD�CT

BB�1D s�on els costos redu��ts de les variables no b�asiques.

S�on les components d'aquest vector que s'utilitzen per determinar quins vectors hand'entrar a la base.

© Els autors, 1998; © Edicions UPC, 1998.

Page 199: Calcul Numeric - Bonet

210 C�alcul num�eric

Ara podem escriure la taula del s��mplex en forma matricial. La taula inicial �es

2664

A b

CT 0

3775 =

2664

B D b

CT

B CTD 0

3775

que no est�a generalment en forma can�onica i no es correspon a un punt del proc�es del

s��mplex. Si la matriu B s'utilitza com a base, llavors la corresponent taula esdev�e

T =

2664

I B�1D B�1b

0 CTD � CTBB�1D �CTBB

�1b

3775

que �es la forma matricial que volem.

8.5.2 El m�etode del s��mplex revisat

L'experi�encia d'utilitzar el m�etode del s��mplex per a diferents valors de n i de m ,

sembla indicar que el m�etode convergeix al cap de m o de3m

2iteracions. Per tant, si

m �es molt m�es petit que n, hi haur�a moltes columnes que no s'utilitzaran i el treball

de calcular els elements d'aquestes columnes en cada pivotaci�o no serveix de res. El

m�etode del s��mplex revisat el que fa �es ordenar els c�alculs i evitar-ne els innecessaris.

En els casos on m �es molt m�es petit que n, s'estalviaran moltes operacions.

La forma revisada del m�etode del s��mplex �es aquesta:

Considereu la inversa B�1 d'una base corrent i la soluci�o corrent xB = y0 = B�1b.

Pas 1: Calculeu els coe�cients dels costos redu��ts rTD = CTC � CTBB�1D.

Aix�o es fa millor si primer calculem �T = CTBB�1 i llavors el vector

de costos redu��ts rTD = CTD � �TD. Si totes les components de rDs�on � 0 la soluci�o corrent �es �optima i parem.

Pas 2: Determineu quin vector aq ha d'entrar a la base seleccionant el m�es

negatiu dels costos redu��ts i calculeu yq = B�1aq que d�ona el vector

aq expressat en termes de la base corrent.

© Els autors, 1998; © Edicions UPC, 1998.

Page 200: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 211

Pas 3: Si cap yiq > 0 pareu. El problema no �es �tat. Altrament, calculeu

les raonsyi0

yiqper als yiq > 0, per saber quin vector ha de deixar la

base.

Pas 4: Actualitzeu B�1 (no la recalculeu tota) i la soluci�o corrent B�1b pertornar al pas 1.

L'actualitzaci�o de B�1 es fa mitjan�cant les operacions usuals de pivotatge a unaestructura que cont�e B�1 i yq i on el pivot �es l'element apropiat de yq. EvidentmentB�1b es pot actualitzar alhora passant-lo com una altra columna.

Per comen�car el procediment es necessita com sempre una soluci�o b�asica factible ila inversa de la base inicial. En molts problemes la base inicial (i tamb�e la seva inversa)�es la matriu identitat, perqu�e s'han afegit folgues al problema. De totes maneres si est�e una soluci�o b�asica factible i la matriu b�asica no �es la identitat, nom�es cal calcular-la (B�1 nom�es s'haur�a de calcular aquesta primera vegada, les altres vegades nom�ess'actualitza).

Il�lustrem el m�etode amb un exemple:

[MIN ] � 3x1 � x2 � 3x3 ;

subjecte2x1+x2+ x3+ x4 = 2 ;

x1+2x2+3x3+ + x5 = 5 ;

2x1+2x2+x3+ + x6 = 6 ; xi � 0 :

En aquest cas el vector de costos �es CT = [�3;�1;�3; 0; 0; 0]. Comencem ambuna soluci�o b�asica factible i la corresponent B�1 tal com v�eiem a la taula seg�uent:

Variable B�1 xBz }| {

4 1 0 0 25 0 1 0 56 0 0 1 6

CTB = [0; 0; 0] .

Calculem �T = [0; 0; 0]B�1 = [0; 0; 0] i, per tant,

rTD = CTD � �TD = [�3;�1;�3] :

© Els autors, 1998; © Edicions UPC, 1998.

Page 201: Calcul Numeric - Bonet

212 C�alcul num�eric

Decidim entrar a2 a la base (malgrat que a1 i a3 tenen costos redu��ts m�es negatius,aix�o simpli�car�a els c�alculs que fem a m�a).

Entrem al pas 2: tenim que a2 =

0@122

1A, la seva representaci�o corrent l'obtenim

multiplicant per B�1 aix�� y2 = B�1a2 =

0@(1

22

1A.

Tenim la taula seg�uent:

Variable B�1 xB y2z }| {

4 1 0 0 2 15 0 1 0 5 26 0 0 1 6 2

Pas 3. Despr�es de calcular les proves de passa de la manera usual, seleccionem elpivot encerclat.

Amb aquest pivot actualitzem la taula (Pas 4):

Variable B�1 xBz }| {

2 1 0 0 25 �2 1 0 16 �2 0 1 2

CTB= [�1; 0; 0] .

Tornem al pas 1:

�T = [�1; 0; 0]B�1 = [�1; 0; 0]

i

rTD

= CTD� �TD = [�3;�3; 0] � [�1; 0; 0]

242 1 11 3 02 1 0

35 = [�1;�2; 1] ;

per tant,

r1 = �1

r3 = �2

r4 = 1 :

© Els autors, 1998; © Edicions UPC, 1998.

Page 202: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 213

Escollim a3 per entrar a la base, tenim la taula:

Variable B�1 xB y3z }| {

2 1 0 0 2 15 �2 1 0 1 16 �2 0 1 2 �1

i utilitzant el pivot indicat s'obt�e:

Variable B�1 xBz }| {

2 3 �1 0 13 �2 1 0 16 �4 1 1 3

CTB= [�1;�3; 0] .

Tornem al pas 1:�T = [�1;�3; 0]B�1 = [3;�2; 0]

irTD = [�7;�3; 2]

corresponent a les variables no b�asiques 1,4 i 5, respectivament.

Triem a1 per a entrar a la base. Tenim la taula:

Variable B�1 xB y1z }| {

2 3 �1 0 1 53 �2 1 0 1 �36 �4 1 1 3 �5

Pivotant amb l'element indicat, obtenim:

Variable B�1 xBz }| {

1 3=5 �1=5 0 1=53 �1=5 2=5 0 8=56 �1 0 1 4

CTB= [�3;�3; 0] .

Ara�T = [�3;�3; 0]B�1 = [�6=5;�3=5; 0]

© Els autors, 1998; © Edicions UPC, 1998.

Page 203: Calcul Numeric - Bonet

214 C�alcul num�eric

irTD = [7=5; 6=5; 3=5] ;

corresponents a les variables no b�asiques 2, 4 i 5, respectivament.

Com que tots els costos redu��ts s�on positius concloem que la soluci�o

x = (1=5; 0; 8=5; 0; 0; 4)

�es l'�optima.

Nota. Hi ha altres variants del s��mplex revisat que necessiten menys mem�oria i s�onm�es e�cients, sobretot quan el nombre de constriccions comen�ca a ser gran (de l'ordrede centenars) o �adhuc m�etodes m�es espec���cs per a casos especials. No els tractarem,per�o, ja que estan fora del nostre prop�osit.

8.6 Programaci�o no lineal

En aquest cap��tol farem una introducci�o molt general al problema de trobarel m��nim (o m�axim) d'una funci�o ' : Rn

�! R no lineal. Entre d'altres moltsllocs, aquests m�etodes tenen aplicacions en investigaci�o operativa, teoria del control ienginyeria qu��mica.

Al llarg de tot el cap��tol suposarem que les variables no estan subjectes arestriccions i que la funci�o �es unimodal (t�e un �unic m�axim o m��nim). Els m�etodes pera l'optimitzaci�o amb constriccions sobre les variables s�on for�ca m�es complexos. Moltsdels m�etodes d'optimitzaci�o en m�es d'una variable el que fan �es escollir una direcci�oen el domini i buscar l'�optim sobre aquesta l��nia escollida, �es per aix�o que veuremprimer els plans de recerca de m��nims unidimensionals.

8.6.1 M�etodes b�asics de descens unidimensional

Segons la regularitat de la funci�o i del coneixement que tinguem de les sevesderivades podem tenir diferents m�etodes.

M�etodes que no necessiten derivades. Aquests m�etodes busquen el m��nim nom�es fentavaluacions de la funci�o. La majoria de vegades la t�ecnica consisteix, un cop sabutl'interval on es localitza el m��nim, a anar partint aquest interval d'una manera "s�avia",de forma que ens quedi un interval petit amb el m��nim en el seu interior; tot aix�o haventfet el m��nim nombre d'avaluacions de la funci�o possibles.

© Els autors, 1998; © Edicions UPC, 1998.

Page 204: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 215

Un esquema geom�etric senzill ens fa adonar de seguida que, si sabem que el m��nimes localitza en un interval donat, s�on necessaris almenys dos punts en el seu interior persaber quin tros d'interval negligir. Per exemple, mirant la �gura, de l'interval inicial[x1; x4], havent avaluat la funci�o en els punts x2 i x3 del seu interior podr��em negligirl'interval [x3; x4] i quedar-nos amb [x1; x3] com a nou interval d'incertesa (recordeuque suposem que la funci�o �es unimodal).

1. M�etode dels nombres de Fibonacci

Aquest m�etode ens diu de quina manera s'han de triar els punts interiors demanera que l'interval es redueixi el m�axim possible amb el m��nim nombre d'avaluacionsde la funci�o si no sabem res a priori de la funci�o dins l'interval. �Es a dir, �es te�oricamentel m�etode m�es e�cient entre els que nom�es necessiten avaluacions de la funci�o. Hi hacassos especials en els quals altres m�etodes poden ser m�es e�cients, per�o basant-nos enl'experi�encia,com m�es complicada �es la funci�o m�es gran �es la possibilitat que aquestm�etode sigui el m�es adequat.

En aquest m�etode juguen un paper important els nombres de Fibonacci, que esde�neixen com

F0 = F1 = 1

Fj = Fj�1 + Fj�2 ; j � 2 :

Aix�� doncs,F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 � � �

1 1 2 3 5 8 13 21 34 55 � � �

Malgrat que la deducci�o del m�etode no �es dif��cil, nom�es indicarem el seu procediment.

Suposem que tenim el m��nim situat en un interval [a; b].

Escriurem:

© Els autors, 1998; © Edicions UPC, 1998.

Page 205: Calcul Numeric - Bonet

216 C�alcul num�eric

d1 = b� a, longitud de l'interval inicial;

dk = longitud de l'interval resultant al cap de k mesuraments.

Si pensem fer un nombre N + 1 d'avaluacions de la funci�o, l'interval es va reduintsegons

dk =

�FN�k+1

FN

�d1 ;

per tant, la longitud �nal d'incertesa al cap de N+1 avaluacions �es dN =d1

Fn. Notem

doncs que aix�o ens permet veure les coses des de dos punts de vista. Si la funci�o �escostosa d'avaluar, podem escollir N +1 i sabem que obtenim l'�optim en un interval de

longitudd1

FN; �es a dir, el tenim amb precisi�o

d1

2FN, o b�e a l'inrev�es, �xem la precisi�o i

calculem llavors el nombre d'avaluacions que seran necess�aries.

El procediment per reduir l'interval d'incertesa funciona de la manera seg�uent: les

dues primeres avaluacions de la funci�o es fan sim�etricament a dist�anciaFN�1

FNd1 dels

extrems de l'interval inicial; negligint el tros que calgui ens quedem amb un interval

de longitud d2 =FN�1

FNd1, a l'interior del qual ja tenim un punt avaluat. El tercer

mesurament es fa sim�etricament a aquest punt que ja hi ha dins de l'interval. El

resultat d'aquesta tercera mesura d�ona un interval de longitud d3 =FN�2

FNd1. En

general cada successiva avaluaci�o es fa en l'interval corrent sim�etricament respecte alpunt interior que ja existeix dins l'interval. L'�unic problema �es que la darrera mesuracau exactament al mig de l'interval coincidint amb el punt anterior, aleshores el quees fa �es despla�car-la una mica del mig; a la pr�actica, per�o, els errors d'arrodonimentpotser ja l'han despla�cat prou.

Exemple. Suposem que volem calcular el m��nim de f(x) = x2� 2x+2 amb un error

< 10�1. Sabent que es troba a l'interval [0; 3], f(0) = 2, f(3) = 5 (�Obviament lasoluci�o correcta �es x = 1).

Com a soluci�o �nal agafarem el punt mitj�a de l'interval resultant; per tant, perobtenir la precisi�o desitjada, l'interval �nal pot tenir una longitud m�axima de 0,2

. Tenim doncs que dN =d1

FN� 0; 2 amb d1 = 3, �es a dir, FN �

3

0; 2= 15;

mirant la seq�u�encia de nombres de Fibonacci 13 = F6 < 15 < F7 = 21, hauremde fer 8 avaluacions de la funci�o i la precisi�o �nal tindr�a a tot estirar un error

" =3

2� 21=

3

42' 0; 07143.

© Els autors, 1998; © Edicions UPC, 1998.

Page 206: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 217

Les dues avaluacions primeres s'han de fer a dist�anciaF6

F7

d1 =39

21' 1; 8571 dels

extrems, �es a dir, en els punts x1 = 1; 8571, x2 = 1; 1429

0 x2 x1 3f(x1) = 1; 7346f(x2) = 1; 0204

Tal com veiem al dibuix, el m��nim s'ha de trobar a l'interval [0; x1] i x2 �es el puntinterior que ja hi tenim.

Ens quedem amb l'interval [0; x1] i x3 ha de ser el sim�etric de x2 en aquest interval,�es a dir, x3 = 0; 7142; la tercera avaluaci�o d�ona, per tant,

0 x3 x2 x1 f(x3) = 1; 0817

Aix��, ens hem de quedar amb l'interval [x3; x1], en el qual ja tenim x2.

© Els autors, 1998; © Edicions UPC, 1998.

Page 207: Calcul Numeric - Bonet

218 C�alcul num�eric

Aquests passos i els corresponents �ns al �nal, els podem veure a la taula seg�uent

Pas Interval Punt sim�etric Avaluacions Interval resultantconsiderat i punt interior

1 [0; 3] x1 = 1; 8571 f(x1) = 1; 7346

x2 = 1; 1429 f(x2) = 1; 0204 [0 ; x1] x2

2 [0; x1] x3 = 0; 7142 f(x3) = 1; 0817 [x3; x1] x2

3 [x3; x1] x4 = 1; 4284 f(x4) = 1; 1835 [x3; x4] x2

4 [x3; x4] x5 = 0; 9997 f(x5) = 1 [x3; x2] x5

5 [x3; x2] x6 = 0; 8524 f(x6) = 1; 0218 [x6; x2] x5

6 [x6; x2] x7 = 0; 9956 f(x7) = 1; 00002 [x7; x2] x5

7 [x7; x2] x8 = 1; 1388 f(x8) = 1; 0193 [x7; x8] x5

Tenim doncs que el m��nim es troba a l'interval [x7; x8] = [0:9956; 1:1388]; agafantel punt mitj�a, l'aproximem per 1; 0672 i, com veiem, l'error �es m�es petit que el predit.

Una cosa amb qu�e hem d'anar molt en compte �es que en els m��nims la funci�o potser molt plana i la imatge d'un interval relativament gran al voltant del m��nim pot serun interval molt petit, de manera que amb la precisi�o que es fan el c�alculs no es puguidistingir b�e entre un punt i un altre. Per exemple, en el nostre cas els c�alculs els hemfet arrodonint al quart decimal; �xem-nos per�o que, si en avaluar el punt x7 no fem"la trampa" d'afegir-hi un decimal m�es, les imatges de x5 i de x7 serien 1 i, per tant,el m��nim te�oricament s'hauria de trobar entre aquests valors, cosa que �es falsa. S'hade tenir compte de no reduir l'interval m�es del que l'ordinador pugui distingir a l'horad'avaluar la funci�o, ja que tots els c�alculs a partir de llavors perdrien validesa.

2. M�etode de la ra�o �auria

Suposem que en el m�etode de Fibonacci no ens interess�es �xar a priori el nombred'avaluacions de la funci�o, ni la longitud de l'interval �nal, sin�o que, com si digu�essim,comencem el m�etode per un N molt gran i ens aturem quan ens sembli b�e; aix��, fenttendir la N �!1, resulta el m�etode de la ra�o �auria.

© Els autors, 1998; © Edicions UPC, 1998.

Page 208: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 219

En el m�etode de Fibonacci les primeres avaluacions s'havien de fer a dist�anciaFN�1

FNd1 dels extrems de l'interval inicial; fent tendir N a 1 obtindrem la dist�ancia

dels extrems a qu�e hem de fer les avaluacions per aquest nou m�etode.

Es pot veure que limN�!1

FN�1

FN=

p5� 1

2' 0; 61803. A l'invers d'aquest nombre

que resulta ser1 +

p5

2i que �es conegut des del temps dels grecs, �es considerada la

proporci�o m�es est�etica entre els dos costats d'un rectangle i se li diu nombre d'or ora�o �auria.

Aix�� doncs, el m�etode de la ra�o �auria comen�ca fent les primeres avaluacions de la

funci�o a dist�ancia

p5� 1

2d1 dels extrems de l'interval i continuem tal com f�eiem en el

m�etode de Fibonacci �ns que es consideri oport�u. A cada pas l'interval resultant t�e

longitud dk =

p5� 1

2

!k�1d1.

3. M�etode de Rosenbrock

�Es un m�etode molt senzill, per�o a vegades pot donar molt bon resultat. S'escullun punt inicial x0 i una longitud de pas h. S'avalua f(x0 + h) i f(x0) si resulta quef(x0 + h) < f(x0) es diu �exit i, si no, frac�as. Els passos seg�uents es fan aix��: si elpas �es �exit, s'agafa x0 + h en lloc de x0 com a nou punt base i la longitud del pass'augmenta multiplicant per un nombre adequat: �h, on � > 1 (normalment � = 2).Si el pas �es frac�as, es ret�e el punt original base i la longitud de pas original es redueix

i es fa negatiu, �es a dir, s'agafa �h, on 0 < � < 1 (normalment � =1

2). Resumint, la

iteraci�o �es aix��:

pas 1 escolliu x0, h

pas 2 si f(x0 + h) < f(x0),

feu

x0 := x0 + h, h := 2h

altrament

h :=�h2

,

© Els autors, 1998; © Edicions UPC, 1998.

Page 209: Calcul Numeric - Bonet

220 C�alcul num�eric

torneu al pas 2 .

Exemple. Trobeu el m��nim de x2�2:6x+2 amb precisi�o 0; 1, comen�cant amb x0 = 0i h = 1.

La taula seg�uent ensenya els passos que donen la resposta com 0; 315 a x =11

8

x0 f(x0) h f(x0 + h) �Exit o frac�as

0 2:0 1 0:4 E1 0:4 2 3:2 F1 0:4 �1 2:0 F1 0:4 1=2 0:35 E

1:5 0:35 1 1:75 F1:5 0:35 �1=2 0:4 F1:5 0:35 �1=4 0:51 F1:5 0:35 �1=8 0:315 E

8.6.2 M�etodes que necessiten derivades o que la f sigui regular

Si la funci�o �es diferenciable i unimodal, si �es possible calcular f 0(x) d'algunamanera podem aplicar qualsevol dels m�etodes per trobar zeros de funcions querecordarem breument

1. Bissecci�o. Busquem dos punts x1, x2 on f 0(x1) i f0(x2) prenguin valors diferents,

aleshores anem partint l'interval per la meitat i ens quedem amb el tros on hi ha canvide signe de f 0.

2. Secant. Donats dos punts x1, x2 inicials, per interpolaci�o lineal s'obt�e l'algorisme

xk+1 = xk � f 0(xk)xk�1 � xk

f 0(xk�1)� f 0(xk); k = 2; 3; : : :

3. Newton-Raphson. Si a m�es coneixem f"(x), normalment el Newton Raphson d�onamillor resultat que l'anterior, sobretot si som a prop del m��nim

xk+1 = xk �f 0(xk)

f 00(xk); k = 1; 2; : : :

4. Interpolaci�o quadr�atica. Si x1, x2, x3 s�on tres punts a prop del m��nim de f(x) ,

© Els autors, 1998; © Edicions UPC, 1998.

Page 210: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 221

podem ajustar una par�abola y = ax2 + bc+ c, resolent el sistema

f(x1) = a+ bx1 + cx21

f(x2) = a+ bx2 + cx22

f(x3) = a+ bx3 + cx23

i determinant a, b, c.

Aleshores el m��nim de la par�abola resulta a x4 = �b=2c. Dels 3 punts inicialsx1, x2, x3 descartem el m�es lluny�a a x4 i amb els 3 que ens queden anem repetint elproc�es.

5. Interpolaci�o c�ubica per Hermite. Donats els punts xk�1 i xk amb els valors f(xk),f 0(xk), f(xk�1) i f 0(xk�1) �es possible interpolar una c�ubica i buscar el zero de laderivada. El punt seg�uent que portar�a al m��nim es pot determinar per la f�ormulad'iteraci�o seg�uent:

xk+1 = xk � (xk � xk�1)

�f 0(xk) + u2 � u1

f 0(xk)� f 0(xk�1) + 2u2

�;

on

u1 = f 0(xk�1) + f 0(xk)� 3f(xk�1)� f(xk)

xk�1 � xk;

u2 =qu21 � f 0(xk�1)f 0(xk) :

8.6.3 M�etodes de descens multidimensional

Veurem ara esquem�aticament l'an�alisi dels principals m�etodes per trobar m��nimsde funcions f : Rn

�! R, n � 2. Suposarem que f(x) t�e un sol m��nim en el dominiK on el busquem. Suposarem a part, les hip�otesis de regularitat de la f necess�ariesen cada cas, que K �es convex i que l'�optim es troba al seu interior. De fet, els m�etodesque veurem estan pensats per trobar el m��nim sense constriccions sobre el domini deles x, per tant, el domini K no importar�a gaire i els m�etodes a la pr�actica s'utilitzeni convergeixen partint d'un punt prou a prop del m��nim.

1. M�etode del gradient. Entre els m�etodes en qu�e a partir d'un punt inicial cal escolliruna direcci�o i buscar el m��nim segons aquella direcci�o, un dels m�es vells i amplamentconeguts �es el m�etode del gradient, que consisteix en seguir a cada pas la direcci�ode m�axima pendent de la funci�o, que com sabem ve donada pel vector gradient. Elm�etode �es extremadament important des d'un punt de vista te�oric, ja que �es un delsm�es simples per al qual hi ha una an�alisi satisfact�oria. Algorismes m�es avan�cats s�on

© Els autors, 1998; © Edicions UPC, 1998.

Page 211: Calcul Numeric - Bonet

222 C�alcul num�eric

sovint una modi�caci�o d'aquest per tal d'obtenir una millor converg�encia. De fet,per�o, en un problema pr�actic, el m�etode del gradient sovint �es el primer que s'utilitzaper tenir una refer�encia de com poden anar altres m�etodes.

L'algorisme del m�etode del gradient �es un m�etode iteratiu molt senzill: a partird'un punt inicial x0 es busca una seq�u�encia xk+1 = xk � �kgk, k = 0; 1; : : : ; n, ongk = rf(xk) i �k s'escull de manera que f(xk+1) = min

f(xk � �gk).

Per tal que l'algorime funcioni cal suposar evidentment que la f sigui C1. Laminimitzaci�o al llarg de la direcci�o donada pel gradient es fa utilitzant qualsevol deles t�ecniques vistes a l'apartat anterior. Normalment una interpolaci�o quadr�atica o, sila f �es prou regular (C2) , un Newton-Raphson. En aquest darrer cas podem donarel proc�es expl��citament: desenvolupant per Taylor la funci�o f al llarg d'una direcci�o s

es t�e aproximadament

f(xk + �s) ' f(xk) + �sTrf(xk) +1

2�2sTH(xk)s ;

on H(xk) �es la matriu hessiana de f en el punt xk. Si � �es tal que f(xk + �s) �es

m��nim, llavors@

@�f(xk + �s) = 0, aix�o ens d�ona

sTrf(xk) + sTH(xk)s = 0 ;

�es a dir,

� = �sTrf(xk)

sTH(xk)s:

Per tant la f�ormula general d'iteraci�o per determinar el punt m��nim al llarg de ladirecci�o s �es

xk+1 = xk �sTrf(xk)s

sTH(xk)s:

Tenint en compte que el m�etode del gradient agafa com a direcci�o s = �rf(xk),resulta

xk+1 = xk �rT f(xk) � rf(xk)

rT f(xk) �H(xk) � rf(xk)rf(xk) :

El problema del m�etode del gradient �es que la seva converg�encia �es m�es aviatlenta; s'ha suggerit que un m�etode senzill de millorar la converg�encia �es agafar �k unamica m�es petit, aproximadament un 90% del valor m��nim de � . Els problemes de lavelocitat de converg�encia i les caracter��stiques del m�etode es posen de manifest quans'aplica al cas d'una funci�o quadr�atica.

© Els autors, 1998; © Edicions UPC, 1998.

Page 212: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 223

Suposem que f(x) =1

2xTQx� xT b, on Q �es una matriu n�m sim�etrica de�nida

positiva i b un vector columna (en aquest cas el m��nim es pot trobar per diferenciaci�odirecta i resolent el sistema Qx� = b).

Si denominem per x� el m��nim i introdu��m la funci�o E(x) =1

2(x�x�)TQ(x�x�),

fent operacions es t�e que E(x) = f(x) +1

2x�TQx�, per tant, la funci�o E difereix de f

en una constant i des d'un punt de vista t�ecnic (no pr�actic ja que no coneixem x�) �esequivalent minimitzar f o E, nom�es que en el m��nim E val zero.

El gradient (tant de f com de E) �es g(x) = Qx� b.

Aix��, aplicant la f�ormula d'iteraci�o que hem obtingut fent Newton-Raphson en ladirecci�o del gradient, el proc�es iteratiu �es

"(�)" xk+1 = xk �

gTkgk

gTkQgk

!gk ;

ongk = Qxk � b :

Les corbes de nivell de f i el proc�es de m�axim pendent s'il�lustra a la �gura seg�uent

Les corbes de nivell de f s�on el�lipsoides n-dimensionals amb eixos segons les n-direccions ortogonals dels vectors propis de Q. L'eix corresponent a l'i-�esim vectorpropi �i t�e longitud proporcional a 1=�i.

Quant a la converg�encia per a aquest cas quadr�atic, es pot demostrar el teoremaseg�uent.

© Els autors, 1998; © Edicions UPC, 1998.

Page 213: Calcul Numeric - Bonet

224 C�alcul num�eric

TEOREMA. Suposem que 0 < a = �1 � �2 � � � � � �n = A s�on els n valors propis

de Q.

Per a qualsevol x0 2 Rn, el m�etode del gradient donat per (*) convergeix a l'�unic

punt m��nim x� de f . A m�es, si E(x) =1

2(x� x�)TQ(x� x�) a cada pas k es t�e

E(xk+1) �

�A� a

A+ a

�2E(x) :

Aix�� doncs, el teorema anterior ens diu que la velocitat de converg�encia del m�etodedel gradient es redueix quan les corbes de nivell de f esdevenen m�es exc�entriques (ales valls, com si digu�essim). Si a = A, cosa que correspondria a contorns circulars, laconverg�encia esdev�e en un �unic pas. Malgrat tot notem que, si n�1 dels valors propiss�on iguals, per�o el que queda �es molt diferent, la converg�encia ser�a lenta. Per tant, un�unic valor propi "anormal" pot destruir l'efectivitat del m�etode.

Aix��, la converg�encia dep�en nom�es de la ra�o r =A

ai, per tant, la ra�o de

converg�encia �es

�A� a

A+ a

�2=

�r � 1

r + 1

�2, cosa que demostra que la converg�encia

disminueix quan r augmenta. A la ra�o r, que �es un nombre associat a la matriuQ i caracteritza la converg�encia, se li diu sovint nombre de condici�o de la matriu.

Exemple. Agafem f(x) =1

2xTQx� xT b amb

Q =

0BB@

0:78 �0:02 �0:12 �0:14�0:02 0:86 �0:04 0:06�0:12 �0:04 0:72 �0:08�0:14 0:06 �0:08 0:74

1CCA b = (0:76; 0:08; 1:12; 0:68) :

Per a questa matriu es pot calcular a = 0:52, A = 0:94, per tant, r = 1:8 que�es un nombre de condici�o molt favorable i que d�ona una velocitat de converg�encia�A� a

A+ a

�2= 0; 081. Aix��, a cada iteraci�o reduirem l'error en l'objectiu per un factor

m�es gran de 10 , o equivalentment a cada iteraci�o s'afegir�a aproximadament un d��gitm�es de precisi�o. Partint de l'origen, la seq�u�encia de valors obtinguda pel m�etode latenim a la taula seg�uent i �es consistent amb l'estimaci�o:

© Els autors, 1998; © Edicions UPC, 1998.

Page 214: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 225

Pas k f(xk)

0 01 -2.15636252 -2.17440623 -2.17464404 -2.17465855 -2.17465956 -2.1746595

El teorema seg�uent il�lustra com, en general, les propietats de converg�enciaobtingudes per al cas quadr�atic es traslladen de manera similar a problemes noquadr�atics.

TEOREMA. Suposem f de�nida a Rn de classe C2 i amb un m��nim relatiu a x�.

Suposem a m�es que la matriu hessiana de f a x�, H(x�), t�e a > 0 com el m�es petit

valor propi i A > 0 com el m�es gran. Si fxkg �es la successi�o generada pel m�etode

del gradient que convergeix a x�, llavors la successi�o dels valors objectiu ff(xk)g

convergeix a f(x�) linealment amb una ra�o de converg�encia no superior a

�A� a

A+ a

�2

.

2. M�etode de Newton. Com en el cas unidimensional, el m�etode de Newton �es una"c�opia" del m�etode de buscar zeros, per�o ara de funcions de m�es d'una variable; �esa dir, buscar un zero del gradient de la funci�o. La idea �es que localment podemaproximar la funci�o per la s�erie de Taylor �ns a ordre 2,

f(x) ' f(xk) +rf(xk)(x� xk) +1

2(x� xk)

TH(xk)(x� xk) ;

per tant, el proc�es iteratiu ve donat per

xk+1 = xk � [H(xk)]�1rf(xk)

T :

TEOREMA. Sigui f 2 C3(Rn); suposem que al m��nim x� el hessi�a H(x�) �es de�nitpositiu. Llavors si comencem el proc�es iteratiu prou a prop de x�, la seq�u�encia fxkggenerada pel m�etode de Newton convergeix a x� i l'ordre de converg�encia �es com a

m��nim dos.

El gran desavantatge d'aquest m�etode �es que en cada pas s'ha de calcular l'inversdel hessi�a. El gran avantatge �es la seva velocitat de converg�encia. Aquest m�etode es

© Els autors, 1998; © Edicions UPC, 1998.

Page 215: Calcul Numeric - Bonet

226 C�alcul num�eric

pot modi�car d'una manera senzilla variant el hessi�a cada cert nombre d'iteracions ob�e introduint un par�ametre �k a la iteraci�o, i queda xk+1 = xk��k[H(xk)]

�1rf(xk)T

per si a prop del m��nim la funci�o s'increment�es a causa dels seus termes no quadr�atics.No entrarem, per�o, en la seva an�alisi.

3. M�etode del gradient conjugat. El m�etode del gradient, amb totes les sevesvariacions, �es generalment massa lent, mentre que el de Newton t�e l'inconvenientd'invertir una matriu a cada iteraci�o. Els m�etodes coneguts com "de gradientconjugat" s�on considerats usualment els millors. Tenen una converg�encia molt m�esr�apida que els del gradient i van b�e computacionalment. Tamb�e, des d'un punt devista te�oric, la teoria de les direccions conjugades per al disseny d'algorismes e�cientses considera un pas m�es gran en la programaci�o no lineal.

De�nici�o. Donada una matriu sim�etrica H, dos vectors s1 i s2 es diuen ortogonalsH o conjugats respecte de H si sT1Hs2 = 0.

De�nici�o. Un conjunt �nit de vectors s1; s2; : : : ; sr es diu conjugat respecte de H sisTi Hsj = 0, per a tot i 6= j, 1 � i; j � r.

Noteu que si H =Id, els vectors conjugats s�on ortogonals en el sentit usual.

TEOREMA. Si els vectors s1; : : : ; sr no nuls s�on conjugats respecte a la matriu H

, sim�etrica i de�nida positiva, llavors s�on linealment independents.

(Demostraci�o per exercici).

TEOREMA. Sigui f(x), x 2 Rn una forma quadr�atica amb matriu H de�nida

positiva com a hessi�a i siguin s1; : : : ; sn un conjunt de vectors no nuls conjugatsrespecte de H. Aleshores, partint de qualsevol x1 i en passos successius en lesdireccions s1; s2; : : : ; sn, cada un d'una longitud apropiada donada per l'algorisme

xk+1 = xk + �ksk ; k = 1; 2; : : : ; n

�k = �sTkrf(fk)

sTkHsk;

s'arriba al punt m��nim x� en n passos exactament, �es a dir, xn+1 = x�. (No farem lademostraci�o d'aquest teorema.)

En el m�etode del gradient conjugat, les direccions no s'especi�quen a priori, sin�oque es van calculant a cada pas. Es comen�ca per la direcci�o de descens de m�axim

© Els autors, 1998; © Edicions UPC, 1998.

Page 216: Calcul Numeric - Bonet

Programaci�o lineal i optimitzaci�o 227

pendent donada pel gradient i de seguida es va calculant la direcci�o en cada puntsuccessiu. L'algorisme �es el seg�uent:

Pas 1. Escolliu x0, feus0 = �g0 = �rf(x0)

H0 = H(x0)

k = 0

Pas 2. Avalueu �k =�gT

ksk

sTkHksk

xk+1 = xk + �ksk

gk+1 = rf(xk+1)

Hk+1 = H(xk+1)

�k =gTk+1

Hksk

sTkHksk

sk+1 = �gk+1 + �ksk :

Pas 3. Si k < n� 1, feu k = k + 1 i torneu al pas 2.

Si k = n� 1, feu x0 = xn i torneu al pas 1.

Aquest algorisme t�e moltes implicacions te�oriques, per exemple es pot demostrarque les successives direccions formen un conjunt conjugat respecte del hessi�a H, si f�es una funci�o quadr�atica. Per tant, en aquest cas l'algorisme d�ona l'�optim al cap den iteracions.

Una lleugera modi�caci�o d'aquest m�etode �es l'anomenada de Fletcher-Reeves. Enlloc de calcular Hk per avaluar �k, es calcula la longitud de pas minimitzant f(x) alllarg d'una l��nia:

Pas 1. Escolliu x0, feus0 = �g0 = �rf(x0)

k = 0 :

Pas 2. Feu xk+1 = xk + �ksk, on �k �es el valor de �, que minimitza f(xk + �sk)

gk+1 = rf(xk+1)

�k =gTk+1

gk+1

gTkgk

sk+1 = �gk+1 + �ksk :

© Els autors, 1998; © Edicions UPC, 1998.

Page 217: Calcul Numeric - Bonet

228 C�alcul num�eric

Pas 3. Si k < n� 1, feu k = k + 1 i torneu al pas 2.

Si k = n� 1, feu x0 = xn i torneu al pas 1.

© Els autors, 1998; © Edicions UPC, 1998.

Page 218: Calcul Numeric - Bonet

Equacions diferencials 229

Cap��tol 9 Equacions diferencials

9.1 Introducci�o

Considerem el problema de Cauchy o de valors inicials(y0(x) = f(x; y(x))

y(a) = y0 ;(9:1:1)

on x 2 [a; b], y(x) 2 Rm, y0 2 Rm i f : [a; b]�Rm �! R

m �es una funci�o prou regularper assegurar l'exist�encia i unicitat de soluci�o de (9.1.1).

Per a alguns problemes de valor inicial la soluci�o pot obtenir-se anal��ticament, per�oper a d'altres, incloent-hi els de m�es inter�es pr�actic, aix�o no �es possible. Els m�etodesnum�erics que integren equacions diferencials no ens donaran la soluci�o expl��cita y(x),per�o en canvi donats x0; : : : ; xn 2 [a; b] arbitraris, obtindrem els valors aproximats dela soluci�o en aquests punts. De fet, en els problemes f��sics on la resoluci�o de l'equaci�osigui necess�aria, no nom�es �es su�cient con�eixer la soluci�o en uns valors concrets, sin�oque �es el que realment es necessita.

El prop�osit d'aquest cap��tol �es doncs el de descriure m�etodes per aproximaraquestes solucions num�ericament. Per simpli�car les exposicions suposarem quem = 1encara que el cas general ser�a comentat m�es endavant.

El proc�es consisteix en primer lloc a subdividir l'interval [a; b] en N parts que,per simpli�car, considerarem iguals (Fig. 1)

x0 x1 x2 � � � xN�1 xN

a b

© Els autors, 1998; © Edicions UPC, 1998.

Page 219: Calcul Numeric - Bonet

230 C�alcul num�eric

Fig. 1

De�nint h com l'amplitud d'aquesta partici�o, resulta que h = (b � a)=N i quexn = a + nh per a n = 0 �N . D'ara endavant, y(xn) denotar�a el valor de la soluci�oexacta de (9.2.1) en el punt xn i yn, l'aproximaci�o generada pel m�etode num�eric enconsideraci�o. Vegem tot seguit alguns d'aquests m�etodes.

9.2 M�etodes d'un pas

9.2.1 M�etode d'Euler

Es tracta del m�etode num�eric m�es simple. De les dades y(x0) = y0 es pot con�eixerla derivada de la soluci�o exacta en aquest punt:

y0(x0) = f(x0; y(x0)) = f(x0; y0) :

La idea d'aquest m�etode consisteix aleshores a aproximar, en primer lloc, y(x) en[x0; x1] pel seu desenvolupament de Taylor de 1r ordre global al voltant de x0, �es adir,

y(x) �= y(x0) + y0(x0)(x� x0) = y0 + f(x0; y0)(x� x0) per a x 2 [x0; x1] :

Aix��, a x = x1, obtenim

y(x1) �= y0 + f(x0; y0)(x1 � x0) = y0 + f(x0; y0)h � y1 :

Geom�etricament, aix�o equival a considerar que en [x0; x1] la tangent a y(x) en x0 �esuna "bona" aproximaci�o de la corba soluci�o (Fig. 2).

Fig. 2

© Els autors, 1998; © Edicions UPC, 1998.

Page 220: Calcul Numeric - Bonet

Equacions diferencials 231

Suposem ara que y1 �es una "bona" aproximaci�o de y(x1) i considerem en [x1; x2]el problema de valors inicials associat a (9.1.1)

(y0

1(x) = f(x; y1(x))

y1(x1) = y1; x 2 [x1; x2] :

Si les condicions de regularitat del problema s�on prou bones, tindrem que y1(x) �esuna bona aproximaci�o de y(x) en [x1; x2]. Repetint aleshores el proc�es anterior per ay1(x), resulta que

y(x) �= y1(x) �= y1 + y0

1(x1)(x� x1) = y1 + f(x1; y1)(x� x1) per a x 2 [x1; x2]

i, per tant, en x = x2

y(x2) �= y1(x2) �= y1 + f(x1; y1)(x2 � x1) = y1 + f(x1; y1)h � y2 :

Seguint de forma recurrent, tindr��em que l'algorisme del m�etode d'Euler v�e donatper

(y0 = y(a)

yn+1 = yn + hf(xn; yn) n = 0�N � 1 :

Exemple. Considerem el problema de valors inicials:

(y0(x) = y(x)

y(0) = 1; x 2 [0; 1] :

�Es f�acil comprovar que la soluci�o exacta d'aquest problema �es y(x) = ex. Anem per�oa integrar l'equaci�o a [0; 1] pel m�etode d'Euler. Aqu�� f(x; y) = y, y0 = 1, a = 0 ib = 1, i per tant l'algorisme �es:

8<:

y0 = y(0) = 1

yn+1 = yn + hyn = (1 + h)yn ; n = 0�N � 1 ; h =1

N;

d'on per a h = 0:5 i h = 0:125 s'obtenen les taules de valors seg�uents:

© Els autors, 1998; © Edicions UPC, 1998.

Page 221: Calcul Numeric - Bonet

232 C�alcul num�eric

h = 0:5xn yn y(xn)0 1 10.5 1.50000 1.648721 2.25000 2.71828

h = 0:125xn yn y(xn)0 1 10.125 1.12500 1.231480.250 1.26562 1.284020.375 1.42382 1.454990.500 1.60180 1.648720.625 1.80203 1.868240.750 2.02728 2.117000.875 2.28069 2.398871 2.56578 2.71828

Com era d'esperar, la soluci�o aproximada t�e un error i una q�uesti�o important enl'�us d'aquest m�etode o qualsevol altre ser�a l'estudi de la precissi�o de les aproximacionsyn.

9.2.2 Errors en els m�etodes num�erics

Fem ara un breu inc��s per comentar el tema dels errors. Com ja s'ha dit enel cap��tol 1, normalment, es generen dos tipus d'errors: l'error de discretitzaci�o,que resulta de substituir la soluci�o exacta del problema per l'aproximaci�o i l'errord'arrodoniment fet en les operacions aritm�etiques. Si b�e, com veurem a continuaci�o,en els m�etodes d'aquest cap��tol es pot fer que l'error de discretitzaci�o sigui tan petitcom es vulgui a condici�o de fer h su�cientment petita, com m�es petit sigui h m�esgran ser�a l'error d'arrodoniment ja que el nombre de c�alculs augmentar�a. D'aquestamanera es pot veure que l'avaluaci�o de l'error total pot representar-se per la Fig. 3,on h0 denota l'amplitud (o pas) "id�onia" que hauria de ser utilitzada, encara que �esmolt dif��cil de saber-la a priori.

Fig. 3

Com que la propagaci�o de l'error d'arrodoniment ja ha estat comentada en elprimer cap��tol, ara estudiarem m�es a fons l'error de discretitzaci�o, tamb�e anomenatde "truncament".

© Els autors, 1998; © Edicions UPC, 1998.

Page 222: Calcul Numeric - Bonet

Equacions diferencials 233

Considerem el problema de Cauchy (9.1.1) i apliquem-li un m�etode d'integraci�od'un pas, �es a dir, un m�etode de�nit per un algorisme del tipus

(y0 = y(a)

yn+1 = yn + h�(xn; yn; h) ; n = 0�N � 1

on � �es una funci�o cont��nua sobre [a; b] �R � [0; h0] i Lipschitz en y (uniformementen x i h).

De�nici�o. Anomenem error de truncament en el punt xn el valor "n =j y(xn)� yn j.

De�nici�o. Direm que un m�etode d'integraci�o t�e ordre global p, p 2 N, que escriurem

O(hp) si, i nom�es si, existeixen h0 > 0 i k > 0 tals que per a tot pas d'integraci�o h tal

que h 2 [0; h0] es veri�ca que "n � khp, per a n = 0�N .

Exemple. Considerem el problema de valors inicials

(y0(x) = y(x)

y(0) = 1;x 2 [0; 1] :

Sabem que la soluci�o exacta d'aquest problema �es y(x) = ex. Anem per�o a aproximarla soluci�o en x = 1 pel m�etode d'Euler fent servir diferents valors de h. Recordem quel'algorisme d'Euler en aquest cas ve donat per

(y0 = y(0) = 1

yn+1 = (1 + h)yn ; n = 0�N � 1 :

Aleshores, per a diferents h, resulta que

h N yN "N1 1 2.00000 0.718280.5 2 2.25000 0.468280.25 4 2.44140 0.276870.125 8 2.56578 0.152490.0625 16 2.63792 0.08035

Recordem que el valor exacte �es y(xN ) = y(1) = 2:71828

Si es pot assegurar que les derivades de y(x) s�on �tades en [a; b], es compleix elteorema seg�uent.

© Els autors, 1998; © Edicions UPC, 1998.

Page 223: Calcul Numeric - Bonet

234 C�alcul num�eric

TEOREMA. Si y(x+ h)� y(x) � h�(x; y(x); h) = O(hp+1), p 2 N, per a tot

x 2 [a; b], aleshores el m�etode d'integraci�o t�e ordre global p.

DEMOSTRACI�O. Anem a �tar l'error de truncament. Per hip�otesi sabem queexisteixen h0 > 0 i k > 0 tals que

����

y(x+ h)� y(x)

h� �(x; y(x); h)

���� � khp ;

per a h 2 [0; h0] i que � �es Lipschitz respecte de y uniformement en x i h, �es a dir que

j �(x; y; h) � �(x; �y; h) j� L j y � �y j ;

on L �es una constant perqu�e [a; b] �es compacte i h �j h0 j. Aleshores,

"n = j y(xn)� yn j

� j y(xn)� y(xn�1)� h�(xn�1; y(xn�1); h) j +

+ j y(xn�1) + h�(xn�1; y(xn�1); h) � yn j

� j y(xn�1 + h)� y(xn�1)� h�(xn�1; y(xn�1); h) j +

+ j y(xn�1)� yn�1 j +h j �(xn�1; y(xn�1); h) ��(xn�1; yn�1; h) j

� khp+1 + "n�1 + hL j y(xn�1)� yn�1 j

� khp+1 + (1 + hL)"n�1 ;

per a h 2 [0; h0] i n = 0�N � 1. Per tant,

"n � khp+1 + (1 + hL)"n�1 � khp+1 + (1 + hL)khp+1 + (1 + hL)2"n�2

� � � � � khp+1 + (1 + hL)khp+1 + (1 + hL)2khp+1 + � � �+ (1 + hL)n�1khp+1 ;

d'on

"n � khp+1N�1Xi=0

(1 + hL)i = khp+1(1� (1 + hL)N )

�hL

=k

Lhp�(1 + hL)

b�a

h � 1��

k

L

�e(b�a)L � 1

�hp = ekhp ;

per a h 2 [0; h0]. El m�etode d'integraci�o t�e doncs ordre global p.

Observem que, si p � 1, quan h �! 0 aleshores "n �! 0 per a tot n = 0 � N ,on N = b�a

h. En aquest cas direm que el m�etode convergeix o �es convergent. Aix�o

ens indica que, llevat d'errors d'arrodoniment, com m�es petita sigui la h millor ser�al'aproximaci�o i que com m�es gran sigui la p m�es r�apida ser�a la converg�encia.

Per exemple, segons el teorema anterior tenim la proposici�o seg�uent.

© Els autors, 1998; © Edicions UPC, 1998.

Page 224: Calcul Numeric - Bonet

Equacions diferencials 235

Proposici�o El m�etode d'Euler t�e ordre global 1.

DEMOSTRACI�O. El m�etode d'Euler �es clarament un m�etode d'un pas amb

�(x; y(x); h) = f(x; y(x)) ;

aleshores desenvolupant per Taylor resulta que existeix �(x) 2 [a; b] tal que

����

y(x+ h)� y(x)

h� �(x; y(x); h)

���� =

����

y(x+ h)� y(x)

h� f(x; y(x))

����

=

����y

0(x) +y00(�(x))

2!h� f(x; y(x))

����

=

����

y00(�(x))

2!h

����

� k h :

Per tant, el m�etode d'Euler t�e ordre global 1.

9.2.3 M�etodes de Taylor

La lentitud amb qu�e l'error de truncament tendeix a zero en el m�etode d'Euler�es caracter��stic en els m�etodes de primer ordre global i fa que el seu �us sigui bastantlimitat. Per aix�o, en aquest apartat i en el seg�uent ens proposem d'introduir m�etodesd'integraci�o d'ordre global superior.

De forma an�aloga al m�etode d'Euler, els m�etodes de Taylor es basen a aproximarla funci�o desconeguda y(x) en [xn; xn+1], n = 0 � N � 1, pel desenvolupament deTaylor �ns a ordre global k de la soluci�o del problema de valors inicials(

y0(x) = f(x; y(x))

y(xn) = yn; x 2 [xn; xn+1]

al voltant de xn. S'obt�e aix�� un m�etode d'integraci�o d'ordre global k. De fet, el m�etoded'Euler no �es m�es que el m�etode de Taylor d'ordre global 1 .

Vegem per exemple amb m�es detall el m�etode de Taylor d'ordre global 2 aplicatal problema (9.1.1). De les dades y(x0) = y0 ja sabem que es pot con�eixery0(x0) = f(x0; y0), per�o a m�es, derivant l'equaci�o diferencial tamb�e podem con�eixery00(x0). Aix��

y00(x) = fx(x; y(x)) + fy(x; y(x))y0(x)

= fx(x; y(x)) + fy(x; y(x))f(x; y(x)) ;

© Els autors, 1998; © Edicions UPC, 1998.

Page 225: Calcul Numeric - Bonet

236 C�alcul num�eric

que en x = x0 d�ona

y00(x0) = fx(x0; y(x0)) + fy(x0; y(x0))f(x0; y(x0))

= fx(x0; y0) + fy(x0; y0)f(x0; y0) :

Aproximant ara y(x) en [x0; x1] pel seu desenvolupament de Taylor de segon ordreglobal al voltant de x0, tenim que per a x 2 [x0; x1]

y(x) �= y(x0) + y0(x0)(x� x0) + y00(x0)(x� x0)

2

2!

= y0 + f(x0; y0)(x� x0) + [fx(x0; y0) + fy(x0; y0)f(x0; y0)](x� x0)

2

2!:

Aix��, en x = x1 obtenim

y(x1) �= y0 + f(x0; y0)(x1 � x0) + [fx(x0; y0) + fy(x0; y0)f(x0; y0)](x1 � x0)

2

2!

= y0 + hf(x0; y0) +h2

2[fx(x0; y0) + fy(x0; y0)f(x0; y0)]

� y1 :

El proc�es se segueix ara de forma recurrent, igual que pel m�etode d'Euler, i s'obt�el'algorisme seg�uent:

8><>:

y(a) = y0

yn+1 = yn + hf(xn; yn) +h2

2[fx(xn; yn) + fy(xn; yn)f(xn; yn)] ; n = 0�N � 1 :

Geom�etricament, aix�o equival a considerar aproximacions per par�aboles.

Es compleix la proposici�o seg�uent.

Proposici�o El m�etode de Taylor de segon ordre global t�e ordre global 2.

DEMOSTRACI�O. El m�etode de Taylor de segon ordre global �es un m�etode d'un pasamb

�(x; y(x); h) = f(x; y) +h

2[fx(x; y) + fy(x; y)f(x; y)] :

© Els autors, 1998; © Edicions UPC, 1998.

Page 226: Calcul Numeric - Bonet

Equacions diferencials 237

Aleshores, desenvolupant per Taylor al voltant de x, resulta que existeix �(x) 2 [a; b]tal que

����

y(x+ h)� y(x)

h� �(x; y(x); h)

����=

=

����

y(x+ h)� y(x)

h� f(x; y)�

h

2[fx(x; y) + fy(x; y)f(x; y)]

����

=

�����y0(x) + y00(x)

h

2+ y000(�(x))

h2

6� f(x; y)�

h

2[fx(x; y) + fy(x; y)f(x; y)]

�����

� k h2 :

Per aix�o, aplicant el teorema anterior resulta que el m�etode de Taylor de segon ordreglobal t�e ordre global 2 .

Exemple. Considerem el problema de valors inicials(y0(x) = y(x)

y(0) = 1; x 2 [0; 1] :

Sabem que la soluci�o exacta d'aquest problema �es y(x) = ex. Anem per�o a integrarl'equaci�o en [0; 1] pel m�etode de Taylor de segon ordre global . Aqu�� f(x; y) = y,fx(x; y) = 0, fy(x; y) = 1, y0 = 1, a = 0 i b = 1, per tant, l'algorisme esdev�e8>><

>>:y0 = y(0) = 1

yn+1 = yn + hyn +h2

2[yn] = yn

1 + h+

h2

2

!n = 0�N � 1 ;

d'on per a h = 0:5 i per a h = 0:125 s'obtenen les taules de valors seg�uents:

h = 0:5xn yn y(xn)0 1 10.5 1.62500 1.648721 2.64062 2.71828

h = 0:125xn yn y(xn)0 1 10.125 1.13281 1.231480.250 1.28326 1.284020.375 1.45369 1.454990.500 1.64676 1.648720.625 1.86547 1.868240.750 2.11323 2.117000.875 2.39390 2.398871 2.71184 2.71828

Observem que aquestes aproximacions s�on millors que les obtingudes amb elm�etode d'Euler. Malgrat tot, aquests m�etodes tenen l'inconvenient de que lesexpressions s�on aparatoses i de que costa calcular les derivades parcials de f .

© Els autors, 1998; © Edicions UPC, 1998.

Page 227: Calcul Numeric - Bonet

238 C�alcul num�eric

9.2.4. M�etodes de Runge-Kutta

Els m�etodes de Runge-Kutta venen de�nits per algorismes de la forma

8>><>>:

y(a) = y0

yn+1 = yn + h

kXi=1

cikni ; n = 0�N � 1

on k 2 N est�a pre�xada i les kni s�on funcions de�nides per la f�ormula recurrent

8>><>>:

kn1 = f(xn; yn)

kni = f(xn + aih; yn + h

i�1Xj=1

bijknj ) ; i = 2� k

amb ai i bij constants a determinar de forma que el m�etode tingui ordre global m�axim.

Observeu que es tracta de m�etodes d'un pas amb �(x; y; h) =Pk

i=1 cikni .

D'aquesta forma es pret�en estalviar la problem�atica dels m�etodes de Taylor,aproximant les derivades de f per mitjanes de f(x; y) avaluada en puntsestrat�egicament escollits al voltant de la corba soluci�o a l'interval [xn; xn+1]. De fet,prenent k = 1 i c1 = 1, obtenim el m�etode d'Euler, pel que podr��em dir que �es unRunge-Kutta d'ordre global 1 anomenat RK1.

Si per exemple k = 2, tenim que

�(x; y; h) = c1k1 + c2k2 = c1f(x; y) + c2f(x+ a2h; y + hb21f(x; y)) :

Es tracta aleshores de determinar les constants de forma que amb aquesta �,el m�etode tingui ordre global m�axim. Desenvolupant per Taylor al voltant de (x; y)resulta que

�(x; y; h) = c1f(x; y) + c2[f(x; y) + a2hfx(x; y) + hb21f(x; y)fy(x; y)+

+(a2h)

2

2fxx(x; y) + a2b21h

2f(x; y)fxy(x; y)+

+(hb21)

2

2f2(x; y)fyy(x; y)] +O(h3)

© Els autors, 1998; © Edicions UPC, 1998.

Page 228: Calcul Numeric - Bonet

Equacions diferencials 239

i que

y(x+ h)� y(x)

h= y0(x) +

h

2y00(x) +

h2

3!y000(x) +O(h3)

= f(x; y) +h

2[fx(x; y) + f(x; y)fy(x; y)] +

h2

3![fxx(x; y)+

+ 2fxy(x; y)f(x; y) + fx(x; y)fy(x; y) + f2y(x; y)f(x; y)+

+ f2(x; y)fyy(x; y)] +O(h3) :

Per tant,

y(x+ h)� y(x)

h� �(x; y; h) = (1� c1 � c2)f(x; y) + h[(1=2 � a2c2)fx(x; y)

+ (1=2 � c2b21)f(x; y)fy(x; y)] + h2[(1=6 � ((a22c2)=2))fxx(x; y)

+ (1=6 � ((b221c1)=2))fyy(x; y)f2(x; y)

+ (1=3 � c2b21)fxy(x; y)f(x; y) + 1=6fx(x; y)fy(x; y)

+ 1=6(fy(x; y))2f(x; y)] +O(h3) :

Observem que el terme (fxfy + f f2y)h2

6no �es en general id�enticament nul, per

tant, si k = 2 com a m�axim l'ordre global d'aquest m�etode ser�a 2. Vegem ara quepodem aconseguir que aquest ordre global sigui exactament 2.

Anul�lant el coe�cients del terme independent i els del terme en h, resulta que8><>:

1� c1 � c2 = 0

1=2� a2c2 = 0

1=2 � c2b21 = 0 ;

(9:2:2)

que �es un sistema compatible indeterminat. Per tant, si c1, c2, a2, b21 compleixen(9.2.2), el m�etode tindr�a ordre global 2. Observeu que existeixen una in�nitat dem�etodes Runge-Kutta d'ordre global 2 , per�o el m�es conegut i que pren el nomde "Runge-Kutta d'ordre global 2" o b�e RK2, s'aconsegueix amb a2 = b21 = 1 ic1 = c2 = 1=2. L'algorisme de RK2 �es doncs:(

y(a) = y0

yn+1 = yn + h[1=2f(xn; yn) + 1=2f(xn + h; yn + hf(xn; yn))] ; n = 0�N � 1 :

De forma similar, fent variar k, obtindr��em d'altres m�etodes de Runge-Kuttad'ordre global superior, dels quals el m�es conegut �es el Runge-Kutta d'ordre global 4

© Els autors, 1998; © Edicions UPC, 1998.

Page 229: Calcul Numeric - Bonet

240 C�alcul num�eric

o RK4, que s'obt�e amb k = 4 i que ve de�nit per l'algorisme8<:

y(a) = y0

yn+1 = yn +h

6[kn1 + 2kn2 + 2kn3 + kn4 ] ; n = 0�N � 1 ;

on 8>>>>>>>><>>>>>>>>:

kn1 = f(xn; yn)

kn2 = f

�xn +

h

2; yn +

h

2kn1

kn3 = f

�xn +

h

2; yn +

h

2kn2

�kn4 = f(xn + h; yn + hkn3 )

n = 0�N � 1 :

Exemple. Considerem el problema de valors inicials(y0(x) = y(x) ;

y(0) = 1x 2 [0; 1] :

Sabem que la soluci�o exacta d'aquest problema �es y(x) = ex. Anem per�o a integrarl'equaci�o en [0; 1] pels m�etodes RK2 i RK4.

L'algorisme del m�etode RK2 �es:8>><>>:

y0 = y(0) = 1

yn+1 = yn + h[1=2yn + 1=2(yn + hyn)] =

1 + h+

h2

2

!yn ; n = 0�N � 1 :

Observem que aquest algorisme coincideix amb el del m�etode de Taylor d'ordreglobal 2 de l'exemple anterior, per�o aix�o nom�es �es una casualitat deguda a l'equaci�oestudiada. En aquests cas, doncs, les taules de valors serien les mateixes que les del'exemple esmentat.

L'algorisme del m�etode RK4 �es:8>><>>:

y0 = y(0) = 1

yn+1 =

1 + h+

h2

2+

h3

6+

h4

24

!yn ; n = 0�N � 1 ;

ja que kn1 = yn =) kn2 = yn +h

2yn =) kn3 = yn +

h

2

�yn +

h

2yn

�=

�1 +

h

2

�yn +

h2

4yn =) kn4 = yn+ h

1 +

h

2+

h2

4

!yn. D'on per a h = 0:5 i h = 0:125 s'obtenen les

taules de valors seg�uents:

© Els autors, 1998; © Edicions UPC, 1998.

Page 230: Calcul Numeric - Bonet

Equacions diferencials 241

h = 0:5xn yn y(xn)0 1 10.5 1.64843 1.648721 2.71734 2.71828

h = 0:125xn yn y(xn)0 1 10.125 1.133148 1.2314800.250 1.284025 1.2840250.375 1.454990 1.4549910.500 1.648720 1.6487210.625 1.868244 1.8682460.750 2.116997 2.1170000.875 2.398872 2.3988751 2.718277 2.718282

El fet que en resoldre aquesta equaci�o s'hagi pogut explicitar yn+1 en funci�o de yni h pot confondre. En general, com que escriure la f�ormula expl��cita �es molt complicat,el c�alcul de yn+1 es fa calculant el valor num�eric de kn1 , k

n

2 , kn

3 , kn

4 i despr�es substituinta la f�ormula de yn+1. Per exemple, per a h = 0:5, la representaci�o "l�ogica" en unataula de valors, seria

h = 0:5xn kn1 kn2 kn3 kn4 yn0 10.5 1 1.25 1.3125 1.65625 1.6484381 1.648438 2.060547 2.163574 2.730225 2.717346

9.2.5 Generalitzaci�o a sistemes d'equacions diferencials ordin�aries

Tots els m�etodes exposats en aquest apartat s�on f�acilment generalitzables al casde sistemes d'equacions diferencials ordin�aries, utilitzant la notaci�o vectorial:

Y (x) = (y1(x); : : : ; ym(x)) per a x 2 [a; b] ;

F (x; Y (x)) = (f1(x; y1(x) � � � ym(x)); : : : ; fm(x; y1(x) � � � ym(x))) :

Per exemple, l'algorisme pel m�etode d'Euler esdev�e(Y (a) = Y0(a)

Yn+1 = Yn + hF (xn; Yn) ; n = 0�N � 1 ;

on Yn s�on els vectors aproximaci�o de la soluci�o Y (x). En components, aix�o s'escriur�a0B@y1n+1

...ymn+1

1CA =

0B@

y1n

...ymn

1CA+ h

0B@

f1(xn; y1n� � � ym

n)

...fm(xn; y

1n� � � ym

n)

1CA ; n = 0�N � 1 :

© Els autors, 1998; © Edicions UPC, 1998.

Page 231: Calcul Numeric - Bonet

242 C�alcul num�eric

9.3 M�etodes multip�as

Considerem de nou el problema de Cauchy o de valors inicials:(y0(x) = f(x; y(x))

y(a) = y0 ;(9:3:1)

on x 2 [a; b], y(x) 2 R, y0 2 R i f : [a; b] �R �! R �es una funci�o prou regular perassegurar l'exist�encia i la unicitat de soluci�o de (9.3.1).

Fins ara hem vist m�etodes en qu�e el c�alcul del yn+1 nom�es depenia del valor de(xn; yn). Una altra possibilitat �es utilitzar punts anteriors (i per tant, ja calculats)per calcular l'aproximaci�o (n+1)-�essima; aquesta �es l'ess�encia dels m�etodes multip�as.A continuaci�o, considerarem m�etodes multipas lineals de k passos que s�on de�nits perun algorisme del tipus:

8>><>>:

y(a) = y0

yn+1 =kX

i=1

�iyn+1�i + h

kXi=0

�if(xn+1�i; yn+1�i) ; n = 0�N � 1 :(9:3:2)

Si �0 6= 0, yn+1 no est�a a��llada i, per tant, s'ha de resoldre l'equaci�o. En aquestcas es diu que el m�etode �es impl��cit. Si �0 = 0, yn+1 est�a a��llada i es diu que el m�etode�es expl��cit.

Els m�etodes multip�as presenten un problema que no es d�ona en els d'un pas: percalcular yn+1 es necessita informaci�o sobre els k punts anteriors (m�etode multipas dek passos) i, per tant, el m�etode no �es aplicable per calcular y1; y2; : : : ; yk�1. En generalper calcular aquests primers punts s'utilitzen m�etodes d'un pas, com per exemple elsRK, que tinguin mateix ordre global que el m�etode multipas en consideraci�o.

An�alogament al cas de m�etodes d'un pas, per a l'estimaci�o de l'error de truncamentcom�es en integrar (9.3.1) amb un m�etode multipas, tenim el teorema seg�uent.

TEOREMA. Si per a tot x 2 [a; b],

y(x+ h)�kX

i=1

�iy(x� (i� 1)h) � h

kXi=0

�if(x� (i� 1)h; y(x � (i� 1)h)) = O(hp+1) ;

p 2 N, aleshores el m�etode d'integraci�o considerat t�e ordre global p.

Observaci�o: La demostraci�o (encara que molt m�es complicada) �es an�aloga a la delteorema anterior (veure [9]).

© Els autors, 1998; © Edicions UPC, 1998.

Page 232: Calcul Numeric - Bonet

Equacions diferencials 243

9.3.1 M�etodes d'Adams-Bashforth

La forma m�es corrent de generar m�etodes multip�as �es la seg�uent. Si integrem(9.3.1) a l'interval [xn; xn+1], tenim que

y(xn+1)� y(xn) =

Zxn+1

xn

y0(x) dx =

Zxn+1

xn

f(x; y(x)) dx �=

Zxn+1

xn

P (x) dx

on P (x) �es un polinomi que aproxima f(x; y(x)).

Per exemple, una forma d'obtenir aquest polinomi �es la seg�uent: siguinyn; yn�1; ::; yn�(k�1) les aproximacions de la soluci�o en els punts xn; : : : ; xn�(k�1) quecontinuem suposant equiespaiats per al pas h. Aleshores, com que fi � f(xi; yi) �esuna aproximaci�o de f(x; y(x)) en els punts x = xi, i = n� (k� 1)� n, agafem com aP el polinomi de grau � (k � 1) que compleix

P (xi) = f(xi; yi) ; i = n� (k � 1)� n ;

�es a dir, el polinomi interpolador de la xarxa (xi; f(xi; yi)), i = n � (k � 1) � n.L'algorisme d'aquest m�etode ser�a doncs

8><>:

y(a) = y0

yn+1 = yn +

Zxn+1

xn

P (x) dx ; n = 0�N � 1 :(9:3:3)

Aix��, per exemple, si k = 1 el polinomi P (x) t�e grau � 0 i, per tant, �es la constantf(xn; yn), per la qual cosa l'algorisme s'escriu

8><>:

y(0) = y0

yn+1 = yn +

Zxn+1

xn

f(xn; yn) dx = yn + hf(xn; yn) ; n = 0�N � 1 :

que no �es m�es que l'algorisme del m�etode d'Euler. Observeu que aquest pren la forma(9.3.2) amb k = 1, �1 = 1, �0 = 0, �1 = 1; es tracta d'un m�etode d'un pas.

Si k = 2, el polinomi P (x) t�e grau � 1 i ha de satisfer que P (xn) = f(xn; yn) iP (xn�1) = f(xn�1; yn�1). Per tant, com s'ha vist en el cap��tol d'interpolaci�o,

P (x) =x� xn

xn�1 � xnf(xn�1; yn�1) +

x� xn�1

xn � xn�1f(xn; yn) :

Aleshores, integrant P (x) entre xn i xn+1 tenim que en aquest cas l'algorisme s'escriu

8<:

y(0) = y0

yn+1 = yn +h

2(3f(xn; yn)� f(xn�1; yn�1)) ; n = 1�N � 1 :

© Els autors, 1998; © Edicions UPC, 1998.

Page 233: Calcul Numeric - Bonet

244 C�alcul num�eric

Observeu que aquest pren la forma (9.3.2) amb k = 2 i, per tant, d�ona lloc a unm�etode d'integraci�o de 2 passos.

An�alogament, si k = 3, s'obt�e un m�etode d'integraci�o de 3 passos de�nit perl'algorisme 8>>><

>>>:

y(0) = y0

yn+1 = yn +h

12(23f(xn; yn)� 16f(xn�1; yn�1)

+ 5f(xn�2; yn�2)) ; n = 2�N � 1 :

I si k = 4, s'obt�e un m�etode d'integraci�o de 4 passos de�nit per l'algorisme8>>><>>>:

y(0) = y0

yn+1 = yn +h

24(55f(xn; yn)� 59f(xn�1; yn�1)

+ 37f(xn�2; yn�2)� 9f(xn�3; yn�3)) ; n = 3�N � 1 :

Aquestes f�ormules es coneixen per "m�etodes d'Adams-Bashforth" i es pot veuref�acilment que per a k � 2 s�on m�etodes multipas expl��cits.

L'ordre global dels m�etodes d'Adams-Bashforth coincideix amb el nombre denodes considerats a la interpolaci�o, �es a dir, k. Per exemple, si k = 2, tenim 2nodes i, desenvolupant per Taylor al voltant de x, resulta que

y(x+ h)� y(x)

h= y0(x) +

h

2y00(x) +O(h2)

i que (recordeu que y(x� h) = y(x)� y0(x)h +O(h2))

3

2f(x; y(x))�

1

2f(x� h; y(x� h)) =

3

2f(x; y(x))�

1

2f(x; y(x))

�1

2[fx(x; y(x))(�h) + fy(x; y(x)y

0(x)(�h)] +O(h2) :

Per tant,

y(x+ h)� y(x)

h�

1

2[3f(x; y(x)) � f(x� h; y(x� h)] = y0(x)� f(x; y(x))

+h

2[y00(x)� fx(x; y(x)) � fy(x; y(x))y

0(x)] +O(h2) = O(h2) :

Aplicant ara el teorema anterior resulta que el m�etode d'Adams-Bashforth obtingutamb k = 2 t�e ordre global 2.

En general i de forma an�aloga es demostra el teorema seg�uent.

© Els autors, 1998; © Edicions UPC, 1998.

Page 234: Calcul Numeric - Bonet

Equacions diferencials 245

TEOREMA. El m�etode d'Adams-Bashforth de k nodes t�e ordre global k.

Per a la demostraci�o veure [9].

9.3.2 M�etodes d'Adams-Moulton

Els m�etodes d'Adams-Bashforth s'obtenen fent servir informaci�o sobre els k puntsanteriors a xn. Una altra possibilitat seria utilitzar tamb�e punts posteriors xn. Lasituaci�o m�es senzilla �es la que considera el P (x) de (9.3.3) com el polinomi interpoladorde la xarxa (xi; f(xi; yi)), i = (n� (k � 1)) � (n+ 1).

Per exemple, si k = 1, el polinomi P (x) t�e grau � 1 i ha de satisfer queP (xn) = f(xn; yn) i P (xn+1) = f(xn+1; yn+1). Per tant,

P (x) =x� xn+1

xn � xn+1f(xn; yn) +

x� xn

xn+1 � xnf(xn+1; yn+1) :

Aleshores fent servir (9.3.3) obtenim l'algorisme

8<:

y(a) = y0

yn+1 = yn +h

2(f(xn+1; yn+1) + f(xn; yn)) ; n = 0�N � 1 ;

que d�ona lloc a un m�etode d'integraci�o d'un pas.

An�alogament, si k = 2 s'obt�e un m�etode d'integraci�o de 2 passos de�nit perl'algorisme

8<:

y(0) = y0

yn+1 = yn +h

12(�f(xn�1; yn�1) + 8f(xn; yn) + 5f(xn+1; yn+1)) ; n = 1�N � 1 :

Si k = 3, s'obt�e un m�etode d'integraci�o de 3 passos de�nit per l'algorisme

8>>><>>>:

y(0) = y0

yn+1 = yn +h

24(9f(xn+1; yn+1) + 19f(xn; yn)

� 5f(xn�1; yn�1) + f(xn�2; yn�2)) ; n = 2�N � 1 :

Aquestes f�ormules es coneixen per "m�etodes d'Adams-Moulton" i, com es veu, estracta de m�etodes impl��cits.

© Els autors, 1998; © Edicions UPC, 1998.

Page 235: Calcul Numeric - Bonet

246 C�alcul num�eric

L'ordre global d'aquests m�etodes coincideix tamb�e amb el nombre de nodesconsiderat a la interpolaci�o, �es a dir, k + 1. Per exemple, si k = 1, tenim 2 nodes i,desenvolupant per Taylor al voltant de x, resulta que

y(x+ h)� y(x)

h= y0(x) +

h

2y00(x) +O(h2)

i que

1

2[f(x+ h; y(x+ h))� f(x; y(x))] =

=1

2[2f(x; y(x)) + [fx(x; y(x))h + fy(x; y(x))y

0(x)h]] +O(h2) :

Per tant,

y(x+ h)� y(x)

h�

1

2[f(x+ h; y(x+ h))� f(x; y(x))] =

= y0(x)� f(x; y(x)) +h

2[y00(x)� fx(x; y(x))� fy(x; y(x))y

0(x)] +O(h2) :

Aplicant ara el primer teorema de l'apartat (9.3) resulta que el m�etode d'Adams-Moulton amb k = 1 (2 nodes) t�e ordre global 2 .

En general i de forma an�aloga es demostra el teorema seg�uent.

TEOREMA. El m�etode d'Adams-Moulton de k + 1 nodes t�e ordre global k+1 .

Per a la demostraci�o veure [9].

9.3.3 M�etodes predictor-corrector

En la pr�actica, les equacions d'Adams-Moulton no s�on resolubles i el que es fa �escombinar les f�ormules impl��cites amb les f�ormules expl��cites, i s'obt�e el que s'anomenam�etodes predictor-corrector. Aquests m�etodes primer "prediuen" el valor de y(xn+1)amb un m�etode expl��cit; aix�� s'obt�e un yPn+1 que serveix per aproximar f(xn+1; yn+1)

per f(xn+1; yPn+1) en el m�etode impl��cit, "corregint" aix�� el yPn+1.

El cas m�es conegut �es el predictor-corrector que s'obt�e per combinaci�o del m�etoded'Adams-Bashforth de 4rt ordre global amb el m�etode d'Adams-Moulton de 4t ordreglobal . El proc�es es descriu tot seguit.

© Els autors, 1998; © Edicions UPC, 1998.

Page 236: Calcul Numeric - Bonet

Equacions diferencials 247

Del m�etode d'Adams-Bashforth de 4t ordre global , s'obt�e

yPn+1 = yn +

h

24(55f(xn; yn)� 59f(xn�1; yn�1)

+ 37f(xn�2; yn�2)� 9f(xn�3; yn�3)) :

Substituint yn+1 per yPn+1 a la f(xn+1; yn+1) del m�etode d'Adams-Moulton de 4t ordre

global , obtenim l'algorisme8>>><>>>:

y(0) = y0

yn+1 = yn +h

24(9f(xn+1; y

P

n+1) + 19f(xn; yn)

� 5f(xn�1; yn�1) + f(xn�2; yn�2) ; n = 2�N � 1 ;

que t�e ara forma expl��cita.

An�alogament als apartats anteriors, aplicant el primer teorema de l'apartat (9.3)es pot veure que aquest m�etode tamb�e t�e ordre global 4.

Observaci�o. L'avantatge d'aquests m�etodes multipas respecte als m�etodes d'un pases troba especialment quan f(x; y) �es molt costosa (en temps) de calcular, ja queen cada iteraci�o d'un m�etode multipas nom�es cal sumar i multiplicar valors conegutsanteriorment, en canvi, en un m�etode d'un pas, per exemple un RK, cal calcular unas�erie de punts intermedis (les kn

i) que fan el c�alcul molt m�es lent.

9.4 Condicions de consist�encia

Una altra manera de construir m�etodes lineals multipas del tipus (9.3.2) �es escriurela f�ormula general i imposar la condici�o que aquesta sigui exacta quan la soluci�o y(x)de l'equaci�o diferencial �es un polinomi de grau q. Es pot veure que el m�etode obtingutaix�� t�e ordre global q.

Per exemple, quan q = 0, el que demanem �es que (9.3.2) sigui exacta si la soluci�o�es una constant. Perqu�e aix�o sigui possible cal que f(x; y) = 0, ja que f(x; y) = y0 = 0,d'aquesta forma obtenim la condici�o

1 =mXi=1

�i : (9:4:1)

An�alogament per a q = 1 (y(x) = x), obtenim la condici�o

m+ 1 = �1m+ �2(m� 1) + � � �+ �m +mXi=0

�i ; (9:4:2)

© Els autors, 1998; © Edicions UPC, 1998.

Page 237: Calcul Numeric - Bonet

248 C�alcul num�eric

les relacions (9.4.1) i (9.4.2) per als coe�cients (�i; �i) s'anomenen "condicions deconsist�encia" per al m�etode multipas corresponent i s�on condicions necess�aries isu�cients perqu�e el m�etode tingui ordre global 1 .

De�nici�o. Direm que un m�etode �es "consistent" si t�e ordre global � 1.

A partir d'ara suposarem que estem treballant amb un algorisme del tipus

8>><>>:

y(a) = y0

yn+1 =kXi=1

�iyn+1�i + h�(xn+1; xn; : : : ; xn+1�m; yn+1; : : : ; yn+1�k) :(9:4:3)

per a n = 0�N�1. Fixem-nos que si k = 1, �1 = 1 i � �es independent de xn+1; yn+1,obtenim l'algorisme del m�etode general d'un pas i que, si

� =kXi=0

�if(xn+1�i; yn+1�i) ;

obtenim l'algorisme del m�etode lineal multip�as (9.3.2).

9.5 Estabilitat i converg�encia

En aquest cap��tol tractarem de l'estabilitat, un terme que t�e diferents signi�catsdepenent del context. Aqu�� discutirem diversos aspectes d'estabilitat de les solucionsnum�eriques de les equacions diferencials.

Considerem per exemple, l'equaci�o diferencial de segon ordre global :

y00� 10y0

� 11y = 0 (9:5:1)

amb condicions inicials:

y(0) = 1; y0(0) = �1 : (9:5:2)

La soluci�o exacta de (9.5.1), (9.5.2) �es y(x) = e�x.

Suposem ara que canviem la condici�o inicial en una quantitat " de la formaseg�uent:

ey(0) = 1 + " ; ey0(0) = �1 : (9:5:3)

© Els autors, 1998; © Edicions UPC, 1998.

Page 238: Calcul Numeric - Bonet

Equacions diferencials 249

La soluci�o amb aquestes condicions inicials �es

ey(x) =

�1 +

11

12"

�e�x +

"

12e11x

: (9:5:4)

Observeu que, donat " > 0 (tan petit com es vulgui), el segon terme de (9.5.4) faque la soluci�o tendeixi a in�nit quan x �! +1.

Dibuixant les gr�a�ques de y(x) i ey(x), com es mostra a la �gura 4, es veu que lesdues solucions tenen un comportament completament diferent per a x prou gran.

Fig. 4

Direm que la soluci�o y(x) = e�x del problema (9.5.1), (9.5.2) �es inestable en elsentit que canvis arbitr�ariament petits en la condici�o inicial produeixen canvis grans enla soluci�o per a x prou gran. En el llenguatge de l'an�alisi num�erica s'acostuma a dir queel problema (9.5.1), (9.5.2) est�a mal condicionat. En aquests casos, �es extremadamentdif��cil trobar la soluci�o num�ericament, ja que els errors d'arrodoniment i de truncamentcausaran el mateix efecte que el petit canvi en les condicions inicials (9.5.3) i faranque la soluci�o aproximada no tingui res a veure amb l'exacta.

Aquest �es un exemple que mostra inestabilitats de solucions de l'equaci�o diferencialprodu��des per ella mateixa, per�o no s�on aquestes inestabilitats objecte d'aquestapartat. De fet, nosaltres ens interessarem per possibles inestabilitats provocadespel m�etode num�eric en consideraci�o.

Considerem ara l'equaci�o diferencial

y0 = �2y + 1 ; (9:5:5)

amb condicions inicialsy(0) = 1 : (9:5:6)

© Els autors, 1998; © Edicions UPC, 1998.

Page 239: Calcul Numeric - Bonet

250 C�alcul num�eric

La soluci�o exacta de (9.5.5), (9.5.6) �es

y(x) =1

2e�2x +

1

2: (9:5:7)

Es tracta d'una soluci�o estable en el sentit anterior ja que si canviem la condici�o inicial

per ey(0) = 1+ ", la soluci�o esdev�e ey(x) = (1

2+ ")e�2x +

1

2i la variaci�o que ve donada

pel terme "e�2x tendeix a 0 quan x �!1. Si considerem el m�etode num�eric de�nitper l'algorisme

yn+1 = yn�1 + 2hfn ; n = 1�N � 1 ; (9:5:8)

que �es un m�etode multipas similar al m�etode d'Euler, per�o de segon ordre global , il'apliquem a (9.5.5), (9.5.6), l'algorisme esdev�e

(yn+1 = yn�1 + 2h(�2yn + 1)

y0 = 1 :n = 1�N � 1 : (9:5:9)

Com que el m�etode �es de 2 passos hem de buscar y1 per un altre m�etode. En

aquest cas podem agafar el valor exacte de y1 = y(h) =1

2e�2h +

1

2(per al qual no

estem generant cap error).

�Es relativament senzill analitzar el comportament de la successi�o yn generada per(9.5.9). Per fer aix�o ens mirarem (9.5.9) com una equaci�o en difer�encies �nites. Lateoria d'equacions en difer�encies �nites �es paral�lela a la d'equacions diferencials. Aqu��nom�es donarem les q�uestions b�asiques d'aquesta teoria en el cas d'equacions linealsen difer�encies �nites amb coe�cients constants.

Una equaci�o d'aquestes t�e la forma:

yn+1 = akyn + � � � + a1yn�k+1 + a0 ; n = k � 1; k; k + 1; : : : (9:5:10)

amb a0; : : : ; ak constants donades. La part homog�enia de (9.5.10) �es

yn+1 = akyn + � � �+ a1yn�k+1 : (9:5:11)

Com a les equacions diferencials, intentem trobar una soluci�o de (9.5.11) de tipusexponencial, per�o ara l'exponencial tindr�a la forma yn = �n per a alguna constant �desconeguda. Imposant la condici�o que �n sigui soluci�o de (9.5.11) tenim la condici�oseg�uent per a �:

�k � ak�k�1

� � � � � a1 = 0 : (9:5:12)

© Els autors, 1998; © Edicions UPC, 1998.

Page 240: Calcul Numeric - Bonet

Equacions diferencials 251

Aquesta equaci�o s'anomena equaci�o caracter��stica de (9.5.11). Si suposem que lesk arrels �1; : : : ; �k s�on diferents, les solucions fonamentals de (9.5.11) s�on �n

1; : : : ; �n

k

i la soluci�o general vindr�a donada per:

ym =kX

i=1

ci�n

i ; n = 0; 1; : : : (9:5:13)

amb c1; : : : ; ck constants arbitr�aries.

Si es compleix que 1 � ak � � � � � a1 6= 0, tenim que una soluci�o particular de(9.5.10) �es

y =a0

1� ak � � � � � a1; (9:5:14)

que �es constant.

Per tant, la soluci�o general de (9.5.10) es pot escriure:

yn =kX

i=1

ci�n

i +a0

1� ak � � � � � a1; n = 0; 1; : : : (9:5:15)

Les constants arbitr�aries c1; : : : ; ck es troben, igual que en les equacionsdiferencials, imposant condicions addicionals a la soluci�o. En particular, si suposemque s�on donades les condicions inicials

y0; : : : ; yk�1 : (9:5:16)

Aleshores (9.5.15) d�ona les condicions

kX

i=1

ci�n

i +a0

1� ak � � � � � a1= yn ; n = 0; 1; : : : ; k � 1 ; (9:5:17)

que �es un sistema lineal de k inc�ognites, c1; : : : ; ck, i k equacions.

Podem aplicar aquesta teoria a l'equaci�o (9.5.8) que escrivim en la forma:

yn+1 = �4hyn + yn�1 + 2h : (9:5:18)

L'equaci�o caracter��stica (9.5.12) �es ara �2 + 4h� � 1 = 0 amb arrels

�1 = �2h+p1 + 4h2 �2 = �2h�

p1 + 4h2 ; (9:5:19)

© Els autors, 1998; © Edicions UPC, 1998.

Page 241: Calcul Numeric - Bonet

252 C�alcul num�eric

en imposar les condicions inicials (9.5.17) tenim:8>><>>:

c1 + c2 +1

2= y0 = 1

c1 1 + c2 2 +1

2= y1 =

1

2e�2h +

1

2;

que d�ona

c1 =1

4+

y1 �1

2+ h

2p1 + 4h2

c2 =1

4�

y1 �1

2+ h

2p1 + 4h2

: (9:5:20)

Per tant, la soluci�o de (9.5.18) �es:

yn = c1(�2h+p1 + 4h2)n + c2(�2h�

p1 + 4h2)n +

1

2: (9:5:21)

Encara que aquesta expressi�o �es una mica aparatosa ens permetr�a veure quin �es elcomportament de yn quan n �! +1.

En particular, per a un pas �xat h > 0 qualsevol, �es evident que:

0 < �2h+p1 + 4h2 < 1 ;

i2h+

p1 + 4h2 > 1 :

Per tant, el primer terme de (9.5.21) tendeix a 0, mentre que el segon oscil�la entre�1. Com que la soluci�o exacta tendeix a

1

2quan x �! +1, veiem que l'error de la

soluci�o aproximada divergeix a1 , i el m�etode (9.5.8) �es inestable aplicat al problema(9.5.5), (9.5.6).

Notem que aquesta diverg�encia de l'error no t�e res a veure amb l'error d'arrodoni-ment: (9.5.21) �es l'expresi�o anal��tica exacta de yn i, si la successi�o (9.5.18) es calcul�esamb aritm�etica exacta, es correspondria amb la donada per (9.5.21) exactament.

A partir d'aquest exemple, �es clar que una propietat important en un m�etode �esque sigui estable en algun sentit. La de�nici�o m�es b�asica d'estabilitat pot ser donadapel m�etode general (9.4.3), que �es el seg�uent.

De�nici�o. Donat el m�etode de�nit per l'algorisme

yn+1 =kX

i=1

�iyn+1�i + h�(xn+1; : : : ; xn+1�k; yn+1; : : : ; yn+1�k) ; (9:5:22)

© Els autors, 1998; © Edicions UPC, 1998.

Page 242: Calcul Numeric - Bonet

Equacions diferencials 253

es diu que �es estable si totes les arrels �i del polinomi

p(�) = �k � �1�k�1

� � � � � �k (9:5:23)

satisfan que j �i j� 1, i = 1; : : : ; k, i que les que j �i j= 1 s�on arrels simples. El m�etode

es diu fortament estable si k � 1 arrels satisfan que j �i j< 1.

En el cas dels m�etodes consistents, sempre es t�e que � = 1 �es una arrel delpolinomi (9.5.23) a causa de la condici�o (9.4.1). En aquest cas, un m�etode fortamentestable tindr�a una arrel igual a 1 i totes les altres de m�odul estrictament menor que1.

Pels m�etodes de Runge-Kutta p(�) = � � 1, ja que �es d'un pas. Per tant,aquests m�etodes s�on sempre fortament estables. Pel m�etode d'Adams de k-passosp(�) = �k � �k�1, per tant, les k � 1 arrels s�on totes zero i el m�etode tamb�e �esfortament estable.

En (9.5.18) el polinomi �es p(�) = �2 � 1 amb arrels �1; per tant �es estable per�ono fortament estable, i �es aquesta falta d'estabilitat forta la que fa que la successi�oyn no convergeixi cap a la soluci�o real quan n �! +1. La ra�o d'aix�o �es la seg�uent:l'equaci�o de difer�encies (9.5.18) �es de segon ordre global (ja que a l'equaci�o surtenyn�1, yn, yn+1 ) i t�e dues solucions fonamentals �n, �n

2 , on �1, �2 s�on les arrels de(9.5.21). Ara, la successi�o yn generada per (9.5.18) ha d'aproximar la soluci�o d'unaequaci�o diferencial (9.5.5), (9.5.6) que �es de 1r ordre global i t�e, per tant, una solasoluci�o fonamental. La soluci�o fonamental �es aproximada per �n

1 = (�2h+p1 + 4h2)n

pel que �n2 , terme afegit pel m�etode, hauria de tendir a 0 . Ara b�e, si h > 0 aleshores

j �2 j> 1 tendint a 1 i no a zero, i per tant, causa la inestabilitat.

Ara �xem-nos que �1 i �2 tendeixen, quan h �! 0, a les arrels del polinomid'estabilitat, �es a dir, aquest polinomi �es el l��mit, quan h �! 0, del polinomicaracter��stic �2 + 4h� � 1 de (9.5.18).

La idea de la estabilitat forta �es ara evident. Si totes les arrels excepte una delpolinomi d'estabilitat s�on menors que 1 en m�odul, aleshores totes les arrels menysuna de l'equaci�o caracter��stica corresponent del m�etode usat tenen m�odul menor que1 , si h �es prou petita i, per tant, les pot�encies d'aquestes arrels tendeixen a 0 quann �! 1. Podem dir doncs que si el m�etode �es fortament estable i consistent la soluci�onum�erica yn i l'exacta tenen el mateix l��mit, �es a dir, el m�etode �es convergent encaraque l'interval d'integraci�o sigui in�nit.

Per veure una prova rigorosa d'aquest fet, consulteu [5] �o [9].

© Els autors, 1998; © Edicions UPC, 1998.