ca`lcul num`eric. manual de pra`ctiques facultat de matema ... · natura de calcul num`eric al grau...

59
C` alcul Num` eric. Manual de Pr` actiques Facultat de Matem` atiques i Estad´ ıstica UPC J. Tom´ asL´azaro [email protected] Merc` e Oll´ e [email protected] Juan R. Pacha [email protected] Departament de Matem` atica Aplicada I Universitat Poli` ectica de Catalunya Diagonal 647, 08028 Barcelona (Spain) 22 de juliol de 2014

Upload: others

Post on 03-Nov-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

Calcul Numeric. Manual de Practiques

Facultat de Matematiques i Estadıstica UPC

J. Tomas [email protected]

Merce [email protected]

Juan R. [email protected]

Departament de Matematica Aplicada IUniversitat Poliectica de Catalunya

Diagonal 647, 08028 Barcelona (Spain)

22 de juliol de 2014

Page 2: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

c©2013 Merce Olle, J. Tomas Lazaro, Juan R. Pacha.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Docu-

mentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant

Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled

“GNU Free Documentation License”.

Page 3: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

Proleg

Durant els cursos 11-12, 12-13, 13-14, els autors hem estat els professors que hem impartit l’assig-natura de Calcul Numeric al Grau de Matematiques de la FME (UPC). Aquesta publicacio es unrecull de les practiques que hem demanat als estudiants amb l’objectiu que entenguessin, assimi-lessin, i ells mateixos veiessin la utilitat i abast d’alguns dels metodes que s’empren en el CalculNumeric.

Conscients de que els estudiants ja tenen coneixement de C/C++ i de Matlab i que estancursant un tercer curs del Grau de Matematiques, i per tant encara en ple proces d’aprenentatge,un dels objectius clars de les practiques era que ells programessin els algorismes (en C/C++) is’enfrontessin els reptes que aixo suposa.

Aquestes practiques contenen algunes aplicacions naturals dels continguts de l’assignatura:

• Introduccio, on es donen unes nocions basiques sobre manipulacio de fitxers en C i l’us delgnuplot.

• Metodes iteratius per a sistemes lineals, on es consideren els metodes de Jacobi, Gauss-Seideli sobre-relaxacio.

• Aproximacio per mınims quadrats, i en particular la descomposicio QR d’una matriu A dona-da i la descomposicio en valors singulars, amb una aplicacio a la compressio d’imatges. Comaplicacio d’aproximacions de Fourier es fa el calcul de corbes invariants d’un difeomorfisme.

• Zeros d’equacions i sistemes no lineals, on es consideren els metodes del punt fix, secant iNewton per al cas 1-dimensional, i el metode de Newton en el cas n-dimensional aixı comel metode de continuacio del pseudo-arc per fer la continuacio d’una famılia de zeros. Esconsidera una aplicacio en Mecanica Celeste.

• Integracio numerica d’equacions diferencials ordinaries, on s’explica com utilitzar un integra-dor de Taylor i es pren com exemple el sistema de Lorenz. Com aplicacions s’explica comcalcular l’aplicacio de Poincare d’un sistema diferencial donat i el calcul d’orbites periodiques.Es pren com exemple l’oscil.lador de Van der Pol.

Desitgem que aquesta publicacio sigui una petita contribucio a la difusio de les eines numeriques,imprescindibles en una gran part de disciplines cientıfiques.

ELS AUTORS.

Calcul Numeric. Manual de practiques-i

Page 4: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

ii-Calcul Numeric. Manual de practiques

Page 5: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

Index

Proleg i

1 Introduccio 1

1.1 Manipulacio de fitxers i primers grafics . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Metodes iteratius per a SL 5

2.1 Metodes de Jacobi i de G-S. Precondicionadors . . . . . . . . . . . . . . . . . . . . . 5

3 Aproximacio per mınims quadrats 9

3.1 Sistemes sobredeterminats. Descomposicio QR . . . . . . . . . . . . . . . . . . . . . 93.2 Descomposicio en Valors Singulars (SVD) . . . . . . . . . . . . . . . . . . . . . . . . 123.3 Calcul de corbes invariants d’una aplicacio . . . . . . . . . . . . . . . . . . . . . . . . 163.4 Descripcio del metode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4 Zeros de funcions 19

4.1 Calcul de zeros d’equacions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.1.1 Un exemple del metode de Newton . . . . . . . . . . . . . . . . . . . . . . . . 194.1.2 Un exemple del metode de la Secant . . . . . . . . . . . . . . . . . . . . . . . 204.1.3 Un problema de Mecanica Celeste . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2 Calcul de zeros de sistemes d’equacions no lineals . . . . . . . . . . . . . . . . . . . . 234.2.1 El metode de continuacio del pseudo-arc . . . . . . . . . . . . . . . . . . . . . 25

5 Integracio Numerica d’EDOs 29

5.1 El metode de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.1.1 Execucio directa de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.1.2 Execucio de Taylor dins d’un programa . . . . . . . . . . . . . . . . . . . . . . 32

5.2 Calcul de l’aplicacio de Poincare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.3 Calcul d’orbites periodiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.3.1 Primera Equacio Variacional d’una edo . . . . . . . . . . . . . . . . . . . . . 405.3.2 Calcul de la diferencial de l’aplicacio de Poincare . . . . . . . . . . . . . . . . 415.3.3 Calcul d’orbites periodiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Referencies 45

GNU Free Documentation License 47

Calcul Numeric. Manual de practiques-iii

Page 6: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

iv-Calcul Numeric. Manual de practiques

Page 7: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

Capıtol 1

Introduccio

1.1 Manipulacio de fitxers i primers grafics

La principal intencio d’aquestes practiques es continuar la vostra formacio de Calcul Numeric atraves de l’analisi d’alguns problemes, la presentacio de diferents tecniques i la seva implementacioen un llenguatge de programacio.

Abans d’entrar en materia volem fer-vos memoria de dues eines basiques que necessitarem alllarg del curs com son la lectura/escriptura de fitxers de dades i la seva representacio grafica. Laprimera d’elles us la presentem a traves d’un exemple senzill programat amb C: concretament gcc,el compilador GNU/Linux (vosaltres podeu fer servir, per exemple, el seu equivalent C++, g++).

1 #inc lude <s t d i o . h>2 #inc lude <math . h>3 #de f i n e PI 3.1415926535897931159979634694 FILE ∗ f i t x e r ;5

6 i n t main ( void ) 7 i n t i ;8 double x , fx ;9 f i t x e r=fopen ( ”prova” , ”w” ) ;

10 // Obrim e l f i t x e r de dades en mode e s c r i p t u r a ”w” ( recordeu11 // que ten iu a l t r e s modes :12 // r . . . . . . . . . . . . de l e c t u r a13 // a . . . . . . . . . . . . . a f e g e i x a un f i t x e r j a c r ea t14 // a + . . . . . . . . . . . . c r ea o a f e g e i x per l e c t u r a i /o e s c r i p tu ra ,15 // per mode texte , ent r e d ’ a l t r e s , a i x i com ana l egs per mode b i n a r i .16

17 // comprovem que l a r e s e rva de memoria ha e s t a t c o r r e c t e18 i f ( f i t x e r==NULL) 19 p r i n t f ( ”\n Error en ob r i r e l f i t x e r de dades .\n” ) ;20 e x i t ( 1 ) ;21 22

23 f o r ( i =1; i <=20; i++) 24 x=PI/ i ;25 fx=s i n (x ) ;26 // e s c r i v im a l f i t x e r27 f p r i n t f ( f i t x e r , ”%g %g\n” ,x , fx ) ;28

Calcul Numeric. Manual de practiques-1

Page 8: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

1. Introduccio

29 f c l o s e ( f i t x e r ) ;30

31 // Un cop tancat e l f i t x e r , e l tornem a ob r i r i l l e g i r em l e s dades32 // que hem e s c r i t anter iorment .33

34 f i t x e r=fopen ( ”prova” , ” r ” ) ;35

36 // Comprovem de nou que l a r e s e rva de memoria ha e s t a t c o r r e c t e37 i f ( f i t x e r==NULL) 38 p r i n t f ( ”\n Error en ob r i r e l f i t x e r de dades .\n” ) ;39 e x i t ( 2 ) ;40 41

42 // Lectura de dades i l e s e s c r i v im per pan ta l l a43 f o r ( i =1; i <=20; i++) 44 f s c a n f ( f i t x e r , ”%g %g\n” ,&x,& fx ) ;45 p r i n t f ( ”x=%g\ t fx=%g\n” ,x , fx ) ;46 47

48 // Tanquem e l f i t x e r49 f c l o s e ( f i t x e r ) ;50

51 r e turn 0 ;52

Llistat 1.1: sin.c

En quant a l’apartat grafic, farem servir el programa gnuplot, d’us lliure, amb versions Windowsi Linux, i forca estes. Us podeu descarregar el programa de (gnu). Un bon tutorial (reduıt i pera la versio 4.2 pero suficient) es troba, per exemple, a la seguent pagina a la Universitat de Duke:(tutorial). Tot i que es pot utilitzar de manera interactiva es corrent crear un programa que l’executiquan es vol fer repetidament. Aquest tipus de programes s’acostumen a anomenar shells (i n’hi ha,per Linux i Unix, de diversos tipus: sh, bash, csh, tcsh, dash, ...). Per exemple, crearemuna shell que dibuixi les grafiques del sinus i del cosinus superposades. Per fer-ho suposarem quetenim un fitxer anomenat sinus-cosinus.dat amb tres columnes: x, sinx i cosx, per a valors d’xequiespaiats entre 0 i 2π (per exemple, xk = kh amb h = 2π/1000). El nostre fitxer shell es diradibuix.gp1:

1 #!/ bin / sh2 gnuplot << END3

4 # Determinem la s o r t i d a de l g r a f i c . En aquest cas l a s o r t i d a s e ra5 # a un f i t x e r p o s t s c r i p t anomenat ” g r a f i q u e s . ps”6 s e t t e rmina l p o s t s c r i p t7 s e t output ” g r a f i q u e s . ps”8

9 # Si haguessim volgut que l a s o r t i d a f o s d irectament per pan ta l l a e s c r i u r i em10 # se t te rmina l x1111

12 # Dibuixem l e s g r a f i q u e s de l s i nu s i de l co s inu s a [−1 ,1 ] x[−pi , p i ]13

14 p lo t [ −3 . 142 : 3 . 1 42 ] [ −1 : 1 ] ” s inus−co s inu s . dat ” u 1 :2 t i t l e ” s i n ( x ) ” w p\15 pt 7 ps 0 . 6 , ” s inus−co s inu s . dat ” u 1 :3 t ” cos ( x ) ” w p l t 3 pt 7 ps 0 .6

1L’extensio gp ens permet recordar que son instruccions gnuplot pero tambe haurıem pogut posar .sh

2-Calcul Numeric. Manual de practiques

Page 9: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

1.1 Manipulacio de fitxers i primers grafics

16

17 # u 1:2 es l ’ ab r ev ia tu ra de ’ us ing 1 :218 # Amb aixo estem dient que d i bu i x i l a segona columna ( s i n ( x ) )19 # de l f i t x e r r e sp e c t e de l a primera (x )20

21

22 # pt : po int type / l t : l i n e type23 # ps : po int s i z e / l s : l i n e s i z e24 # t : t i t l e / n o t i t l e : s ense t i t o l25 # w p : with po in t s / w l : with l i n e s26

27 END

Llistat 1.2: dibuix.gp

Per executar aquest programa feu:

perico@delospalotes: sh dibuix.gp

El fitxer grafiques.ps el podeu obrir amb qualsevol visualitzador de postscript (okular, gv,

ghostview, etc).

Exercici 1.1.1. L’aplicacio estandard o Standard map es la seguent aplicacio al pla:

yn+1 = yn +K sin(xn),xn+1 = xn + yn+1

mod (2π) (1.1)

Aleshores, considereu la finestra [0, 2π]× [0, 2π] i preneu valors inicials de la forma (x0, 0) i (0, y0)a on x0 = y0 = 2jπ/30, j = 0, 1, . . . , 30.

Fixeu, per exemple, el valor K = 1.11. Per a cada punt inicial (x0, 0), (0, y0) calculeu 300 delsseus iterats per (1.1), o sigui, una part de les seves orbites, i deseu-los en un fitxer estandard.datde dues columnes (x, y). Representeu-les usant gnuplot. Repetiu el calcul anterior per altres valorsde K ∈ (0.8, 3.4).

Calcul Numeric. Manual de practiques-3

Page 10: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

1. Introduccio

4-Calcul Numeric. Manual de practiques

Page 11: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

Capıtol 2

Metodes iteratius per a sistemeslineals

2.1 Metodes de Jacobi i de Gauss-Seidel. Precondicionadors

Els metodes iteratius que tractarem en aquesta practica provenen de l’utilitzacio de l’anomenatprecondicionador, una matriu procedent de la descomposicio de la matriu del sistema, A, queproporciona a l’esquema recurrent final una estructura de calcul triangular. Com a recordatori, sivolem resoldre el sistema Ax = b, A ∈ Mn,n, podem descomposar A = P + (A− P ) i escriure

Ax = b⇔ Px = (P −A)x+ b⇔ x = (I− P−1A)x+ P−1b,

que deriva en l’esquema recurrent:x(k+1) = Bxk + b, (2.1)

on B = (I − P−1A) es la matriu d’iteracio i b = P−1b. Si escrivim A = L + D + U , amb D lapart diagonal de la matriu, L la part triangular estricta inferior i U la triangular estricta superior,aleshores els casos P = D i P = L+D corresponen als coneguts metodes de Jacobi i Gauss-Seidel,respectivament.

L’esquema (2.1) es convergent si i nomes si el radi spectral de la matriu B, ρ(B) = maxλ vap |λ|,es estrictament menor que 1. Del fet que ρ(B) ≤ ‖B‖ per a qualsevol norma matricial es dedueixque ‖B‖ < 1 es una condicio suficient per a la convergencia del metode iteratiu (2.1).

Exercici 2.1.1. Considereu una matriu A = (aij)ij ∈ Mm,n. Aleshores, escriviu programes - quepuguin ser cridats des de qualsevol altre - que calculin:

‖A‖1 = maxj=1...n

m∑

i=1

|aij |, ‖A‖∞ = maxi=1...m

n∑

j=1

|aij |, ‖A‖2 =(

ρ(A⊤A))1/2

.

Per calcular la norma sub-2 d’una matriu necessitareu programar el calcul del radi espectralρ(A) d’una matriu quadrada A ∈ Mn,n. Per fer-ho implementeu el metode de la potencia (vegeu,per exemple, [1, 2, 4, 16]), que proporciona el vap de modul maxim. La idea d’aquest metode es laseguent: ordenem els vaps de la matriu A segons la seva multiplicitat i modul

|λ1| ≥ |λ2| ≥ |λ3| ≥ · · · |λn|.Suposem, per simplicitat, que A diagonalitza en una certa base de veps u1, u2, . . . , un i que existeixun unic vap de modul maxim: |λ1| > |λ2| ≥ · · · . Si prenem un vector inicial

x(0) = α1u1 + α2u2 + · · ·+ αnun, α1 6= 0,

Calcul Numeric. Manual de practiques-5

Page 12: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

2. Metodes iteratius per a SL

aleshores, en aplicar-li A obtindrem

Ax(0) = λ1α1u1 + λ2α2u2 + · · ·+ λnαnun.

Si ho fem de manera iterada i anomenem x(k) = Ax(k−1), aleshores

x(k) = λk1α1u1 + λk2α2u2 + · · ·+ λknαnun = λk1

(

α1u1 +

(

λ2λ1

)k

α2u2 + · · ·+(

λnλ1

)k

αnun

)

Observeu que si fem k gran, el vector x(k) tendeix cap a la direccio del vep de valor propi λ1. Si

denotem x(k) =(

x(k)1 , x

(k)2 , . . . , x

(k)n

)

llavors, sempre que tinguin sentit els quocients, tindrem

x(k+1)i

x(k)i

= λ1

(

1 +O(

λ2λ1

k))

x(k)

λk1= α1u1

(

1 +O(

λ2λ1

k))

.

Noteu que la velocitat de convergencia cap a λ1 depen fortament del quocient |λ1/λ2|, de formaque si aquests dos primers vaps son similars aquesta pot ser molt lenta.

La successio (λk1)k generalment tendeix cap a 0 o esdeve no afitada. Per evitar els problemesnumerics que aixo implica conve normalitzar a cada pas el vector x(k). Aixı, un possible algorismeper fer-ho seria: un cop tenim x(k), el normalitzem

y(k) =x(k)

‖x(k)‖

i calculem el seguent iterat x(k+1) = Ay(k). Aleshores,

limk→+∞

x(k+1)i

y(k)i

= λ1, i = 1, . . . , n

limk→+∞

y(k) = ± u1‖u1‖

.

Exercici 2.1.2 (Opcional). Com ordena un cercador com Google les pagines web que fan referenciaa una pregunta que hagiu introduıt ? Quin criteri segueix?

La resposta esta basada en un problema d’Algebra lineal, matrius de Markov i, obviament,metodes numerics eficients que permetin calcular el valor propi dominant i un seu vector propi dematrius de mida realment gegant (de l’ordre de 109).

Si us interessa el problema i altres relacionats i us tempta programar-ho (a una escala mespetita, es clar) podeu consultar [8].

Exercici 2.1.3. Programeu la resolucio numerica d’un sistema Ax = b, A ∈ Mn,n, fent servir elsmetodes de Jacobi i de Gauss-Seidel. A cada programa caldria que fessiu:

1. Lectura de la matriu A d’un fitxer.

2. Cada un d’aquests programes hauria de rebre la matriu A, el seu nombre n de fileres (ocolumnes, doncs es quadrada) i els vectors x i b.

6-Calcul Numeric. Manual de practiques

Page 13: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

2.1 Metodes de Jacobi i de G-S. Precondicionadors

3. Calculeu les normes ‖ · ‖1 i del suprem de la matriu d’iteracio B corresponent i indiqueu, enel cas de que alguna d’elles sigui menor estricta que 1, la convergencia del metode. En el casque ambdues siguin mes grans o iguals a 1, calculeu el radi espectral de B, ρ(B).

4. Si el metode convergeix, obteniu un valor aproximat x de la solucio amb una precisio de-terminada TOL (per exemple, 10−12) i en un nombre maxim d’iteracions NUM MAX ITER quetambe fixareu a priori. Un cop tingueu calculada aquesta aproximacio haurieu d’escriure perpantalla informacio sobre una estimacio de l’error en l’aproximacio ‖x(K) − x(K−1)‖∞, onx(K) = x.

5. Calculeu la norma del suprem del residu: ‖Ax− b‖∞.

Exercici 2.1.4. Fer el mateix amb un metode de sobre-relaxacio (SOR).

Exercici 2.1.5. Resoleu numericament (usant Jacobi i Gauss-Seidel) els seguents sistemes Ax = b.Compareu la velocitat de convergencia en ambdos casos.

A =

4 −1 −1 0−1 4 0 −1−1 0 4 −10 −1 −1 4

, b =

1201

A =

0.95 0.07 0. 0. 0.05 0.010.07 0.95 0.07 0. 0. 0.040. 0.07 0.95 0.06 0. 0.0. 0. 0.06 0.95 0.06 0.0.05 0. 0. 0.06 0.95 0.060.01 0.04 0. 0. 0.06 0.95

, b =

0.50.50.50.50.50.5

A molts problemes d’elements finits o diferencies finites es necessaria la resolucio de (grans)sistemes lineals Ax = b on la matriu A es una matriu per blocs. Per exemple, si T ∈ Mm,m es lamatriu tridiagonal simetrica:

T =

4 −1

−1 4. . .

. . .. . . −1−1 4

i I la matriu identitat m-dimensional, aleshores considerem

A =

T −I−I T

. . .. . .

. . . −I−I T

, (2.2)

matriu tridiagonal simetrica per blocs. Emprar un metode de resolucio directa a A (per exemple,Choleski) seria poc eficient ja que A es escassa i moltes de les operacions que farıem involucrariencoeficients nuls.

El que es fa sovint es aprofitar aquesta estructura per blocs i transformar el sistema Ax = b enun grapat de sistemes mes petits, molts d’ells amb la mateixa matriu (en el nostre cas serien deltipus T x = b doncs −Ix = b es de resolucio immediata).

Calcul Numeric. Manual de practiques-7

Page 14: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

2. Metodes iteratius per a SL

Exercici 2.1.6. Apliqueu els metodes de Jacobi i de Gauss-Seidel per a la resolucio d’un sistemaAx = b, amb A del tipus (2.2) amb N × N blocs. Feu-ho sense descomposar-lo en subsistemespetits, es a dir, treballant amb tota la matriu A. (Nota: no feu ara la lectura dels coeficients de lamatriu A des d’un fitxer sino definiu-los vosaltres directament en funcio dels valors d’m i N , quepodeu llegir per pantalla.)

8-Calcul Numeric. Manual de practiques

Page 15: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

Capıtol 3

Aproximacio per mınims quadrats

3.1 Sistemes sobredeterminats. Descomposicio QR

S’anomena sistema sobredeterminat a un sistema lineal en el qual el nombre d’observacions m esmajor que el nombre n d’incognites, es a dir, del tipus

Ax = b, A ∈ Mm×n, m > n. (3.1)

L’expressio (3.1) s’anomena Equacions Normals. Es un sistema sobredeterminat i, tıpicament, note solucio. El que es busca en canvi es trobar aquella solucio x tal que minimitzi ‖Ax − b‖2. Peraquest motiu es coneix com a aproximacio per mınims quadrats. Una manera usual de resoldre’l esprojectant el vector b sobre l’espai vectorial generat pels vectors columna de la matriu A:

A⊤Ax = A⊤b. (3.2)

Si la matriu inicial A te rang maxim (o sigui n), aleshores la matriu A⊤A ∈ Mn×n es regular.Malgrat aixo, es facil trobar exemples de matrius A de rang maxim que en aritmetica de comaflotant de doble precisio proporcionen A⊤A molt propera a singular.

Fins i tot en el cas de que A⊤A sigui regular aplicar un metode gaussia per a resoldre (3.1) noes tampoc el mes convenient en general. Concretament, ates que A⊤A es simetrica, seria raonableaplicar una descomposicio de Choleski A⊤A = LL⊤, amb L matriu triangular inferior. La dificultatnumerica prove del fet que el nombre de condicio de la matriu A⊤A i el de la matriu L poden creixerconsiderablement.

Un manera de preservar un mınim control sobre el nombre de condicio µ2(A) = ‖A‖2‖A−1‖2es basa en l’anomenada descomposicio QR de la matriu A: escrivim A = QR, on Q es ortogonal(unitaria si es complexa) i R triangular superior. Aixı,

A⊤Ax = A⊤b⇔ (QR)⊤(QR)x = (QR)⊤b⇔ R⊤Q⊤QRx = R⊤Q⊤b⇔ Rx = Q⊤b

El sistema final a resoldreRx = Q⊤b

es triangular superior i els valors x = (x1, x2, . . . , xn) s’obtenen per substitucio cap a endarrere.El metode que haureu de programar es una versio modificada de l’algorisme d’ortogonalitzacio

de Gram-Schmidt i te l’avantatge respecte d’aquest que la matriu Q obtinguda es de mida m × nenlloc de m×m i el nombre d’operacions emprades.

0T. Lazaro, M. Olle i J.R. Pacha. Departament de Matematica Aplicada I

Calcul Numeric. Manual de practiques-9

Page 16: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

3. Aproximacio per mınims quadrats

Problema: Donada una matriu A ∈ Mm,n, calculeu la seva descomposicio QR, amb Q ortogonal(Q⊤Q = I) i R triangular superior.

Algorisme

Pas 0: Definiu A1 = A =(

a(1)1 a

(1)2 · · · a(1)n

)

on a(1)j indica la columna j-essima de la matriu A1.

Pas 1: Normalitzem la columna a(1)1 :

r11 = ‖a(1)1 ‖, q1 =a(1)1

r11.

Ortogonalitzem respecte a aquesta columna totes les columnes posteriors:

r1s = q⊤1 a(1)s , a(2)s = a(1)s − r1sq1.

Obtenim aixı la matriu A2 =(

q1 a(2)2 a

(2)3 · · · a(2)n

)

.

Pas k: Suposem que tenim ara la matriu Ak =(

q1 q2 · · · qk−1 a(k)k a

(k)k+1 · · · a(k)n

)

. Per construccio,

les seves columnes satisfan

q⊤j qℓ = δjℓ, q⊤j a(k)s = 0, j, ℓ = 1÷ k − 1, s = k ÷ n.

Normalitzem la columna k-essima,

rkk = ‖a(k)k ‖, qk =a(k)k

rkk,

i ortogonalitzem respecte de qk les columnes a(k)k+1, · · · , a

(k)n ,

rks = q⊤k a(k)s , a(k+1)

s = a(k)s − rksqk, s = k + 1÷ n.

S’obte d’aquesta manera Ak+1 =(

q1 q2 · · · qk a(k+1)k+1 a

(k+1)k+2 · · · a(k+1)

n

)

que verifica q⊤j qℓ = δjℓ

i q⊤j a(k)s = 0 per a j, ℓ = 1÷ k, s = k + 1÷ n.

Pas n: Despres de n iteracions obtenim An+1 = (q1 q2 · · · qn), matriu ortogonal satisfent que

A = QR, Q = An+1, R = (rks).

Recordeu que si A es regular i totes les rkk > 0 – com al nostre cas – la descomposicio QR es unica.

Exercici 3.1.1. Programeu la descomposicio QR d’una matriu A seguint aquest metode. Useu-laper a calcular A−1, µ2(A) i µ∞(A), on µp(A) = ‖A‖p ‖A−1‖p es el numero de condicio (en normasub-p) de la matriu A.

10-Calcul Numeric. Manual de practiques

Page 17: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

3.1 Sistemes sobredeterminats. Descomposicio QR

2000 2001 2002 2003 2004 2005

6.261.999 6.361.365 6.506.440 6.704.146 6.813.319 6.995.206

2006 2007 2008 2009 20107.134.697 7.210.508 7.364.078 7.475.420 7.512.381

Taula 3.1: Habitants de Catalunya segons el padro municipal.

Exercici 3.1.2. Les xifres oficials corresponents al padro municipal de Catalunya (vegeu la paginaweb de l’Institut d’Estadıstica de Catalunya IDESCAT) entre els anys 2000 i 2010 son les donadesa la taula 3.1.

Aleshores,

(i) Busqueu el polinomi del grau escaient que millor aproximi aquesta taula en norma sub-2.Justifiqueu l’eleccio mostrant una fita de l’error d’aquest i de la resta amb els que heu provat.

(ii) Useu-lo per a extrapolar la poblacio de Catalunya l’any 2011 i compareu-la amb la xifra oficial(7.535.251). Quina seria la prediccio pel 2012 ?

(iii) Feu una grafica on apareguin els punts de la taula (representants per una rodona) i lesgrafiques de les tres millors aproximacions.

(iv) Considereu el cas de p10(x), polinomi de grau 10 obtingut per mınims quadrats. Representeu-lojuntament amb els punts de la taula (aquests amb una rodona). Que observeu? Comenteu-lo.

Comentari 3.1.3. Numericament es millor que considereu la taula anterior amb abscisses 0, 1, . . . , 10enlloc de 2000, 2001, . . . , 2010.

Un segon metode, equivalent per a resoldre un sistema lineal sobredeterminat i per a trobar laprojeccio ortogonal d’una funcio f sobre un espai de funcions F , es trobar una base de polinomisortogonals. En el cas de l’exercici 3.1.2, les abscisses son equidistants i, llavors, podem fer servirels anomenats polinomis de Gram, Pj,m(t). Aquesta famılia de polinomis es ortogonal respecte dela taula tk = k, k = ÷m. Es poden obtenir a traves de la seguent recurrencia:

P0,m(t) = 1, P1,m(t) = 1− 2t

m,

(j + 1)(m− j)Pj+1,m(t) = (2j + 1)(m− 2t)Pj,m(t)− j(m+ j + 1)Pj−1,m(t), j = 1÷m− 1.

En el cas que les nostres m + 1 abscisses xk estiguessin equidistribuıdes a l’interval [a, b], caldriaconsiderar el canvi de variable

x = a+b− a

mt⇔ t =

x− a

b− am

i treballar amb els polinomis ortogonals Pj,m(x) = Pj,m

(

x− a

b− am

)

Exercici 3.1.4 (Continuacio de l’exer. 3.1.2). Considereu novament el problema de buscar unmodel per a la poblacio catalana a la darrera decada.

(i) Amb l’ajut d’un manipulador algebraic (Maple, Matlab, Octave, . . . ) calculeu els polinomisde Gram Pj,m(t) associats a les abscisses 0, 1, . . . , 10 (que correspon al nostre cas, vegeuComentari 3.1.3). Guardeu-los en un programa C o C++, conservant unicament els seuscoeficients.

Calcul Numeric. Manual de practiques-11

Page 18: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

3. Aproximacio per mınims quadrats

(ii) Plantegeu la resolucio del problema 3.1.2 fent servir aquesta famılia de polinomis i responeua les mateixes preguntes. Compareu els resultats obtinguts en ambdos casos. Recordeu que sinecessiteu avaluar un polinomi en un cert punt una manera eficient de fer-ho es fent servirla Regla de Horner.

3.2 Descomposicio en Valors Singulars (SVD)

La descomposicio QR d’una matriu es un metode comu per a resoldre sistemes sobredeterminats iper trobar solucions a problemes de mınims quadrats, pero no es pas l’unic. Un altre molt comu, iamb gran quantitat d’aplicacions, es l’anomenada Descomposicio en Valors Singulars d’una matriuo, en angles, Singular Value Decomposition (SVD).

Theorem 3.2.1 (SVD [6]). Sigui A ∈ Mm,n(R), ambm ≥ n. Aleshores, existeix una descomposiciode la matriu A de la forma

A = UΣV ⊤ (3.3)

satisfent les seguents propietats:

• U ∈ Mm,n(R) es matriu ortogonal, U⊤U = In. Els vectors-columna que formen U , es a dirU = (u1 u2 · · · un), reben el nom de vector singulars per l’esquerra.

• V ∈ Mn,n(R) es tambe ortogonal, V ⊤V = In. Analogament al punt anterior, els vectors-columna que formen V , o sigui V = (v1 v2 · · · vn), s’anomenen vectors singulars per ladreta.

• Σ ∈ Mn,n(R) = diag(σ1, σ2, . . . , σn) amb σ1 ≥ σ2 ≥ . . . ≥ σn ≥ 0, anomenats valors singularsde la matriu A. El valor σ1 es diu valor singular principal.

Comentari 3.2.2. 1. En el cas A ∈ Mm,n(R) amb m < n el mateix teorema s’aplica. Es trivialcomprovar que la descomposicio SVD d’A⊤ es A⊤ = V Σ⊤U⊤.

2. Per a matrius complexes el teorema es tambe cert canviant “transposada” per “hermıtica”:A = UΣV ∗ amb U∗U = V ∗V = In.

Demostracio del Teorema 3.2.1. Definim la matriu simetrica S := A⊤A ∈ Mn,n(R). Pel teoremaespectral, existeix una base ortonormal de R

n que consisteix en els VEPs de S i, a mes, els VAPscorresponents a cada vector son reals; i.e., existeixen n vectors v1, v2, . . . , vn ∈ R

n t.q.:

Svi = λivi,

amb Rn = [v1, v2, . . . , vn] i λi ∈ R, 〈vi, vj〉 = δi,j per tot i, j = 1÷ n. En aquest cas, de fet, λi ≥ 0

per tot i = 1÷ n, ja que S es semidefinida positiva. En efecte, sigui ξ ∈ Rn, ξ 6= 0, llavors

〈ξ, Sξ〉 = 〈ξ, A⊤Aξ〉 = 〈Aξ,Aξ〉 = ‖Aξ‖22 ≥ 0.

Sense perdua de generalitat, podem suposar que els vectors de la base ortonormal venen ordenatsde manera que els vaps respectius son decreixents, i.e.: λ1 ≥ λ2 ≥ · · · ≥ λn ≥ 0. Sigui 1 ≤ r ≤ nt.q.: λ1 ≥ λ2 ≥ · · · ≥ λr > 0, λr+1 = λr+2 = · · · = λn = 0 (notem que pot ser r = n). Acontinuacio definim

σ1 :=√

λ1, σ2 :=√

λ2, . . . , σr :=√

λr (3.4)

12-Calcul Numeric. Manual de practiques

Page 19: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

3.2 Descomposicio en Valors Singulars (SVD)

de manera que: σ1 ≥ σ2 ≥ · · · ≥ σr > 0. Introduım tambe els vectors

u1 =1

σ1Av1, u2 =

1

σ2Av2, . . . , ur =

1

σrAvr.

Aquest vectors son ortogonals dos a dos i unitaris. Comprovem-ho:

〈ui, uj〉 =1

σiσj〈Avi, Avj〉 =

1

σiσj〈vi, A⊤Avj〉 =

1

σiσj〈vi, Svj〉 =

λjσiσj

〈vi, vj〉 =σjσi

〈vi, vj〉 = δij

per i, j = 1÷ r, on hem fet servir que, d’acord amb (3.4) es λj = σ2j , per j = 1÷ r. A continuacio,completem els vectors u1, u2, . . . , ur ∈ R

m amb n−r vectors ur+1, ur+2, . . . , un ∈ Rn de manera que

u1, u2, . . . , un formin una famılia ortonormal a Rm. Ara, en la base ortonormal v1, v2, . . . , vn

de Rn i per a la famılia ortonormal u1, u2, . . . , un de R

m, tenim

Avj = σj1

σjAvj = σjuj , per j = 1÷ r,

Avj = 0, per j = r + 1÷ n(3.5)

d’acord amb la definicio de uj , j = 1 ÷ r. Ara, si escrivim U =(

u1 u2 · · ·un)

∈ Mm,n(R) com lamatriu que te per columnes els vectors u1, u2, . . . , un; V =

(

v1 v2 · · · vn)

∈ Mn,n(R) com la matriuque te per columnes els vectors v1, v2, . . . , vn i Σ = diag[σ1, σ2, . . . , σr, 0, . . . , 0] ∈ Mn,n(R); podemexpressar (3.5) en forma matricial com

AV = UΣ. (3.6)

Finalment, com que les columnes de V son ortogonals, tenim que V ⊤V = V V ⊤ = In, i multipli-cant (3.6) per la dreta a totes dues bandes per V ⊤ s’obte la descomposicio buscada.

La descomposicio SVD d’una matriu satisfa moltes propietats importants. Al seguent Teoremadonem les mes destacades.

Theorem 3.2.3 ([6]). Sigui A = UΣV ⊤ la descomposicio SVD de la matriu A ∈ Mm,n(R), ambm ≥ n. Aleshores:

1. Suposeu que A es simetrica i que, per tant, admet una descomposicio de la forma A = UDU⊤

amb D = diag(λ1, λ2, . . . , λn), U = (u1 u2 · · · un) ortogonal, es a dir UU⊤ = In. Aleshoresuna SVD d’A es A = UΣV ⊤ amb σi = |λi| i vi = sign(λi)ui, on sign es la funcio “signe” isign(0) = 1.

2. Els vaps de la matriu simetrica A⊤A ∈ Mn,n(R) son σ2i . Els vectors singulars per la dretav1, v2, . . . , vn formen una base ortogonormal de veps.

3. Els vaps de la matriu simetrica AA⊤ ∈ Mm,m(R) son σ2i , i = 1, 2, . . . , n, i m− n zeros. Elsvectors singulars per l’esquerra ui son els vep’s ortonormals corresponents als vaps σ2i .

4. Siguin A ∈ Mn−n(R) una matriu quadrada i A = UΣV ⊤ la seva SVD amb Σ = diag(σ1, · · · , σn),U = (u1 u2 · · · un) i V = (v1 v2 · · · vn). Considereu la matriu per blocs

H =

(

0 A⊤

A 0

)

.

Aleshores, els vaps d’H son ±σ1,±σ2, . . . ,±σn i els seus veps unitaris corresponents son

1√2

(

vi±ui

)

.

Calcul Numeric. Manual de practiques-13

Page 20: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

3. Aproximacio per mınims quadrats

5. Si A te rang maxim, es a dir, rang(A) = n, llavors

minx

‖Ax− b‖ = ‖Ax∗ − b‖

amb x∗ = V Σ−1U⊤b. Per tant, proporciona la solucio del problema de mınims quadrats.

6. La norma euclıdea d’A es ‖A‖2 = σ1. Si A ∈ Mn,n(R) es no singular aleshores ‖A−1‖2 =1/σn i el nombre de condicio µ2(A) = ‖A‖2‖A−1‖2 = σ1/σn.

7. Suposem σ1 ≥ σ2 ≥ · · · ≥ σr > σr+1 = σr+2 = · · · = σn = 0. Llavors, rang(A) = r i

kerA = span vr+1, vr+2, . . . , vn , ImA = span u1, u2, . . . , ur .

8. Siguin Sn = x ∈ Rn : ‖x‖2 = 1 l’esfera unitat n-dimensional i A(Sn) = Ax : x ∈ Sn la

seva imatge per la matriu A ∈ Mm,n(R). Aleshores, A(Sn) es un el·lipsoide de centre l’origend’Rm i eixos principals σiui.

Demostracio. Cadascun dels apartats de la proposicio es proven a partir del Teorema 3.2.1. Deixemdoncs la demostracio d’aquest teorema com exercici (o be podeu consultar la referencia [6]). Nota:aquesta activitat es voluntaria i no cal que la presenteu a l’informe de la practica.

Exercici 3.2.4. (Obligatori, cal que figuri a l’informe). Torneu a fer l’exercici 2 de la 2a practica(extrapolacio de la poblacio a Catalunya) aplicant —en fer l’aproximaxio per mınims quadrats—,la propietat 5 del Teorema 3.2.3 (en comptes de la descomposicio QR). Compareu els resultats.

Una consequencia molt interessant del Teorema 3.2.1 es que proporciona un metode d’aproxi-macio de la matriu A per matrius de menor rang. De fet,

Proposition 3.2.5 ([6]). Considereu la descomposicio SVD d’una matriu A ∈ Mm,n (R), A =UΣV ⊤ i escriviu U = [u1 u2 . . . un] i V = [v1 v2 . . . vn], on cada uj, vj es un vector columna d’mcomponents. Observeu que podem escriure, equivalentment, que

A = UΣV ⊤ =n∑

i=1

σiuiv⊤i

essent σ1, σ2, . . . , σr, σr+1 = 0, . . . , σn = 0 els valors singulars d’A. Aleshores,

Ak :=k∑

i=1

σiuiv⊤i = UΣkV

⊤,

amb Σk = diag (σ1, σ2, . . . , σk, 0, . . . , 0), es la matriu de rang k que millor aproxima A en normaeuclıdea. A mes, ‖A−Ak‖2 = σk+1.

Demostracio. Es comprova facilment que ‖A−Ak‖2 = σk+1. Sigui B ∈ Mm,n(R) de rang k < n i,per tant, amb dimNucB = n−k. Considerem el subespai F = [v1, v2, . . . , vk+1]. Aquests subespais,F i NucB, es solapen, ja que la suma de les seves dimensions (k + 1) + (n − k) > n. Sigui ξ unvector de la seva interseccio, que agafarem unitari; es a dir, t.q.: ‖ξ‖2 = 1. Llavors,

‖A−B‖22 ≥ ‖(A−B)ξ‖22 = ‖Aξ‖22 = ‖UΣV ⊤ξ‖22 = ‖ΣV ⊤ξ‖22 ≥ σ2k+1‖V ⊤ξ‖22 = σ2k+1.

La qual cosa completa la prova.

14-Calcul Numeric. Manual de practiques

Page 21: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

3.2 Descomposicio en Valors Singulars (SVD)

Figura 3.1: Retrat d’un camell (color i blanc i negre).

Una aplicacio divertida a la vegada que practica d’aquest darrer resultat es la compresio d’i-matges. L’il·lustrarem amb un exemple complet. Suposeu que teniu una fotografia en format jpgcom aquesta que anomenem camell.eps. El primer que farem sera convertir-la a escala de grisos idespres transformar-la en una matriu en doble precisio segons la intensitat de cada pıxel o grup depıxels. Malgrat es pot fer amb programes de tractament d’imatge de lliure distribucio (per exemple,l’opencv) nosaltres usarem Matlab. Les comandes son aquestes:

A = imread(’camel.eps’);

A = rgb2gray(A);

A = im2double(A);

imshow(A)

dlmwrite(’camel_matrix.dat’, A, ’delimiter’, ’\t’, ’precision’, 4)

size(A)

La comanda imshow(A) mostra la imatge de nou mentre que dlmwrite escriu la matriu d’in-tensitats A en un fitxer ascii anomenat camel matrix.dat de 600 files i 800 columnes sepa-rades per una tabulacio. Si tornem a anomenar A la matriu (numerica, d’intensitats) guar-dada al fitxer camel matrix.dat i l’apliquem la SVD , obtenim les matrius que l’aproximenA1, A2, A5, A10, A25, A100 i A298, obtingudes considerant els 1, 2, . . . , 298 primers valors no sin-gulars d’A, respectivament. Si volem recuperar la imatge que correspon a cada una d’aquestesaproximacions, farem a Matlab:

imwrite(Ak, sprintf(’camel-%d.jpg’, k));

on k = 1, 2, . . . , 298. Per transformar el format *.jpg en format *.eps podeu fer servir (a Linux) lacomanda

convert input_file.jpg eps2: output_file.eps

El resultat el podeu veure a la Figura 3.2. Observeu que ja amb nomes 100 valors singulars(penultima fotografia a Figura 3.2) la resolucio es forca raonable.

Exercici 3.2.6. Feu el mateix amb una fotografia de vosaltres (es a dir, dels dos components decada grup). Es important que preneu la fotografia a una resolucio baixa per a evitar que la matriusurti massa gran. L’exemple del camell esta fet a una resolucio de 600× 800.

Calcul Numeric. Manual de practiques-15

Page 22: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

3. Aproximacio per mınims quadrats

Figura 3.2: De dalt a baix i d’esquerra a dreta: fotografies corresponents a les diferents aproxima-cions usant els primers 1, 2, 5, 10, 25, 50, 100, 298 valors singulars d’A, respectivament.

3.3 Calcul de corbes invariants d’una aplicacio

Sigui f : Rn → Rn una aplicacio C1, invertible en un obert D ⊆ R

n, amb f(D) ⊆ D i amb inversaC1. Donat x ∈ D, denotarem per x(m), s ∈ Z, els iterats (cap endavant, si s es positiu) o cap

enrera (si s es negatiu) de l’aplicacio f , i. e.: x(m) := (f s). . . f)(x). Direm que una corba tancada,Σ ⊂ D, es una corba invariant de l’aplicacio f sii x(s) ∈ Σ, per tot x ∈ Σ, s ∈ Z.

Definition 3.3.1. Direm que la corba invariant te nombre de rotacio ρ > 0 si, donada una para-metritzacio qualsevol θ ∈ R

1 x→ x(θ) ∈ Σ, 2π-periodica i de classe C1, es satisfa la relacio

f(x(θ)) = x(θ + ρ), (3.7)

per tot θ.

3.4 Descripcio del metode

En aquesta practica seguirem el metode que es proposa a [3] (veure tambe [9]) per a calcularparametritzacions x(θ) de corbes invariants d’una aplicacio donada amb un nombre de rotacio fixat

1T. Lazaro, M. Olle i J.R. Pacha. Departament Matematica Aplicada I

16-Calcul Numeric. Manual de practiques

Page 23: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

3.4 Descripcio del metode

ρ. Escriurem x(θ) com una serie de Fourier,

x(θ) = a0 +∑

k≥1

ak cos(kθ) + bk sin(kθ), ak, bk ∈ Rn, k ∈ N. (3.8)

Com que, en general, la determinacio dels infinits coeficients no es possible, considerarem un trunca-ment d’aquesta serie, i.e., un polinomi trigonometric de grau (nombre d’harmonics) N que fixarem apriori (la seleccio d’aquest valor, la discutirem mes endavant) i buscarem aproximacions dels 2N+1coeficients vectorials a0, ak, bk, k = 0, 1, 2, . . . , N . Els detalls del metode els donem a continuacio:

1. A l’interval [0, 2π) definim una xarxa de 2N + 1 punts:

θj =2πj

2N + 1, j = 0, 1, . . . , 2N.

2. Imposant la condicio (3.7) sobre els punts d’aquesta xarxa s’obte un sistema de 2N + 1equacions vectorials

f(x(θj))− x(θj + ρ) = 0, j = 0, 1, . . . , 2N (3.9)

en els coeficients a0, ak, bk ∈ Rn, que tractarem de resoldre pel metode de Newton.

3. Aixı, definirem una funcio G que associa, a cada sequencia (a0, a1, b1, . . . , aN , bN ) els 2N +1valors que apareixen a l’esquerra de (3.9), i.e.:

(f(x(θj))− x(θj + ρ))j=0,1,...,2N .

Remarquem que tant els coeficients de Fourier a0, ak, bk, k = 1, 2, . . . , 2N , com cadascuna de lescomponents de dalt son vectors de Rn. La funcio G aplica, doncs, punts de Rm en R

m, m = (2N +1)×n. Per a una sequencia donada de coeficients de Fourier, els x(θj) es poden calcular substituintdirectament al polinomi trigonometric i despres trobar les corresponents imatges f(x(θj)). De lamateixa manera, els x(θj + ρ) s’obtenen tambe per substitucio al polinomi trigonometric.

Per calcular la matriu jacobiana, DG, de l’aplicacio de la regla de la cadena, s’obte directament:

∂Gj

∂ak= Df(x(θj))

∂x

∂ak(θj)−

∂x

∂ak(θj + ρ)

= Df(x(θj))In cos(kθj)− In cos(kθj + kρ), k = 0, 1, . . . , N. (3.10)

Analogament per ∂Gj/∂bk, k = 1, 2, . . . , N i on Df , In denoten la matriu jacobiana de f i la matriuidentitat n × n respectivament. Veiem que per a cada j = 0, 1, 2, . . . 2N , hi ha n components deGj , les mateixes que tenen cadascun del vectors a0, ak, bk, k = 0, 1, 2, . . . , N . Per tant ∂Gj/∂a0,∂Gj/∂ak, ∂Gj/∂bk son matrius n×n per j, k = 0, 1, . . . , N . Amb aquestes formules es pot constriurla matriu jacobiana G, la qual consisteix en (2N + 1)× (2N + 1) blocs de dimensio n.

4. Acotacio de l’error (veure [3]). Suposem que per a un nombre de rotacio donat, ρ, tenıem elscoeficients del polinomi trigonometric que donen la solucio aproximada de (3.9) amb una tolerancia(precisio) de, posem-ne, 10−14. El problema es que no tenim cap estimacio de l’error que es produeixen passar de la parametritzacio “exacta” (3.8) a la discretitzacio (3.8). Per tant, no podem coneixercom de “bona” es l’aproximacio obtinguda.

Per controlar aixo es defineix l’error aproximat de la corba x(θ), E(x, ρ), com:

E(x, ρ) = maxθ∈[0,2π)

‖f(x(θ))− x(θ + ρ)‖. (3.11)

Calcul Numeric. Manual de practiques-17

Page 24: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

3. Aproximacio per mınims quadrats

Per a cada x(θ) trobada, es calcula E(θ, ρ) sobre una xarxa de punts a l’interval [0, 2π). Aquestanova xarxa caldra que sigui mes “fina” (i.e., amb mes punts) que la que s’ha fet servir per calcularels coeficients, tıpicament amb un nombre de punts 100 vegades mes gran.

Si l’error (3.11) ultrapassa certa tolerancia ǫ (per exemple ǫ = 10−12), incrementem el grau Ndel polinomi trigonometric i tornem a calcular els coeficients. El proces es repeteix fins que E(x, ρ)estigui per sota de ǫ (el programa hauria de poder fer aixo de manera automatica). Amb aquestcriteri assegurem que les corbes invariants trobades per aquest metode tenen una precisio (almenys)ǫ, en el sentit donat per (3.11).

Comentari 3.4.1. Notem que si x(θ) es una serie de Fourier corresponent a una corba invariant,llavors, per a qualsevol φ ∈ [0, 2π), x(θ) = x(θ + φ) es una altra serie de Fourier corresponent ala mateixa corba invariant. D’aquı resulta clar (comproveu-ho!) que el nucli de DG te dimensio1. Caldra doncs afegir una condicio addicional. S’acostuma a imposar que el valor d’alguna deles components de x(θ) a zero per un valor fixat de θ. El sistema quedara doncs sobredeterminat iper resoldre’l s’haura de fer servir metodes com eliminacio gaussiana amb pivotatge per files o befactoritzacio QR.

Exercici 3.4.2. Implementar els passos 1−4 per trobar corbes invariants de l’aplicacio (veure[15]),

f

x1x2x3x4

=

x3x4

−x1 + x3 + x4−x2 + εx3 + x4 + βx33

(3.12)

ε, β ∈ R parametres. Sovint hi ha prou amb agafar, com aproximacio inicial, el primer harmonic,i.e., els coeficients a0, a1, b1. Aquest es poden trobar (veure [13]) “a ma” (o amb l’ajut d’algunprograma de calcul simbolic com MAPLE, Mathematica, Maxima,...) a partir de (3.7). En aquestcas, podem agafar com aproximacio inicial,

x1(θ) = A cos(θ − ρ),

x2(θ) = A cos(θ)−A cos(θ − ρ) +A cos(θ − 2ρ),

x3(θ) = A cos(θ),

x4(θ) = A(2 cos(ρ)− 1) cos(θ),

amb

A := A(ρ, ε, β) = 2

4 cos2(ρ)− 4 cos(ρ) + ε+ 1

(

1− 4 cos2(ρ)− 4 cos(ρ) + ε+ 1

54

)

.

Calculeu les corbes invariants per β = 1.0, ρ = arccos(1/2) + 0.001 i ε = 10−4, 5 · 10−4, 10−3 irepresenteu (per exemple, amb gnuplot) la projeccio de totes tres corbes als plans (x1, x2), (x1, x3)i (x1, x4). Doneu, en cada cas, un punt de la corba invariant corresponent. Observacio: a par-tir d’aquests punts podeu comprovar, per iteracio de (3.12), que efectivament heu trobat corbesinvariants.

Exercici 3.4.3. Amb el metode de continuacio del pseudo-arc (Keller [12]) que ja heu vist a lapractica 4 (veure tambe [7]), cotinueu les corbes obtingudes a l’exercici anterior i representeu elsvalors de x1, x2, x3, x4 per θ = 0 en funcio del nombre de rotacio ρ.

18-Calcul Numeric. Manual de practiques

Page 25: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

Capıtol 4

Zeros de funcions

4.1 Calcul de zeros d’equacions

Aquesta practica esta dedicada a la resolucio numerica de problemes del tipus F (x) = 0 on F :Rn −→ R

n. Comencarem amb un parell d’exemples d’aplicacio dels metodes de Newton i la Secantper a funcions escalars. La tercera seccio estara dedicada al cas vectorial i, com a motivacio, estaraaplicat al Problema Restringit de tres cossos circular pla (RTBP), de Mecanica Celeste.

4.1.1 Un exemple del metode de Newton

Volem aplicar el metode de Newton per calcular els zeros del polinomi x3−4x2+5x−2. Observemque amb la regla de Ruffini veurıem facilment que les arrels son 1 (amb multiplicitat 2) i 2. Anemara a calcular-les numericament per tal de veure la convergencia del metode aixı com la constantasimptotica.

Per tal d’obtenir l’arrel s = 1, prenem xn+1 = xn − f(xn)f ′(xn)

amb x0 = 0.8 i esperem tenirconvergencia lineal cap a l’arrel multiple. De fet, obtindrıem

i, x,|x_n-x_n-1|, |x_n-x_n-1|/|x_n-1-x_n-2|

1 .892307692 .0923076923 --

2 .943657667 .0513499745 .556291391

3 .971097063 .0274393964 .534360468

4 .985348365 .0142513016 .519373726

5 .992621669 .00727330411 .510360691

6 .996297373 .00367570458 .505369297

7 .998145278 .00184790482 .502734859

8 .999071782 .00092650323 .501380384

9 .999535676 .000463894129 .500693483

10 .999767784 .000232108301 .500347571

11 .999883879 .000116094536 .500173997

12 .999941936 5.80573757E-05 .500087063

13 .999970967 2.90312159E-05 .500043544

14 .999985483 1.45162405E-05 .50002179

15 .999992742 7.2582739E-06 .500010583

16 .999996371 3.62918004E-06 .500005937

17 .999998185 1.81454854E-06 .499988571

Calcul Numeric. Manual de practiques-19

Page 26: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

4. Zeros de funcions

18 .999999093 9.07434077E-07 .500088069

19 .999999546 4.53281859E-07 .499520428

20 .999999773 2.26477425E-07 .499639288

21 .999999887 1.14214405E-07 .504308121

22 .999999944 5.68612997E-08 .497847009

23 .999999971 2.75663947E-08 .484800644

de manera que amb 23 iterats ja tindrıem un error en l’arrel |x23−s| = 5.6∗10−8. Observem tambeque els quocients |xn−xn−1|/|xn−1−xn−2| de la darrera columna tendeixen a 1/2, que es el que calesperar ja que la constant asimptotica de l’error en el metode de Newton es (q − 1)/q si l’arrel te

multiplicitat q. Si en canvi prenem, suposant coneguda la multiplicitat q = 2, xn+1 = xn − 2 f(xn)f ′(xn)

i x0 = 0.8, llavors obtenim

i, x,|x_n-x_n-1|, |x_n-x_n-1|/(x_n-1-x_n-2)**2

1, .9846153846153867, .1846,

2, .9998843262001353, .0153, .4480

3, .9999999933129491, .0001, .4961

i. e. amb 3 iterats obtenim un error a l’arrel de 0.7 ∗ 10−8. Observem que en aquest cas, tenimconvergencia quadratica i els quocients de la darrera columna tendeixen a la constant asimptotica|h′(s)|/|q ∗h(s)| = 1/2 on h(s) ve definida per f(x) = (x− s)q ∗h(s), on al nostre cas, s = 1. q = 2,h(s) = s− 2.

Finalment, si considerem la funcio u(x) = f(x)/f ′(x) que tindra l’arrel s = 1 simple, llavors

prenent xn+1 = xn − u(xn)u′(xn)

, i amb x0 = 0.8, obtenim

i, x,|x_n-x_n-1|, |x_n-x_n-1|/(x_n-1-x_n-2)**2

1, 1.0000964413155258, .0136, .2979

2, 1.0000000046476936, .0001, .5212

En aquest cas, la constant asimptotica sera |u′′(s)|/|2u′(s)| que val 1/2, com observem a ladarrera columna.

Pel que fa a l’arrel simple s = 2, prenem xn+1 = xn − f(xn)f ′(xn)

, i amb x0 = 2.1, obtenim

i, x,|x_n-x_n-1|, |x_n-x_n-1|/(x_n-1-x_n-2)**2

1, 2.0153846153846153, .0846,

2, 2.0004524886877832, .0149, 2.0856

3, 2.0000004089369061, .0005, 2.0276

4, 2.0000000000003335, .0000, 2.0009

Observem tambe la convergencia quadratica i els quocients de la darrera columna ”tendint”a laconstant asimptotica |f ′′(s)/(2f ′(s))|, al nostre cas el valor 2.

4.1.2 Un exemple del metode de la Secant

Volem il.lustrar que el metode de la secant te ordre de convergencia (1 −√5)/2 = 1.618.... Per

aixo considerem la funcio f(x) = x3 − 3x+ 2 i anem a calcular l’arrel s = 2 numericament amb elmetode de la secant. Prenem x0 = −2.6 i x1 = −2.4 i obtenint la seguent taula

20-Calcul Numeric. Manual de practiques

Page 27: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

4.1 Calcul de zeros d’equacions

i, x_n,|x_n-x_n-1|, |x_n-x_n-1|/|x_n-1-x_n-2|,

|x_n-x_n-1|/(x_n-1-x_n-2)**2, |x_n-x_n-1|/(x_n-1-x_n-2)**1.618

0 -2.6

1 -2.4

2 -2.0226414123070677 .0840 .2862 .9753 .6105

3 -2.0015110973304848 .0211 .2517 2.9977 1.1635

4 -2.0000225364837552 .0015 .0704 3.3339 .7640

5 -2.0000000226858163 .2*10^-4 .0151 10.1605 .8451

6 -2.0000000000003406 .2*10^-7 .0010 44.7559 .7507

7 -2.0000000000000000 .3*10^-11 .00015 661.8656 .7955

de manera que observem a la quarta columna que la convergencia es mes rapida que lineal, ala cinquena, veiem que es menys que quadratica i a la darrera veiem que l’ordre es efectivament(1 +

√5)/2.

4.1.3 Un problema de Mecanica Celeste

Anem a considerar un problema en el mon de la mecanica celeste i astrodinamica. Suposem quevolem enviar una nau espacial de la Terra a la Lluna, o be volem considerar una missio espaciald’enviar una nau a prendre mostres del vent solar. Un primer model aproximat de la realitat esl’anomenat Problema Restringit de tres cossos circular pla (RTBP). Aquest consisteix en suposarque es tenen dos cossos massius -anomenats primaris- (per exemple la Terra i la LLuna), quedescriuen orbites circulars en un mateix pla al voltant del seu centre de masses. Tambe es te untercer cos (nau espacial) de massa infinitessimal (comparada amb la massa dels primaris), que esmou en el mateix pla que els primaris i que esta sotmes a l’atraccio gravitatoria dels primaris perola nau no influencia el moviment dels dos cossos massius. Es pot veure a [18] que si es pren unsistema de referencia que giri amb els primaris (de manera que aquests romanen fixos en el noueix x de referencia), i prenent unitats adequades de longitud, massa i temps, llavors les equacionsdiferencials que descriuen la trajectoria (x(t), y(t)) i velocitat (x′(t), y′(t)) del cos infinitessimal son,anomenant X = (x1, x2, x3, x4) = (x, y, x′, y′),

x′1 = x3

x′2 = x4

x′3 = 2x4 +∂Ω∂x1

x′4 = −2x3 +∂Ω∂x2

(4.1)

o mes breument X ′ = F (X), on X pertany a un obert d’R4, on

Ω(x1, x2) = Ω(x, y) =1

2(x2 + y2) +

1− µ

r1+µ

r2+

1

2µ(1− µ),

r1 =√

(x− µ)2 + y2 i r2 =√

(x− µ+ 1)2 + y2 son les distancies del tercer cos al primari gran(Terra) i del petit (Lluna) respectivament, i µ ∈ (0, 0.5] es l’anomenat parametre de masses (quo-cient entre la massa del primari petit i de la suma de les masses dels dos primaris). En particular,el primari gran de massa 1−µ esta localitzat al punt (µ, 0) i el petit de massa µ al punt (µ− 1, 0).Per exemple, prenent com primaris la Terra i la Lluna, s’obte µ = 0.01229 (vegeu Figura 4.1).

Es pot comprovar molt facilment que el sistema diferencial (4.1) te una integral primera ano-menada integral de Jacobi i que s’expressa per

Calcul Numeric. Manual de practiques-21

Page 28: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

4. Zeros de funcions

-1

-0.5

0

0.5

1

-1 -0.5 0 0.5 1

EM

L1L2 L3

L4

L5

Figura 4.1: Punts d’equilibri del RTBP per al problema Terra-Lluna

C(x, y, x′, y′) = 2Ω(x, y)− (x′2 + y′2) (4.2)

de manera que F roman constant per a cada solucio, i ho expressarem per

2Ω(x, y)− (x′2 + y′2) = C (4.3)

Quan hom disposa d’un sistema diferencial X ′ = F (X), X ∈ Rn, l’objectiu mes ambicios es

coneixer totes les solucions del sistema. Aixo no es possible en general, i el que s’acostuma a fer escomencar per les solucions mes senzilles, es a dir, les anomenades solucions o punts d’equilibri queson constants al llarg del temps, X(t) = p, on p es tal que F (p) = 0.

L’objectiu d’aquesta practica es calcular els punts d’equilibri del RTBP en variar el parametrede masses a l’interval (0, 0.5]. Es pot veure que el RTBP te 5 punts d’equilibri anomenats L1, ..., L5,on L1, L2 i L3 (o punts colineals) estan localitzats sobre l’eix x, mentre que els punts L4 i L5 (opunts triangulars) estan localitzats formant un triangle equilater amb els primaris, es a dir, amb

posicions L4,5 = (µ− 12 ,±

√32 ) (vegeu Figura 4.1).

Per tal de coneixer la posicio dels punts colineals, cal resoldre una equacio polinomica de cinquegrau, l’anomenada quıntica d’Euler. El que farem sera resoldre aquesta equacio polinomica, re-escrivint-la de manera adequada per tal d’aplicanr el Teorema del punt fix. Mes concretament,

(i) Per calcular L1 amb posicio (xL1, 0), i.e. el punt colineal sobre l’eix x localitzat entre els dos

primaris, sigui xL1= µ− 1 + s, amb s > 0. Llavors s ha de ser solucio de

s5 − (3− µ)s4 + (3− 2µ)s3 − µs2 + 2µs− µ = 0

que tambe es pot escriure com

s = G1(s) =

[

µ(1− s)2

3− 2µ− s(3− µ− s)

]1/3

.

22-Calcul Numeric. Manual de practiques

Page 29: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

4.2 Calcul de zeros de sistemes d’equacions no lineals

-1.5

-1

-0.5

0

0.5

1

1.5

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

’fort.11’ u 1:2’’ u 1:3’’ u 1:4

3

3.2

3.4

3.6

3.8

4

4.2

4.4

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

’fort.11’ u 1:5’’ u 1:6’’ u 1:7

Figura 4.2: (µ, xLi), (µ,Ci).

Aixı el que farem es aplicar el metode d’iteracio del punt fix a G1(s) prenent com a s inicial[

µ3(1−µ)

]1/3.

(ii) Per calcular L2 amb posicio (xL2, 0), i.e. el punt colineal sobre l’eix x localitzat a l’esquerra

del primari petit, sigui xL2= µ− 1− s, amb s > 0. Llavors s ha de ser solucio de

s5 + (3− µ)s4 + (3− 2µ)s3 − µs2 − 2µs− µ = 0

o be de

s = G2(s) =

[

µ(1 + s)2

3− 2µ+ s(3− µ+ s)

]1/3

.

i aplicarem el metode d’iteracio del punt fix a G2(s) prenent el mateix s inicial que per a L1.

(iii) Per calcular L3 amb posicio (xL3, 0), i.e. el punt colineal sobre l’eix x localitzat a la dreta del

primari gran, sigui xL3= µ+ s, amb s > 0. Llavors s ha de ser solucio de

s5 + (2 + µ)s4 + (1 + 2µ)s3 − (1− µ)s2 − 2(1− µ)s− (1− µ) = 0

o be de

s = G3(s) =

[

(1− µ)(1 + s)2

1 + 2µ+ s(2 + µ+ s)

]1/3

.

i aplicarem el metode d’iteracio del punt fix a G3(s) prenent com s inicial 1− 7µ12 .

Exercici 4.1.1. Obtingueu la posicio de Li, i = 1, 2, 3 al variar µ ∈ (0, 0.5]. Per a cada Li,obtingueu el valor de la constant de Jacobi, Ci. Feu dues grafiques, una amb eixos (µ, xLi

) onapareguin 3 corbes, i una altra amb eixos (µ,Ci). Comproveu analıticament que C4 = C5 = 3.

Solucio: Vegeu Figura 4.2.

4.2 Calcul de zeros de sistemes d’equacions no lineals

Es tremendament util disposar d’un programa tal que donat un sistema no lineal F (X) = 0 ambuna aproximacio inicial de la solucio buscada, el metode de Newton convergeixi cap a la soluciobuscada.

Calcul Numeric. Manual de practiques-23

Page 30: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

4. Zeros de funcions

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Figura 4.3: Pla (x, y). Regions de Hill per al cas Terra-Lluna i C = 3.03 (esquerra), C = 3.01(dreta). La part verda es la de possible moviment i la vermella la prohibida.

Exercici 4.2.1. Com a primera part de la practica, implementeu el metode de Newton. Es adir, escriviu un programa de manera que coneguda la funcio vectorial F (en una rutina), la sevajacobiana DF (en una rutina), i una aproximacio inicial X0 de la solucio s tal que F (s) = 0, elmetode de Newton dongui la solucio buscada Xm (i.e ‖F (Xm)‖ ≤ TOL, amb TOL una toleranciadonada. Per tal de testejar-lo considereu el sistema donat per dues equacions x2 + y2 = 1, y = x.

x2 + y2 = 0y − x = 0

(4.4)

Com a segona part, considerem una aplicacio. Seguint en el contexte del RTBP, endegat a lapractica anterior, es important coneixer, fixat un valor del parametre de masses µ, les possiblesregions de moviment, es a dir, pensant per exemple en enviar una nau de la Terra a la Lluna, notot punt del pla (x, y) es accessible. L’objectiu d’aquesta practica es determinar aquestes regions.

Observeu que de l’expressio de la integral primera, es te

2Ω(x, y)− C = x′2 + y′2

per tant es clar que nomes aquells punts (x, y) tals que

2Ω(x, y)− C ≥ 0

seran els possibles. Es coneix com a regions de Hill les regions accessibles del pla (x, y). De fetveurem quina forma tenen aquestes regions per a cada valor de C fixat i com canvien al variar C.Per fer-ho seguirem els passos seguents:

(i) Fixem µ = 0.0121529 corresponent al parametre de mases Terra-Lluna. De la practica dezeros d’equacions, calculeu el valor de Li i Ci, per a i = 1, ..., 5.

(ii) Considerem els cassos seguents: a) C > C1, b) C = C1, c) C1 > C > C2, d) C = C2, e)C2 > C > C3, f) C = C3, g) C3 > C > C4,5, h) C = C4,5, i) C4,5 > C. A cada cas, iper tal de tenir una primera intuicio de com seran les regions de Hill (i quantes componentsconnexes tenen), prenem una xarxa de punts en la finestra [−2, 2] × [−2, 2] i a cada puntavaluem el signe de la funcio 2Ω(x, y)−C. Representeu en dos colors diferents els punts ambsigne positiu i negatiu. Per exemple, vegeu Figura 4.3 per a C = 3.3 i C = 3.01.

(iii) Per a cada cas concret, volem determinar ara les corbes que delimiten la frontera de les regionsde Hill, les anomenades corbes de velocitat zero. Per aixo hem de representar, fixada C les

24-Calcul Numeric. Manual de practiques

Page 31: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

4.2 Calcul de zeros de sistemes d’equacions no lineals

u0

λ′

0

λ

′′u′′

u′

0

u1

λ0 λ1

(λ′

0, u′

0)

∆s

Figura 4.4: Interpretacio grafica del metode de continuacio del pseudo-arc.

corbes tals queG(x, y) = 2Ω(x, y)− C = 0.

Ho farem implementant l’anomenat metode del pseudo-arc.

4.2.1 El metode de continuacio del pseudo-arc

L’objectiu es calcular numericament una famılia de solucions, X(s), que anomenarem branca, d’unsistema. Suposem que disposem d’una solucio X(s0) = (λ0, u0), λ ∈ R i u0 ∈ R

n del sistema de nequacions

G(λ, u) = 0,

aixı com el vector (unitari) (λ′0, u′0) tangent a la famılia. Suposarem tambe que la matriu jacobiana

de G en el punt (λ0, u0) te rang n (maximal). El metode consisteix en resoldre el sistema seguent:

G(λ1, u1) = 0(λ1 − λ0)λ

′0 + (u1 − u0)

∗u′0 −∆s = 0(4.5)

per tal de determinar (λ1, u1), i on ∆s esta donat. Aquest sistema de n+ 1 equacions l’escriurembreument com

F (X) = 0

amb X = (λ, u) ∈ Rn+1 (vegeu Figura 4.4).

Fem ara alguns comentaris:

• Observem que la segona equacio ens diu que la projeccio del vector (λ1 − λ0, u1 − u0) sobre(λ′0, u

′0) val ∆s.

• El sistema F (X) = 0 el resoldrem amb el metode de Newton de la primera part de la practica.Com aproximacio inicial podem prendre un punt en la direccio de la tangent a la branca, i.e.

(λ(0)1 , u

(0)1 ) = (λ0, u0) + ∆s(λ′0, u

′0).

• Un cop calculat (λ1, u1), necessitem, per tal de fer la prediccio del punt seguent, (λ′1, u′1).

Aquest vector el podem obtenir de

(

G1λ G1

u

λ′0 u′∗0

)(

λ′1u′1

)

=

(

01

)

(4.6)

Calcul Numeric. Manual de practiques-25

Page 32: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

4. Zeros de funcions

on G1λ := Gλ(λ1, u1) i G

1u := Gu(λ1, u1). La primera equacio s’obte de derivar

G(X(s)) = G(λ(s), u(s)) = 0

respecte s. La segona de preservar l’orientacio de la branca. Un cop calculat el vector (λ′1, u′1),

cal re-escalar-lo perque sigui unitari.

• La gracia d’aquest metode es que permet calcular els punts de la branca tot i que hi hagi puntsde retorn al representar-la a l’espai (λ, u). De fet, es pot demostrar (feu-ho com exercici) quela matriu jacobiana del sistema del pseudo-arc (4.5), en el punt (λ0, u0), es no singular.

Aixı doncs, fixat C, per tal de trobar les corbes de velocitat zero nomes cal aplicar al metodedel pseudo-arc a l’equacio G(x, y) = 2Ω(x, y)− C = 0. Per tant el nou sistema F (X) = 0 tindra 2equacions, i prendrem X = (x, y) en lloc de X = (λ, u).Solucio:

C1 = 3.2003676658559650, xL1= −0.83690373836529774, yL4

= −yL5=

√3/2

C2 = 3.1841839338257647, xL2= −1.1556910661242634,

C3 = 3.0241546707147737, xL3= 1.0050636100833468,

C4 = C5 = 3, xL4= xL5

= µ− 1/2.

Vegeu Figures 4.5 i 4.6.

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Figura 4.5: (x, y), regions de Hill (la part verda es la de possible moviment i la vermella la prohi-bida). C = 3.3 > C1, C2 < C = 3.19 < C1, C3 < C = 3.08 < C2, C4 = C5 < C = 3.01 < C3.

26-Calcul Numeric. Manual de practiques

Page 33: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

4.2 Calcul de zeros de sistemes d’equacions no lineals

-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5

-1

-0.5

0

0.5

1

1.5

-1.5 -1 -0.5 0 0.5 1 1.5

Figura 4.6: (x, y), corbes de velocitat zero per a C = 3.3 > C1, C2 < C = 3.19 < C1, C3 < C =3.08 < C2, C4 = C5 < C = 3.01 < C3. per a C ≤ C4 = C5, tot el pla es possible.

Calcul Numeric. Manual de practiques-27

Page 34: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

4. Zeros de funcions

28-Calcul Numeric. Manual de practiques

Page 35: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

Capıtol 5

Integracio Numerica d’equacionsdiferencials ordinaries

5.1 El metode de Taylor

El proposit d’aquestes notes es introduir l’alumne en alguns del problemes basics que hom es trobaquan vol simular numericament molts sistemes dinamics.

Els darrers anys hi ha hagut un desenvolupament de programes que generen de manera au-tomatica rutines d’integracio numerica d’edos fent servir el metode de Taylor, posant de manifest laseva potencia computacional en comparacio amb altres metodes (Runge-Kutta, Adams-Bashforth,...). Un d’aquests programes es l’anomenat Taylor, creat pels professors A. Jorba (Universitat deBarcelona) i M. Zou (University of Texas). Aquest software, de lliure acces, amb codi obert i pensatper a nivell de recerca mes que no pas de docencia, ha demostrat els darrers anys un nivell moltalt de competitivitat (tenint en compte que no deixa de ser general i que hom pot crear sempreintegradors mes eficients ad-hoc per a un sistema concret) en quant a velocitat i precisio. El podeudescarregar des de l’adreca (Taylor-home). En el cas que no estigues instal.lat al pc de l’aula ovolguessim instal.lar-lo a qualsevol altre ordinador seguirıem les instrucciones indicades alla.

Els algorismes que presentem en aquestes pagines han estat directament extrets d’un article (unclassic) d’en C. Simo [17] on es mostra un ventall d’eines numeriques i analıtiques essencials pera afrontar molts problemes en sistemes dinamics. Pel que fa a la integracio amb Taylor seguiremla documentacio de Taylor [10, 11], centrant-nos en un primer contacte amb ell i deixant per al’estudiant interessat una lectura mes profunda. Per facilitar-ne la comprensio ho aplicarem alcalcul (i dibuix) d’una orbita d’un sistema concret. En els nostre cas, hem escollit l’equacio de

Lorenz.

El sistema de Lorenz es un exemple de sistema 3D amb comportament caotic:

x = σ(y − x)y = ρx− y − xzz = xy − βz.

(5.1)

Es ben coneguda l’existencia d’una atractor per a determinats valors dels seus parametres: σ = 10,ρ = 28, β = 8/3. Aquest atractor va ser una de les primeres mostres de l’anomenat butterfly effect(efecte papallona). Podeu trobar facilment a internet vıdeos que el mostrin. Una rapida tria podriaser, per exemple, aquesta: video-1, video-2, video-3.

Usarem Taylor per integrar-ho numericament. El primer que hem de fer es definir un programaamb el cap de vectors. L’anomenarem lorenz.eq1 i constara de les seguents lınies:

Calcul Numeric. Manual de practiques-29

Page 36: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5. Integracio Numerica d’EDOs

RR=28.0;

diff(x,t)=10.0*(y-x);

diff(y,t)=RR * x - y - x*z;

diff(z,t)=x*y -(8.0/3.0)*z;

Graveu-lo a la vostra carpeta de treball. Ara hem de cridar a Taylor per a que creı el programa queefectuara un pas simple d’integracio numerica del nostre sistema. Per fer-ho, escrivim:

perico@delospalotes: taylor -name lrnz -o lorenz.c -jet -step lorenz.eq1

perico@delospalotes: taylor -name lrnz -o taylor.h -header

La primera lınia crea el fitxer lorenz.c, que conte el codi que calcula les derivades necessariesfins a l’ordre convenient del nostre camp (l’anomenat jet of derivatives, amb l’opcio -jet) i elcontrol de pas (-step). L’opcio -name indica a Taylor que afegeixi el suffix lrnz al nom delfitxer resultant, taylor step lrnz. La segona lınia produeix el header file taylor.h, necessari percompilar lorenz.c. Un cop executades aquestes comandes tindreu a la vostra carpeta els seguentsfitxers:

perico@delospalotes: ls

lorenz.c lorenz.eq1 taylor.h

Tot i que Taylor tambe treballa amb precisio estesa nosaltres farem servir l’opcio per defecte, laprecisio doble del nostre ordinador. Podem cridar Taylor de diverses maneres:

5.1.1 Execucio directa de Taylor

Taylor permet crear un programa simple per tal de calcular els punts d’una orbita concreta dema-nada per lınia de comandes. Per fer-ho, escrivim

perico@delospalotes: taylor -name lrnz -o main_lrnz.c -main_only lorenz.eq1

el compilem

perico@delospalotes: gcc -O3 main_lrnz.c lorenz.c -lm -s

generant-se l’executable a.out. Si l’executem veurem que ens demana les condicions inicials de lanostra orbita i les tolerancies desitjades:

perico@delospalotes: ./a.out

Enter Initial xx[0]: 0.1

Enter Initial xx[1]: 0.2

Enter Initial xx[2]: 0.3

Enter start time: 0.0

Enter stop time: 0.5

Enter absolute error tolerance: 0.1e-16

Enter relative error tolerance: 0.1e-16

La sortida per pantalla sera una taula amb els valors obtinguts x(t), y(t), z(t), t:

0.1 0.2 0.3 0

0.169464 0.36274 0.265313 0.0484829

0.309703 0.671984 0.236866 0.100502

0.539572 1.17353 0.225961 0.147831

30-Calcul Numeric. Manual de practiques

Page 37: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5.1 El metode de Taylor

0.88444 1.92431 0.245377 0.189871

1.38449 3.01108 0.322239 0.227996

2.0651 4.48536 0.503345 0.262065

2.96612 6.42411 0.86911 0.29303

4.11167 8.85801 1.53644 0.321165

5.50045 11.743 2.64885 0.346567

7.12416 14.9901 4.37751 0.369644

8.95632 18.4314 6.90055 0.39078

10.9434 21.7988 10.363 0.410287

13.0013 24.7287 14.8242 0.428432

15.005 26.7883 20.1692 0.445362

16.8064 27.5863 26.0763 0.46119

18.2881 26.8643 32.1801 0.476329

19.3086 24.5336 37.9112 0.490913

Observeu que la darrera dada que treu per pantalla correspon a temps 0.490913 i no pas 0.5, comhavıem seleccionat. Aixo es degut a que el calcul del nou punt es fa dins d’un bucle do/while ambla condicio de que el temps emprat en aquell moment no passi el valor marcat a stop time. Pera obtenir el valor corresponent a temps stop time (0.5 en el nostre exemple) caldra fer-li escriureun iterat mes de l’integrador.

Si volguessim representar-ho graficament amb l’ajut del gnuplot podrıem demanar que la sor-tida anes a un fitxer de dades:

perico@delospalotes: ./a.out > exemple-orbita-lrnz.dat

A mes, per a que l’orbita a representar sigui mes llarga repetirem l’exemple anterior pero ambstop time igual a 30. Un cop fet aixo cridem a gnuplot:

perico@delospalotes$ gnuplot

G N U P L O T

Version 4.4 patchlevel 2

last modified Wed Sep 22 12:10:34 PDT 2010

System: Linux 2.6.38-9-generic-pae

Copyright (C) 1986-1993, 1998, 2004, 2007-2010

Thomas Williams, Colin Kelley and many others

gnuplot home: http://www.gnuplot.info

faq, bugs, etc: type "help seeking-assistance"

immediate help: type "help"

plot window: hit ’h’

Terminal type set to ’wxt’

gnuplot> set term postscript

Terminal type set to ’postscript’

Options are ’landscape noenhanced defaultplex \

leveldefault monochrome colortext \

dashed dashlength 1.0 linewidth 1.0 butt noclip \

Calcul Numeric. Manual de practiques-31

Page 38: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5. Integracio Numerica d’EDOs

-20 -15 -10 -5 0 5 10 15 20-25-20

-15-10

-5 0

5 10

15 20

25 30

0 5

10 15 20 25 30 35 40 45 50

"exemple-orbita-lrnz.dat" u 1:2:3

Figura 5.1: Una orbita del sistema de Lorenz

palfuncparam 2000,0.003 \

"Helvetica" 14 ’

gnuplot> set output "./exemple-orbita.ps"

gnuplot> splot "exemple-orbita-lrnz.dat" u 1:2:3 with lines

gnuplot> quit

perico@delospalotes:

Si obrim el fitxer exemple-orbita.ps amb l’okular, per exemple o qualsevol visualitzador depostscripts, obtenim la figura 5.1.

Comentari 5.1.1. Un manera alternativa de generar un petit programa principal lorenz.c quecontingui el header, el codi de control de pas i el programa que generi el jet de derivades es fer

perico@delospalotes: taylor -o lorenz.c lorenz.eq1

Compilant-lo ( linkant-hi la llibreria matematica):

perico@delospalotes: gcc -O3 lorenz.c -lm

obtenim un fitxer executable a.out com abans.

5.1.2 Execucio de Taylor dins d’un programa

Per fer-ho, cal inicialment demanar a Taylor que generi l’integrador i el fitxer header taylor.h:

perico@delospalotes: taylor -o lorenz.c -jet -step -name lorenz lorenz.eq1

perico@delospalotes: taylor -o taylor.h -header

Aquesta primera lınia genera un fitxer lorenz.c que haurem de linkar i compilar juntament ambel fitxer que contingui l’algorisme de crida a l’integrador i que anomenarem, per exemple, main1.c:

32-Calcul Numeric. Manual de practiques

Page 39: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5.1 El metode de Taylor

1 #inc lude ”math . h”2 #inc lude ” s t d i o . h”3 #inc lude ” t ay l o r . h”4

5

6 // Taylor c on t r o l parameters7 #de f i n e H INICIAL 0.0018 #de f i n e ABS ERR 1.0 e−169 #de f i n e REL ERR 1.0 e−16

10

11

12 i n t main ( i n t argc , char ∗∗ argv )13 14 // xx [ ] : v a r i a b l e s e s pa i a l s , t : temps15 double xx [ 3 ] , t ;16 // Constants a l Taylor17 double h , abs e r r , r e l e r r , h return , l o g 10ab s e r r ;18 double l o g 1 0 r e l e r r , endtime ;19

20 i n t ns teps = 20 , s t ep c t r l me thod = 2 , d i r e c t i o n = 1 ;21

22 // d i r e c t i o n=1 in t e g r a cap a endavant en e l temps23 // =−1 ho fa cap a endarrera24

25 // s t ep c t r l me thod= 0 ,1 ,2 ,326 // 0 : no h i ha con t r o l de pas ; i n t e g r a c i o amb pas constant27 // 1 : c on t r o l de pas standard28 // 2 : a f e g e i x una cond i c i o ext ra a l cas an t e r i o r29 // 3 : c on t r o l de pas d e f i n i t per l ’ u suar i30

31 i n t order = 10 ; // ordre a l desenvolupament de Taylor32

33 i n t nombre passos ; // nombre de passos d ’ i n t e g r a c i o34

35 // Fixem l e s cond i c i on s i n i c i a l s36 xx [ 0 ] = 0 . 1 ;37 xx [ 1 ] = 0 . 2 ;38 xx [ 2 ] = 0 . 3 ;39 t = 0 . 0 ;40

41 // Assignem parametres de c on t r o l de Taylor42 h= ( double ) H INICIAL ;43 ab s e r r = ( double ) ABS ERR ;44 r e l e r r = ( double ) REL ERR;45 l o g 10ab s e r r = log10 ( ab s e r r ) ;46 l o g 1 0 r e l e r r = log10 ( r e l e r r ) ;47

48 // =========================================================================49 // Exemple 1 : integrem nombre passos passos de l ’ edo f i n s a a r r iba r ,50 // com a maxim , a temps endtime51

52 endtime = 10 0 . ;53

54 nombre passos=20;

Calcul Numeric. Manual de practiques-33

Page 40: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5. Integracio Numerica d’EDOs

55 p r i n t f ( ”\n Exemple 1 : integrem la nost ra edo %d passos \n\n” ,56 nombre passos ) ;57

58 h re turn=h ;59 whi le ( −− nsteps >= 0 && h return != 0) 60 // Per exemple tre iem e l s r e s u l t a t s per pan ta l l a61 p r i n t f ( ”x:% f \ ty :% f \ tz :% f \ t t :% f \ th :%e \ tpas :%d\n” ,62 xx [ 0 ] , xx [ 1 ] , xx [ 2 ] , t , h return , ( nombre passos−nsteps ) ) ;63

64 t a y l o r s t e p l o r e n z (&t , &xx [ 0 ] , d i r e c t i on ,65 s t ep c t r l method , l og10abs e r r , l o g 1 0 r e l e r r ,66 &endtime , &h return , &order ) ;67 68

69 // =========================================================================70 // Exemple 2 : integrem f i n s a a r r i b a r a endtime71

72 endtime = 2 . 0 ;73 p r i n t f ( ”\n\n\n\n Exemple 2 : integrem la nost ra edo f i n s a temps %g \n\n” ,74 endtime ) ;75 // Tornem a l e s cond i c i on s i n i c i a l s76 xx [ 0 ] = 0 . 1 ;77 xx [ 1 ] = 0 . 2 ;78 xx [ 2 ] = 0 . 3 ;79 t = 0 . 0 ;80 h= ( double ) H INICIAL ;81

82 h re turn=h ;83 whi le ( ( t<endtime ) && h return != 0) 84 // Per exemple tre iem e l s r e s u l t a t s per pan ta l l a85 p r i n t f ( ”x:% f \ ty :% f \ tz :% f \ t t :% f \ th :%e\n” , xx [ 0 ] , xx [ 1 ] , xx [ 2 ] , t ,86 h re turn ) ;87

88 t a y l o r s t e p l o r e n z (&t , &xx [ 0 ] , d i r e c t i on ,89 s t ep c t r l method , l og10abs e r r , l o g 1 0 r e l e r r ,90 &endtime , &h return , &order ) ;91 92 p r i n t f ( ”x:% f \ ty :% f \ tz :% f \ t t :% f \ th :%e\n” , xx [ 0 ] , xx [ 1 ] , xx [ 2 ] , t , h r e turn ) ;93

94 r e turn ( 0 ) ;95

Llistat 5.1: main1.c

Un cop gravat aquest fitxer main1.c, els linkem i compilem, generant el nostre executableIntLorenz:

perico@delospalotes: gcc -o IntLorenz lorenz.c main1.c -lm

Recordeu que si no especifiquem l’executable de sortida, per defecte el nom que dona gcc es a.out.Per executar el programa nomes cal fer

perico@delospalotes: ./IntLorenz

i sortira per pantalla una taula similar a l’obtinguda a la seccio anterior.

34-Calcul Numeric. Manual de practiques

Page 41: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5.2 Calcul de l’aplicacio de Poincare

Taylor tambe permet modificar des del fitxer principal els parametres que puguin apareixer enel nostre camp vectorial. Fem-ho amb l’exemple lorenz.eq1 que abans tenıem escrit aixı

RR=28.0;

diff(x,t)=10.0*(y-x);

diff(y,t)=RR * x - y - x*z;

diff(z,t)=x*y -(8.0/3.0)*z;

Caldra ara definir les variables RR i coef[i], i = 0, 1, 2 com a externes:

extern MY_FLOAT RR, coef[3];

diff(x,t)=coef[0]*(y-x);

diff(y,t)=RR * x - y - x*z;

diff(z,t)=x*y -(coef[1]/coef[2])*z;

I al nostre programa principal main1.c haurem d’escriure

1 #inc lude ”math . h”2 #inc lude ” s t d i o . h”3 #inc lude ” t ay l o r . h”4

5 #de f i n e max(a , b ) ( ( a)<(b) ? (b) : ( a ) )6 #de f i n e sgn ( a ) ( ( a)<0 ? −1 : 1 )7 #de f i n e abs ( a ) ( ( a)<0 ? −(a ) : ( a ) )8

9 // Taylor c on t r o l parameters10 #de f i n e H INICIAL 0.00111 #de f i n e ABS ERR 1.0 e−1612 #de f i n e REL ERR 1.0 e−1613

14 // Var iab l e s ex t e rne s . Parametres de l camp v e c t o r i a l .15 MYFLOAT RR, co e f [ 3 ] ;16

17 i n t main ( i n t argc , char ∗∗ argv )18 19 // xx [ ] : v a r i a b l e s e s pa i a l s , t : temps20 double xx [ 3 ] , t ;21 // Constants a l Taylor22 double h , abs e r r , r e l e r r , h return , l o g 10ab s e r r ;23 double l o g 1 0 r e l e r r , endtime ;24 i n t ns teps = 20 , s t ep c t r l me thod = 2 , d i r e c t i o n = 1 ;25 i n t order = 10 ;26 . . . . .27 RR=28.0;28 co e f [ 0 ]=10 . 0 ; c o e f [ 1 ]=8 . 0 ; c o e f [ 2 ]=3 . 0 ;29 . . . . .

Trobareu mes informacio sobre les diverses opcions possibles al manual de Taylor [10].

5.2 Calcul de l’aplicacio de Poincare

Aquesta subseccio i les posteriors van dirigides principalment al calcul d’orbites periodiques, ele-ments importants dins l’esquelet del retrat de fases d’un sistema d’equacions diferencials. Seguirem

Calcul Numeric. Manual de practiques-35

Page 42: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5. Integracio Numerica d’EDOs

Figura 5.2: a) Interseccio del flux amb Σ amb orientacio invertida; b) Idem pero amb la mateixaorientacio.

essencialment el capıtol 5 de [17], tot i que simplificat i adaptat al nostre cas. Comencarem intro-duınt l’anomenada aplicacio de Poincare que esdevindra una eina basica d’aquest estudi.

Considereu l’equacio diferencial x = f(x) amb x ∈ U ⊂ Rn, essent U un obert. Sigui φ(t, x) el

seu flux associat, es a dir, verificant que

d

dtφ(t, x) = f (φ(t, x)) , φ(0, x) = x.

Sabem que si f ∈ Cr llavors φ ∈ Cr. Sigui Σ una hipersuperfıcie (seccio) transversal al flux definidacom Σ = g(x) = 0, amb g prou regular. El fet que sigui transversal a un punt x implica queel producte escalar 〈∇g(x), f(x)〉 6= 0 a tot punt de Σ. Definim aleshores la seguent aplicacio dePoincare1: P : Σ → Σ a on x = P (x) = φ(t(x), x) ∈ Σ i ho fa amb la mateixa orientacio respectede Σ de com ha sortit d’x (vegeu Fig 5.2). Recordeu que una manera de comprovar que l’orientaciod’arribada es la mateixa que la de sortida es que

〈∇g(x), f(x)〉 · 〈∇g(x), f(x)〉 > 0.

La hipersuperfıcie Σ s’anomena seccio de Poincare. Obviament, el temps t(x) necessari fins arribara Σ (amb la mateixa orientacio) depen del valor inicial x i cal calcular-lo cada vegada. Noteu quet(x) es solucio de ψ(t) = g(φ(t, x)) = 0. Per tant, per trobar-lo podem procedir de la seguentmanera:

(i) Fent servir Taylor , calculem iterats del flux x(1), x(2), . . . on x(j) = φ(t(j), x(0)) fins a arribaral primer iterat k que satisfa les seguents dues condicions:

g(x(k)) · g(x(k−1)) < 0, 〈∇g(x(k)), f(x(k))〉 · 〈∇g(x(k−1)), f(x(k−1))〉 > 0.

La primera equival a dir que acabem de travessar Σ. La segona que ho hem fet amb la mateixaorientacio que de sortida. Per tant, sabem que l’arrel t(x) de ψ(t) = g(φ(t, x)) que estembuscant es troba dins l’interval

[

t(k−1), t(k)]

.

(ii) Apliquem algun esquema iteratiu que ens permeti refinar aquesta arrel de ψ. Tenim diferentsopcions: biseccio, secant, regula-falsi, Newton, ... Ho farem usant Newton doncs si l’intervalinicial es prou petit la convergencia sera quadratica. Prenem com a punt de partida el valor

1N’hi ha de diferents tipus, segons si ens interessa considerar el primer, segon, tercer, ... tall amb Σ o be si el quevolem es deixar actuar el flux φ(t, x) durant un cert temps fixat, etc

36-Calcul Numeric. Manual de practiques

Page 43: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5.2 Calcul de l’aplicacio de Poincare

Σ

x(k−1) = φ(t(k−1), x)

φ(s(1), x(k−1))

x(k) = φ(t(k), x)

Figura 5.3: Refinant el punt de tall amb Σ

x(k−1) = φ(t(k−1), x) i tenint en compte que el flux compleix que φ(t + s, x) = φ(s, φ(t, x)),l’esquema iteratiu corresponent es

s(m+1) = s(m) − ψ(s(m))

ψ′(s(m))= s(m) − g(φ(s(m), x(k−1)))

〈∇g(φ(s(m), x(k−1)), f(φ(s(m), x(k−1))〉

amb condicio inicial s(0) = t(k−1) (vegeu Fig. 5.3). Un cop obtingut s∗ = limm s(m) tindrem

que el temps buscat es t(x) = t(k−1) + s∗. Finalment,

P (x) = φ(t(x), x) = φ(s∗, φ(t(k−1), x)) = φ(s∗, x(k−1)). (5.2)

Exercici 5.2.1. Considereu la seguent famılia de sistemes d’equacions diferencials

x = −f(

x2 + y2)

y

y = f(

x2 + y2)

x(5.3)

on f es una funcio C∞(R) tal que f(0) = 0.

1. Demostreu que en coordenades polars l’equacio (5.3) s’escriu

r = 0

θ = f(r)

L’origen es un punt d’equilibri (tipus centre) i totes les circumferencies amb centre a l’origenson corbes invariants pel flux.

2. (i) Considereu f(u) = 1, f(u) = u i f(u) = u2. Useu Taylor i gnuplot per a dibuixaraproximadament el seu retrat de fases entorn a l’origen: preneu condicions inicials sobrel’eix x = 0 i integreu l’edo per a temps positiu τ i per a temps negatiu −τ (τ = 10, perexemple). Comproveu que surten circumferencies concentriques de centre (0, 0).

(ii) Considereu la seccio de Poincare Σ = y = 0, x > 0. Demostreu que el flux es sempretransversal a tot punt de Σ. Definiu xk = 0.1(1+k), k = 0, 1, . . . , 99 punts equiespaiats al’interval [0, 10]. Per a cada xk calculeu la seva imatge P (xk) per l’aplicacio de Poincare.Comproveu que P (xk) = xk (aixo implica, en particular, que totes elles son orbitesperiodiques). Dibuixeu la funcio t(xk), on t(xk) es tal que P (xk) = φ(t(xk), xk). Quepodeu deduir-ne?

Calcul Numeric. Manual de practiques-37

Page 44: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5. Integracio Numerica d’EDOs

-4

-3

-2

-1

0

1

2

3

-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5

y

x

-3

-2

-1

0

1

2

3

-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5

y

x

Figura 5.4: Algunes trajectories de l’oscil.lador de Van der Pol x+ ε(x2− 1)x+x = 0 amb ε = 1.2.

(iii) Feu el mateix prenent f(u) = u i f(u) = u2. Com son ara les grafiques de t(xk)?Compareu-les amb les de les funcions 2π/u i 2π/u2, respectivament.

En aquest exemple, totes les orbites son periodiques (o.p.) i, concretament, el valor t(xk)coincideix amb el perıode de l’o.p. que passa per (xk, 0). La funcio T (x) = t(x) s’anomena funciode perıode. Es facil demostrar que T (x) = 2π/f(x) (penseu-ho en polars). Al cas f(u) = 1 totes leso.p. tenen el mateix perıode, mentre que a la resta depen de la distancia a l’origen. Al primer cases diu que l’origen es un centre isocron (del grec, iso=igual, kronos=temps). A la resta de casoses diu que tenim a l’origen un centre anisocron.

5.3 Calcul d’orbites periodiques. Zeros de l’aplicacio de Poincare

Considereu l’anomenat oscil.lador de Van der Pol,

x+ ε(x2 − 1)x+ x = 0 (5.4)

amb ε > 0. Aquesta equacio va ser introduıda per Van der Pol l’any 1927 per modelitzar elcomportament de determinats circuits electrics i constitueix un exemple classic dins la Teoria desistemes dinamics al pla. Per estudiar-ho i com es habitual, considerem el sistema d’ordre 1 associat,

x = y,y = −x+ ε(1− x2)y,

(5.5)

que te l’origen com a punt d’equilibri. L’anomenat sistema no pertorbat, ε = 0 correspon a unoscil.lador harmonic x+x = 0, les orbites del qual son circumferencies de centre (0, 0) recorregudesamb frequencia angular 1. Es tracta doncs (vegeu Problema 5.2.1) d’un centre isocron.

Per ε 6= 0 l’origen es tambe un punt d’equilibri, tot i que aquesta vegada inestable. Es benconeguda l’existencia d’una unica orbita periodica aıllada a l’entorn del (0, 0). Aquest tipus d’o.p.s’anomenen cicles-lımit. En el nostre cas, aquest cicle-lımit es atractor, es a dir, totes les trajectoriesamb valors inicials a prop d’ell tendeixen a ell quan t → +∞. A la Figura 5.4 es mostren algunestrajectories (parcials, amb c.i. a sobre de la recta y = 0), tendint cap a aquest cicle-lımit.

Exercici 5.3.1. Considereu l’oscil.lador de Van der Pol, escrit en la forma (5.5).

(i) Preneu c.i. del tipus (xk, 0), xk = −2.1 + k ∗ 0.5, k = 0 ÷ 8 i trobeu el flux solucio fins atemps tf = 100. Feu el mateix integrant cap a darrere fins a tf = −100.

38-Calcul Numeric. Manual de practiques

Page 45: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5.3 Calcul d’orbites periodiques

(ii) Calculeu l’orbita de condicions inicials (0.1, 0) fins a temps tf = 1000. Que s’observa?

Indicacions:

1.- Escriviu un fitxer vdpol.eq1 amb les equacions del nostre sistema.

2.- Demaneu a Taylor que generi l’integrador i el header corresponents:

perico@delospalotes: taylor -o vanderpol.c -jet -step -name vanderpol vdpol.eq1

perico@delospalotes: taylor -o taylor.h -header

3.- Feu els programes que es demanen als apartats (i),(ii) anteriors, escrivint els resultats en dosfitxers anomenats retrat-fase-vdpol.dat i una-orbita-vdpol.dat, respectivament. Recordeuque, a banda de la compilacio i linkat des de lınia de comandes, podeu fer-ho tambe a traves d’unmakefile. Per exemple, en el nostre cas, aquest fitxer, que anomenarem vdpol.mk, podria ser:

1 CODIGO:= re t r a t−f a s e s−vdpol . c vanderpol . c2 CC:= gcc3 CFLAGS:= −g −O3 −s4 ENLACE:=$ (CFLAGS) −lm5 EJECUTABLE:= re t r a t−vdpol6

7 OBJETOS:=$ (CODIGO: . c=.o )8 OBJETOS:=$ (OBJETOS : . f =.o )9

10 a l l : $ (EJECUTABLE)11

12 $ (EJECUTABLE) : $ (OBJETOS)13 $ (CC) −o $ (EJECUTABLE) $ (OBJETOS) $ (ENLACE)14

15 c l ean :16 rm −f $ (OBJETOS) $ (EJECUTABLE)

Llistat 5.2: vdpol.mk

Per executar-ho feu:

perico@delospalotes: make -f vdpol.mk

4.- Un cop teniu els fitxers .dat amb els punts de les trajectories demanades, dibuixeu-les amb elgnuplot. Podeu fer-ho directament a traves de lınia de comandes (vegeu Seccio 5.1.1) o be usaruna shell: escriviu i deseu com a vdpol.sh el seguent conjunt d’instruccions

1 / usr / bin / gnuplot << EOF2

3 s e t term po s t s c r i p t4

5 s e t x l ab e l ”x”6 s e t y l ab e l ”y”7

8 s e t output ” . / r e t r a t−de−f a s e s−vanderpol . ps”9 p lo t ” . / r e t r a t−f a s e−vdpol . dat ” u 2 :3 n o t i t l e w l lw 0 .1 l t 1

10

11 s e t output ” . / una−orb i ta−vdpol . ps”12 p lo t ” . / una−orb i ta−vdpol . dat ” u 2 :3 n o t i t l e w l lw 0 .1 l t 1

Calcul Numeric. Manual de practiques-39

Page 46: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5. Integracio Numerica d’EDOs

13

14 # Un exemple amb comandes no abreu jades s e r i a :15 # plo t ” . / r e t r a t−f a s e−vdpol . dat ” us ing 2 :3 t i t l e ’ Retrat de f a s e s ’16 # with po in t s point−type 1 point−s i z e 0 . 4 l i n e−type 1 , 0 with l i n e s17 # l in e−width 0 .1 l i n e−type 1 n o t i t l e18

19 # Recordeu que # ind i c a comentar i i l a l i n i a cor re sponent es obviada20 # pe l s i s tema .21

22 EOF

Llistat 5.3: vdpol.sh

Per executar-ho feu:

perico@delospalotes: sh vdpol.sh.

Generara dos fitxers postscript que podreu visualitzar amb okular, ghostview, gv, etc.El nostre objectiu final en aquesta seccio sera trobar numericament el cicle-lımit de l’oscil.lador

de Van der Pol (que podeu intuır a la Figura 5.4), esbrinar el seu perıode i la seva estabilitat. Perfer-ho ens caldra coneixer quina es la dependencia de les solucions del nostre sistema (5.5) respectea condicions inicials, determinada per l’anomenada equacio variacional. Com ja hem comentatanteriorment seguirem [17].

5.3.1 Primera Equacio Variacional d’una edo

Considereu una edo autonoma (es a dir, sense dependencia explıcita en el temps t al camp devectors)

x = f(x), x ∈ U = U ⊂ Rn, f ∈ Cr(U). (5.6)

Si no diem res en contra, durant aquesta seccio i les posteriors, suposarem que U i f son d’aquestaforma. Sigui φ(t, x) la solucio de (5.6) satisfent que φ(0, x) = x. Sabem que si f ∈ Cr aleshoresφ ∈ Cr i, per tant, te sentit fer la seva expansio en serie de Taylor entorn a x:

φ(t, x+ h) = φ(t, x) +Dxφ(t, x)h+1

2D2

xφ(t, x)h2 + · · ·

S’anomenen equacions variacionals a aquelles equacions diferencials (lineals) satisfetes per les dife-rencials Dj

xφ(t, x). En particular, per a j = 1 ens proporciona com varien les solucions de (5.6) enfuncio de les seves c.i. Una manera senzilla de deduir aquestes equacions es fer servir que φ(t, x) essolucio, es a dir,

d

dtφ(t, x) = f(φ(t, x)).

Diferenciant aquesta expressio respecte de x,

Dx

(

d

dtφ(t, x)

)

= Df(φ(t, x)),

commutant ambdues derivacions (respecte de t i de x, ates que f ∈ Cr) i tenint en compte queφ(0, x) = x, s’obte la primera equacio variacional :

(EV) :

ddtDxφ(t, x) = Df(φ(t, x)Dxφ(t, x),

Dxφ(0, x) = Id,(5.7)

40-Calcul Numeric. Manual de practiques

Page 47: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5.3 Calcul d’orbites periodiques

on Id denota la matriu identitat n-dimensional. De manera analoga s’anirien trobant les equacionsvariacionals d’ordre superior. Des d’punt de vista computacional, es important destacar que s’in-tegra numericament (EV) juntament amb l’edo x = f(x), es a dir, en realitat s’integra el sistemaampliat

d

dt

(

xDxφ(t, x)

)

=

(

f(x)Df(φ(t, x)Dxφ(t, x)

)

amb condicions inicials φ(0, x) = x i Z(0) = Id. Per exemple, per n = 2 el corresponent campvectorial s’escriu

x1x2Z

=

f1(x1, x2)f2(x1, x2)Df(φ(t, x)Z

(5.8)

amb

Z(t) =

(

z11(t) z12(t)z21(t) z22(t)

)

, Df(x1, x2) =

(

D1f1(x1, x2) D2f1(x1, x2)D1f2(x1, x2) D2f2(x1, x2)

)

.

Aleshores, a cada punt tk cal integrar primer l’equacio (5.8), trobar-ne el valor aproximat del fluxφ(tk, x) = (φ1(tk, x), φ2(tk, x)) i amb ell obtenir-ne Z(tk) solucio de Z = Df(φ(tk, x)Z.

Exercici 5.3.2. Trobeu el valor aproximat de φ(tf , x) i de la seva primera variacional (EV) atemps tf = 10, 100, 1000 i condicions inicials x = (0.2, 0) i x = (−1.5, 2).

5.3.2 Calcul de la diferencial de l’aplicacio de Poincare

Donada l’edo x = f(x) i una seccio Σ = g(x) = 0 transversal al seu flux, considerem la sevaaplicacio de Poincare associada (vegeu Seccio 5.2):

P : Σ −→ Σx 7−→ P (x) := φ(t(x), x)

de manera que es verifica que g(φ(t(x), x) = 0. La funcio t(x) es el temps necessari per a quel’orbita amb c.i. x intersequi de nou i en el sentit establert (vegeu Figura 5.2) la hipersuperfıcie Σ.Volem calcular la diferencial de l’aplicacio de Poincare P determinada per Σ. Diferenciant la sevadefinicio obtenim

DP (x) =∂

∂tφ(t(x), x)

∂t(x)

∂x+Dxφ(t(x), x) = f(φ(t(x), x))

∂t(x)

∂x+Dxφ(t(x), x). (5.9)

El terme Dxφ(t(x), x) es la solucio de la (EV) per a temps t(x) (vegeu Seccio 5.3.1) i, per tant,computable. Necessitem doncs, calcular ∂t(x)/∂x. Per fer-ho usem que φ(t(x), x) ∈ Σ, es a dir,g(φ(t(x), x) = 0. Diferenciant-la,

Dx (g (φ(t(x), x))) = 0 ⇒ Dxg (φ(t(x), x)) ·(

f(φ(t(x), x))∂t(x)

∂x+Dxφ(t(x), x)

)

= 0.

Si denotem x = φ(t(x), x), aleshores, de l’anterior expressio s’obte

Dxg(x) ·(

f(x)∂t(x)

∂x+Dxφ(t(x), x)

)

= 0 ⇒

〈∇g(x), f(x)〉∂t(x)∂x

+Dg(x)Dxφ(t(x), x) = 0 ⇒

∂t(x)

∂x= − 1

〈∇g(x), f(x)〉Dg(x)Dxφ(t(x), x),

Calcul Numeric. Manual de practiques-41

Page 48: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5. Integracio Numerica d’EDOs

que esta ben definida ja que 〈∇g(x), f(x)〉 6= 0 en ser Σ, per hipotesi, transversal al flux. Substituıntaquesta expressio a l’equacio (5.9) ens queda

DP (x) =

(

− 1

〈∇g(x), f(x)〉 f(x)Dg(x) + Id

)

Dxφ(t(x), x), (5.10)

essent Id la matriu identitat n-dimensional.

Anem a il.lustra-ho amb un exemple. Suposeu x ∈ Rn i que la nostra seccio de Poincare Σ,

transversal al flux al domini considerat, ve definida g(x) = xn, la n-esima component d’x. Es a dir,Σ = x ∈ R

n | xn = 0. Aleshores, a (5.10) simplificant, tindrem que ∇g(x) = (0, 0, . . . , 1) = en,〈∇g(x), f(x)〉 = fn(x),a on f = (f1, f2, . . . , fn), i Dg(x) = (0 0 0 . . . 1). A mes,

f(x) ·Dg(x) =

0 0 . . . 0 f1(x)0 0 . . . 0 f2(x)...

.... . .

......

0 0 . . . 0 fn(x)

Per tant,

DP (x) =

1 0 . . . 0 −f1(x)/fn(x)0 1 . . . 0 −f2(x)/fn(x)...

.... . .

......

0 0 . . . 1 −fn−1(x)/fn(x)0 0 . . . 0 0

Dxφ(t(x), x) =: A · Z,

a on Z = Dxφ(t(x), x) es la solucio de l’equacio variacional (EV) (vegeu (5.7)) i A = (aij)1≤i,j≤n

te coeficients

aii = 1

ain = − fi(x)

fn(x)

per i = 1, 2, . . . , n− 1,

i aij = 0 a la resta de casos. Si denotem Z = (zij)1≤i,j≤n i DP (x) = (qij)1≤i,j≤n aleshores els

coeficients de la diferencial de Poincare s’obtenen fent qij =n∑

k=1

aikzkj .

5.3.3 Calcul d’orbites periodiques

Es vol calcular numericament orbites periodiques d’un cert periode T d’un sistema (autonom)x = f(x), x ∈ R

n. La primera idea seria la de cercar condicions inicials x0 que siguin zero dela funcio G(x0) = φ(T, x0) − x0 i aplicar, per fer-ho, el metode de Newton (vegeu capıtol 4).Malauradament (o no), si x0 satisfa que φ(T, x0) = x0 llavors tambe ho verifica tot punt de la sevaorbita φ(t, x0)t∈R. Aixo provoca, en particular, que el vector tangent a l’orbita al punt x0, f(x0),sigui vector propi de valor propi 1 de la matriu de monodromia Dφ(T, x0). Consequentment, lamatriu DG(x0) = Dφ(T, x0) − Id es singular. Per tant no podem aplicar directament el metodede Newton i caldria buscar alguna de les seves variants. No sera aquesta l’opcio que aplicarem enaquesta seccio sino que buscarem treure profit de l’aplicacio de Poincare definida anteriorment.

Sigui de nou Σ una seccio transversal al flux de x = f(x). Observeu que buscar una orbitaperiodica (que intersequi Σ, es clar) es equivalent a cercar un punt x0 ∈ Σ de forma que P (x0) = x0,on P es l’aplicacio de Poincare associada a x = f(x) i a Σ. Noteu, a mes, que el periode de l’orbitaperiodica que estem buscant no esta ara prefixat. Si P (x0) = x0 tindrem que T = t(x0), essent

42-Calcul Numeric. Manual de practiques

Page 49: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5.3 Calcul d’orbites periodiques

t(x0) > el temps que fa φ(t(x0), x0) ∈ Σ amb l’orientacio fixada. Per tant, aplicarem el metode deNewton a la funcio G(x0) = P (x0)− x0, que te per diferencial DG(x0) = DP (x0)− Id. Recordeuque a la Seccio 5.3.2 ja varem explicar com calcular-la.

Cal tenir present que, de vegades, la diferencial DP (x0) de l’aplicacio de Poincare te 1 com avalor propi i, llavors, DG(x0) es singular. Aquest fet es sovint motivat per l’existencia d’integralsprimeres2 del nostre sistema x = f(x). Un exemple classic d’integral primera es l’energia E(potencial + cinetica) d’un sistema mecanic no dissipatiu. En aquests casos caldra restringir l’estudiconsiderant punts d’un nivell d’energia (o de la integral primera) fixat, E = E0.

L’us de l’aplicacio de Poincare P en el calcul d’orbites periodiques de x = f(x) esdeve tambede gran utilitat per a determinar la seva estabilitat lineal. De fet, l’estabilitat de l’orbita periodicaassociada al punt x0 ∈ Σ es equivalent a l’estabilitat lineal de x0 com a punt fix de l’aplicacio P .Aixı, si tot vap de DP (x0) verifica que |λ| < 1 o si |λ| = 1 que sigui simple, aleshores x0 es establei, per tant, tambe la seva orbita (periodica). D’igual manera, si algun vap λ te modul mes granque 1 llavors ambdos son inestables.

Exercici 5.3.3. Preneu Σ = y = 0 com a seccio de Poincare per a l’oscil·lador de Van derPol (5.4) i trobeu l’unica orbita periodica (aıllada, es a dir, un cicle-lımit) per a diversos valors delparametre ε (per exemple: 1.2, 0.5, 0.25, 0.01.). Estudieu la seva estabilitat (lineal).

2Recordeu que una funcio escalar F es una integral primera de x = f(x) si es constant sobre cada una de les seves

solucions:d

dtF (φ(t, x)) = 0.

Calcul Numeric. Manual de practiques-43

Page 50: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

5. Integracio Numerica d’EDOs

44-Calcul Numeric. Manual de practiques

Page 51: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

Bibliografia

[1] A. Aubanell, A. Benseny, A. Delshams. Eines basiques de calcul numeric. UniversitatAutonoma de Barcelona, Barcelona, 1991. 5

[2] C. Bonet, A. Jorba, T.M-Seara, J. Masdemont, M. Olle, A. Susin, M. Valencia. Calcul numeric.Aula Teorica 23, Edicions UPC, Barcelona, 1994. 5

[3] E. Castella and A. Jorba. On the vertical families of two-dimensional tori near the triangularpoints of the bicircular problem. Celestial Mech. Dynam. Astronom., 76(1):35–54, 2000. 16,17

[4] G. Dahlquist, A. Bjorck. Numerical methods. Prentice Hall Inc., New Jersey, 1974. 5

[5] G. Dahlquist, A. Bjorck. Numerical methods in Scientific Computing, vol 1, 2. SIAM, Phila-delphia, 2008.

[6] J. Demmel. Applied Numerical Linear Algebra. SIAM, Philadelphia, 1997. 12, 13, 14

[7] E. Doedel. Lecture Notes on Numerical Analysis of Numerical Analysis of Nonlinear Equations.Elec. publ. notes in http://indy.cs.concordia.ca/auto/notes.pdf, 2010. 18

[8] P. Fernandez. El secreto de Google y el Algebra Lineal. Bol. de la Soc. Esp. de Mate-matica Aplicada, S~eMA, 30:115–141, 2004. Nota: article guanyador del ‘V Premio S~eMAa la Divulgacion en Matematica Aplicada’ l’any 2004. Es pot descarregar a l’adreca web:www.uam.es/personal pdi/ciencias/gallardo/fernandez1.pdf. 6

[9] A. Jorba. Numerical computation of the normal behaviour of invariant curves of n-dimensionalmaps. Nonlinearity, 14(5):943–976, 2001. 16

[10] A. Jorba, M. Zou A software package for the numerical integration of ODE by means ofhigh-order Taylor methods, (pdf) 29, 35

[11] A. Jorba, M. Zou Taylor User’s Manual, (pdf) 29

[12] G. Keller. Numerical solution of bifurcation problems in nonlinear eigenvalue problems. InDifference and variational-difference methods (Proc. Second Sem. Methods of Numer. Appl.Math., Novosibirsk, 1977) (Russian), pages 6–36. Akad. Nauk SSSR Sibirsk. Otdel. Vychisl.Tsentr, Novosibirsk, 1977. 18

[13] A. Lahiri, A. Bhowal, T. K. Roy, and M. B. Sevryuk. Stability of invariant curves in four-dimensional reversible mappings near 1 : 1 resonance. Phys. D, 63(1-2):99–116, 1993. 18

[14] A. Quarteroni, F. Saleri. Scientific Computing with MATLAB and Octave, Second Edition.Springer-Verlag, Berlın, Heidelberg, 2006.

Calcul Numeric. Manual de practiques-45

Page 52: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

BIBLIOGRAFIA

[15] M.B. Sevryuk and A. Lahiri. Bifurcations of families of invariant curves in four-dimensionalreversible mappings. Physics Letters A, 154(3:4):101–110, 1991. 18

[16] J. Stoer, R. Bulirsch. Introduction to numerical analysis (third edition). Texts in AppliedMathematics, Springer-Verlag, New York - Berlin - Heidelberg, 2002. 5

[17] C. Simo. On the analytical and numerical approximation of invariant manifolds. Reprintedfrom Les Methodes Modernes de la Mecanique Celeste (course given at Goutelas, France, 1989),D. Benest and C. Froeschle (eds.), 285–329, Editions Frontieres, Paris, 1990. (gzip) 29, 36, 40

[18] V. Szebehely Theory of orbits, Academic Press, New York, 1967 21

[19] Wikipedia: http://en.wikipedia.org/wiki/Singular_value_decomposition

46-Calcul Numeric. Manual de practiques

Page 53: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

GNU Free Documentation License

Version 1.3, 3 November 2008Copyright c© 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.

<http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, butchanging it is not allowed.

Preamble

The purpose of this License is to make a manual, textbook, or other functional and usefuldocument “free” in the sense of freedom: to assure everyone the effective freedom to copy andredistribute it, with or without modifying it, either commercially or noncommercially. Secondarily,this License preserves for the author and publisher a way to get credit for their work, while notbeing considered responsible for modifications made by others.

This License is a kind of “copyleft”, which means that derivative works of the document mustthemselves be free in the same sense. It complements the GNU General Public License, which is acopyleft license designed for free software.

We have designed this License in order to use it for manuals for free software, because freesoftware needs free documentation: a free program should come with manuals providing the samefreedoms that the software does. But this License is not limited to software manuals; it can be usedfor any textual work, regardless of subject matter or whether it is published as a printed book. Werecommend this License principally for works whose purpose is instruction or reference.

1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work, in any medium, that contains a noticeplaced by the copyright holder saying it can be distributed under the terms of this License. Sucha notice grants a world-wide, royalty-free license, unlimited in duration, to use that work underthe conditions stated herein. The “Document”, below, refers to any such manual or work. Anymember of the public is a licensee, and is addressed as “you”. You accept the license if you copy,modify or distribute the work in a way requiring permission under copyright law.

A “Modified Version” of the Document means any work containing the Document or a portionof it, either copied verbatim, or with modifications and/or translated into another language.

A “Secondary Section” is a named appendix or a front-matter section of the Documentthat deals exclusively with the relationship of the publishers or authors of the Document to theDocument’s overall subject (or to related matters) and contains nothing that could fall directlywithin that overall subject. (Thus, if the Document is in part a textbook of mathematics, aSecondary Section may not explain any mathematics.) The relationship could be a matter of

Calcul Numeric. Manual de practiques-47

Page 54: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

BIBLIOGRAFIA

historical connection with the subject or with related matters, or of legal, commercial, philosophical,ethical or political position regarding them.

The “Invariant Sections” are certain Secondary Sections whose titles are designated, as beingthose of Invariant Sections, in the notice that says that the Document is released under this License.If a section does not fit the above definition of Secondary then it is not allowed to be designated asInvariant. The Document may contain zero Invariant Sections. If the Document does not identifyany Invariant Sections then there are none.

The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Textsor Back-Cover Texts, in the notice that says that the Document is released under this License. AFront-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.

A “Transparent” copy of the Document means a machine-readable copy, represented in a for-mat whose specification is available to the general public, that is suitable for revising the documentstraightforwardly with generic text editors or (for images composed of pixels) generic paint pro-grams or (for drawings) some widely available drawing editor, and that is suitable for input to textformatters or for automatic translation to a variety of formats suitable for input to text formatters.A copy made in an otherwise Transparent file format whose markup, or absence of markup, hasbeen arranged to thwart or discourage subsequent modification by readers is not Transparent. Animage format is not Transparent if used for any substantial amount of text. A copy that is not“Transparent” is called “Opaque”.

Examples of suitable formats for Transparent copies include plain ASCII without markup,Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, andstandard-conforming simple HTML, PostScript or PDF designed for human modification. Examplesof transparent image formats include PNG, XCF and JPG. Opaque formats include proprietaryformats that can be read and edited only by proprietary word processors, SGML or XML for whichthe DTD and/or processing tools are not generally available, and the machine-generated HTML,PostScript or PDF produced by some word processors for output purposes only.

The “Title Page” means, for a printed book, the title page itself, plus such following pages asare needed to hold, legibly, the material this License requires to appear in the title page. For worksin formats which do not have any title page as such, “Title Page” means the text near the mostprominent appearance of the work’s title, preceding the beginning of the body of the text.

The “publisher” means any person or entity that distributes copies of the Document to thepublic.

A section “Entitled XYZ” means a named subunit of the Document whose title either is pre-cisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language.(Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”,“Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a sectionwhen you modify the Document means that it remains a section “Entitled XYZ” according to thisdefinition.

The Document may include Warranty Disclaimers next to the notice which states that thisLicense applies to the Document. These Warranty Disclaimers are considered to be included byreference in this License, but only as regards disclaiming warranties: any other implication thatthese Warranty Disclaimers may have is void and has no effect on the meaning of this License.

2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially or noncommer-cially, provided that this License, the copyright notices, and the license notice saying this License

48-Calcul Numeric. Manual de practiques

Page 55: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

BIBLIOGRAFIA

applies to the Document are reproduced in all copies, and that you add no other conditions whatso-ever to those of this License. You may not use technical measures to obstruct or control the readingor further copying of the copies you make or distribute. However, you may accept compensationin exchange for copies. If you distribute a large enough number of copies you must also follow theconditions in section 3.

You may also lend copies, under the same conditions stated above, and you may publicly displaycopies.

3. COPYING IN QUANTITY

If you publish printed copies (or copies in media that commonly have printed covers) of theDocument, numbering more than 100, and the Document’s license notice requires Cover Texts, youmust enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-CoverTexts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearlyand legibly identify you as the publisher of these copies. The front cover must present the full titlewith all words of the title equally prominent and visible. You may add other material on the coversin addition. Copying with changes limited to the covers, as long as they preserve the title of theDocument and satisfy these conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the firstones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacentpages.

If you publish or distribute Opaque copies of the Document numbering more than 100, you musteither include a machine-readable Transparent copy along with each Opaque copy, or state in orwith each Opaque copy a computer-network location from which the general network-using publichas access to download using public-standard network protocols a complete Transparent copy of theDocument, free of added material. If you use the latter option, you must take reasonably prudentsteps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparentcopy will remain thus accessible at the stated location until at least one year after the last timeyou distribute an Opaque copy (directly or through your agents or retailers) of that edition to thepublic.

It is requested, but not required, that you contact the authors of the Document well beforeredistributing any large number of copies, to give them a chance to provide you with an updatedversion of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of secti-ons 2 and 3 above, provided that you release the Modified Version under precisely this License, withthe Modified Version filling the role of the Document, thus licensing distribution and modificationof the Modified Version to whoever possesses a copy of it. In addition, you must do these things inthe Modified Version:

A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document,and from those of previous versions (which should, if there were any, be listed in the Historysection of the Document). You may use the same title as a previous version if the originalpublisher of that version gives permission.

B. List on the Title Page, as authors, one or more persons or entities responsible for authorship ofthe modifications in the Modified Version, together with at least five of the principal authors

Calcul Numeric. Manual de practiques-49

Page 56: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

BIBLIOGRAFIA

of the Document (all of its principal authors, if it has fewer than five), unless they releaseyou from this requirement.

C. State on the Title page the name of the publisher of the Modified Version, as the publisher.

D. Preserve all the copyright notices of the Document.

E. Add an appropriate copyright notice for your modifications adjacent to the other copyrightnotices.

F. Include, immediately after the copyright notices, a license notice giving the public permis-sion to use the Modified Version under the terms of this License, in the form shown in theAddendum below.

G. Preserve in that license notice the full lists of Invariant Sections and required Cover Textsgiven in the Document’s license notice.

H. Include an unaltered copy of this License.

I. Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating atleast the title, year, new authors, and publisher of the Modified Version as given on the TitlePage. If there is no section Entitled “History” in the Document, create one stating the title,year, authors, and publisher of the Document as given on its Title Page, then add an itemdescribing the Modified Version as stated in the previous sentence.

J. Preserve the network location, if any, given in the Document for public access to a Transparentcopy of the Document, and likewise the network locations given in the Document for previousversions it was based on. These may be placed in the “History” section. You may omit anetwork location for a work that was published at least four years before the Document itself,or if the original publisher of the version it refers to gives permission.

K. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of thesection, and preserve in the section all the substance and tone of each of the contributoracknowledgements and/or dedications given therein.

L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles.Section numbers or the equivalent are not considered part of the section titles.

M. Delete any section Entitled “Endorsements”. Such a section may not be included in theModified Version.

N. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title withany Invariant Section.

O. Preserve any Warranty Disclaimers.

If the Modified Version includes new front-matter sections or appendices that qualify as Secon-dary Sections and contain no material copied from the Document, you may at your option designatesome or all of these sections as invariant. To do this, add their titles to the list of Invariant Sectionsin the Modified Version’s license notice. These titles must be distinct from any other section titles.

You may add a section Entitled “Endorsements”, provided it contains nothing but endorsementsof your Modified Version by various parties—for example, statements of peer review or that thetext has been approved by an organization as the authoritative definition of a standard.

50-Calcul Numeric. Manual de practiques

Page 57: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

BIBLIOGRAFIA

You may add a passage of up to five words as a Front-Cover Text, and a passage of up to25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version.Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or througharrangements made by) any one entity. If the Document already includes a cover text for the samecover, previously added by you or by arrangement made by the same entity you are acting on behalfof, you may not add another; but you may replace the old one, on explicit permission from theprevious publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License give permission to usetheir names for publicity for or to assert or imply endorsement of any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under this License, under theterms defined in section 4 above for modified versions, provided that you include in the combinationall of the Invariant Sections of all of the original documents, unmodified, and list them all asInvariant Sections of your combined work in its license notice, and that you preserve all theirWarranty Disclaimers.

The combined work need only contain one copy of this License, and multiple identical InvariantSections may be replaced with a single copy. If there are multiple Invariant Sections with the samename but different contents, make the title of each such section unique by adding at the end ofit, in parentheses, the name of the original author or publisher of that section if known, or else aunique number. Make the same adjustment to the section titles in the list of Invariant Sections inthe license notice of the combined work.

In the combination, you must combine any sections Entitled “History” in the various originaldocuments, forming one section Entitled “History”; likewise combine any sections Entitled “Ack-nowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled“Endorsements”.

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents released underthis License, and replace the individual copies of this License in the various documents with asingle copy that is included in the collection, provided that you follow the rules of this License forverbatim copying of each of the documents in all other respects.

You may extract a single document from such a collection, and distribute it individually underthis License, provided you insert a copy of this License into the extracted document, and followthis License in all other respects regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and independent docu-ments or works, in or on a volume of a storage or distribution medium, is called an “aggregate” ifthe copyright resulting from the compilation is not used to limit the legal rights of the compilation’susers beyond what the individual works permit. When the Document is included in an aggregate,this License does not apply to the other works in the aggregate which are not themselves derivativeworks of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of the Document, thenif the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be

Calcul Numeric. Manual de practiques-51

Page 58: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

BIBLIOGRAFIA

placed on covers that bracket the Document within the aggregate, or the electronic equivalent ofcovers if the Document is in electronic form. Otherwise they must appear on printed covers thatbracket the whole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distribute translations of theDocument under the terms of section 4. Replacing Invariant Sections with translations requiresspecial permission from their copyright holders, but you may include translations of some or allInvariant Sections in addition to the original versions of these Invariant Sections. You may includea translation of this License, and all the license notices in the Document, and any WarrantyDisclaimers, provided that you also include the original English version of this License and theoriginal versions of those notices and disclaimers. In case of a disagreement between the translationand the original version of this License or a notice or disclaimer, the original version will prevail.

If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, therequirement (section 4) to Preserve its Title (section 1) will typically require changing the actualtitle.

9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly providedunder this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, andwill automatically terminate your rights under this License.

However, if you cease all violation of this License, then your license from a particular copyrightholder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finallyterminates your license, and (b) permanently, if the copyright holder fails to notify you of theviolation by some reasonable means prior to 60 days after the cessation.

Moreover, your license from a particular copyright holder is reinstated permanently if the copy-right holder notifies you of the violation by some reasonable means, this is the first time you havereceived notice of violation of this License (for any work) from that copyright holder, and you curethe violation prior to 30 days after your receipt of the notice.

Termination of your rights under this section does not terminate the licenses of parties whohave received copies or rights from you under this License. If your rights have been terminated andnot permanently reinstated, receipt of a copy of some or all of the same material does not give youany rights to use it.

10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU Free Documenta-tion License from time to time. Such new versions will be similar in spirit to the present version, butmay differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the Document specifiesthat a particular numbered version of this License “or any later version” applies to it, you have theoption of following the terms and conditions either of that specified version or of any later versionthat has been published (not as a draft) by the Free Software Foundation. If the Document doesnot specify a version number of this License, you may choose any version ever published (not as adraft) by the Free Software Foundation. If the Document specifies that a proxy can decide whichfuture versions of this License can be used, that proxy’s public statement of acceptance of a versionpermanently authorizes you to choose that version for the Document.

52-Calcul Numeric. Manual de practiques

Page 59: Ca`lcul Num`eric. Manual de Pra`ctiques Facultat de Matema ... · natura de Calcul Num`eric al Grau de Matema`tiques de la FME (UPC). Aquesta publicaci´o ´es un recull de les pr`actiques

BIBLIOGRAFIA

11. RELICENSING

“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web serverthat publishes copyrightable works and also provides prominent facilities for anybody to edit thoseworks. A public wiki that anybody can edit is an example of such a server. A “Massive Multiaut-hor Collaboration” (or “MMC”) contained in the site means any set of copyrightable works thuspublished on the MMC site.

“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 license published byCreative Commons Corporation, a not-for-profit corporation with a principal place of business inSan Francisco, California, as well as future copyleft versions of that license published by that sameorganization.

“Incorporate” means to publish or republish a Document, in whole or in part, as part of anotherDocument.

An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that werefirst published under this License somewhere other than this MMC, and subsequently incorporatedin whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thusincorporated prior to November 1, 2008.

The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SAon the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in thedocument and put the following copyright and license notices just after the title page:

Copyright c© YEAR YOUR NAME. Permission is granted to copy, distribute and/ormodify this document under the terms of the GNU Free Documentation License, Version1.3 or any later version published by the Free Software Foundation; with no InvariantSections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license isincluded in the section entitled “GNU Free Documentation License”.

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with . . .Texts.” line with this:

with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Textsbeing LIST, and with the Back-Cover Texts being LIST.

If you have Invariant Sections without Cover Texts, or some other combination of the three,merge those two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing theseexamples in parallel under your choice of free software license, such as the GNU General PublicLicense, to permit their use in free software.

Calcul Numeric. Manual de practiques-53