Metode Numerice

Document Sample
Metode Numerice Powered By Docstoc
					FitVisible
                                      a     a¸                             a
    Aceasta este versiunea electronic˘ a c˘rtii Metode Numerice publicat˘ de
                a                        a
Editura Tehnic˘. Cartea a fost culeas˘ folosind sistemul L TEX a lui Leslie
                                                             A

Lamport, o extindere a programului TEX scris de Donald Knuth. Versiunea
          a       s
electronic˘ folose¸te formatul Portable Document Format (PDF) elaborat de
                                                ın                     a
Adobe Systems. Traducerea formatului L TEX ˆ PDF a fost realizat˘ cu pro-
                                           A

                                                           a
gramul pdflatex elaborat de Han The Thanh. Hiperleg˘turile din versiunea
          a
electronic˘ au fost generate automat folosind pachetul hyperref al lui Sebastian
Rahtz.

    COPYRIGHT c 1998, Corneliu Berbente, Sorin Mitran, Silviu
Zancu
                               ¸
    Toate drepturile asupra editiei electronice sunt rezervate autorilor. Nu este
       a   a          ¸                    ¸ aa           ¸a a
permis˘ tip˘rirea continutului acestei editii f˘r˘ consimt˘mˆntul scris al auto-
rilor.

   COPYRIGHT c 1997, Editura Tehnic˘             a
                              ¸       a
   Toate drepturile asupra editiei tip˘rite sunt rezervate editurii.



   Adresa: EDITURA TEHNICA˘
      ¸
   Piata Presei Libere, 1
             s       a
   33 Bucure¸ti, Romˆnia
   cod 71341

   Redactor: ing. Vasile Buzatu
   Tehnoredactor: Diana Jilavu
   Coperta: Sorin Mitran

   Bun de tipar: 15.11.1997; Coli tipo: 17,75
   CZU: 519.6
   ISBN 973-31-1135-X
                                      ¸˘
                                 PREFATA


                                                                                 a
     Extraordinara dezvoltare a tehnicii de calcul din ultima perioad˘ permite si-
                                       a                                 s
mularea unui tot mai mare num˘r de probleme fizice, inginere¸ti sau economice.
ˆ paralel, a avut loc o dezvoltare a programelor disponibile fizicianului, ingine-
In
                                               a        a
rului sau economistului, oferindu-le o bogat˘ gam˘ de algoritmi pentru rezolvarea
             ¸                                     at                s              ¸
unor aplicatii concrete. Utilizarea acestei bog˘¸ii de tehnici ¸i informatii necesit˘            a
ıns˘         a           a       a
ˆ a, o baz˘ teoretic˘ solid˘ pentru a fi efectiv folosite.
                                         a
     Reprezentarea printr-un num˘r finit de cifre semnificative a numerelor ˆ                     ın
                                  at                   ın
calculator introduce dificult˘¸i extrem de mari ˆ asigurarea conditiilor pentru   ¸
                             ¸
aplicarea unora din notiunile fundamentale ale matematicilor moderne, legate
                                     a       a
de procesul de trecere la limit˘, amendˆnd astfel utilizarea eficient˘ a unor te- a
oreme de baz˘ din analiz˘. ˆ schimb, se introduc erorile de rotunjire a c˘ror
                 a              a In                                                         a
              ın           ¸
propagare, ˆ interactie cu alte tipuri de erori (inerente sau de metod˘) este            a
                a                        ¸           ıntˆ
greu de urm˘rit. Prinre consecinte, se poate ˆ ampla ca varainate echivalente
                                                                                ¸
teoretic (spre exemplu pe baza unor teoreme privind unicitatea solutiei) s˘ duc˘,       a       a
                                                                          a
numeric, la rezultate foarte diferite. Ca urmare, este explicabil˘ tendinta de a se   ¸
                  s                                              a ın         ¸a
descoperi noi ¸i noi formule de calcul numeric, chiar dac˘ ˆ esent˘ (matematic)
                a
acestea difer˘ foarte putin. ¸
            a                 a                 a                    s
     Aceast˘ carte prezint˘ o viziune detaliat˘ asupra teoriei ¸i practicii metodelor
                                   at                         ın
numerice, rod al unei activit˘¸i de aproape 20 de ani ˆ acest domeniu. Algorit-
                       ¸                  ¸
mii cei mai utilizati sunt prezentati integral. O serie de algoritmi avansati, de          ¸
     a                                           s
larg˘ aplicabilitate sunt de asemenea inclu¸i. Autorii au ˆ          ıncercat o prezentare
         a                   a
intuitiv˘ a teoriei ce st˘ la baza metodelor numerice considerate, urm˘rindu-se       a
              s      ¸ ınt                                             ¸
mai mult u¸urinta ˆ ¸elegerii materialului. Locul demonstratiilor riguroase – de
                 s
altfel dificile ¸i nu ˆ ıntotdeauna eficiente didactic – e luat, ˆ   ıntr-o serie de cazuri,
            ¸            s                 ¸            ¸                     ¸
de observatii critice ¸i de “bun simt”. O observatie de “bun simt” este ¸i aceea        s
                                 a                 a              at
de a face apel la mai mult˘ teorie atunci cˆnd modalit˘¸ile cunoscute au fost
                                     a ın      s                       s ¸
epuizate. Ca atare, se vor reg˘si ˆ carte ¸i o serie de cuno¸tinte mai avansate
                     a
necesare dezvolt˘rii unor metode numerice performante.
                                                            ¸                     s
     Sunt incluse capitole privind: aproximarea functiilor, derivarea ¸i integrarea
          a                                    ¸ s                          ¸
numeric˘, problemele algebrei liniare, ecuatii ¸i sisteme de ecuatii neliniare, op-
timizare, ecuatii diferentiale. ˆ prezentarea algoritmilor s-a optat pentru folo-
                   ¸          ¸      In
                                    a a
sirea unui meta-limbaj, asem˘n˘tor celui din programul Matlab. Cititorul poate
                            ın                                            s
transcrie un algoritm ˆ limbajul de programare preferat cu u¸urint˘. Pentru a    ¸a
preˆ                                                                     a
    ıntimpina cererile unor utilizatori ce doresc programe surs˘ sau direct execu-
                                     a
tabile, cartea este suplimentat˘ de un bogat material oferit pe Internet la adresa
                                                                      a
http://www.propulsion.pub.ro. La acest sit se pot reg˘si implement˘ri ˆ                   a ın
                         s                                ¸
Pascal, FORTRAN ¸i C++ ale celor mai utilizati algoritmi, exemple extinse,
   a
leg˘turi la alte situri de pe Internet de interes pentru analiza numeric˘. Cei cu     a
                                                                              a
acces la Internet pot beneficia de programele de instruire asistat˘ de calculator
                                                              a
ce sunt disponibile la acest sit, unde este disponibil˘ o versiune electronic˘ a              a
         a¸                   a                s                    ¸
acestei c˘rti, o serie de lucr˘ri de laborator ¸i numeroase aplicatii mici ce pot fi
rulate direct din browser-ul preferat.
                              a
    Pe tot parcursul prezent˘rii, elementele teoretice sunt completate cu nume-
roase exemple detaliat rezolvate. Acestea provin din cele mai variate domenii:
                   a                    a      as
ingineria mecanic˘, ingineria electric˘, fizic˘ ¸i chimie. S-a ˆ ıncercat formularea
                  ¸                 a
unor exemple initiale simple, ce s˘ se concentreze pe aspectele strict numerice,
                                                                   a         a
iar apoi, a unor exemple apropriate problemelor reale. Se sper˘ ca aceast˘ mo-
                         a        a a                a s
dalitate de prezentare s˘ fie util˘ atˆt studentului cˆt ¸i practicianului metodelor
numerice.




   1997                                                                      Autorii
CUPRINS                                                                                                            V




Cuprins

                     ¸
1 Aproximarea functiilor de o variabil˘   a                                                                         1
  1.1 Aproximarea prin interpolare . . . . . . . . . . . . . .                             .   .   .   .   .   .    2
                                     a       a
      1.1.1 Interpolarea polinomial˘ global˘ . . . . . . . .                               .   .   .   .   .   .    3
                                 ¸
      1.1.2 Interpolare cu functii spline . . . . . . . . . . .                            .   .   .   .   .   .   10
                                 ¸
      1.1.3 Interpolare cu functii trigonometrice . . . . . .                              .   .   .   .   .   .   16
                        ın
      1.1.4 Interpolare ˆ planul complex . . . . . . . . . .                               .   .   .   .   .   .   23
  1.2 Aproximarea mini-max . . . . . . . . . . . . . . . . . .                             .   .   .   .   .   .   30
                              as
      1.2.1 Polinoamele Cebˆ¸ev . . . . . . . . . . . . . . .                              .   .   .   .   .   .   30
      1.2.2 Minimizarea erorii la interpolarea polinomial˘ . a                             .   .   .   .   .   .   32
      1.2.3 Aproximarea aproape mini-max a unei functii .  ¸                               .   .   .   .   .   .   34
                   ın                         a
  1.3 Aproximarea ˆ sensul celor mai mici p˘trate . . . . .                                .   .   .   .   .   .   36
                                   a
  1.4 Elemente de teoria aproxim˘rii . . . . . . . . . . . . .                             .   .   .   .   .   .   40
                ¸
      1.4.1 Spatii vectoriale . . . . . . . . . . . . . . . . .                            .   .   .   .   .   .   41
                             s
      1.4.2 Produsul scalar ¸i ortogonalitate . . . . . . . .                              .   .   .   .   .   .   42
                               s      ¸
      1.4.3 Norme, operatori ¸i functionale . . . . . . . . .                              .   .   .   .   .   .   47
                               a
      1.4.4 Problema general˘ a celei mai bune aproxim˘ri   a                              .   .   .   .   .   .   49

             s
2 Derivarea ¸i integrarea numeric˘    a                                                                            53
                       a
  2.1 Derivarea numeric˘ . . . . . . . . . . . . . . . . . . . .                           .   .   .   .   .   .   53
      2.1.1 Derivate folosind polinoame de interpolare . . .                               .   .   .   .   .   .   54
                                     a
      2.1.2 Formularea operatorial˘ . . . . . . . . . . . . .                              .   .   .   .   .   .   57
                                        ın     ¸ s
      2.1.3 Polinoame de interpolare ˆ functie ¸i derivat˘   a                             .   .   .   .   .   .   59
                                   ¸
      2.1.4 Derivate folosind functii spline . . . . . . . . .                             .   .   .   .   .   .   61
                                                 ¸
      2.1.5 Derivate folosind diverse aproximatii . . . . . .                              .   .   .   .   .   .   61
                        a
  2.2 Integrarea numeric˘ . . . . . . . . . . . . . . . . . . .                            .   .   .   .   .   .   62
      2.2.1 Formule Newton-Cotes ˆ    ınchise . . . . . . . . .                            .   .   .   .   .   .   63
      2.2.2 Formule de integrare deschise . . . . . . . . . .                              .   .   .   .   .   .   68
      2.2.3 Tehnici de atingere a unei precizii impuse . . .                               .   .   .   .   .   .   76

                    ¸
3 Rezolvarea ecuatiilor neliniare                                                                                  85
             ınjum˘t˘¸irii intervalelor
  3.1 Metoda ˆ       a at                  .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   86
  3.2 Procedee iterative . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   87
                  ¸       a
      3.2.1 Iteratia simpl˘ . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   87
      3.2.2 Metoda Newton-Raphson          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   89
VI                                                                                     CUPRINS


           3.2.3 Metoda secantei . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   . 91
           3.2.4 Metoda parabolelor tangente . . . . .     .   .   .   .   .   .   .   .   .   .   . 93
     3.3                 a a
           Determinarea r˘d˘cinilor polinoamelor . . . .   .   .   .   .   .   .   .   .   .   .   . 96
           3.3.1 Metoda Lobacevschi-Graeffe . . . . . .     .   .   .   .   .   .   .   .   .   .   . 96
           3.3.2 Metode de factorizare a polinoamelor      .   .   .   .   .   .   .   .   .   .   . 101

4 Erorile de calcul numeric                                                    109
  4.1 Surse de erori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
                           ın
  4.2 Propagarea erorilor ˆ calcule . . . . . . . . . . . . . . . . . . . . 111

5 Rezolvarea sistemelor liniare                                                                        115
  5.1 Metode directe . . . . . . . . . . . . . . . . . . . . . . . . . . . .                           116
                            a
      5.1.1 Metoda elimin˘rii a lui Gauss . . . . . . . . . . . . . . .                                116
      5.1.2 Metoda Gauss-Jordan . . . . . . . . . . . . . . . . . . . .                                121
      5.1.3 Propagarea erorilor la metodele de eliminare. Rafinarea
                 ¸
             solutiei . . . . . . . . . . . . . . . . . . . . . . . . . . . .                          121
                                      a
      5.1.4 Interpretarea matriceal˘ a metodelor de eliminare . . . .                                  124
      5.1.5 Calculul matricei inverse . . . . . . . . . . . . . . . . . .                              125
                  ¸
      5.1.6 Relatia Sherman-Morisson . . . . . . . . . . . . . . . . . .                               128
      5.1.7 Rafinarea matricei inverse . . . . . . . . . . . . . . . . .                                129
                                             ¸
      5.1.8 Efectele erorilor din datele initiale . . . . . . . . . . . . .                            131
      5.1.9 Factorizarea L · U . . . . . . . . . . . . . . . . . . . . . .                             132
      5.1.10 Descompunerea SV D . . . . . . . . . . . . . . . . . . . .                                134
      5.1.11 Sisteme cu matrice rare . . . . . . . . . . . . . . . . . . .                             135
  5.2 Metode iterative . . . . . . . . . . . . . . . . . . . . . . . . . . .                           138
                              a
      5.2.1 Metoda iterativ˘ Jacobi . . . . . . . . . . . . . . . . . . .                              138
                              a
      5.2.2 Metoda iterativ˘ Gauss-Seidel . . . . . . . . . . . . . . . .                              140
                                    ¸
      5.2.3 Accelerarea convergentei metodelor iterative . . . . . . . .                               143
               ¸ ıntre metode . . . . . . . . . . . . . . . . . . . . . . .
  5.3 Comparatii ˆ                                                                                     145
  5.4 Elemente de calcul matriceal . . . . . . . . . . . . . . . . . . . .                             146

          s
6 Vectori ¸i valori proprii                                                                            151
  6.1 Elemente introductive . . . . . . . . . . . . . . . . . .                .   .   .   .   .   .   151
                      a
  6.2 Metode pentru cˆteva valori proprii . . . . . . . . . . .                .   .   .   .   .   .   152
      6.2.1 Metoda puterii directe . . . . . . . . . . . . . .                 .   .   .   .   .   .   152
      6.2.2 Metoda puterii inverse . . . . . . . . . . . . . .                 .   .   .   .   .   .   155
                            a
      6.2.3 Metoda deplas˘rii . . . . . . . . . . . . . . . .                  .   .   .   .   .   .   156
                                     s
  6.3 Determinarea tuturor valorilor ¸i vectorilor proprii . .                 .   .   .   .   .   .   156
  6.4 Metoda Danilevschi . . . . . . . . . . . . . . . . . . .                 .   .   .   .   .   .   157
                    s
  6.5 Metodele QR ¸i LR . . . . . . . . . . . . . . . . . . .                  .   .   .   .   .   .   162
      6.5.1 Rezultate teoretice preliminarii . . . . . . . . .                 .   .   .   .   .   .   163
      6.5.2 Algoritmi auxiliari . . . . . . . . . . . . . . . .                .   .   .   .   .   .   169
                                         s
      6.5.3 Formularea metodelor QR ¸i LR . . . . . . . .                      .   .   .   .   .   .   171
                             a              ¸
      6.5.4 Reducerea num˘rului de operatii la factorizare                     .   .   .   .   .   .   172
                                         s
      6.5.5 Accelerarea metodelor QR ¸i LR . . . . . . . .                     .   .   .   .   .   .   175
      6.5.6 Calculul vectorilor proprii . . . . . . . . . . . .                .   .   .   .   .   .   176
CUPRINS                                                                                                                VII


7 Metode de optimizare                                                                                                 181
                  ın                  ¸
  7.1 Minimizarea ˆ lungul unei directii . . . . . . . . . . . . . . . . .                                             183
                            aa
  7.2 Metode de minimizare f˘r˘ calculul derivatelor . . . . . . . . . .                                               187
  7.3 Metoda gradientului . . . . . . . . . . . . . . . . . . . . . . . . .                                            190
  7.4 Metoda Newton . . . . . . . . . . . . . . . . . . . . . . . . . . .                                              193
  7.5 Metode cvasi-Newton . . . . . . . . . . . . . . . . . . . . . . . . .                                            196
  7.6 Metode de gradient conjugat . . . . . . . . . . . . . . . . . . . .                                              198
                                            ¸
      7.6.1 Rezolvarea sistemelor de ecuatii liniare folosind metode
            de optimizare . . . . . . . . . . . . . . . . . . . . . . . .                                              200
  7.7 Metode specifice de optimizare . . . . . . . . . . . . . . . . . . .                                              204
                                        ¸
  7.8 Probleme de optimizare cu restrictii . . . . . . . . . . . . . . . .                                             205

8 Rezolvarea sistemelor neliniare                                                                                      213
           ¸        a
  8.1 Iteratia simpl˘ . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   214
                       a
  8.2 Metoda iterativ˘ Newton . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   216
  8.3 Metode cvasi-Newton . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   219
  8.4 Metoda gradientului . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   221
                     a
  8.5 Metoda hibrid˘ . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   223

                   ¸              ¸
9 Rezolvarea ecuatiilor diferentiale                                                                                   229
               ¸
  9.1 Consideratii generale . . . . . . . . . . . . . . . . . . . .                                    .   .   .   .   229
                    s        ¸
  9.2 Metode cu pa¸i separati . . . . . . . . . . . . . . . . . . .                                    .   .   .   .   230
      9.2.1 Formule Euler . . . . . . . . . . . . . . . . . . . .                                      .   .   .   .   230
      9.2.2 Formule Runge-Kutta . . . . . . . . . . . . . . . .                                        .   .   .   .   233
      9.2.3 Formule Runge-Kutta-Gill . . . . . . . . . . . . . .                                       .   .   .   .   234
                                                   ¸           ¸
      9.2.4 Alegerea pasului la rezolvarea ecuatiei diferentiale                                       .   .   .   .   235
  9.3 Extrapolare Richardson. Metoda Bulirsch-Stoer . . . . . .                                        .   .   .   .   238
                    s     ¸
  9.4 Metode cu pa¸i legati . . . . . . . . . . . . . . . . . . . . .                                  .   .   .   .   239
      9.4.1 Formule explicite . . . . . . . . . . . . . . . . . . .                                    .   .   .   .   239
      9.4.2 Formule implicite . . . . . . . . . . . . . . . . . . .                                    .   .   .   .   241
  9.5 Propagarea erorilor. Stabilitate. . . . . . . . . . . . . . . .                                  .   .   .   .   243
                      ¸         ¸           ¸
  9.6 Sisteme de ecuatii diferentiale. Ecuatii de ordin superior .                                     .   .   .   .   247
                                    ¸
      9.6.1 Probleme cu valori initiale . . . . . . . . . . . . . .                                    .   .   .   .   248
      9.6.2 Probleme cu valori la limite . . . . . . . . . . . . .                                     .   .   .   .   249
                  ¸          ¸
      9.6.3 Ecuatii diferentiale de ordin superior . . . . . . .                                       .   .   .   .   254
                    a
  9.7 Sisteme cu sc˘ri disparate . . . . . . . . . . . . . . . . . .                                   .   .   .   .   255

        ¸           ¸
10 Ecuatii diferentiale cu derivate partiale¸                                                                          263
             ¸                 ¸
   10.1 Ecuatii cu derivate partiale de ordinul I . . . . . . .                            .   .   .   .   .   .   .   264
             ¸                 ¸
   10.2 Ecuatii cu derivate partiale de ordinul II . . . . . . .                           .   .   .   .   .   .   .   270
                     ¸                 ¸
        10.2.1 Ecuatii cu derivate partiale de tip parabolic .                             .   .   .   .   .   .   .   273
                     ¸                 ¸
        10.2.2 Ecuatii cu derivate partiale de tip eliptic . . .                           .   .   .   .   .   .   .   287
                     ¸                 ¸
        10.2.3 Ecuatii cu derivate partiale de tip hiperbolic                              .   .   .   .   .   .   .   295
        10.2.4 Metoda caracteristicilor . . . . . . . . . . . .                            .   .   .   .   .   .   .   297
                                  ¸
        10.2.5 Scheme cu diferente finite . . . . . . . . . . .                             .   .   .   .   .   .   .   300
                                                                                    1




Capitolul 1

                ¸
Aproximarea functiilor de o
        a
variabil˘




                      a           ¸               a               ın     ¸
   Problema aproxim˘rii unei functii de o variabil˘ se poate pune ˆ situatii
            a           a
diverse, urm˘toarele dou˘ fiind mai frecvente:

          ¸                a                 a         a                      ın
   1. functia este cunoscut˘, dar are o form˘ complicat˘, dificil de manipulat ˆ
                                           ¸
      calcule (spre exemplu pentru operatii de derivare, integrare, etc.);

          ¸                           a                                      ¸
   2. functia nu este complet cunoscut˘, fiind date numai valorile ei pe o multime
             as       a
      discret˘ ¸i finit˘ de puncte.
    ˆ primul caz, aproximarea se poate face, ˆ principiu, oricˆt de exact, res-
    In                                            ın               a
    ¸                         ¸          ¸                   a a       a
trictiile fiind legate de conditia ca functia care aproximeaz˘ s˘ fie cˆt mai simpl˘. a
ˆ al doilea caz informatiile sunt reduse ¸i se completeaz˘ cu presupuneri supli-
In                         ¸                s              a
                                                     ¸                         ¸ s
mentare, privind gradul de regularitate al functiei (continuitatea functiei ¸i a
derivatelor sale, etc.). ˆ ambele cazuri, este important˘ alegerea unui criteriu
                          In                               a
de aproximare.
    Fie [a, b] ⊂ R un interval pe dreapta real˘ ¸i xi , i ∈ {1, 2, . . . , N }, N ∈ N,
                                                  as
o retea de puncte de diviziune ale acestui interval, xi ∈ [a, b], x1 = a, xN = b.
     ¸
                                                                         ın
Punctele de diviziune se numesc noduri. Presupunem date valorile ˆ noduri ale
2                                 1. Aproximarea functiilor de o variabila
                                                     ¸                   ˘


         ¸
unei functii reale f

                                yi = f (xi ), i ∈ 1, N .                        (1.1)

    a                 ¸             a        a
Not˘m cu g(x) functia cu care vrem s˘ aproxim˘m pe f (x) pe intervalul dat.
   a a
Iat˘ cˆteva criterii de aproximare:

    a) Interpolare. ˆ acest caz, functia “mai simpl˘” g(x) este determinat˘ din
                    In                 ¸           a                      a
            ¸       a          s         ın
       conditia ca s˘ ia acelea¸i valori ˆ noduri

                                   g(xi ) = yi , i ∈ 1, N .                     (1.2)

                                                                 a
       Criteriul de aproximare prin interpolare presupune tacit c˘ nodurile (xi , yi )
                                  a
       sunt cunoscute exact. Dac˘ din diverse motive – cel mai adesea datorit˘      a
                           a
       unui procedeu de m˘surare – nodurile sunt afectate de erori atunci criteriul
       de interpolare este inadecvat.
                                                   ¸                    a a
    b) Minimizarea abaterii maxime. Se impune conditia ca abaterea maxim˘ s˘
               a                         a
       fie minim˘ pe intervalul ales, adic˘

                               max |f (x) − g(x)| = minim.                      (1.3)
                              x∈[a,b]


       Relatia (1.3) are analogul discret
           ¸

                                max |yi − g(xi )| = minim.                      (1.4)
                                i∈1,N

                    a a                                         s
       Aproximarea f˘cut˘ pe baza criteriului de mai sus se nume¸te aproximare
       mini-max.
    c) Minimizarea sumei p˘tratelor abaterilor ˆ noduri. ˆ acest caz se impune
                          a                    ın        In
       ca
                                   n
                                                    2
                             S=         (yi − g(xi )) = minim .                 (1.5)
                                  i=1

                  a a ın               a           a    a               a     a
       Se observ˘ c˘, ˆ cazul interpol˘rii, aceast˘ sum˘ este chiar nul˘, adic˘ are
                    a               a       s        a         ¸
       cea mai mic˘ valoare posibil˘. Totu¸i, aceast˘ observatie nu face superfluu
                                             s
       criteriul (1.5) care este mai general ¸i permite tratarea datelor cunoscute
                 s                                                        s
       incert, a¸a cum se va vedea mai departe. Metoda care folose¸te acest
                     ıntˆ    a                                         a
       criteriu este ˆ alnit˘ sub numele de metoda celor mai mici p˘trate.



1.1      Aproximarea prin interpolare
         a     a                                ¸
Presupunˆnd c˘ nodurile xi sunt distincte, conditia de interpolare (1.1) repre-
    a                     ¸ s            ın
zint˘ un sistem de N conditii ¸i va duce ˆ general la un sistem de N ecuatii ¸
cu N necunoscute. Considerentele de simplitate amintite mai sus ne sugereaz˘   a
1.1. Aproximarea prin interpolare                                                     3


                       ¸                   a      a a             ıncˆ
c-alegerea formei functiei de aproximare s˘ fie f˘cut˘ astfel ˆ at sistemul de
      ¸ a          a         ¸                   a                       a
conditii s˘ conduc˘ la ecuatii liniare. O posibil˘ alegere este urm˘toarea: se
ia un set de N functii simple, cunoscute, gk (x), k ∈ {1, 2, ..., N } ¸i un set de
                     ¸                                                  s
N parametrii nedeterminati (scalari) ak , k ∈ {1, 2, ..., N }, ˆ functie de care se
                           ¸                                   ın     ¸
scrie aproximanta g(x)
                                            N
                                  g(x) =         ak gk (x) .                      (1.6)
                                           k=1

Deoarece nu ne-am ˆ            ıntr-un formalism riguros, vom face unele observatii
                       ınscris ˆ                                                ¸
             ¸                                               ¸
de “bun simt”. Astfel, am ales N parametri nedeterminati ak , deoarece avem
         ¸              a                      ¸                a    ¸ a
N conditii. Pe de alt˘ parte, setul de functii gk (x) trebuie s˘ contin˘ elemente
                                                        a                  a
distincte, astfel ˆ at introduse ˆ forma (1.6), num˘rul de parametri s˘ nu se
                  ıncˆ               ın
reduc˘1 . ˆ                                          a            ¸
       a Intr-un limbaj mai riguros, se spune c˘ cele N functii cunoscute gk
trebuie s˘ fie liniar independente. ˆ lipsa altei analize, ne putem limita la
          a                              In
     ¸               s       a           a                            ıl
functii despre care ¸tim c˘ au aceast˘ proprietate. Un astfel de set ˆ reprezint˘ a
monoamele xk−1 , k ∈ {1, 2, ..., N }, ˆ care caz functia de interpolare este un
                                         ın              ¸
polinom de gradul N − 1
                                            N
                                   g(x) =         ak xk−1 .                       (1.7)
                                            k=1

                   ¸             ¸                            ¸
Alte seturi de functii pot fi functiile trigonometrice, exponentiale, etc., pe care
le vom trata ulterior.

1.1.1                            a       a
          Interpolarea polinomial˘ global˘
                                               a              ¸            ¸
Revenind la forma (1.7) se pune problema g˘sirii coeficientilor ak din conditia
                    a         a                      ¸
de interpolare, adic˘ a rezolv˘rii sistemului de ecuatii liniare
                              N
                                   ak xk−1 = yi , i ∈ 1, N .                      (1.8)
                             k=1

    a                                                      a           ¸
Dac˘ N este mare, rezolvarea sistemului (1.8) este dificil˘ sau cel putin necon-
venabil˘. ˆ orice caz, nodurile xi fiind distincte, sistemul de ecuatii (1.8) este
       a In                                                          ¸
                                                           s            ¸
un sistem cu determinant Vandermonde diferit de zero ¸i are o solutie unic˘,   a
bine determinat˘ pentru coeficientii ak . ˆ consecint˘, oricare ar fi calea pe care
                 a                ¸      In          ¸a
se construie¸te efectiv polinomul de interpolare (1.7), acesta este unic pentru o
             s
    ¸ s                   a                        a                         a ın
functie ¸i o diviziune dat˘. Aproximarea efectuat˘ este o interpolare global˘ ˆ
        a          s
sensul c˘ se folose¸te un singur polinom pe tot intervalul [a, b].

Forma Newton a polinomului de interpolare.
                        a             ¸                                ıl
O modalitate convenabil˘ de constructie a polinomului de interpolare ˆ consti-
                                    ¸
tuie polinomul lui Newton cu diferente divizate. Fiind date perechile de puncte
   1 Spre exemplu, dac˘ g = αg , α = 0 atunci a g + a g = (a + αa )g , deci ˆ loc de doi
                      a 2                                                   ın
                               1                1 1   2 2     1     2 1
                      ¸   s                            ¸
parametri independenti a1 ¸i a2 ar apare doar o combinatie a1 = a1 + αa2 .
4                                      1. Aproximarea functiilor de o variabila
                                                          ¸                   ˘


                           a                                 ¸
(xi , yi ), se introduc urm˘toarele rapoarte denumite diferente divizate (DD)
                                                      y2 − y1
                                    DD(x2 , x1 ) =            ,
                                                      x2 − x1

                                             DD(x3 , x2 ) − DD(x2 , x1 )
                     DD(x3 , x2 , x1 ) =                                 ,
                                                      x3 − x1

                                                ···

                                       DD(xN , . . . , x2 ) − DD(xN −1 , . . . , x1 )
     DD(xN , xN −1 , . . . , x1 ) =                                                   .     (1.9)
                                                        xN − x1
        ¸                                                                       ¸
Diferentele divizate care se construiesc folosind k + 1 puncte se numesc diferente
                                                       ¸            a     a
divizate de ordinul k. Se poate demonstra prin inductie matematic˘, urm˘toarea
expresie a diferentei divizate de ordinul N − 1:
                  ¸

                                                      N          N
                 DD(xN , xN −1 , . . . , x1 ) =           yi Œ         (xi − xj ) .        (1.10)
                                                   i=1           j=1

    Semnul denot˘ omiterea factorului j = i din produs. Relatia (1.10) fiind
                    a                                              ¸
        a        a a                  ¸                                   ın
simetric˘, rezult˘ c˘ valoarea diferentei divizate nu depinde de ordinea ˆ care
  a
lu˘m punctele xi . Din punct de vedere practic, este mai comod ca diferentele ¸
divizate s˘ nu se calculeze cu formula (1.10) ci recursiv, alc˘tuindu-se un tabel
           a                                                  a
(Tab. 1.1).
    Functia de aproximare g(x) este un polinom de gradul N − 1, pe care ˆ vom
         ¸                                                                 ıl
nota cu pN −1 (x). Vom scrie

                              f (x) = pN −1 (x) + RN −1 (x) ,                              (1.11)

                                                                               a
unde RN −1 (x) este restul sau eroarea de aproximare la interpolarea polinomial˘.
         a        t a                     ¸        ¸
Pe de alt˘ parte, ¸inˆnd seama de definitia diferentelor divizate, se poate scrie

                     f (x) = y1 + (x − x1 ) DD(x, x1 ) =
                                                                                           (1.12)
        y1 + (x − x1 ) DD(x2 , x1 ) + (x − x1 )(x − x2 ) DD(x, x2 , x1 ) .

ˆ relatia (1.12) ultima diferent˘ divizat˘ este format˘ cu punctul curent x.
In    ¸                        ¸a        a            a
        a                     a a        ın         ¸                        a
Continuˆnd procedeul (1.12) pˆn˘ se iau ˆ consideratie toate nodurile, rezult˘

    pN −1 (x) = y1 + (x − x1 ) DD(x2 , x1 ) + (x − x1 )(x − x2 ) DD(x, x2 , x1 ) +
                                                                                 (1.13)
        . . . + (x − x1 )(x − x2 ) · . . . · (x − xN −1 ) DD(xN , xN −1 , . . . , x1 ) ,
                              N
                  RN −1 =           (x − xi ) DD(x, xN , xN −1 , . . . , x1 ) .            (1.14)
                              i=1
1.1. Aproximarea prin interpolare                                                         5


               a                       a                  a ın
    Se verific˘ direct din (1.14) c˘ restul se anuleaz˘ ˆ noduri (RN −1 (xi ) =
                      s
0, i = 1, 2, ..., N ) ¸i deci pN −1 (x) dat de (1.13) este polinomul de interpolare
           a                                                     s
corespunz˘tor celor N puncte date. Forma (1.13) se nume¸te polinomul lui
                      ¸
Newton cu diferente divizate.
                                               a    s          a               ¸
    Pentru scrierea polinomului (1.13) se alc˘tuie¸te mai intˆi tabloul diferentelor
                                                          a        a             ¸
divizate de diverse ordine. Nu este necesar ca tabloul s˘ cuprind˘ toate diferentele
                                      a       a ın
divizate posibile. Este suficient s˘ proced˘m ˆ ordinea nodurilor, din aproape
ˆ aproape, conform definitiilor (1.9). Un exemplu de calcul este prezentat ˆ
ın                             ¸                                                  ın
                                               ¸         a
tabelul 1.1 unde s-a notat cu DDi diferenta divizat˘ de ordinul i (i = 1, 2, 3).
                ¸
Polinomul obtinut este

 p3 (x) = 2 + (x − 1) · (1) + (x − 1)(x − 2) · (−2) + (x − 1)(x − 2)(x − 3) · (1) .
    ˆ ceea ce prive¸te restul RN −1 (x) (eroarea la interpolare), se poate face o
    In               s
             a                ¸                                   ¸
evaluare dac˘ avem informatii suplimentare referitoare la functia aproximat˘    a
f (x) ¸i la derivatele sale. ˆ acest scop, consider˘m functia ajut˘toare Q(t)
      s                      In                      a       ¸       a
       a          ¸
definit˘ prin relatia
                                  N
     Q(t) = f (t) − pN −1 (t) −         (t − xi ) DD(x, xN , xN −1 , . . . , x1 ) .   (1.15)
                                  i=1

          a a       ¸                   a             s
Se observ˘ c˘ functia Q(t) se anuleaz˘ pentru t = x ¸i t = xi , i = 1, 2, ...N , adic˘a
                               a     a                   a            a
are N + 1 zerouri. Presupunˆnd c˘ f (t) este derivabil˘ de un num˘r convenabil
                            ¸        s
de ori, putem aplica functiei Q(t) ¸i derivatelor sale teorema lui Rolle. Rezult˘,   a
           a                            ¸
succesiv, c˘ derivata Q (t) are cel putin N zerouri, derivata Q (t) are cel putin  ¸
N − 1 zerouri ¸.a.m.d., astfel c˘ derivata de ordinul N are cel putin un zero pe
                s                 a                                  ¸
                                                                             s a a
intervalul (a, b). Fie t = ξ acest zero. Derivˆnd relatia (1.15) de N ori, ¸i f˘cˆnd
                                              a       ¸
            ¸
t = ξ, se obtine

                    f (N ) (ξ) = N ! · DD(x, xN , xN −1 , . . . , x1 ) ,

    ¸                                          ¸                        ın     ¸
relatie din care putem deduce expresia diferentei divizate de ordinul N ˆ functie
de derivata de ordinul N . ˆ acest fel, restul la interpolare (1.14) cap˘t˘ forma
                           In                                           aa
                                         N
                       RN −1 (x) =            (x − xi ) f (N ) (ξ)/N ! .              (1.16)
                                        i=1

Prezenta produselor (x − xi ), sugereaz˘ c˘ restul este mai mic (ˆ modul)
        ¸                                    a a                      ın
  a                                                          ¸            s
cˆnd punctul curent x este centrat pe intervalul care contine diviziunea ¸i mai
        a                                                ın
mare cˆnd x este luat spre marginile intervalului sau ˆ afara lui – acest ultim
caz este denumit extrapolare. Deoarece derivata de ordinul N a functiei ˆ ¸ ın
                               a                            a
punctul ξ nu este accesibil˘ (din diverse motive), evalu˘ri ale restului se pot
                a     a
face presupunˆnd c˘, la schimbarea diviziunii, punctul ξ (necunoscut) nu se
           a               ıncˆ                   a a
deplaseaz˘ mult, astfel ˆ at derivata respectiv˘ s˘ fie aproximativ constant˘,  a
s     a a                            a
¸i ref˘cˆnd calculul pentru o nou˘ diviziune a intervalului se poate testa astfel
s
¸i sensibilitatea erorii la includerea de noi puncte de interpolare.
6                                  1. Aproximarea functiilor de o variabila
                                                      ¸                   ˘


                     Tabelul 1.1: Un tabel de diferente divizate
                                                     ¸
                       xi yi DD1 DD2 DD3 DD4
                       1   2     –      –       –       –
                       2   3     1      –       –       –
                       3    0    -3     -2      –       –
                       5    6    3      2       1       –
                       4    4    2      1       -3/2 -5/6


              a                       a                     a
    De regul˘, este nerecomandabil˘ utilizarea unui num˘r mare de noduri la
                          a         ¸       a
interpolare, mai ales dac˘ se intentioneaz˘ calcularea unor derivate cu ajutorul
acestui polinom. Uzual, nu se folosesc toate cele N noduri, ci doar 3-5 noduri
cele mai apropriate de punctul ˆ care se cere valoarea functiei. ˆ consecint˘,
                                 ın                           ¸     In         ¸a
     a                                     a
exist˘ posibilitatea unor variante chiar cˆnd nu putem ˆ           ¸
                                                          ındesi reteaua prin ale-
gerea altor noduri.
                            a                                 a
    Interpolarea polinomial˘ apare deseori ca o component˘ a altor algoritmi
numerici cum ar fi integrarea sau derivarea numeric˘ a unor functii. ˆ aceste
                                                        a            ¸ In
      ¸              a
aplicatii se consider˘ deseori cazul diviziunilor egale
                         xi+1 − xi = h, i = 1, 2, . . . , N − 1 ,
                ¸                               s
 h fiind pasul retelei. Se introduc operatorii ∆ ¸i             ¸         ¸a
                                                         denumiti diferent˘ la dreapta
                  ¸a      a              ¸
respectiv, diferent˘ la stˆnga, prin relatiile
                             ∆f (x) = f (x + h) − f (x) ,                       (1.17)

                                f (x) = f (x) − f (x − h) .                     (1.18)
                a
Rezultatul aplic˘rii operatorului ∆ sau                             s          ¸a
                                            asupra lui f (x) se nume¸te diferent˘
    a                          ıntreg, se define¸te un operator de translatie, E,
finit˘ (de ordinul I). Pentru n ˆ               s                           ¸
         ¸
prin relatia
                           E n f (x) = f (x + nh),     n ∈ Z.                   (1.19)
Avem E 1 f (x) = f (x + h), E 0 f (x) = f (x), E −1 f (x) = f (x − h). Se observ˘ c˘
                                                                                a a
ıntre operatorii ∆, ¸i E exist˘ relatiile
ˆ                     s          a     ¸
                           ∆ = E − E0,         = E 0 − E −1 .                   (1.20)
       ¸                            ın    ¸             ¸          s
Diferentele divizate se pot exprima ˆ functie de diferentele finite ¸i de pasul h
              DD(x2 , x1 ) = [f (x1 + h) − f (x1 )] /h = [∆f (x1 )] /h ,        (1.21)

        DD(xN , xN −1 ) = [f (xN ) − f (xN − h)] /h = [ f (xN )] /h .           (1.22)
          ¸                  a s     a
Prin inductie, se demonstreaz˘ u¸or c˘
                                                           N −1
                                         ∆N −1 f (x1 )          f (xN )
       DD(xN , xN −1 , . . . , x1 ) =             N −1
                                                       =                ,       (1.23)
                                        (N − 1)!h        (N − 1)!hN −1
1.1. Aproximarea prin interpolare                                                         7


                     a                  a
unde exponentul indic˘ aplicarea repetat˘ a operatorului.
       a                   a
   Punˆnd variabila curent˘ x sub forma

                          x = xi + αh, α ∈ [0, N − 1] ,                          (1.24)

           ¸                                                       ¸
se poate obtine expresia polinomul de interpolare Newton cu diferente finite la
dreapta

     pN −1 (x) = y1 + α∆y1 + 1 α(α − 1)∆2 y1 + . . . + Cα −1 ∆N −1 y1 ,
                             2
                                                        N
                                                                                 (1.25)
      k
unde Cα , k = 0, 1, . . . , N −1 sunt coeficientii binomiali. Restul RN −1 (x) cap˘t˘
                                              ¸                                  aa
forma
                                             N
                       RN −1 (x1 + αh) = hN Cα f (N ) (ξ) .                      (1.26)

                     a                         ¸
Calculul se face alc˘tuind un tablou al diferentelor finite, similar cu tabloul
       ¸
diferentelor divizate.
    ˆ mod asem˘n˘tor, notˆnd
    In           a a       a

                         x = xN + βh, β ∈ [−N + 1, 0] ,                          (1.27)

     ¸                      ¸       a
se obtin expresii cu diferente la stˆnga
                                                                       N −1
  pN −1 (x) = yN + β yN + 1 β(β + 1)
                          2
                                            2
                                                yN + . . . + (−1)N −1 C−β     N −1
                                                                                     yN

                                               N
                   RN −1 (xN + βh) = (−1)N hN Cβ f (N ) (ξ) .                    (1.28)

Forma Lagrange a polinomului de interpolare.
                                                   a      ¸                 ¸
Polinomul de interpolare Lagrange se scrie alegˆnd functiile gk (x) din relatia
                                                                  s
(1.6) sub forma unor polinoame denumite polinoame Lagrange ¸i notate cu
Lk (x), k = 1, 2, ..., N . Aceste polinoame au expresiile
                                   N
                                         x − xj
                        Lk (x) =                 , k ∈ 1, N ,                    (1.29)
                                   j=1
                                         xk − xj

unde produsul       se ia pentru j = k. Se observ˘ direct din (1.29) c˘
                                                 a                    a

              Lk (xj ) = 0 dac˘ xj = xk ; Lk (xj ) = 1 dac˘ xj = xk .
                              a                           a                      (1.30)

Polinomul de interpolare Lagrange se scrie
                                           N
                            pN −1 (x) =          yk Lk (x) ,                     (1.31)
                                           k=1

deci coeficientii ak din expresia (1.6) sunt chiar valorile functiei f (x) ˆ noduri,
                  ¸                                            ¸          ın
                        a    t a                      at              a
ak = yk . Se verific˘ direct, ¸inˆnd cont de propriet˘¸ile (1.30) c˘ pN −1 (xi ) =
yi , i = 1, 2, ..., N .
8                                   1. Aproximarea functiilor de o variabila
                                                       ¸                   ˘


                  a
   Exemplu. Utilizˆnd primele patru noduri din tabelul 1, polinoamele Lagrange
sunt
                         (x − 2)(x − 3)(x − 5)    1
             L1 (x) =                          = − (x − 2)(x − 3)(x − 5),
                         (1 − 2)(1 − 3)(1 − 5)    8

                         (x − 1)(x − 3)(x − 5)  1
              L2 (x) =                         = (x − 1)(x − 3)(x − 5),
                         (2 − 1)(2 − 3)(2 − 5)  3

                         (x − 1)(x − 2)(x − 5)    1
             L3 (x) =                          = − (x − 1)(x − 2)(x − 5),
                         (3 − 1)(3 − 2)(3 − 5)    4

                         (x − 1)(x − 2)(x − 3)    1
             L4 (x) =                          =    (x − 1)(x − 2)(x − 3),
                         (5 − 1)(5 − 2)(5 − 3)   24
iar polinomul de interpolare este

         p3 (x) = 2L1 (x) + 3L2 (x) + 0L3 (x) + 6L4 (x) = x3 − 8x2 + 18x − 9 ,

                        ¸                       ¸
identic cu polinomul obtinut prin metoda diferentelor divizate. Aducerea polinomului
                 a        a a                                      a
la forma canonic˘ a fost f˘cut˘ numai pentru compararea celor dou˘ metode, nefiind
ın                 a ın
ˆ general necesar˘ ˆ calculul numeric.

         ¸          a
Convergenta interpol˘rii polinomiale globale.
                                  ¸                                   a
Expresiile restului RN −1 (x) obtinute la interpolarea polinomial˘ sugereaz˘ o   a
    s                         a         a                        s
cre¸tere a preciziei atunci cˆnd num˘rul N de noduri cre¸te. Spre exemplu,
                                                 s              a       ¸
ˆ cazul diviziunilor egale, expresiile (1.26) ¸i (1.28) indic˘ proportionalitatea
ın
abaterii cu hN (h fiind pasul diviziunii) dar ¸i cu alti factori cum ar fi derivata de
                                               s     ¸
                                           a      a         a        a
ordinul N . Interpolarea ar fi convergent˘ dac˘ atunci cˆnd num˘rul de puncte
de interpolare cre¸te indefinit N → ∞, restul scade oricˆt de mult RN −1 →
                   s                                           a
0. Se pune ˆıntrebarea: este interpolarea polinomial˘ ˆa ıntotdeauna convergent˘? a
  a                  a ıntrebare este negativ. ˆ a din 1901, Runge a dat exemplul
R˘spunsul la aceast˘ ˆ                         Inc˘
      ¸
functiei

                            f (x) = 1/(1 + x2 ), x ∈ [−5, 5] .

Se poate verifica faptul c˘ |RN −1 (x)| → ∞ cˆnd N → ∞, diviziunile intervalului
                          a                  a
                                                 a                     s
[−5, 5] fiind luate egale. Comportarea interpol˘rii pentru N = 6 ¸i N = 11 este
                                                                       a
redat˘ ˆ figura 1.1. Mai general, acest rezultat negativ se exprim˘ prin teorema
      a ın
                      a                                                    a      ¸
lui Faber care spune c˘ pentru orice diviziune a intervalului [a, b] exist˘ o functie,
              a ¸a                                                       s      a
chiar continu˘, fat˘ de care abaterea polinomului de interpolare cre¸te oricˆt de
mult cˆnd N → ∞. Faptul c˘ exist˘ sigur cel putin o functie pentru care
        a                        a       a              ¸            ¸
                         a      a
interpolarea polinomial˘ global˘ nu converge reduce aplicabilitatea practic˘ a    a
procedeului, acesta folosindu-se ˆ                              a
                                   ındeosebi ca o component˘ a altor algoritmi
numerici, pentru valori mici ale lui N .
1.1. Aproximarea prin interpolare                                                                 9




Figura 1.1: Polinoamele de interpolare pN −1 (x) cu N = 6, 11 suprapuse peste f (x).


                             a
Aspecte practice ale interpol˘rii polinomiale.
                                  s                 a
Evident, polinoamele Newton ¸i Lagrange difer˘ numai prin form˘, pentru  a
      s ¸                      s ın
aceea¸i retea restul fiind acela¸i ˆ ambele cazuri. Din punct de vedere al calcu-
                            a                                          a
lului numeric, este preferat˘ folosirea polinomului Newton ce necesit˘ un num˘ra
de operatii aritmetice mai mic, de O(3N 2 /2) fat˘ de O(4N 2 ) pentru polinomul
          ¸                                      ¸a
                                              s
Lagrange. Necesarul de memorie este acela¸i pentru ambii algoritmi. Pentru
                         a      a
polinomul Newton ar p˘rea c˘ este nevoie de o matrice suplimentar˘ pentru a
tabelul de diferente divizate. ˆ a din tabelul de diferente divizate se folosesc
                   ¸            Ins˘                       ¸
                         ¸       a
efectiv doar N coeficienti existˆnd posibilitatea refolosirii celulelor de memorie
precum ˆ algoritmul2
         ın
                       d←y
                       j=2:N
                                                                                            (1.32)
                         k = N : −1 : j
                           [dk ← (dk − dk−1 )/(xk − xk−j−1 )
ın        a             ¸                                         ¸ ın
ˆ urma c˘ruia diferentele divizate de pe diagonala tabelului se obtin ˆ vectorul
               ¸
d ce a fost initializat cu ordonatele y. Aceasta este partea cea mai costisitoare
a interpol˘rii Newton necesitˆnd O(3N 2 /2) operatii aritmetice. Evaluarea po-
          a                    a                    ¸
linomului ˆıntr-un punct u se face eficient prin schema lui Horner
                                  S ← dN
                                  j = (N − 1) : −1 : 1                                      (1.33)
                                    [S ← dj + (u − xj ) · S
   2 Am folosit notatia Matlab j = j
                    ¸                                                                   ¸       a
                                    ini : pas : jf in pentru bucle: variabila j este initializat˘ la
              s                   a                  ¸              a
valoarea jini ¸i apoi incrementat˘ cu pas. Instructiunile din bucl˘, delimitate de [ se execut˘    a
         a a a                  a                                ın                        ınt
repetat pˆn˘ cˆnd j > jf in Dac˘ pas nu este precizat, precum ˆ j = jini : jf in , se subˆ ¸elege
pas = 1.
10                                 1. Aproximarea functiilor de o variabila
                                                      ¸                   ˘




     Figura 1.2: Aproximarea functiei lui Runge f (x) printr-o linie poligonal˘ s(x).
                                 ¸                                            a


       a                       ¸                                 ıntr-un
necesitˆnd numai O(3N ) operatii. Evaluarea polinomului Lagrange ˆ
punct u necesit˘ O(4N 2 ) prin
               a

 S←0
 k=1:N
                                                
    P ←1                                          j =k+1:N
                                                 
   j =1:k−1                                        [P ← P · (u − xj )/(xk − xj )
  
   [P ← P · (u − xj )/(xk − xj )                  S ← S + yk · P


1.1.2                           ¸
             Interpolare cu functii spline
       a     a                        a      a
Am v˘zut c˘ interpolarea polinomial˘ global˘, pe tot intervalul [a, b], nu converge
ıntotdeauna. Desigur, dac˘ am reu¸i s˘ mic¸or˘m diviziunea f˘r˘ a modifica gra-
ˆ                          a         s a    s a               aa
dul polinomului de interpolare, rezultatul ar putea fi modificat. Spre exemplu,
                        ¸                                 a                   a
aproximarea unei functii derivabile cu o linie poligonal˘ se poate face oricˆt de
bine cˆnd num˘rul de laturi ale poligonului cre¸te infinit (fig. 1.2). Evident,
        a       a                                 s
     ¸            a                a           ¸
functia poligonal˘ nu se identific˘ cu o functie de gradul 1 deoarece depinde
s                      a
¸i de diviziunea aleas˘. Acest exemplu conduce la ideea de interpolare polino-
     a        ¸
mial˘ pe portiuni, la care pe fiecare subdiviziune a intervalului [a, b] definim un
                                   ¸            a
alt polinom de interpolare. Functia poligonal˘ este unul dintre exemplele cele
mai simple ale acestui tip de interpolare prin functii spline 3 . Aceste functii
                                                      ¸                          ¸
                                                                    a
sunt caracterizate prin formele lor pe subintervalele dintre dou˘ noduri (care
                   ¸             s                      ¸                ın
pot fi diverse functii cunoscute) ¸i prin anumite conditii de racordare ˆ noduri.
ˆ cele ce urmeaz˘, vom considera doar cazul functiilor spline polinomiale f˘r˘
In                a                                 ¸                           a a
deficient˘.¸a
  3 Se       s
         cite¸te “splain”.
1.1. Aproximarea prin interpolare                                               11




            Figura 1.3: Subintervalele de definire a unei functii spline.
                                                             ¸


Definitie. Fie [a, b] ⊂ R un interval pe dreapta real˘ ¸i xi , i = 1, 2, ..., N o
     ¸                                                   a s
      ¸                                                   a
    retea de puncte de diviziune (x1 = a, xN = b). Not˘m cu Ii subintervalele
    [xi , xi+1 ). Functia s : [a, b] → R se nume¸te functie spline polinomial˘ de
                      ¸                         s       ¸                    a
    ordinul m dac˘  a
                  ¸
        1. restrictiile ei pe subintervalele Ii sunt polinoame de gradul m, s|Ii =
           pm,i ;
        2. s este derivabil˘ de m − 1 ori pe intervalul [a, b], s ∈ C (m−1) [a, b].
                             a
               ¸      ¸    ın          ¸                ın
   A doua conditie contine ˆ sine conditia de racordare ˆ noduri
                 (k)               (k)
                pm,i (xi+1 ) = pm,i+1 (xi+1 ), k = 0, 1, . . . , m − 1 ,    (1.34)
     a                              a                                 a
adic˘ la frontiera xi+1 dintre dou˘ subintervale, polinomul din stˆnga pm,i ¸i   s
primele sale m − 1 derivate trebuie s˘ aibe acelea¸i valori cu ale polinomului
                                        a              s
din dreapta, pm,i+1 . ˆ afara intervalului [a, b] functia s se poate prelungi prin
                       In                              ¸
polinoame de grad ≤m. Conditiile de racordare ˆ noduri pot fi sl˘bite, astfel
                                 ¸                  ın                a
ˆ at functia s s˘ nu mai fie de clas˘ C (m−1) pe tot intervalul [a, b], ci s˘ fie
ıncˆ       ¸     a                     a                                      a
derivabil˘ de mai putine ori pe diverse subintervale. ˆ acest caz, obtinem functii
         a           ¸                                 In            ¸          ¸
                  ¸a
spline cu deficient˘.

    ¸                     ıntˆ                 a
Functia spline de ordinul ˆ ai (linia poligonal˘).
    ¸                     a                     ¸
Functia spline este format˘ din segmente de ecuatie
                       p1,i (x) = yi + mi (x − xi ), x ∈ [xi , xi+1 ),      (1.35)

                         mi = (yi+1 − yi )/hi , hi ≡ xi+1 − xi ,            (1.36)
                                                            ¸
mi reprezentˆnd panta pe intervalul Ii (vezi fig. 1.3). Functia spline de ordinul
             a
ıntˆ           a                  a              ¸
ˆ ai este simpl˘, dar nu furnizeaz˘ derivata functiei interpolate.
12                                   1. Aproximarea functiilor de o variabila
                                                        ¸                   ˘


    ¸
Functia spline de ordinul doi.
     ¸              a                       a            ın        a a
Functia este format˘ din segmente de parabol˘, racordate ˆ noduri pˆn˘ la
derivata de ordinul 1, inclusiv

     p2,i (x) = yi + mi (x − xi ) + ai (x − xi )2 , x ∈ [xi , xi+1 ), i ∈ 1, N − 1 .   (1.37)

                  a                             ¸
Forma polinomial˘ (1.37) satisface automat conditia p2,i (xi ) = yi prin modul
                 ¸
de scriere. Conditiile de racordare

                                      p2,i (xi+1 ) = yi+1                              (1.38)

             a            ¸                  ¸
conduc la urm˘toarele ecuatii pentru coeficientii ai

                       ai = (yi+1 − yi )/h2 − mi /hi , i ∈ 1, N − 1 .
                                          i                                            (1.39)

                           ¸
Eliminarea lui ai din conditiile de racordare

                                       p2,i (xi+1 ) = yi+1 ,
                                                                                       (1.40)
                                 p2,i (xi+1 ) = p2,i+1 (xi+1 ) ,

care se pot scrie ˆ nodurile xi , i = 1, 2, 3, . . . , N − 2 conduce la sistemul
                  ın

                      mi + mi+1 = 2(yi+1 − yi )/hi , i ∈ 2, N − 1 ,                    (1.41)

                                 a     ¸
ce trebuie completat cu o singur˘ conditie. Spre exemplu, se poate da panta la
                                                              ¸
unul din capetele intervalului (m1 sau mN ). Necesitatea conditiei suplimentare
                    a                            ¸                ın       a ın
provine din faptul c˘ nu mai putem impune conditia de racordare ˆ derivat˘ ˆ
nodul xN . ˆ ambele cazuri, sistemul devine determinat:
            In

           1. m1 dat duce la substituirea

                            mi+1 = 2(yi+1 − yi )/hi − mi , i ∈ 1, N − 1 ;              (1.42)

           2. mN dat permite retrosubstituirea


                            mi = 2(yi+1 − yi )/hi − mi+1 , i ∈ N − 1, 1 .              (1.43)

    ¸                                   a
Functia spline de ordinul trei sau cubic˘.
                                      ¸            a                       a a
Este una din cele mai utilizate functii spline, avˆnd derivate continue pˆn˘ la
                                                              a           ¸
ordinul doi inclusiv, ceea ce permite calculul razei de curbur˘. Din conditiile de
                          a a
continuitate pe noduri pˆn˘ la derivata de ordinul 2 inclusiv

                                      p3,i (xi+1 ) = yi+1 ,
                                p3,i (xi+1 ) = p3,i+1 (xi+1 ) ,                        (1.44)
                                p3,i (xi+1 ) = p3,i+1 (xi+1 ) ,
1.1. Aproximarea prin interpolare                                                         13


pentru i = 1, 2, 3, . . . , N − 2, se deduc coeficientii polinomului de gradul 3
                                                    ¸

               p3,i (x) = yi + mi (x − xi ) + bi (x − xi )2 + ai (x − xi )3            (1.45)

care reprezint˘ comportarea functiei spline pe fiecare subinterval (xi , xi+1 ), i ∈
              a                 ¸
1, N − 1

                      ai = (mi+1 + mi )/h2 − 2(yi+1 − yi )/h3 ,
                                         i                  i                          (1.46)


                      bi = 3(yi+1 − yi )/h2 − (mi+1 + 2mi )/hi .
                                          i                                            (1.47)

                                  ın
Pantele pe noduri, mi , sunt date ˆ acest caz de sistemul

                       ρi mi−1 + 2mi + λi mi = di , i ∈ 2, N − 2                       (1.48)

                           a      ¸                          ¸
ce trebuie completat cu dou˘ conditii, pentru a suplini conditiile de racordare
ın       s               a                        ın            a         ¸
ˆ prima ¸i a doua derivat˘ ce nu mai pot fi scrise ˆ xN . S-au f˘cut notatiile

                  ρi ≡ hi /(hi−1 + hi ), λi ≡ 1 − ρi , hi ≡ xi+1 − xi ,                (1.49)

                   di ≡ 3 [λi (yi+1 − yi )/hi + ρi (yi − yi−1 )/hi−1 ] .

                      ¸                            a                    a
    Sistemul de conditii de racordare impuse las˘ de data aceasta dou˘ grade de
                                                          s
libertate, ce pot fi precizarea pantelor la capete, m1 ¸i mN , sau, mai general,
                    ¸ ın                 a
precizarea unei relatii, ˆ general liniar˘, ale acestor pante cu pantele vecine, de
forma
                                    2m1 + λ1 m2 = d1
                                                       .                               (1.50)
                                 ρN mN −1 + 2mN = dN .

ˆ relatiile (1.50), coeficientii λ1 , d1 , ρN , dN sunt dati prin natura conditiilor
In     ¸                    ¸                            ¸                   ¸
                                                     s          ¸
puse la capetele intervalului, deci nu sunt dedu¸i din relatiile (1.49) care nu
                            s
sunt definite pentru i = 1 ¸i i = N . Spre exemplu, a da pantele m1 ¸i mN   s
revine la a impune

                       λ1 = 0, d1 = 2m1 , ρN = 0, dN = 2mN .

                      ¸                                ¸
Sistemul de N ecuatii cu N necunoscute Am = d, obtinut prin reuniunea egali-
 at            s                                 a                ıntˆ
t˘¸ilor (1.48) ¸i (1.50), are matrice tridiagonal˘. Ne punem mai ˆ ai problema
        ¸             ¸                                                  ¸
existentei unei solutii. Elementele din matricea A rezultate din conditiile de
racordare (1.48) sunt diagonal dominante pe linii, adic˘ 2 > |ρi | + |λi | = 1.
                                                          a
                                      a      ın                  a
Cum o matrice diagonal dominant˘ este, ˆ general, inversabil˘, este suficient
ca ¸i conditiile suplimentare (1.50) s˘ p˘streze aceast˘ proprietate. Practic,
    s       ¸                            a a             a
                           a    a                ¸                  s
problema este rezolvabil˘ dac˘ impunem conditii necontradictorii ¸i distincte.
                        a                                                 a
    Forma tridiagonal˘ a matricei A permite o rezolvare foarte eficient˘ prin
descompunerea matricei ˆ   ıntr-un produs de dou˘ matrice bidiagonale4 A = L · R
                                                 a
   4 Un caz particular al factoriz˘rii Doolittle ce va fi prezentat˘ ˆ capitolul 5, cunoscut ca
                                  a                               a ın
algoritmul lui Thomas.
14                                        1. Aproximarea functiilor de o variabila
                                                             ¸                   ˘


sau explicit
                                               r            ···
                                                                                     
             1
               
                     0      ···       0    0       1     λ1            0       0
            l2      1      ···       0    0                ..                     
                                                0       r2      .     0       0     
                                      .    .
                                             
                           ..        .    .                ..
                                                                                     
         A= 0
                    l3        .      .    . ·
                                               0       0       .   λN −2     0     .
                                                                                     
            .        .     ..                                                       
            .        .                    0   .       .     .
                                              
              .       .       .       1           .
                                                  .      .
                                                         .     .
                                                               .     rN −1   λN −1
                                                                                     
                                                                                     
             0       0      ···      lN    1     0       0    ···      0      rN

          ¸           ¸                       s                                   a
Coeficientii necunoscuti ri , i = 1, 2, ..., N ¸i li , i = 2, 3, ..., N se determin˘ prin
                                 s
identificarea elementelor din A ¸i din matricea produs. Elementele supradiago-
nalei din matricea R au fost deja identificate. Determinarea pantelor se bazeaz˘        a
pe asociativitatea produsului de matrice

                                 (L · R) · m = L · (R · m) = d .

Introducem vectorul z = R · m. Etapele algoritmului sunt

     1. factorizarea A = L · R
                                   r1 ← 2;
                                   i=2:N
                                     [li ← ρi /ri−1 ;   ri ← 2 − li λi−1

     2. rezolvarea sistemului bidiagonal L · z = d

                                           z1 ← d1
                                           i=2:N
                                             [zi ← di − li zi−1

     3. rezolvarea sistemului bidiagonal R · m = z

                                       mN ← zN /rN
                                       i = (N − 1) : −1 : 1
                                         [mi ← (zi − λi mi+1 )/ri

          ¸                                               ¸
Observatii. 1. Un caz particular important de functie spline de ordinul trei
                    a                                            ¸     ın
este cel al interpol˘rii spline cubice naturale definit prin conditiile ˆ capete

                                       s (x1 ) = s (xN ) = 0

ceea ce conduce la

                                   2m1 + m2 = 3(y2 − y1 )/h1 ,


                          mN −1 + 2mN = 3(yN − yN −1 )/hN −1 ,                            (1.51)
1.1. Aproximarea prin interpolare                                                      15


    a
adic˘

     λ1 = 1, d1 = 3(y2 − y1 )/h1 , ρN = 1, dN = 3(yN − yN −1 )/hN −1 ,              (1.52)

       ¸                                     a                        ¸
cu notatiile anterioare. Se poate demonstra c˘ impunerea acestor conditii de
   a              a
cap˘t minimizeaz˘ integrala
                                        xN
                                                   2
                                 I=          [f (x)] dx ,                           (1.53)
                                       x1

unde f (x) este functia exact˘, necunoscut˘, de clas˘ C (2) [a, b] ce este aproximat˘
                      ¸        a               a         a                                a
de interpolarea spline. Minimizarea integralei (1.53) prin impunerea conditiilor    ¸
naturale (1.51) conduce la cea mai neted˘ interpolare spline cubic˘. ˆ absenta
                                               a                         a In           ¸
               ¸                            ın                                a
unor informatii precise asupra pantelor ˆ capete m1 , mN , se recomand˘ folosirea
       ¸                                    a
conditiilor naturale ce conduc de regul˘ la minizarea erorii de interpolare.
                a
    2. Folosit˘ pentru reprezentarea unor curbe date (traiectorii ale unei scule,
                                     ¸                 a
profile aerodinamice, etc.), functia spline cubic˘ poate avea abateri ˆ zonele  ın
                                               a        a
cu pante mari. De aceea, se recomand˘ verific˘ri mai atente ˆ vecin˘tateaın        a
nodurilor cu pante mari, mi ≥ 5.
                  ¸              ¸
    3. Restrictiile unei functii spline s(x) pe intervalele Ii nu trebuie s˘ fie     a
                                                     ¸
obligatoriu polinoame. Se pot racorda alte functii, sau polinoame cu alte functii       ¸
                                                             ¸
– spre exemplu, cercuri cu polinoame. Aceste combinatii pot fi avantajoase ˆ             ın
          a
cazul cˆnd pantele pe noduri sunt mari.
    4. Pentru interpolarea spline nu s-a dedus o expresie a erorii de aproxi-
                      a       a                                   a
mare, de o manier˘ direct˘ ca la interpolarea polinomial˘. S-a retinut doar  ¸
         ¸   a        ¸            a                      a   a
afirmatia c˘, o functie continu˘ poate fi aproximat˘ oricˆt de bine pe tot inter-
                         a         a                      s       a
valul [x1 , xN ] atunci cˆnd num˘rul de diviziuni cre¸te, adic˘ interpolarea spline
este ˆıntotdeauna convergent˘. Deoarece derivata de ordinul m, s(m) , a unei
                                a
     ¸                                    ¸           a          a         ¸
functii spline polinomiale este o functie treapt˘ (constant˘ pe portiuni), iar o
     ¸           a            a      a                   ¸          a
functie treapt˘ aproximeaz˘ oricˆt de bine o functie continu˘ pe interval cˆnd        a
     a                     s                                       ın     ¸
num˘rul de diviziuni cre¸te, se poate da o evaluare a erorii ˆ functie de abate-
rea maxim˘ ˆ a ıntre derivatele f (m) (x) ¸i s(m) (x), presupunˆnd c˘ f (m) (x) exist˘
                                          s                     a     a                   a
s
¸i este continu˘  a

           max |f (x) − s(x)| ≤ (b − a)m max f (m) (x) − s(m) (x) /m! .

                                          a                            a
Pentru m = 1, marginea erorii reprezint˘ tocmai produsul dintre m˘rimea inter-
        s          ¸       a
valului ¸i diferenta maxim˘ de pante ˆ ıntre functia f ¸i linia poligonal˘. Aceast˘
                                                 ¸     s                 a        a
                         ıns˘      a          ¸
evaluare nu corespunde ˆ a neap˘rat functiei spline de interpolare, dar suge-
reaz˘ o anumit˘ relatie cu modul ˆ care functia treapta s(m) (x) aproximeaz˘
    a            a    ¸             ın           ¸                                a
                              ¸
derivata de ordinul m a functiei f (x).
                                                  a                ¸
    Exemplu. Vom considera problema interpol˘rii spline a functiei lui Runge f (x) =
1/(1+x2 ) pe intervalul [−5, 5] pentru care am v˘zut c˘ interpolarea polinomial˘ global˘
                                                a     a                        a       a
e¸ueaz˘. Se adopt˘ o diviziune echidistant˘ a intervalului cu h = [5 − (−5)]/(N − 1),
 s     a           a                         a
xk = x1 + (k − 1)h, k ∈ 1, N . Se vor considera trei tipuri de conditii ˆ capete:
                                                                     ¸ ın
    1. precizarea valorilor exacte ale pantei m1 = f (−5), mN = f (5) ceea ce conduce
la λ1 = 0, d1 = 2f (−5), ρN = 0, dN = 2f (5) ;
16                                     1. Aproximarea functiilor de o variabila
                                                          ¸                   ˘




 Figura 1.4: Logaritmul zecimal al erorii relative la interpolarea spline a f, f , f .


   2. extrapolarea liniar˘ a pantelor adiacente m1 = m2 , mN −1 = mN ceea ce
                           a
conduce la λ1 = −2, d1 = 0, ρN = −2, dN = 0 ;
   3. conditii naturale (1.52).
            ¸
                     a              a
   Calitatea aproxim˘rii se apreciaz˘ prin evaluarea erorilor relative
                        1000
                 εk =          f (k) (ui ) − s(k) (ui ) / f (k) (ui ) , k = 0, 1, 2
                        i=1


pentru diverse valori ale lui N unde {ui , i ∈ 1, 1000} este o diviziune echidistant˘ a
   a                                                      ın
fin˘ a intervalului [−5, 5]. Rezultatele sunt prezentate ˆ figura (1.4). Se observ˘     a
 a                               a                a a a                  s
c˘ interpolarea este convergent˘, eroarea relativ˘ sc˘zˆnd rapid cu cre¸terea lui N .
               a                            ¸         a
Pentru un num˘r mic de puncte toate conditiile de cap˘t dau rezultate comparabile. Pe
  a a                                        a                           ¸         ¸
m˘sur˘ ce diviziunea devine suficient de fin˘ pentru a descrie precis variatiile functiei,
     ¸                               a     a             s
conditiile exacte dau eroarea minim˘ dup˘ cum era de a¸teptat, urmate de conditiile¸
          s                                                 a
naturale ¸i apoi de cele de extrapolare a pantei. Se remarc˘ pierderea a 1,2 ordine de
                   a ın              a
precizie a aproxim˘rii ˆ urma deriv˘rii.


1.1.3                        ¸
          Interpolare cu functii trigonometrice
                       a                a        a                             ¸
Interpolarea polinomial˘ nu este adecvat˘ aproxim˘rii tuturor tipurilor de functii.
                           a                ¸
Vom considera acum o alt˘ alegere a functiilor liniar independente din (1.6),
           ¸
anume functiile trigonometrice (fig. 1.5)

                 cos(2πkx), k ∈ 0, N ; sin(2πmx), m ∈ 1, N − 1 .                      (1.54)

       a    a                         ın                  ¸
Aceast˘ baz˘ este deosebit de eficace ˆ aproximarea functiilor periodice f (x) =
                ¸                      a        a
f (x + 1). Functiile periodice cu o alt˘ perioad˘ f (z) = f (z + T ) pot fi aduse
la forma anterioar˘ prin transformarea x = z/T . ˆ cazul interpol˘rii cu functii
                   a                              In               a          ¸
1.1. Aproximarea prin interpolare                                                                17




                 Figura 1.5: Primele 11 functii din baza trigonometric˘.
                                            ¸                         a


                    ¸           s          ımpreun˘ formeaz˘ o baz˘5 . Avem un
trigonometrice, functiile sinus ¸i cosinus ˆ      a         a     a
     a             ¸ ın         a      a
num˘r de 2N functii ˆ aceast˘ baz˘. Ca atare, vom considera un num˘r par a
2N de puncte de diviziune echidistante pe intervalul [0, 1]

                                 xj = j/2N, j ∈ 0, 2N − 1 .                                  (1.55)

         a         a                     a    a                at
Se verific˘ direct c˘ setul (1.54) prezint˘ urm˘toarele propriet˘¸i de ortogonali-
tate pe multimea discret˘ de puncte {xi } = {0, 1/2N, 2/2N, ..., (2N − 1)/2N }
            ¸            a

                                              
                2N −1                          0,     k=m
                        cos 2πkxj cos 2πmxj =   N, k = m = 0, N                              (1.56)
                                                2N, k = m = 0, N
                                              
                 j=0



 2N −1                                                       2N −1
                                        0, k = m
         sin 2πkxj sin 2πmxj =                   ;                   cos 2πkxj sin 2πmxj = 0 ,
                                        N, k = m
  j=0                                                         j=0


∀k ∈ 0, N , m ∈ 1, N − 1 . Demonstratia se construie¸te prin transformarea
                                          ¸                s
                    ¸                 ın                s
produselor de functii trigonometrice ˆ sume de sinus ¸i cosinus. Acestea se pot
ınlocui cu functii exponentiale, sin x = (eix − e−ix )/2i, cos x = (eix + e−ix )/2,
ˆ              ¸           ¸
      a
rezultˆnd progresii geometrice simplu de ˆ  ınsumat (vezi ¸i 1.1.4).
                                                          s
   5 Strict vorbind doar multimea infinit˘ {1, cos x, sin x, cos 2x, sin 2x, . . . } formeaz˘ o baz˘ a
                            ¸           a                                                  a      a
   ¸              ¸    a                  a                 ¸                         ¸
spatiului de functii. P˘strarea unui num˘r finit de functii conduce la aparitia unor erori ce
vor fi considerate mai jos.
18                                          1. Aproximarea functiilor de o variabila
                                                               ¸                   ˘


          a                ¸         a
    Utilizˆnd setul de functii de baz˘ (1.54), aproximanta prin interpolare se
scrie sub forma polinomului Fourier
                        N −1
     g(x) = 1 a0 +
            2                  [ak cos(2πkx) + bk sin(2πkx)] + 1 aN cos 2πN x ,
                                                               2                                   (1.57)
                        k=1

                     ¸
ce satisface 2N conditii de interpolare

                               g(xj ) = f (xj ) ≡ yj , j ∈ 0, 2N − 1 .

         ¸                      a                        at
Coeficientii ak , bk se determin˘ prin utilizarea propriet˘¸ilor de ortogonalitate
                 a                                  ¸
(1.56). Prezent˘m calculul doar pentru coeficientii bk . Polinomul (1.57) se
        a ın                  ¸     ¸    a            a
evalueaz˘ ˆ punctele xj , relatia obtinut˘ se amplific˘ cu sin 2πmxj iar apoi se
calculeaz˘ suma de la j = 0 la j = 2N − 1
         a

 2N −1                         a0   2N −1                     N −1         2N −1
         yj sin 2πmxj =                     sin 2πmxj +               ak           (cos 2πkxj sin 2πmxj ) +
  j=0                          2     j=0                      k=1          j=0
              2N −1                                      aN    2N −1
         bk           (sin 2πkxj sin 2πmxj ) +                         (cos 2πN xj sin 2πmxj ) .
              j=0                                         2     j=0


                                       ınsumare din relatia de mai sus ce per-
Se poate observa schimbarea ordinii de ˆ                ¸
                        ¸ a
mite aplicarea (1.56) obtinˆndu-se
                2N −1                                 2N −1
                        g(xj ) sin(2πmxj ) =                  yj sin(2πmxj ) = bm N .
                 j=0                                  j=0

                              ¸          ¸                 ¸
Un calcul analog pentru ceilalti coeficienti conduce la relatiile
                             2N −1                                   2N −1
                         1                                      1
                ak =                 yj cos 2πkxj , bm =                     yj sin 2πmxj          (1.58)
                         N     j=0
                                                                N     j=0


cu k ∈ 0, N , m ∈ 1, N − 1.
    ˆ aplicatii, coeficientii ak , bk se evaluez˘ mult mai economic decˆt prin
    In        ¸           ¸                     a                          a
                                                               a
calculul direct al sumelor de mai sus prin folosirea transform˘rii Fourier rapide
prezentate ˆ 1.1.4. Se poate lesne observa din (1.58) c˘ vom avea toti ak = 0
            ın                                            a             ¸
pentru functii impare f (−x) = −f (x) ¸i toti bm = 0 pentru functii pare f (−x) =
            ¸                           s ¸                      ¸
f (x).
          ¸                                     ın                    s      a
    Aparitia unei oarecare asimetrii – termenii ˆ cos sunt mai numero¸i decˆt cei
ın                 a                      a                      ın
ˆ sin – este legat˘ de alegerea unui num˘r par de 2N intervale ˆ care se divide
                ¸      a                                       ¸
perioada functiei. Dac˘ se aleg 2N + 1 intervale, forma functiei de interpolare
este
                                            N
                      g(x) = 1 a0 +
                             2                   [ak cos(2πkx) + bk sin(2πkx)] ,
                                           k=1
1.1. Aproximarea prin interpolare                                                            19


        ¸      s            ¸
coeficientii ak ¸i bk fiind dati de
                           2N                                    2N
                   2                                     2
          ak =                   yj cos 2πkxj , bm =                   yj sin 2πmxj ,
                 2N + 1    j=0
                                                       2N + 1    j=0

cu k ∈ 0, N , m ∈ 1, N , xj = j/(2N + 1).

         ¸          a
Convergenta interpol˘rii trigonometrice.
                            a                              ın
Se pot determina exprim˘ri ale erorii de interpolare ˆ genul restului RN −1 (x)
                                as                                      a
de la interpolarea polinomial˘ ¸i pentru interpolarea trigonometric˘. Expresiile
   ¸            ıns˘              a          a                a
obtinute sunt ˆ a sub o form˘ integral˘ greu utilizabil˘ practic. Vom prefera
        ¸          ¸          a          s             ¸                    a
o discutie mai putin formal˘ a erorii ¸i convergentei procedeului. Dac˘ functia   ¸
                          ın                    a          a
f admite o dezvoltare ˆ serie Fourier m˘rirea num˘rului de noduri conduce
la aproximatii din ce ˆ ce mai bune. ˆ
              ¸         ın                   Intr-adev˘r, ridicˆnd expresia (1.57) la
                                                      a        a
  a
p˘trat membru cu membru, ˆ             a                         s t a
                                 ınsumˆnd valorile pe noduri ¸i ¸inˆnd seama de
relatiile de ortogonalitate (1.56), se obtine
     ¸                                     ¸
                                 N −1                             2N −1
                     1 2 1                          1      1
                      a +               (a2 + b2 ) + a2 =                  2
                                                                          yj             (1.59)
                     4 0 2                k    k
                                                    4 N   2N       j=0
                                 k=1

    ¸             a                                  a       a          s
relatie denumit˘ egalitatea lui Parseval discret˘. Cˆnd N cre¸te, suma din
                                             1
membrul drept se aproprie de integrala 0 y 2 dx. Dac˘ integrala este m˘rginit˘6
                                                           a                a        a
                          a       a                        a                ¸
suma este de asemenea m˘rginit˘. Ca urmare, seria p˘tratelor coeficientilor este
convergent˘, ceea ce arat˘ c˘ a2 , b2 devin din ce ˆ ce mai mici cˆnd N cre¸te.
            a             a a k k                      ın                 a        s
                             a       s                   a               ¸
Interpolarea trigonometric˘ este a¸adar convergent˘ pentru functii f continue
                a                      at                          ¸
sau cu un num˘r finit de discontinuit˘¸i – acestea fiind conditii suficiente pentru
                   ¸                                                ¸
a asigura existenta integralei anterioare. Stabilirea convergentei este important˘    a
pentru validarea interpol˘rii trigonometrice. ˆ aplicatii ˆ a mai apar ¸i alte
                           a                       In         ¸ ıns˘            s
                       a
aspecte ale comport˘rii erorii la interpolare. Vom considera doar dou˘ mai      a
                                     ¸ s                       a
importante: rapiditatea convergentei ¸i efectul consider˘rii doar a unui num˘r       a
              ¸                 ın
finit de functii trigonometrice ˆ dezvoltarea (1.57).
      a a ıncerca o definitie formal˘, vom spune c˘ o interpolare trigonome-
    F˘r˘ a ˆ                 ¸         a                  a
    a                        a    a      a                                  a
tric˘ este rapid convergent˘ dac˘ num˘rul de termeni N necesar realiz˘rii unei
precizii impuse a aproxim˘rii este “mic”. ˆ ¸elesul cuvˆntului “mic” depinde
                            a                   Int            a
de aplicatie, dar un domeniu orientativ ar fi 2 ≤ N ≤ 128. Urm˘rirea fig. 1.5
          ¸                                                              a
         a a                                    ın
sugereaz˘ c˘ includerea mai multor termeni ˆ polinomul Fourier (1.57) permite
                     ¸          ¸
descrierea unei functii cu variatii mai rapide pe intervalul [0, 1]. Fie ∆x cea mai
    a        ¸a             a               ¸                  ¸              a
mic˘ distant˘ de pe abscis˘ pe care functia f are o variatie semnificativ˘. Deo-
                                   a                            ¸       ¸
arece f are perioada 1, spunem c˘ ν = 1/∆x este frecventa variatiilor celor mai
                ¸                             ¸                       ¸
rapide ale functiei. Pentru a descrie variatiile date de frecventa cea mai rapid˘     a
a functiei f polinomul (1.57) trebuie s˘ contin˘ un num˘r de termeni N ≥ ν.
       ¸                                  a      ¸ a             a
                                                                             a
Acest rezultat este cunoscut sub numele de criteriul Nyquist ce rezult˘ dintr-
                                                  s
un rezultat mai general denumit teorema de e¸antionare Shannon. Observati c˘      ¸ a
   6ˆ                        a    a                 a               a
    Intr-o formulare riguroas˘ dac˘ y = f (x) este p˘trat integrabil˘ pe [0, 1], ceea ce se scrie
f ∈ L2 [0, 1].
20                                  1. Aproximarea functiilor de o variabila
                                                       ¸                   ˘




Figura 1.6: Comportarea polinoamelor trigonometrice cu N = 8, 16, 32, 64 la inter-
            ¸          a      a a              s
polarea functiei treapt˘. Pe m˘sur˘ ce N cre¸te, interpolarea se aproprie mai mult de
    ¸        a a a ıns˘                 ¸     ın
functia exact˘ f˘r˘ ˆ a a elimina oscilatiile ˆ zona punctelor de discontinuitate.


                               ¸ ın
pentru a avea N frecvente ˆ polinomul (1.57) este nevoie de 2N puncte (xj , yj ).
                                      a                           a
De aici o formulare echivalent˘ a criteriului Nyquist este ca num˘rul de noduri
 a                       a              ¸
s˘ fie minim de dou˘ ori frecventa cea mai rapid˘.      a
        a                 ¸                          s   a
    Dac˘ f are variatii lente atunci ν este mic ¸i num˘rul de termeni din poli-
                                               ¸         ¸           ıns˘
nomul (1.57) este de asemenea mic. Functiile cu variatii rapide au ˆ a ν mare
       a                a                     ın
necesitˆnd un num˘r mare de termeni ˆ polinomul (1.57). Cea mai rapid˘           a
frecvent˘ de variatie posibil˘ a unei functii ar fi ν → ∞ ceea ce corespunde
       ¸a             ¸             a           ¸
                    a       a                     at
la ∆x = 0, adic˘ f s˘ prezinte discontinuit˘¸i. Cum nu vom putea ˆ      ındeplini
niciodat˘ criteriul Nyquist N ≥ ∞ pentru functii discontinue, interpolarea tri-
         a                                           ¸
             a                             ın
gonometric˘ va avea erori mai mari ˆ asemenea cazuri. Erorile ce apar sunt
               ın                       at                     a
concentrate ˆ jurul discontinuit˘¸ilor, comportare cunoscut˘ sub denumirea de
fenomenul Gibbs. Un exemplu faimos al fenomenul Gibbs este aproximarea unui
semnal dreptunghiular y(x) = 1 pentru n < x < n + 1/2, y(x) = −1 pentru
n + 1/2 < x < n + 1 ¸i y(n + 1/2) = 0 cu n ∈ N, exemplu prezentat ˆ fig.
                              s                                            ın
           s      a     s                                 a a
1.6. Ne a¸tept˘m a¸adar ca interpolarea trigonometric˘ s˘ fie lent convergent˘    a
             ¸                   s                a          ¸                 ¸
pentru functii discontinue ¸i rapid convergent˘ pentru functii netede, cu variatii
lente.

     S˘ presupunem acum c˘ nu este ˆ
       a                     a        ındeplinit criteriul Nyquist7 ¸i am luat un
                                                                     s
      a                              ın
num˘r prea mic N < ν de termeni ˆ dezvoltarea (1.57). Ne punem problema
dac˘ coeficientii ak , bk k ≤ N determinati prin relatiile (1.58) sunt corecti, adic˘
     a        ¸                          ¸          ¸                      ¸       a
          s           ın       ın                                  a      a
au acelea¸i valori ca ˆ cazul ˆ care criteriul Nyquist ar fi satisf˘cut. R˘spunsul
                a
este negativ. S˘ refacem calculul anterior ce a furnizat valorile coeficientilor ¸
                                                             a        ¸
bk , de data aceasta pentru dezvoltarea Fourier complet˘ a functiei f ce are
  7 Deoarece       ¸          ın                  as                    s           ¸
               functia f este ˆ general necunoscut˘ ¸i ca atare nu cunoa¸tem frecventa ν.
1.1. Aproximarea prin interpolare                                                      21


        ¸       ¸
coeficientii exacti αk , βk
                                   ∞
                  f (x) = 1 α0 +
                          2              [αk cos(2πkx) + βk sin(2πkx)] .            (1.60)
                                   k=1

Ca mai ˆ  ınainte, evalu˘m (1.60) ˆ xj , ˆ
                         a        ın          ¸                s ınsum˘m de la
                                         ınmultim cu sin 2πmxj ¸i ˆ    a
j = 0 la j = 2N − 1. Urm˘rim doar termenii cu produse de functii sinus –
                               a                                     ¸
ceilalti dau contributii nule conform (1.56) –
      ¸                ¸
   2N −1                           2N −1         2N −1
   j=0     f (xj ) sin 2πmxj =     k=1      βk   j=0     (sin 2πkxj sin 2πmxj ) +
                                   4N −1         2N −1
                                   k=2N     βk   j=0     (sin 2πkxj sin 2πmxj ) +    ...+
                              2(p+1)N −1         2N −1
                              k=2pN         βk   j=0     (sin 2πkxj sin 2πmxj ) +    ... .

ˆ a sin 2π(2pN + k)xj = sin 2πkxj pentru xj = j/(2N ). Se obtine a¸adar
Ins˘                                                        ¸     s

                         bm = βm + βm+2N + βm+4N + . . . ,

                     ¸           ¸
altfel spus contributiile frecventelor mari m + 2N, m + 4N, . . . apar mascate ˆ      ın
coeficientul bm . Fenomenul de mascare8 impune s˘ urm˘rim ˆ aplicatii variatia
                                                       a       a    ın       ¸       ¸
                                                 (2N )   (2N )
coeficientilor ak , bk la dublarea lui N . Fie ak , bk
         ¸                                                              ¸
                                                                coeficientii determinati¸
                              (4N )   (4N )
folosindu-se 2N puncte ¸i ak , bk
                           s                         ¸               ¸
                                            coeficientii determinati folosindu-se 4N
                  (2N ) ∼ (4N )     (2N ) ∼ (4N )
              a
puncte. Dac˘ ak         = ak , b k         = bk     pentru k ≤ N atunci num˘rul    a
de puncte a fost considerat suficient de mare pentru a elimina fenomenul de
mascare.
                                                a a                    ¸
    Exemplu. Folosind interpolarea trigonometric˘ s˘ se aproximeze pozitia punctelor
situate pe elipsa

                                    x2 /a2 + y 2 /b2 = 1 .

              ın             a                                                    a
Rezolvare. Ca ˆ orice problem˘ de aproximare, alegerea variabilelor este important˘.
               ın                                             a          a
Reprezentarea ˆ coordonate carteziene x, y este dezavantajoas˘, conducˆnd la dou˘  a
    ¸
functii

                                   y = ±b     1 − x2 /a2 .

De aceea se prefer˘ coordonatele polare r, φ sau coordonatele paramametrice r, t. ˆ
                  a                                                               In
                                                             a        ¸
coordonatele polare x = r cos φ, y = r sin φ, elipsa este dat˘ de functia
                                                              −1/2
                          r(φ) = ab a2 sin 2 φ + b2 cos 2 φ          ,

cu φ ∈ [0, 2π]. Functia r(φ) are perioada 2π. O aducem la perioada 1 prin transfor-
                    ¸
marea s = φ/2π,
                                                                −1/2
                        r(s) = ab a2 sin 2 2πs + b2 cos 2 2πs            .


  8 Comportarea               a                                  a
                  este descris˘ deseori prin denumirea din englez˘ de aliasing.
22                                 1. Aproximarea functiilor de o variabila
                                                      ¸                   ˘




Figura 1.7: Variatia erorii relative la interpolarea trigonometric˘ a unor elipse. Re-
                 ¸                                                a
                                         a
zultatele pentru reprezentarea parametric˘ sunt unite cu linii.


    ˆ reprezentarea parametric˘, elipsa este descris˘ de x = a cos t, y = b sin t, astfel
    In                        a                     a
ıncˆ    ¸
ˆ at obtinem
                                                               1/2
                             r(t) = a2 sin 2 t + b2 cos 2 t

cu t ∈ [0, 2π]. Aducem functia la perioada 1 prin s = t/2π ¸i avem o a doua reprezen-
                           ¸                               s
tare
                                                                     1/2
                          r(s) = a2 sin 2 2πs + b2 cos 2 2πs

                                                                   a     ın
Vom nota prin gN (s) polinomul trigonometric ce interpoleaz˘ r(s) ˆ 2N puncte echi-
                    ın                             a                     a
distant repartizate ˆ intervalul [0, 1]. Evalu˘m calitatea interpol˘rii pentru diverse
                                                                                          a
valori ale lui N = 4, 8, . . . , 256 prin calculul erorii relative pe o diviziune mai deas˘
{σj = j/2048, j ∈ 0, 2048}
                                 4N
                          εN =         |r(σj ) − gN (σj )| / |r(σj )| .
                                 j=0

                a       s
Presupunem c˘ a = 1 ¸i vom studia comportarea erorii relative pentru mai multe valori
           ın         a            a
ale lui b, ˆ cele dou˘ reprezent˘ri adoptate.
    Rezultatele sunt prezentate ˆ fig. 1.7. ˆ toate cazurile, interpolarea este conver-
                                    ın       In
     a        a a             s                                             a
gent˘: pe m˘sur˘ ce N cre¸te eroarea se aproprie de zero. Cea mai rapid˘ convergent˘    ¸a
      ¸                                   ¸                            ¸
se obtine pentru a/b = 1/2 deoarece functia ce descrie elipsa are variatii lente pe inter-
                    a       a                            a    a
valul [0, 1]. Odat˘ cu sc˘derea raportului a/b, observ˘m c˘ este nevoie de un num˘r     a
                         ın                                         ¸
mai mare de termeni ˆ polinomul trigonometric pentru a se obtine o precizie dat˘.       a
                  ¸          ın               s                        ¸
Elipsa are variatii rapide ˆ punctele (±1, 0) ¸i este nevoie de mai multi termeni pentru
a satisface criteriul Nyquist. ˆ plus, este de a¸teptat ca aproximarea s˘ fie afectat˘ ¸i
                                In               s                        a            as
                       ın                                ¸        ¸
de fenomenul Gibbs ˆ zona punctelor (±1, 0) – variatiile functiilor sunt ˆ           a
                                                                              ıntr-atˆt de
1.1. Aproximarea prin interpolare                                                       23


        ıncˆ                                            a      a     s               at
rapide ˆ at nesatisfacerea criteriului Nyquist le face s˘ apar˘ ca ni¸te discontinuit˘¸i.
                     a                  s                                      a
Se poate observa c˘, pentru un acela¸i raport a/b reprezentarea parametric˘ (puncte
unite cu linii ˆ fig. 1.7) conduce la erori mai mici ˆ toate cazurile studiate, aratˆnd
                ın                                   ın                              a
           ¸                                    a
importanta unei alegeri judicioase a reprezent˘rii.
      a             a    a       a      a                           ın                 ¸
    S˘ mai remarc˘m c˘, o dat˘ atins˘ o precizie de circa 12 cifre, ˆ cazul unei functii
                               s
r(s) netede, a/b = 1/2, cre¸terea lui N nu mai ˆ          a at s                    a
                                                   ımbun˘t˘¸e¸te calitatea aproxim˘rii.
                              ın      a       a
Calculele au fost efectuate ˆ virgul˘ mobil˘ cu o precizie de circa 11, 12 cifre semni-
                a                     s
ficative. Odat˘ atins acest prag, cre¸terea lui N produce efecte detrimentale deoarece
         s           a              ¸
prin cre¸terea num˘rului de operatii aritmetice are loc o acumulare a erorilor de rotu-
            a ıntr-adev˘r este nevoie de o acuratete mai mare trebuie lucrat ˆ precizie
njire. Dac˘ ˆ          a                          ¸                           ın
       a
sporit˘.


1.1.4                 ın
          Interpolare ˆ planul complex
                ¸                                   ın
Anumite aplicatii importante impun interpolarea ˆ planul complex. Printre
               aa                         as                               a
acestea se num˘r˘ transformarea conform˘ ¸i transformata Fourier discret˘ care
                         a a                            a
au multe aspecte asem˘n˘toare. Transformarea conform˘ a unui contur (C) de
     a                                                                   a
form˘ oarecare din planul complex z = x + iy, pe un cerc (K) de raz˘ egal˘    a
                     ın                           ıncˆ
cu unitatea plasat ˆ planul ζ = ξ + iη, astfel ˆ at exteriorul conturului s˘  a
                                                                a      ıntˆ
se transforme pe exteriorul cercului (fig. 1.8), este o problem˘ des ˆ alnit˘  a
ın                                        ın
ˆ mecanica fluidelor incompresibile sau ˆ electricitate. Conform teoremei de
                             a
reprezentare Riemann, odat˘ precizate contururile, se mai pot alege trei para-
                  s              a         a
metrii reali. Ace¸tia se determin˘ de regul˘ din impunerea unor corespondente¸
                ¸        a
ce au semnificatie fizic˘. Vom ˆ              ıntˆ
                               ıncerca mai ˆ ai determinarea formei generale a
          a                aa          a
transform˘rii conforme, l˘sˆnd la urm˘ stabilirea celor trei parametrii. Forma
       a               a                                        a
general˘ a transform˘rii conforme este o serie care se limiteaz˘ la un num˘r a
convenabil de termeni M 9
                                        M −2
                                  z=           C−n ζ −n .                           (1.61)
                                        n=−1

Cei M coeficienti C−n , n = −1, 0, . . . , M − 2 se determin˘ din conditii de cores-
                ¸                                          a          ¸
       ¸a ıntre punctele Pk (zk ) de pe contur ¸i punctele Πk (ζk ), k = 0, M − 1
pondent˘ ˆ                                       s
                              ¸
de pe cerc. Prin urmare se obtine sistemul de ecuatii ¸
                                        M −2
                                                    −n
                                 zk =          C−n ζk .                             (1.62)
                                        n=−1

                      ımp˘ ¸              a       a ın a ¸             a a a
   Este convenabil ca ˆ artirea cercului s˘ se fac˘ ˆ p˘rti egale, adic˘ s˘ lu˘m
                                       √
                     ζk = exp(ikδ), i ≡ −1, δ ≡ 2π/M .                     (1.63)
        ¸                ¸
Coeficientii C−n sunt solutia sistemului
                                M −2
                                       C−n e−ikδn = zk ,                            (1.64)
                                n=−1
  9 Forma reprezentat˘ a fost astfel aleas˘ ˆ at punctele de la infinit ale celor dou˘ plane
                     a                    a ıncˆ                                    a
          a          a
complexe s˘ corespund˘.
24                                       1. Aproximarea functiilor de o variabila
                                                            ¸                   ˘




        Figura 1.8: Corespondenta punctelor din planul fizic ¸i cel de calcul.
                               ¸                            s


                                                      a s     t a
punctele zk fiind date. Sistemul (1.64) se inverseaz˘ u¸or, ¸inˆnd seama c˘  a
functiile exp(±ikδn) formeaz˘ un sistem ortogonal. ˆ
    ¸                       a                                    a ınmultind
                                                       Intr-adev˘r, ˆ    ¸
(1.64) membru cu membru, cu exp(ijkδ), j = 1, 2, ..., M − 2 ¸i sumˆnd dup˘ k,
                                                            s     a      a
     ¸
se obtine succesiv
     M −1                M −1 M −2                       M −2         M −1
            zk eijkδ =               C−n eikδ(j−n) =            C−n          eikδ(j−n) .   (1.65)
     k=0                 k=0 n=−1                       n=−1          k=0

Dar progresia geometric˘ de ratie exp iδ(j − n) se poate suma obtinˆndu-se
                       a      ¸                                 ¸ a
               M −1
                                     1 − eiδ(j−n)M          0        a
                                                                  dac˘ j = n
                      eikδ(j−n) =                  =                         .
                                      1 − eiδ(j−n)          M        a
                                                                  dac˘ j = n
               k=0

ˆ consecint˘, din (1.65) se obtine
In        ¸a                  ¸
                                         M −1
                                     1
                           C−j =                eijkδ , j ∈ −1, M − 2 .                    (1.66)
                                     M
                                          k=0

                ¸      a                ıncheiat odat˘ cu g˘sirea coeficientilor
   Trebuie mentionat c˘ problema nu s-a ˆ             a    a              ¸
                                                    a
C−j pentru un M ales. Anume, mai trebuie verificat˘ atingerea preciziei dorite
prin considerarea a unor puncte intermediare ca, de exemplu,

                           ζk = exp [iδ(k + 1/2)] , k ∈ 0, M − 1 .

    a
Dac˘ afixele zk sunt prea ˆ        a
                            ındep˘rtate de conturul (C) atunci trebuie ˆ    ındesit˘a
  ¸                          s ın            ¸a a         a                  ın
reteaua de puncte de calcul ¸i, ˆ consecint˘, m˘rit num˘rul de termeni ˆ seria
(1.61).
                  ¸
    Rezultatele obtinute se ˆ ınscriu ˆ                            a
                                       ıntr-o formulare mai general˘, important˘    a
pentru multe aplicatii10 . Pentru reteaua de puncte xj = jh, j = 0, 1, . . . , N − 1,
                    ¸                ¸
  10 Algoritmul TFR prezentat ˆ continuare este, conform unor studii statistice de utilizare
                                 ın
a calculatoarelor, al doilea cel mai des utilizat algoritm, fiind devansat doar de rezolvarea
      a                                         ¸         a                                 ¸
direct˘ a sistemelor liniare. Exemple de aplicatii: model˘ri meteorologice, analize de vibratii
mecanice, prelucrare de imagini.
1.1. Aproximarea prin interpolare                                                         25


  a                                                 ¸     ın
avˆnd pasul h = 1/N , setul de valori ale unei functii u ˆ noduri se noteaz˘ a
u(N ) ¸i se nume¸te functie retea. Notˆnd mai departe cu ω r˘d˘cina de ordinul
      s         s       ¸     ¸       a                      a a
          at
N a unit˘¸ii

                                          ω = exp(2πi/N ),                             (1.67)

se define¸te transformata Fourier discret˘ direct˘ (TFDD) a functiei u(N ) ca
          s                                 a       a                 ¸
fiind o alt˘ functie retea, notat˘ U (N ) , ale c˘rei valori ˆ noduri sunt date de
            a   ¸     ¸         a               a           ın
    ¸
relatiile
                                         N −1
                             (N )                (N )
                            Uk       =          uj      ω jk , k ∈ 0, N − 1 .          (1.68)
                                         j=0

         a a                                                a      ¸
Se observ˘ c˘ (1.66) este un caz particular de TFD. Prescurt˘m notatia prin
                                        a
adoptarea semnului =⇒ pentru TFD dat˘ de (1.68)

                                          u(N ) =⇒ U (N ) .

                                                     ¸                          ¸
Sistemul (1.68) se poate inversa, prin aplicarea relatiilor de ortogonalitate obti-
 a
nˆndu-se
                                         N −1
                        (N )         1               (N )
                       uj        =              Uk          ω −jk , j ∈ 0, N − 1 .     (1.69)
                                     N
                                         k=0

       a                             a       a                     a
denumit˘ transformata Fourier discret˘ invers˘ (TFDI) ce va fi notat˘

                                          u(N ) ⇐= U (N ) .

                                                   ınmultirea vectorului u(N ) cu
   Calculul direct al sumelor din (1.68) revine la ˆ    ¸
                 jk
matricea Ω = [ω ], j, k ∈ 0, N − 1 ¸i ar necesita O(N 2 ) operatii aritmetice.
                                      s                            ¸
ˆ a matricea Ω are propriet˘¸i remarcabile, provenite din structura sa ciclic˘,
Ins˘                          at                                               a
                       ın                          ¸     as
ce permit o evaluare ˆ numai O(N log N ) operatii. Cˆ¸tigul este enorm, iar
                        a         as           s
algoritmul ce realizeaz˘ acest cˆ¸tig se nume¸te transformata Fourier rapid˘    a
sau prescurtat TFR11 . Vom prezenta cea mai simpl˘ deducere a algoritmului, o
                                                     a
                                                               a      a
exemplificare a tehnicii generale divide et impera – o problem˘ dificil˘ se poate
                     s                       ın      a
rezolva uneori mai u¸or prin descompunerea ˆ dou˘ probleme mai simple.
   Vom presupune c˘ functia retea u(N ) este definit˘ pe un num˘r par de puncte
                     a      ¸    ¸                   a           a
N = 2P . Din functia retea u(2P ) construim dou˘ noi functii retea v (P ) , w(P )
                    ¸     ¸                        a         ¸     ¸
        ın
definite ˆ punctele de indice par, respectiv impar
                                 (2P )                       (2P )
                      (P           (P
                     vm ) = u2m , wm ) = u2m+1 , m ∈ 0, P − 1 .
  11 O aplicatie tipic˘ provine din domeniul previziunilor meteo pe termen scurt pe care se
             ¸        a
bazeaz˘ navigatia aerian˘ ¸i marin˘. Tipic, pentru o previziune pe 3 zile, se calculeaz˘ ∼ 106
       a        ¸         as       a                                                   a
TFD-uri de lungime N = 214 . Un calculator performant, de vitez˘ 109 operatii aritmetice pe
                                                                  a            ¸
       a          s                                       a ın                  a        a
secund˘, n-ar reu¸i calculul produselor matrice-vector decˆt ˆ 74 ore – prea tˆrziu ca s˘ mai
fie de folos. Cu folosirea TFR timpul se reduce la circa 4 minute!
26                                              1. Aproximarea functiilor de o variabila
                                                                   ¸                   ˘


Suma (1.68) se poate scrie
                           2P −1                     P −1
               (2P )                (2P )
           Uk          =           uj       ω jk =               (P
                                                                vm ) ω 2mk + wm ) ω (2m+1)k =
                                                                              (P

                           j=0                       m=0


                               P −1                              P −1
                                         (P
                                        vm ) ω 2mk + ω k                 (P
                                                                        wm ) ω 2mk .                        (1.70)
                               m=0                               m=0

ˆ a ω 2 este r˘d˘cina de ordinul N/2 = P a unit˘¸ii astfel ˆ at se observ˘
Ins˘           a a                             at          ıncˆ          a
aparitia ˆ (1.70) a transformatelor
     ¸ ın

                                   v (P ) =⇒ V (P ) , w(P ) =⇒ W (P ) ,

    ¸           a a ıntre cele trei transformate fiind deosebit de simple
relatiile de leg˘tur˘ ˆ
       (2P )       (P )                 (P )     (2P )          (P )            (P )
     Uk        = Vk        + ω k Wk            , Uk+P = Vk             − ω k Wk        , k ∈ 0, P − 1       (1.71)

unde s-a folosit identitatea ω k+P = −ω k . Acest rezultat este cunoscut ca lema
lui Danielson ¸i Lanczos. Evaluarea direct˘ a lui U (2P ) ar fi costat O(4P 2 )
                s                               a
operatii aritmetice. Acum avem de evaluat dou˘ transformate, V (P ) , W (P ) ce
      ¸                                              a
fiecare necesit˘ O(P 2 ) operatii pentru un total de O(2P 2 ) operatii. Reducerea
               a               ¸                                    ¸
       a                              a ıns˘             as    s
la jum˘tate a calculelor este benefic˘, ˆ a se poate cˆ¸tiga ¸i mai mult dac˘ N a
este o putere a lui 2, N = 2q . ˆ acest caz separarea pe indici pari ¸i impari
                                  In                                      s
                    a a a
poate continua pˆn˘ cˆnd se ajunge la transformarea unui vector de lungime
                a              ¸            a
1 ce nu necesit˘ nici o operatie aritmetic˘ deoarece se reduce la transformarea
de identitate, U (1) = u(1) . Singurele operatii artimetice ce mai r˘mˆn sunt
                                                  ¸                     a a
ınmultirile cu ω k din (1.71). Calculul se poate vizualiza ca parcurgerea arborelui
ˆ     ¸
cu q = log 2 N nivele din fig. 1.9. Pe fiecare nivel sunt necesare doar N operatii ¸
                   ıncˆ    ¸                  ¸
aritmetice astfel ˆ at obtinem costul mentionat anterior de O(N log2 N ).
                        a ın             s                           a
    Separarea repetat˘ ˆ indici pari ¸i impari conduce la o alt˘ ordonare a
componentelor vectorului u(N ) . Exemplific˘m pentru N = 23 = 8. Vectorul
                                                a
u(N ) are componente de indici de la 0 la 7. Procedeul de separare par-impar se
     a        a          a            a     ın      a
aplic˘ de dou˘ ori dup˘ cum este ar˘tat ˆ urm˘toarea schem˘       a
                              etapa 0:           0   1      2     3     4   5     6     7
                              etapa 1:           0   2      4     6     1   3     5     7
                              etapa 2:           0   4      2     6     1   5     3     7
ˆ     ¸
Inmultirile cu diversele puteri ale lui ω trebuie s˘ le ˆ a ıncepem asupra vectorului
permutat {u0 , u4 , u2 , u6 , u1 , u5 , u3 , u7 }. Permutarea se poate construi ˆ a foarte
                                                                                ıns˘
  s     a                        ¸      s
u¸or dac˘ scriem indicii initiali ¸i finali ˆ binar ın
          etapa 0: 0002             0012         0102    0112           1002    1012        1102   1112
                                                                                                        .
          etapa 2: 0002             1002         0102    1102           0012    1012        0112   1112
        ¸ a                                                          a
Observati c˘ inversarea ordinei de citire a indicilor din ultima etap˘ corespunde
                              a
chiar la numerotarea natural˘ 0, 1, . . . , 7 anume: 0002 citit de la dreapta la
1.1. Aproximarea prin interpolare                                                27




                   Figura 1.9: Arborele de recurent˘ de la TFR.
                                                  ¸a


  a                                                  a
stˆnga este 0002 = 0, 1002 citit de la dreapta la stˆnga este 0012 = 1,. . . ,0112
                         a                                                    a
citit de la dreapta la stˆnga este 1102 = 6, 1112 citit de la dreapta la stˆnga
este 1112 = 7. Rezultatul este valabil pentru orice N = 2q iar permutarea final˘  a
                    ın                   a
a indicilor se zice ˆ ordine bit-inversat˘. Putem da acum algoritmul TFR

                                             cˆt timp p ≤ N
                                              a
 j =1:N −2
                                                  j =0:p:N −1
     k ← invbit(j, q)                               
                                                      r←0
         a              a
     dac˘ k > j permut˘(uj , uk )              
                                                 k =0:t−1
 rad ← exp(semn · 2πi/N );                       
                                                          tmp ← uj+k
 ω0 ← 1                                         
                                                  uj+k ← tmp + ωr uj+k+t
 j = 1 : N/2                                     
                                                  uj+k+t ← tmp − ωr uj+k+t
   ωj ← rad · ωj−1                             
                                                           r ←r+s
 t ← 1; p ← 2; s ← N/2
                                                  t ← 2t; p ← 2p; s ← s/2   .

             ¸          ınlocuit de transformata sa discret˘ – ca atare algoritmul
Vectorul initial u este ˆ                                    a
           a                        a
nu necesit˘ memorie suplimentar˘. Variabila semn ia valoarea 1 pentru TFR
direct˘ ¸i −1 pentru TFR invers˘; ˆ acest ultim caz vectorul final mai trebuie
      as                           a ın
ımp˘ ¸                ¸
ˆ artit la N . Functia invbit(j, q) ˆ                           ¸
                                      ıntoarce indicele ce se obtine prin inversarea
ordinei bitilor de la 0 la q − 1 din j. Operatia se poate exprima ˆ
          ¸                                    ¸                      ıntr-un limbaj
         ınalt prin ˆ
de nivel ˆ                 ¸ s ımp˘ ¸                          a
                     ınmultiri ¸i ˆ artiri cu 2, dar de regul˘ este implementat˘   a
                             s a                      ¸
eficient la nivel de cod ma¸in˘. Verificarea conditiei k > j are rolul de a nu
               a                    ın
strica permut˘rile deja efectuate ˆ cadrul buclei.
                                                                   ¸
    Algoritmul TFR poate fi folosit pentru calculul coeficientilor polinomului
                              ¸         ¸                           a       a
trigonometric (1.57) precizati de relatiile (1.58). O cale evident˘ este s˘ se scrie
                                    2N −1
                                1
              ck ≡ ak + ibk =               yj exp(2πijk/2N ), k ∈ 0, N
                                N   j=0

¸i s˘ se aplice TFR asupra vectorului yj , j ∈ 0, 2N − 1 ce are 2N componente.
s a
ˆ a, dac˘ vectorul {yj } este real, se poate obtine rezultatul cu doar jum˘tate
Ins˘      a                                     ¸                         a
28                                   1. Aproximarea functiilor de o variabila
                                                        ¸                   ˘




     Figura 1.10: O m˘sur˘toare experimental˘ a unei vibratii compuse complexe.
                     a a                    a             ¸


                                        ın                s
din efortul de calcul printr-o separare ˆ componente pare ¸i impare

                           zm = y2m + iy2m+1 , m ∈ 0, N − 1 .

Introducem transformatele directe z =⇒ Z, (y2m ) =⇒ P , (y2m+1 ) =⇒ I. Avem

                      Zk = Pk + iIk ,    N ck = Pk + Ik exp(πik/N ) .
                                                                       ∗
         a          a                    ¸
Se verific˘ imediat c˘ TFD, F a unei functii reale f satisface FN −k = Fk , unde
  ∗
                         a
Fk este conjugata complex˘ a lui Fk . Ca atare
                                        ∗     ∗    ∗
              ZN −k = PN −k + iIN −k = Pk + iIk ⇒ ZN −k = Pk − iIk
                                       ∗                       ∗
¸i putem deduce expresiile Pk = (Zk + ZN −k )/2, Ik = −i(Zk − ZN −k )/2 astfel
s
ıncˆ
ˆ at
              1          ∗           i          ∗
      ck =   2N (Zk   + ZN −k ) −   2N (Zk   − ZN −k ) exp(πik/N ), k ∈ 0, N .      (1.72)

     a                        ¸                        a
Exist˘ multe astfel de combinatii posibile ce furnizeaz˘ moduri economice de a
                                                          at
calcula transformata Fourier a unui vector ce are propriet˘¸i de simetrie supli-
mentare.
                       a             ¸        a        a                      ¸
    Exemplu. Prezent˘m o aplicatie real˘ tipic˘. Un senzor de vibratii a m˘surat     a
deplas˘rile unei componente mecanice rezultˆnd datele din fig. 1.10. Vibratiile de
       a                                          a                                 ¸
        ¸a         a                                            ıncˆ
frecvent˘ mai joas˘ de 1 Hz nu prezentau interes astfel ˆ at fereastra de timp ˆ         ın
            a
care s-au m˘surat datele a fost de ∆t = 1 sec. Se cere identificarea frecventelor de¸
                    a       ıncˆ a              a                             ¸
amplitudine maxim˘ astfel ˆ at s˘ se poat˘ identifica sursele de excitatie ce produc
     ¸
vibratia componentei.
    Rezolvare. M˘sur˘torile au fost efectuate cu patru rate de e¸antionare N = 256,
                 a a                                                  s
512, 1024 rezultˆnd datele u(256) , u(512) , u(1024) . Pentru identificarea frecventelor do-
                 a                                                                ¸
                     a
minante se calculeaz˘ spectrul de putere al semnalului definit de

                                    Pu (f ) = 2U (f )U (f ) ,

                                   a
unde u =⇒ U . Spectrul se calculeaz˘ prin aplicarea TFR asupra datelor din fig. 1.10.
                                     a    ¸
Deoarece semnalul este real se aplic˘ relatia (1.72), lungimea transformatelor fiind
1.1. Aproximarea prin interpolare                                                         29




Figura 1.11: Spectrele de putere ale semnalului anterior pentru N = 256, 512, 1024.


                                        ın
N/2. Rezultatele sunt prezentate ˆ fig. 1.11. Maximele locale sunt denumite picuri
s                        ¸                                           a
¸i corespund la vibratiile predominante. Se poate observa c˘ la trecerea la o rat˘ de     a
  s                                                 ın                    ¸
e¸antionare mai mare uneori apar noi picuri ˆ domeniul frecventelor mari iar unele
                               ¸
picuri din domeniul frecventelor mici dispar. De asemenea, amplitudinile asociate unui
                a                                                s               s
pic se modific˘ uneori. Alte picuri nu par afectate de cre¸terea ratei de e¸antionare.
                            a                                          ın
     Comportarea rezult˘ din fenomenul de mascare discutat ˆ 1.1.3. De exemplu,
                                                                            a a
picurile α, β sunt stabile la trecerea de la spectrul 2 la 3. Rezult˘ c˘ pentru aceste
           ¸                                      a      s ın
frecevente mici criteriul Nyquist este statisf˘cut ¸i ˆ plus nu are loc mascharea unor
         ¸
frecvente mai ˆ  ınalte. Picul γ din spectrul 2, construit cu N = 512 dispare complet
ˆ a la trecerea la spectrul 3, construit cu N = 1024. ˆ spectrul 2 picul γ era
ıns˘                                                                In
       ın          a                           ¸       a             ¸
fals, ˆ sensul c˘ nu reprezenta o vibratie real˘ cu frecventa fγ . De fapt, rata de
  s                  a                a        ıncˆ
e¸antionare folosit˘ era prea mic˘ astfel ˆ at se ˆ                          ¸               ¸
                                                         ınregistra contributia unei frecvente
mai ˆ ınalte fδ                  ¸a     a             ¸                       a         a
                   2fγ , frecvent˘ a c˘rei contributie devine discernabil˘ atunci cˆnd se
dubleaz˘ rata de e¸antionare ˆ spectrul 3. ˆ
          a           s            ın                          a
                                                    Intr-adev˘r pentru a discerne frecventa  ¸
                                           a                         ¸
fδ = 350 Hz criteriul Nyquist indic˘ necesitatea a cel putin 700 puncte, conditie           ¸
realizat˘ doar de m˘surarea u(1024) . Exemplul arat˘ importanta studiilor de rezolutie
          a            a                                   a           ¸                    ¸
ın         ¸                            a        ın              a s
ˆ aplicatii de aproximare spectral˘, studii ˆ care se urm˘re¸te stabilitatea spectrului
la modificarea ratelor de e¸antionare. ˆ aplicatii practice, fenomenul de mascare se
                              s              In        ¸
        a                                                 ¸                 ¸
elimin˘ prin folosirea unor filtre ‘trece-jos’ cu pretul pierderii portiunii de frecvente     ¸
ınalte a spectrului.
ˆ
30                                   1. Aproximarea functiilor de o variabila
                                                        ¸                   ˘


1.2      Aproximarea mini-max
Trecem acum la considerarea celui de-al doilea criteriu de aproximare (1.3).
                                      a     a
Exemplul lui Runge din 1.1.1 a ar˘tat c˘ aproximarea prin interpolare, chiar
    a
dac˘ trece prin noduri, poate prezenta erori mari (chiar infinit de mari!) ˆ  ıntre
noduri. De aici provine ideea de a ˆ           a                    a
                                      ıncerca g˘sirea unei aproxim˘ri optimale pe
                                ın                                  a
tot intervalul [a, b], nu numai ˆ noduri. O exprimare matematic˘ a acestei idei
       a
este s˘ se minimizeze eroarea maxim˘ ˆ              ¸         s
                                        a ıntre functia f (x) ¸i aproximanta g(x),
                                     a
adic˘ criteriul (1.3) pe care-l repet˘m aici
     a

                           max |f (x) − g(x)| = minim .                        (1.73)
                           x∈[a,b]

                a                                       a
Astfel formulat˘ problema este momentan incomplet definit˘ deoarece nu am
                   ¸           ¸     a
precizat din ce multime de functii lu˘m pe g(x).

1.2.1                    as
          Polinoamele Cebˆ¸ev
Vom ˆ                               as a       ¸               a           ¸
      ıncepe prin a presupune iar˘¸i c˘ functia aproximant˘ g(x) apartine multimii¸
polinoamelor. Criteriul de minimizare a erorii maxime (1.73) face referire la
un anume interval [a, b]. Deoarece rezultatele de mai jos depind de interval,
adopt˘m un interval canonic [−1, 1]. O transformare de scar˘ x = z(b − a)/2 +
       a                                                             a
(b + a)/2, x ∈ [a, b], z ∈ [−1, 1] poate aduce orice alt interval finit pe cel canonic.
                                           ¸               a
    De data aceasta nu vom scrie functia aproximant˘ g(x) ca o combinatie li-   ¸
niar˘ de monoame. Examinˆ comportarea monoamelor xk pe intervalul [−1, 1]
    a                         ınd
            a a
se constat˘ c˘ toate iau valori absolute maxime la capetele intervalului; prin ur-
                 s                                   a
mare este de a¸teptat ca erorile de aproximare s˘ nu fie distribuite uniform pe
                             a a                                    a
interval. Aceasta sugereaz˘ c˘utarea unor polinoame care s˘ nu varieze mono-
                                 ¸             a            a
ton pe [−1, 1]. Intuitiv, variatia monoton˘ face dificil˘ descrierea unor variatii   ¸
                  ¸      ın
rapide ale functiei f ˆ interiorul intervalului [−1, 1]. Ceea ce ne trebuie este o
    ¸                                              a       a
multime de polinoame definite pe [−1, 1] care s˘ poat˘ descrie astfel de variatii     ¸
ıntr-un mod cˆt mai economic, adic˘ folosind un num˘r mic de polinoame.
ˆ                a                        a                     a
      ¸                                                            ¸
Functiile trigonometrice considerate anterior prezentau partial o astfel de com-
                     s                         ¸                a            s
portare: cos 2πx ¸i sin 2πx descriau variatiile de perioad˘ 1, cos 4πx ¸i sin 4πx
                ¸                a      s                       ¸
descriau variatiile de perioad˘ 1/2, ¸.a.m.d. Spunem partial deoarece nu a fost
ındeplinit˘ ¸i dorinta de economicitate – avem dou˘ functii, sin ¸i cos pentru
ˆ           a s        ¸                                 a        ¸      s
                   ¸                  a          a                ¸
descrierea variatiilor de o anumit˘ perioad˘. Pe baza functiilor trigonometrice
         ıns˘                  a             a
putem ˆ a introduce o clas˘ remarcabil˘ de polinoame descoperite de Cebˆ¸ev       as
   a                at                                        a              a
a c˘ror propriet˘¸i sunt deosebit de favorabile aproxim˘rii optimale c˘utate ˆ       ın
        a    ¸
aceast˘ sectiune.
    Vom lua z ∈ [−1, 1]. Introducem variabila θ ∈ [0, π] prin relatiile¸

                              z = cos θ, θ = arccos z .

 a         a           ¸                        ¸          a a
S˘ consider˘m acum functia Tn (z) = cos nθ. Functia are n r˘d˘cini pe (−1, 1)

               Tn (z) = cos nθ = 0 ⇒ θk = (2k − 1)π/2n, k ∈ 1, n ,
1.2. Aproximarea mini-max                                                       31




                   Figura 1.12: Primele 5 polinoame Cebˆ¸ev.
                                                       as


                         Tabelul 1.2: Polinoame Cebˆ¸ev
                                                    as
                   n   Tn (z)              zn
                   0   1                   T0
                   1   z                   T1
                   2   −1 + 2z 2           (T0 + T2 )/2
                   3   −3z + 4z 3          (3T1 + T3 )/4
                   4   1 − 8z 2 + 8z 4     (3T0 + 4T2 + T4 )/8
                   5   5z − 20z 3 + 16z 5 10T1 + 5T3 + T5


                   zk = cos θk = cos[(2k − 1)π/2n], k ∈ 1, n .
                             a
Din identitatea trigonometric˘ cos nθ+cos(n−2)θ = 2 cos(n−1)θ cos θ deducem
      ¸             ¸a
o relatie de recurent˘ pentru Tn (z)
                         Tn (z) = 2zTn−1 (z) − Tn−2 (z) .                   (1.74)
Deoarece T0 (z) = 1, T1 (z) = z iar T2 (z), T3 (z), . . . rezult˘ din (1.74) prin
                                                                a
      ¸                s ınmultire, putem observa c˘ Tn (z) sunt polinoame de
operatii de adunare ¸i ˆ       ¸                     a
                                     as
gradul n, denumite polinoame Cebˆ¸ev relative la intervalul compact [−1, 1].
     ¸                   s       ¸
Functia cos nθ se nume¸te functia generatoare a acestor polinoame.
   Graficele primelor cˆteva polinoame Cebˆ¸ev sunt prezentate ˆ fig. 1.12 iar
                         a                   as                    ın
               ın            ımpreun˘ cu exprim˘rile monoamelor z n ˆ functie
expresiile lor ˆ tabelul 1.2 ˆ       a           a                      ın      ¸
de Tk (z), k ∈ 0, n. Se observ˘ din fig. 1.12 c˘ fiecare polinom Cebˆ¸ev de grad
                               a              a                      as
    ınalt poate descrie variatii mai rapide ale unei functii pe intervalul [−1, 1].
mai ˆ                         ¸                           ¸


   Din formula de recurent˘, se observ˘ c˘ ˆ Tn (z) coeficientul lui z n este
                          ¸a           a a ın
                             ¯
2n−1 , astfel ˆ at polinomul Tn (z) ≡ 21−n Tn (z) are coeficientul lui z n egal
              ıncˆ
32                                1. Aproximarea functiilor de o variabila
                                                     ¸                   ˘


cu unitatea. Polinoamele cu un coeficient 1 al termenului de grad maxim se
                                          ¸ a                     as
numesc polinoame monice. Proprietatea esential˘ a polinoamelor Cebˆ¸ev ce le
                     a
face adecvate aproxim˘rii mini-max este:

      a                                                    ¯
Teorem˘. Dintre toate polinoamele monice de grad n fixat, Tn (z) are cea mai
       a         ın               a
    mic˘ margine ˆ valoare absolut˘ pe intervalul [−1, 1].

    Demonstratie. Proced˘m prin reducere la absurd. ˆ acest scop s˘ observ˘m
               ¸          a                            In            a      a
                      ¯
mai ˆ ai c˘ functia Tn (z) = 21−n |cos nθ| ia de n + 1 ori valorea maxim˘ 21−n
     ıntˆ a      ¸                                                      a
pe [−1, 1], anume ˆ punctele distincte zk = cos(kπ/n), k ∈ 0, n. S˘ consider˘m
                   ın                                              a        a
                                    s      ¯      s a
apoi un alt polinom monic de acela¸i grad pn (z), ¸i s˘ presupunem prin absurd
 a                                    a       a ın            ıt ¯
c˘ acesta ar avea o margine superioar˘ mai mic˘ ˆ modul decˆ Tn (z) pe [−1, 1],
    a
adic˘

                      sup |¯n (z)| <
                           p             sup      ¯
                                                  Tn (z) = 21−n .              (1.75)
                    z∈[−1,1]           z∈[−1,1]

ˆ consecint˘, chiar ˆ punctele z
In        ¸a        ın          k

                                  |¯n (zk )| < 21−n .
                                   p                                           (1.76)
                                             ¯                           ¯
Considerˆ diferenta dn−1 (z) a polinoamelor Tn (z) ¸i pn (z), dn−1 (z) ≡ Tn (z)−
         ınd        ¸                              s ¯
pn (z) vom obtine, evident, un polinom de gradul n − 1. Din (1.76) rezult˘
¯            ¸                                                             a
                 ¯
           (−1)k Tn (zk ) − pn (zk ) = (−1)k+n dn−1 (zk ) > 0,      k ∈ n, 0

    a                         a
adic˘ dn−1 (z) are n schimb˘ri de semn pe (−1, 1), deci polinomul de gradul
n − 1, dn−1 (z), ar avea n r˘d˘cini, ceea ce este absurd. Rezult˘ c˘ presupunerea
                            a a                                 a a
                     a a                                       ¯
(1.75) nu este adev˘rat˘, deci oricare ar fi polinomul monic pn (z) avem

                               sup |¯n (z)| ≥ 21−n .
                                    p                   2                      (1.77)
                           z∈[−1,1]

     ˆ continuare se dau dou˘ aplicatii importante ale polinoamelor mini-max.
     In                     a       ¸

1.2.2                                                  a
          Minimizarea erorii la interpolarea polinomial˘
                                                                            ın
Trecem la un prim exemplu concret de aplicare a criteriului mini-max, anume ˆ
                                       ¸               a
formularea general˘ (1.73) vom lua functia aproximant˘ un polinom de gradul
                  a
N −1

                         max |f (x) − pN −1 (x)| = minim.
                        x∈[a,b]

Dorim s˘ determin˘m, dintre toate polinoamele de grad N − 1, pe cel ce mini-
           a           a
         a                  a ¸a         ¸                      ¸
mizeaz˘ abaterea maxim˘ fat˘ de functia f (x). Polinomul obtinut va fi numit
polinom mini-max de grad N − 1 al functiei f (x) pe intervalul [a, b]. Este conve-
                                          ¸
         a                                                  a
nabil s˘ privim polinomul pN −1 ca fiind definit de faptul c˘ trece prin nodurile
{(xi , yi ), i ∈ 1, N }. Nodurile ˆ a, spre deosebire de problema anterioar˘ de
                                  ıns˘                                        a
1.2. Aproximarea mini-max                                                                        33


                                                                      a
interpolare, sunt acuma necunoscute. Vom minimiza eroarea maxim˘ printr-o
                a                          ın                               a
alegere adecvat˘ a nodurilor. Eroarea este ˆ acest caz chiar restul interpol˘rii
ce are forma (1.16)
                                       N
                        RN −1 (x) =          (x − xi ) f (N ) (ξ)/N !    .
                                       i=1

ˆ general derivata f (N ) (ξ) nu este cunoscut˘, astfel ˆ at se poate pune doar
In                                            a         ıncˆ
                 a                                                          a
problema minimiz˘rii produsului. Acest este un polinom de gradul N . Utilizˆnd
                      a
schimbarea de variabil˘
                                x = z(b − a)/2 + (b + a)/2                                   (1.78)
                                              a        a
trecem de la intervalul [a, b] pe care dorim s˘ minimiz˘m eroarea la intervalul
              ¸             a s
[−1, 1]. Se obtine, considerˆnd ¸i (1.77)
             N                          N      N                             N
                                 b−a                                b−a
                  (x − xi ) =                       (z − zi ) ≥                  21−N .
            i=1
                                  2           i=1
                                                                     2
      a a                     a         at               a    a
Rezult˘ c˘ optimul, corespunzˆnd egalit˘¸ii, se realizeaz˘ dac˘ punctele zi sunt
 a a                       as
r˘d˘cinile polinomului Cebˆ¸ev de gradul n. Vom aranja indicii astfel ˆ at ıncˆ
 a a        a     a ın            a
r˘d˘cinile s˘ apar˘ ˆ ordine cresc˘toare
                        zN −i+1 = cos[(2i − 1)π/2N ], i ∈ 1, N .                             (1.79)
    ˆ aceste conditii se obtine cea mai mic˘ margine superioar˘ pentru restul
    In            ¸        ¸               a                  a
la interpolare

                   |RN −1 (x)| ≤ 21−2N (b − a)N max f (N ) (ξ) /N ! .
                                                       ξ∈[a,b]

                          a                                  a
Marginea depinde de m˘rimea intervalului (a, b), de num˘rul de noduri N
¸i de derivata f (N ) . Rezultatul obtinut se poate enunta: dintre toate poli-
s                                    ¸                    ¸
noamele de interpolare de grad N − 1, cel ce minimizeaz˘ eroarea maxim˘
                                                             a                 a
max |f (x) − pN −1 (x)| cu x ∈ [−1, 1] este cel construit cu abscisele nodurilor
         a a                        as
date de r˘d˘cinile polinomului Cebˆ¸ev de grad N .
     Exemplu. Am v˘zut c˘ interpolarea functiei lui Runge f (x) = 1/(1 + x2 ) pe
                       a      a                   ¸
                    ¸               a
[−5, 5] cu o repartitie echidistant˘ a nodurilor nu converge. Vom determina acum un
                            a
alt polinom ce aproximeaz˘ pe f (x) dar la care nodurile nu mai sunt luate echidistant,
ci sunt determinate de criteriul mini-max, anume vom lua xk = 5zk , k ∈ 1, N , cu zk
                            ın                                            a
determinate de (1.79). Ca ˆ exemplele precedente calitatea aproxim˘rii este apreciat˘     a
prin evaluarea erorii relative = 500 |f (ui ) − pN −1 (ui )| / |f (ui )| pe o diviziune mai
                                      i=1
   a                              ¸
fin˘ a intervalului [−5, 5]. Variatia erorii cu N este
      N     5         10     15     20         25       30        35     40       45       50
     lg    −0.4      −0.8   −1.2   −1.6       −2.1     −2.4      −3.0   −3.3     −3.8     −4.2
      a         a                               a                      ¸
obervˆndu-se c˘ aproximarea converge. Observ˘m acum clar importanta alegerii no-
                          a                                   a
durilor pe care se bazeaz˘ o interpolare. Aproximarea prezent˘ este tot o interpolare,
      a ıns˘                   a
bazat˘ ˆ a pe alte noduri decˆt cele echidistante considerate anterior. Comportarea
                                              a a                             ¸ ıntre
aproxim˘rii este redat˘ ˆ fig. 1.13. Se observ˘ c˘, pentru N mic, apar oscilatii ˆ
         a             a ın
                                          ın
noduri dar, spre deosebire de cazul redat ˆ fig. 1.1, acestea nu mai cresc la infinit.
34                                  1. Aproximarea functiilor de o variabila
                                                       ¸                   ˘




Figura 1.13: Polinoamele de interpolare cu noduri alese optimal pentru N = 11, 21, 31
suprapuse peste f (x). Nodurile sunt reprezentate doar pentru N = 31.


1.2.3                                             ¸
          Aproximarea aproape mini-max a unei functii
Vom considera acum o relaxare a criteriului (1.73) anume
                                max |f (x) − pN (x)| ≤ e .                            (1.80)
                               x∈[a,b]

                                  a
Criteriul (1.80) este mai larg decˆt cel anterior (1.73) deoarece nu mai impunem
                                                       ıncˆ a        a
determinarea polinomului aproximant pN (x) astfel ˆ at s˘ realiz˘m un minim
                               a       a          a     a
al erorii, ci doar ca eroarea s˘ devin˘ mai mic˘ decˆt un prag dat e. De data
                                                  a           a a
aceasta gradul polinomului nu se mai consider˘ fixat, ci c˘ut˘m polinomul de
gradul cel mai mic ce satisface conditia (1.80). Asemenea probleme apar tipic ˆ
                                      ¸                                         ın
situatii ˆ care dorim o aproximare cˆt mai economic˘ ˆ operatii aritmetice12 .
     ¸ ın                               a                a ın      ¸
                                                  s                  a    ¸
    Vom lua [−1, 1] pentru intervalul din (1.80) ¸i vom presupune c˘ functia f (x)
                  ın
are o dezvoltare ˆ serie de puteri
                                              M
                                    f (x) =         bk xk ,                           (1.81)
                                              k=0

unde eventual putem avea M → ∞. Puterile xk se pot exprima ˆ functie de
                                                                  ın ¸
                                            ıncˆ
polinoamele Cebˆ¸ev (vezi tabel 1.2) astfel ˆ at f se poate scrie
               as
                                            M
                                  f (x) =         ak Tk (x) .                         (1.82)
                                            k=0

      a      a                 as                    ın                ¸
Am v˘zut c˘ polinoamele Cebˆ¸ev sunt mai eficiente ˆ descrierea variatiilor
unei functii pe [−1, 1] decˆt monoamele xk . Este a¸adar de a¸teptat ca ¸irul
         ¸                 a                       s         s          s
 12 Procedeul            a
                ce urmeaz˘ mai este cunoscut sub denumirea de economizare de serii.
1.2. Aproximarea mini-max                                                                                                   35


{ak } de coeficienti s˘ scad˘ mai repede ˆ modul decˆt ¸irul {bk }. Dorim s˘
                 ¸ a       a            ın          a s                   a
 a a             a             a                ın
p˘str˘m un num˘r de termeni cˆt mai mic posibil ˆ dezvoltarea (1.82) pentru
              a             ¸
a reduce num˘rul de operatii aritmetice. Ca atare, trunchiem dezvoltarea la
k = N , aproximarea fiind
                                                              N
                                           pN (x) =                 ak Tk (x).
                                                             k=0

Deoarece |Tk (x)| ≤ 1, vom putea trunchia seria (1.82) la cel mai mic N pentru
care avem
                                                                     M
                                |f (x) − pN (x)| =                            |ak | < e .
                                                                  k=N +1

                           ¸
     Polinomul pN (x) obtinut poate fi diferit de polinomul mini-max de grad N
        ¸         s
al functiei f (x) ¸i este uzual denumit polinom aproape mini-max. Apare imediat
ıntrebarea: de ce mai e nevoie de un procedeu diferit de cel din 1.2.2? De ce nu
ˆ
                                                            ¸ ıns˘ a ın
construim direct polinomul mini-max de grad N ? Observati ˆ a c˘ ˆ procedeul
din 1.2.2 gradul polinomului se considera cunoscut. De asemenea, cu toate c˘   a
    s     a                                  a               a
se ¸tie c˘ polinomul mini-max realizeaz˘ o eroare minim˘, nu este cunoscut˘    a
                 a                       a                       a    ¸
valoarea efectiv˘ a acestei erori. Urmˆnd algoritmul din aceast˘ sectiune, avem
certitudinea ˆ                        ¸                  a
               ındeplinirii unei conditii de eroare impus˘.
    Exemplu. ˆ                              ¸         a
                Intr-un calculator de navigatie aerian˘, este nevoie de un algoritm de
aproximare a functiei cos x. Abaterea maxim˘ admis˘ este e ≤ 10−5 pe intervalul
                   ¸                            a       a
                                   a ın                              ¸
[−π/2, π/2]. Calculatorul lucreaz˘ ˆ timp real. Ca atare este esential ca algoritmul
 a     a
s˘ fie cˆt mai economic posibil. Pentru a rezolva problema se trece la intervalul [−1, 1],
                          a                 ¸                              ın
cu schimbarea de variabil˘ x = πz/2. Functia cos(πz/2) are dezvoltarea ˆ serie
         π       1         π   2           1        π   4                              1      π    2n
   cos     z =1−                   z2 +                     z 4 + . . . + (−1)n                         z 2n + R2n+1 .
         2       2!        2               4!       2                                (2n)!    2
              a             a          a           a
Restul dezvolt˘rii poate fi m˘rginit dup˘ cum urmeaz˘

                                cos (2n+1) ξ             π    2n                     1            π     2n
                 |R2n+1 | =                                        |z|2n+1 ≤                                 .
                                   (2n + 1)!             2                       (2n + 1)!        2
                         a               a
Restul devine mai mic decˆt eroarea impus˘ pentru n = 5. Deci suma Taylor
                  1    π   2          1         π   4          1      π   6          1    π   8           1      π   10
 S10 (z) = 1 −                 z2 +                     z4 −                  z6 +                z8 −                    z 10
                  2!   2              4!        2              6!     2              8!   2              10!     2
realizeaz˘ conditia de eroare impus˘ ¸i avem M = 10 ˆ (1.81). ˆ
         a       ¸                     as               ın         Inlocuim monoamele
z k din S10 (z) prin expresiile lor ˆ functie de polinoamele Cebˆ¸ev folosind relatiile
                                    ın    ¸                       as              ¸
                       ¸        a                          ¸
din tabelul 1.2. Se obtin urm˘toarele valori ale coeficientilor ak din (1.82)
           a0       a2              a4                      a6                     a8                 a10
         0.472    −0.499        2.79 · 10−2             −5.96 · 10−4           6.69 · 10−6        −4.92 · 10−8

Coeficientii de indici impari sunt nuli. Avem |a8 | + |a10 | < e = 10−5 astfel ˆ at putem
         ¸                                                                    ıncˆ
 a                      s    ¸
s˘ trunchiem la N = 6 ¸i obtinem aproximarea
           p6 (x) = 0.999993 − 0.499912x2 + 0.0414876x4 − 1.27122 · 10−3 x6
36                                1. Aproximarea functiilor de o variabila
                                                     ¸                   ˘




                  Figura 1.14: Variatia erorii e(z) = cos z − p6 (z).
                                    ¸


            a               a                   ¸         ¸               a
ce realizeaz˘ eroarea impus˘ dar cu 40% mai putine operatii aritmetice decˆt S10 .
Graficul erorii cos x − p6 (x) prezentat ˆ figura (1.14) confirm˘ atingerea preciziei
                                        ın                   a
impuse.


1.3                  ın                       a
         Aproximarea ˆ sensul celor mai mici p˘trate
            a ın                                   ıl         a
Reamintim c˘, ˆ acest caz, criteriul de aproximare ˆ reprezint˘ minimizarea
sumei (1.5)
                                N
                          S=          [yk − g(xk )]2 = minim,                    (1.83)
                                k=1

                                                                    a       a
valorile (xk , yk ) fiind date. Este convenabil ca aproximanta g(x) s˘ se pun˘ sub
forma (1.6)
                                            n
                                 g(x) =          aj gj (x) ,                     (1.84)
                                           j=1

                ¸
gj (x) fiind functii cunoscute, liniar independente, iar aj , j = 1, 2, . . . , n parame-
                                                                     a
tri nedeterminati. Ca ¸i ˆ 1.2, criteriul (1.83) pune o problem˘ de minimizare
                ¸       s ın
                             a          ¸
a erorii. Vom vedea cum cˆteva notiuni mai avansate, considerate ˆ 1.4, ne     ın
                            a a                          a s
vor conduce la concluzia c˘ atˆt criteriul mini-max cˆt ¸i cel al celor mai mici
  a                       a                          s
p˘trate sunt doar formul˘ri diferite ale unui acela¸i criteriu de aproximare op-
      a               a                 ıns˘
timal˘. Deocamdat˘ vom considera ˆ a doar aspectele simple ale teoriei.
                   ın                        a                   a
    Aproximarea ˆ sensul celor mai mici p˘trate este utilizat˘ mai ales ˆ cazul   ın
prelucr˘rii datelor experimentale. ˆ acest caz, nu se recomand˘ folosirea inter-
        a                            In                             a
    a                      a             ¸
pol˘rii deoarece valorile m˘surate contin erori inerente, repartizate probabilistic
                 ın                       a
1.3. Aproximarea ˆ sensul celor mai mici p˘trate                                                 37


avˆnd caracterul unor perturbatii care trebuie, dimpotriv˘, eliminate13 . Este
   a                                   ¸                         a
                   a      a                              a
deci evident c˘ num˘rul de parametri n trebuie s˘ fie mai mic decˆt num˘rula       a
de noduri N, n < N .
     Criteriul (1.83), ca ¸i 1.73, minimizeaz˘ o eroare. ˆ acest caz ˆ a eroarea
                             s                    a          In          ıns˘
           a               a      a                 ¸      ¸ a
este scris˘ ca o sum˘ de p˘trate. Consecinta esential˘ a acestei alegeri este
 a                                   a
c˘ S(a1 , . . . , an ) este derivabil˘, fapt ce poate fi exploatat pentru a determina
          ¸                                     a
coeficientii ai . Pentru ca S(a1 , . . . , an ) s˘ aibe un extrem trebuie ca derivatele
    ¸     ın                   a
partiale ˆ raport cu ai s˘ se anuleze

                                           ∂S/∂ai = 0, i ∈ 1, n.                              (1.85)

         ¸
Observati introducerea unui indice i diferit de cel de ˆ ınsumare j din (1.84).
    ¸                     a                     ¸
Relatiile (1.85) reprezint˘ un sistem de n ecuatii cu n necunoscute. Deoarece
              a     a                             ¸              as           a
S este o sum˘ de p˘trate extremul dat de conditiile (1.86) exist˘ ¸i reprezint˘
                                           s        a                ¸
chiar un minim. Folosind expresiile (1.83) ¸i aranjˆnd termenii se obtine
                    n           N                             N
                         aj          gi (xk )gj (xk )   =         yk gi (xk ), i ∈ 1, n ,     (1.86)
                   j=1         k=1                          k=1

adic˘ un sistem de n ecuatii pentru cei n parametrii aj , j ∈ 1, n.
    a                      ¸
   Forma sumei S se poate generaliza ˆ        a             a          ¸
                                       ıntrucˆtva introducˆnd o functie pondere
              a          a          ın                         a    ın
w(x), pozitiv˘, continu˘, cu valori ˆ intervalul [0, 1], care s˘ ia ˆ considerare
             ¸                   ¸                  ın
unele distinctii privind importanta valorilor luate ˆ noduri. Se va scrie atunci
                                     N
                              S=           w(xk )[yk − g(xk )]2 = minim,                      (1.87)
                                     k=1

                          ınlocui cu
iar sistemul (1.86) se va ˆ
          n        N                                    N
              aj         w(xk )gi (xk )gj (xk )     =         yk w(xk )gi (xk ), i ∈ 1, n .   (1.88)
      j=1          k=1                                  k=1

    Sistemele (1.86) sau (1.88) se pot rezolva prin metodele din capitolul 5, de
                              ¸                     ¸            a           a
rezolvare a sistemelor de ecuatii liniare. O observatie important˘ este legat˘ de
         a
faptul c˘ aceste sisteme pot ridica probleme legate de introducerea unor erori
mari ˆ calculul numeric, mai ales cˆnd diviziunile sunt egale14 . Functiile gj (x)
      ın                              a                                ¸
se pot alege din baza canonic˘a

                                      gj (x) = xj−1 ,       j ∈ 1, n ,                        (1.89)

                                                                 ¸
sau baze formate din diverse polinoame ortogonale pe multimea discret˘ de     a
puncte xk , k ∈ 1, N (vezi 1.4.2). Alegerea de polinoame ortogonale are avantajul
considerabil al reducerii erorilor ce pot apare la rezolvarea sistemelor (1.86) sau
  13 Un  exemplu ar fi eliminarea zgomotului de fond de la aparatura radio.
  14ˆ
    In                                                                        a       ¸     a
        limbajul din capitolul 5, matricea sistemului (1.86) sau (1.88) este r˘u conditionat˘,
                                                              ın
iar rezolvarea cere tehnici speciale cum ar fi descompunerea ˆ valori singulare.
38                                 1. Aproximarea functiilor de o variabila
                                                      ¸                   ˘




Figura 1.15: Abaterile geometrice e (ˆ microni) ˆ
                                     ın                                            a
                                                ınregistrate la prelucrarea mecanic˘
a 1000 de piese.


                             ¸                       s
(1.88). Deseori, din informatii suplimentare, cunoa¸tem forma cea mai adecvat˘    a
       ¸                                               as         ¸
a functiilor gj (x). Un exemplu este prezentat la sfˆr¸itul sectiunii. Folosirea
unei combinatii liniare (1.84) pentru functia aproximant˘ g(x) este convenabil˘
                ¸                           ¸              a                      a
                                                 ¸                  ¸
deoarece conduce la un sistem liniar de ecuatii pentru coeficientii ai . Se pot
         ıns˘ s                         ¸                ¸
adopta ˆ a ¸i alte forme, cu complicatia posibilei aparitii a unui sistem neliniar
de ecuatii, mult mai dificil de rezolvat. ˆ
        ¸                                                    ¸ a
                                          Incheiem cu observatia c˘ nu s-a precizat
ınc˘                                                    a             a
ˆ a ce grad al polinomului ar conduce la cea mai mic˘ eroare, adic˘ la cea mai
mic˘ valoare a lui S ˆ (1.83). Un criteriu util pentru alegerea gradului este
    a                  ın
minimizarea expresiei
                                    ¯
                                    U = S/(N − n)                                  (1.90)

prin varierea lui n.
    Exemplul 1. ˆ cadrul unei operatii de prelucrare mecanic˘ se ˆ
                   In                   ¸                          a               a
                                                                       ınregistreaz˘ aba-
                                                               s
terile din fig. 1.15 de la cotele nominale. Sunt reprezentate ¸i marginile ce determin˘   a
rebuturi. Se pune ˆ               a                s               a                     a
                   ıntrebarea dac˘ are loc vreo cre¸tere sistematic˘ a abaterilor datorit˘
uzurii utilajului.
                                                a                      a
    Rezolvare. Construim o aproximare liniar˘ prin cele mai mici p˘trate. Procedeul
                             a                                   ¸          a
este denumit regresie liniar˘. Expresia pentru abaterile e functie de num˘rul de piese
prelucrate p este

                                       e = ap + b

            ¸              a
iar coeficientii a, b rezult˘ din rezolvarea sistemului
                   
                          N     2         N                 N
                          k=1 pk a +      k=1 pk b    =           ek pk
                   
                                                            k=1
                         N                                  N
                 
                         k=1   pk a + N b            =      k=1   ek

Se obtine a = 1.11 · 10−2 µ/pies˘ ¸i b = −4.78 µ ceea ce indic˘ o cre¸tere cu ∼1 µ a
     ¸                           as                             a      s
                                               s            a
abaterii la fiecare 100 de piese prelucrate, cre¸tere datorat˘ probabil uzurii utilajului.
                          a            ¸                          ıncˆ a             a
De asemenea din faptul c˘ reglajul initial a fost efectuat astfel ˆ at s˘ se produc˘ o
                a                                 a     ¸                 a a
abatere negativ˘ de circa 5 µ se poate deduce c˘ aparitia uzurii era prev˘zut˘.
                 ın                       a
1.3. Aproximarea ˆ sensul celor mai mici p˘trate                                    39


                              a a                                      ¸
   Exemplul 2. O serie de m˘sur˘tori chimice au furnizat ratele de reactie din tabelul
                           ¸                      s            ¸                ¸
de mai jos. Din teoria reactiilor chimice se cunoa¸te dependenta ratei de reactie de
temperatur˘a

                                 k = cT η exp(−K/RT ) .

                                                a a
Se cere estimarea parametrilor c, η, K pe baza m˘sur˘torilor efectuate. Constanta
gazelor R =8314 J/mol/K este cunoscut˘.a

             T          k              T         k           T              k
             K      mol/cm3            K     mol/cm3         K          mol/cm3
            2000    8.4765e12         2600   5.0189e12      3200        3.3146e12
            2100    7.6895e12         2700   4.6544e12      3300        3.1169e12
            2200    7.0071e12         2800   4.3282e12      3400        2.9364e12
            2300    6.4118e12         2900   4.0351e12      3500        2.7711e12
            2400    5.8892e12         3000   3.7708e12      3600        2.6194e12
            2500    5.4280e12         3100   3.5317e12      3700        2.4799e12

                      ¸                          a        ıns˘              ¸
   Rezolvare. Dependenta k(c, η, K) este neliniar˘. Putem ˆ a logaritma relatia de
mai sus

                               ln k = ln c + η ln T − K/RT

s      ¸               ¸a       a                                    s
¸i reobtinem o dependent˘ liniar˘ de parametrii c, η, K. Se construie¸te suma
                           N
                     S=         (ln c + η ln Tj − K/RTj − ln kj )2 .
                          j=1


     ¸
Conditiile de extrem ∂S/∂(ln c) = 0, ∂S/∂η = 0, ∂S/∂K = 0 conduc la sistemul

                        N                  N                             N
            N ln c +    j=1 ln Tj η −      j=1 1/Tj K/R             =    j=1 ln kj




       N                    N     2             N                     N
       j=1 ln Tj ln c +     j=1 ln Tj η −       j=1 ln Tj /Tj K/R =   j=1 ln kj ln Tj

       N                    N                      N                   N
                                                           2
       j=1 1/Tj ln c +      j=1 ln Tj /Tj η −      j=1 1/Tj   K/R =    j=1 ln kj /Tj



a c˘rui solutie este ln c = 44.97, c = 3.39 · 1019 mol/K2 /cm3 /s, η = −2, K = 46000
   a        ¸
J/mol.
                      a                      a a                              ¸
    Exemplul 3. S˘ presupunem date m˘sur˘tori fizice ale energiei de vibratie ale
                                 s            ¸
unei molecule de O2 . Se cunoa¸te dependenta energiei de temperatur˘  a
                                           hv/kT
                                 e=                    RT
                                       exp(hv/kT ) − 1
                   ¸              s            ıntre dou˘ nivele energetice.
Se cere ν, frecventa fotonilor emi¸i la saltul ˆ        a
    Rezolvare. ˆ acest caz nu avem nici o posibilitate de a liniariza problema. Not˘m
                In                                                                 a
x = hv/k. Suma patratelor este
                                N                               2
                                          x/Tj
                        S=                           RTj − ej       ,
                                j=1
                                      exp(x/Tj ) − 1
40                                  1. Aproximarea functiilor de o variabila
                                                       ¸                   ˘


         Tabelul 1.3: Coeficientii polinomului aproximant din exemplul 4.
                              ¸
                   a1      a2       a3      a4       a5      a6      a7
             a
        Simpl˘ -526.0 4769 4059 1242 -1683 11.79 0.7434
            a
        Dubl˘    40.00 10.00 5.000 3.000 2.000 1.000 1.000



                       ¸          ¸           a
iar din ∂S/∂v = 0 se obtine o ecuatie neliniar˘ de forma f (x) = 0, sau explicit
        N
                    x/Tj                [exp(x/Tj ) − 1] − x/Tj exp(x/Tj )
                               RTj − ej                                          =0
       j=1
                exp(x/Tj ) − 1                  [exp(x/Tj ) − 1]2

                    ¸
Determinarea solutiei se poate efectua prin metodele din capitolul 4.
                             a                                           a
      Exemplul 4. (Dorn) D˘m un exemplu al erorilor mari ce pot ap˘rea atunci cˆnd     a
nu lucr˘m cu functii ortogonale. Gener˘m un set de noduri {xk , yk , k ∈ 1, 15} unde
         a          ¸                      a
lu˘m xk = k − 1, yk = f (xk ) cu f (x) = 40 + 10x + 5x2 + 3x3 + 2x4 + x5 + x6 . Vom
   a
ıncerca reobtinerea coeficientilor polinomului f prin metoda celor mai mici p˘trate
ˆ              ¸               ¸                                                    a
folosind alegerea (1.89), gj = xj−1 , j ∈ 1, 7. Coeficientii obtinuti ˆ urma rezolv˘rii
                                                           ¸     ¸ ¸ ın                a
sistemului liniar15 ˆ simpl˘ (32 biti) ¸i dubl˘ precizie (64 biti) sunt prezentati ˆ tabel
                    ın     a        ¸ s       a                ¸                ¸ ın
                                   ¸         a    ın                 a       ¸ ın
1.3. Acumularea rezultatelor partiale s-a f˘cut ˆ precizie extins˘ (80 biti) ˆ ambele
                           a ¸                                                        ¸
cazuri. Se poate observa c˘ obtinem abateri mari de la valorile exacte ale coeficientilor
ın         a           a                         a                           ıncˆ
ˆ simpl˘ precizie. M˘rirea preciziei furnizeaz˘ rezultatul exact, astfel ˆ at suntem
         ¸ a                               s                         ın
asigurati c˘ modul de calcul este corect ¸i abaterile din calculul ˆ simpla precizie ¸int
de ˆ a¸i natura problemei. Exemplul este reluat la sfˆr¸itul sectiunii 1.4 cu folosirea
     ıns˘s                                                a s        ¸
             ¸
unor functii ortogonale pentru gj pentru a vedea efectul benefic al acestora.
       a                     a               s
      S˘ presupunem acum c˘ nu am cunoa¸te gradul polinomului ce ar conduce la o
               a                 a
cea mai mic˘ eroare. Rezolvˆnd problema pentru diverse valori ale lui n se obtin        ¸
urm˘toarele valori pentru S/(N − n)
      a

    n−1              2        3        4        5        6        7        8         9
  S/(N − n)       5.3E11   5.1E10   1.8E09   1.3E07   9.4E05   3.3E05   3.2E04    5.2E04

           a a            a                      ¸
 Se observ˘ c˘ cea mai mic˘ valoare a sumei se obtine aproape de gradul polinomului
f , n = 8.


1.4                                   a
            Elemente de teoria aproxim˘rii
                      a a               a      a
Din cele prezentate pˆn˘ acum, s-ar p˘rea c˘ problemele de aproximare pre-
    a                        a                                     a
zint˘ multe aspecte ad hoc, l˘sate la alegerea celui care abordeaz˘ o problem˘   a
       a                                                 ın
concret˘ sau alta. Pentru a putea vedea modul natural ˆ care apar criteriile de
                       a a
aproximare discutate pˆn˘ acum avem nevoie de un cadru teoretic mai general.
              ın                                    a a ın                    at
Efortul depus ˆ asimilarea acestuia este pe deplin r˘spl˘tit ˆ aprecierea unit˘¸ii
problemelor de aproximare deja parcurse. ˆ plus, deoarece aproximarea st˘ la
                                            In                                a
                                                              ¸         s ın
baza multor altor algoritmi, cadrul teoretic va avea aplicatii directe ¸i ˆ alte
  15 Prin                                      a
            eliminare Gauss cu pivotare complet˘ – vezi capitolul 5.
                               a
1.4. Elemente de teoria aproxim˘rii                                              41


                                                            a        a     a
procedee numerice. Vom prefera o prezentare mai degrab˘ intuitiv˘ decˆt rigu-
    a     ¸                 a     ¸     a                      a
roas˘ a notiunilor de analiz˘ functional˘ utile teoriei aproxim˘rii. De asemenea,
vom ˆ                                                         a              ¸
     ıncerca formularea unei analogii geometrice utile asimil˘rii acestor notiuni.

1.4.1        ¸
          Spatii vectoriale
                             ¸                                    a       ıncˆ
Astfel, forma (1.6) a functiei de aproximare g(x) a fost aleas˘ astfel ˆ at de-
terminarea coeficientilor ak , k ∈ 1, N s˘ conduc˘ la sisteme de ecuatii liniare.
                       ¸                  a          a                  ¸
                       a                   ¸
S-a remarcat apoi c˘ nici setul de functii gk (x) nu poate fi complet arbitrar,
        a                              at                 ¸a       a
ajungˆndu-se la sugerarea propriet˘¸ii de independent˘ liniar˘. De fapt, am
                                 a              a            a              ¸
ales elemente dintr-o structur˘ bine cunoscut˘ din algebr˘, aceea de spatiu vec-
torial sau spatiu liniar. Not˘m un spatiu vectorial oarecare prin V. Elemen-
                ¸               a         ¸
          ¸                                               a
tele spatiului se numesc vectori. Denumirea sugereaz˘ originea geometric˘ a     a
   ¸          ıns˘                                      s    ¸
notiunilor, ˆ a vom putea interpreta ca “vectori” ¸i functiile gk (x) sau functia¸
g(x). ˆ definitia acestei structuri algebrice intr˘ operatii de adunare ˆ
        In       ¸                                 a      ¸              ıntre vec-
      s
tori ¸i de ˆ      ¸
            ınmultire a vectorilor cu numere reale sau complexe, denumite scalari,
                                  ¸                                   a
cum ar fi parametrii ak . Multimea din care se iau scalarii o not˘m cu S. De
       a                        ¸
regul˘ avem scalari din multimea numerelor reale, S = R, sau din multimea     ¸
                                      aa                         at
numerelor complexe, S = C. F˘r˘ a repeta toate propriet˘¸ile din definitia        ¸
           ¸                      ¸    a
unui spatiu vectorial, vom retine c˘ prin ˆ         ¸
                                             ınmultirea unui scalar cu un vector,
                                                             ¸
rezultatul este un vector, iar la adunarea vectorilor se obtin tot vectori.
                                                              ¸     a
     Vectorii nenuli uk , k = 1, N se numesc liniar dependenti dac˘ unul dintre ei
                                    ¸     a            ¸     a a
se poate exprima ca o combinatie liniar˘ a celorlalti, adic˘ s˘ existe scalarii ak ,
       ¸             ıncˆ a
nu toti nuli, astfel ˆ at s˘ aibe loc egalitatea
                                   N
                                        ak u k = 0 .                         (1.91)
                                  k=1

   a                            ¸
Dac˘ aM este unul din coeficientii nenuli, vectorul uM se poate exprima ca o
       ¸         a           ¸
combinatie liniar˘ a celorlalti
                                   M −1                N
                             1
                    uM   =−               ak u k +            ak u k   .     (1.92)
                            aM
                                   k=1               k=M +1

ˆ egalitatea (1.91), 0 din membrul drept este vectorul nul al spatiului, diferit de
In                                                                ¸
                                    ınt      ıntotdeauna semnificatia lui 0. Dac˘
scalarul zero. Din context se poate ˆ ¸elege ˆ                       ¸            a
vectorii uk nu pot fi pu¸i ˆ relatii de forma (1.91) decˆt atunci cˆnd scalarii
                          s ın    ¸                         a          a
            ¸                                                 ¸        a
ak sunt toti nuli, vectorii se vor numi liniar independenti. Num˘rul maxim
                              ¸             ¸                     s
de vectori liniar independenti dintr-un spatiu vectorial se nume¸te dimensiunea
    ¸             a                          a
spatiului. Aceast˘ dimensiune poate fi finit˘ sau infinit˘.  a
    O dat˘ stabilit cˆt de mare este un spatiu vectorial V, ne punem problema
          a           a                      ¸
cum putem s˘ descriem eficient un element oarecare u ∈ V. Instrumentul adec-
              a
            ¸            a           ¸                              ¸
vat este notiunea de baz˘ a unui spatiu vectorial ce este orice multime de vectori
liniar independenti ˆ num˘r egal cu dimensiunea spatiului V. Orice alt element
                   ¸ ın     a                          ¸
       ¸                                       ¸        a
al spatiului poate fi exprimat ca o combinatie liniar˘ a elementelor din baz˘.    a
42                                   1. Aproximarea functiilor de o variabila
                                                        ¸                   ˘

ˆ
Intr-adev˘r, dac˘ {uk , k ∈ 1, N } este o baz˘ a unui spatiu vectorial de di-
              a          a                    a           ¸
mensiune N , orice alt vector uN +1 formeaz˘ cu {uk } un set de vectori liniari
                                            a
               ¸                                            ¸ s
dependenti – altfel am avea N + 1 vectori liniari independenti ¸i dimensiunea
    ¸                      ın
spatiului ar fi N + 1 ˆ loc de N . Vectorul uN +1 se poate exprima sub forma
(1.92), ca o combinatie liniar˘ de vectorii din baz˘16 . Imediat ce baza este
                           ¸  a                     a
stabilit˘ un element oarecare din V poate fi descris doar prin cei N scalari
          a
(a1 , a2 , . . . , aN ).
       a        a                   ¸
    D˘m cˆteva exemple utile de spatii vectoriale.
     1. Spatiul euclidian de dimensiune 3. Avem 3 vectori {i, j, k} ce sunt liniar
            ¸
                    ¸                                                   ¸        a
        independenti iar orice alt vector se poate exprima ca o combinatie liniar˘
        a acestora, de exemplu V = i + j + k/2, sau pe scurt V ≡ (1, 1, 1/2).
     2. Polinoamele pN −1 (x) de grad cel mult egal cu N − 1 formeaz˘ un spatiu
                                                                      a       ¸
        vectorial de dimensiune N , pe care-l vom nota ΠN −1 . ˆ          a
                                                                 Intr-adev˘r mo-
        noamele xk−1 , k ∈ 1, N sunt liniar independente. Un alt element al
        spatiului vectorial, de exemplu p2 (x) = 1 + x + x2 /2, se poate exprima
           ¸
                      ¸        a                   ¸               ¸
        ca o combinatie liniar˘ de monoame. Notatia prin coeficientii scalari este
        p2 ≡ (1, 1, 1/2).
     3. Multimea C (∞) (−∞, ∞) a functiilor infinit derivabile pe axa real˘ for-
             ¸                          ¸                                  a
        meaz˘ un spatiu de dimensiune infinit˘. ˆ
               a       ¸                      a Intr-adev˘r monoamele xk , k ∈ N
                                                         a
                                                             a
        sunt liniar independente, iar k poate lua valori oricˆt de mari. Orice
             ¸                    a                           ¸        a
        functie infinit derivabil˘ se poate scrie ca o combinatie liniar˘ de mo-
        noame conform teoremei de dezvoltare ˆ serie Taylor. De exemplu ex =
                                                ın
        1 + x + x2 /2 + x3 /6 + . . . a c˘rei notatie prin coeficienti este ex ≡
                                         a         ¸               ¸
        (1, 1, 1/2, 1/6, . . . ).
     4. Multimea C (0) [0, 1] a functiilor continue pe intervalul [0, 1]. Sunt liniar
            ¸                        ¸
        independente functiile sin 2kπx, cos 2kπx, k ∈ Z. Conform teoremei de
                            ¸
                   ın                             ¸            a
        dezvoltare ˆ serie Fourier, orice functie continu˘ se poate scrie ca o
                 ¸       a        s       ın
        combinatie liniar˘ de sin ¸i cos, ˆ particular f (x) = (2 cos πx+sin πx) cos πx =
        1 + cos 2πx + 1 sin 2πx, sau notˆnd doar coeficientii f ≡ (1, 1, 1/2).
                       2                   a                  ¸
            ¸        ın                                    a          s
    Observati cum ˆ toate exemplele de mai sus a ap˘rut aceea¸i notatie prin ¸
         ¸                                             ıntre ele. Notatia ne permite
coeficienti (1, 1, 1/2) pentru elemente foarte diferite ˆ               ¸
stabilirea unor analogii ˆ          ¸                             ¸ s
                           ıntre spatiile mai abstracte de functii ¸i cel geometric
                                           ¸
familiar. Analogiile nu sunt demonstratii matematice, dar vom prefera s˘ fim    a
    s                    ın                                 ¸
one¸ti asupra modului ˆ care se ajunge la o demonstratie – calea se bazeaz˘ de  a
                               ¸                              a
cele mai multe ori pe o intuitie ce este doar apoi verificat˘ riguros.

1.4.2                      s
           Produsul scalar ¸i ortogonalitate
S˘ folosim analogia pentru a introduce o clasificare a bazelor. ˆ
 a                                                                  Incepem cu
considerarea spatiului vectorial plan familiar. ˆ fig. 1.16 sunt prezentate dou˘
                ¸                               In                            a
  16 Mai trebuie demonstrat c˘ avem a
                                 a                             ıncˆ a
                                             N +1 = 0 astfel ˆ at s˘ putem scrie uN +1 =
−a−1
   N +1
          N
                             a
          k=1 ak uk . Dac˘ prin absurd aN +1 = 0, am avea
                                                                    N
                                                                    k=1 ak uk = 0 cu unul din-
tre coeficientii ak , k ∈ 1, N nenul astfel ˆ at {uk } nu ar fi o baz˘ ˆ contradictie cu ipoteza.
            ¸                              ıncˆ                    a ın         ¸
                               a
1.4. Elemente de teoria aproxim˘rii                                              43




              Figura 1.16: O baza neortogonal˘ ¸i una ortonormat˘.
                                             as                 a


                                              a         ¸
baze. Ne punem problema descrierii schimb˘rii pozitiei unui element din A ˆ      ın
B, traiectoria fiind paralel˘ cu primul vector din baz˘. ˆ baza (a) descrierea
                              a                           a In
                 a             a                   s ın           at
este complicat˘: se modific˘ ambele coordonate ¸i ˆ plus unit˘¸ile de m˘sur˘  a a
sunt diferite pe cele dou˘ directii. ˆ baza (b) deplasarea se descrie simplu. Din
                          a       ¸ In
             s      a                                a
geometrie, ¸tim c˘ simplitatea provine din faptul c˘ baza (b) este ortonormat˘.  a
             s ın           ¸                         a
Am dori ca ¸i ˆ cazul spatiilor vectoriale abstracte s˘ avem posibilitatea folosirii
            ın            a      a     a
unor baze ˆ care deplas˘rile s˘ poat˘ fi descrise simplu. Pentru aceasta trebuie
 a            a       ¸               a
s˘ generaliz˘m notiunea geometric˘ de ortogonalitate prin introducerea unei
    ¸           a            a                                      a
functii care s˘ ne arate cˆt de aproape de a fi ortogonali se afl˘ doi vectori.
     ¸    a       a              a
Functia c˘utat˘ este denumit˘ produs scalar. Vom nota produsul scalar a doi
                                 ¸        a                                    a
vectori u, v prin (u, v). Definitia formal˘ a produsului scalar este precizat˘ de
propriet˘¸ile urm˘toare, unde u, v, w ∈ V, a, b ∈ S:
         at         a

  1. (◦, ◦) : V × V → S;

  2. (u, u) ≥ 0 ¸i (u, u) = 0 ⇒ u = 0;
                s

  3. (u, v) = (v, u)∗ ;

  4. (au + bv, w) = a(u, w) + b(v, w).

    Ortogonalitatea a doi vectori nenuli se poate acum defini: u, v = 0 sunt
ortogonali dac˘ (u, v) = 0. O baz˘ de vectori {uk , k ∈ 1, N } este ortogonal˘
                 a                     a                                         a
dac˘ ∀j = k, j, k ∈ 1, N (uj , uk ) = 0 ¸i ortonormat˘ dac˘ este ortogonal˘
    a                                          s             a    a              a
¸i ˆ plus ∀k, k ∈ 1, N (uk , uk ) = 1. Ortogonalitatea unor vectori implic˘
s ın                                                                             a
¸i independenta liniar˘. Prin reducere la absurd, dac˘ vectorii nenuli {uk , k ∈
s               ¸       a                                 a
                                                                      N
1, N } ar fi ortogonali doi cˆte doi, dar liniar dependenti atunci ˆ
                            a                           ¸         ın k=1 ak uk = 0
                                                      a
am avea un coeficient nenul, fie aM acesta. Efectuˆnd produsul scalar al sumei
               a                             a            at
cu uM rezult˘ aM (uM , uM ) = 0 datorit˘ ortogonalit˘¸ii. Dar uM = 0 ¸i decis
                 s       a           ¸
(uM , uM ) > 0 ¸i rezult˘ contradictia aM = 0.
                        a             ¸                              a    a
    Avem acum definit˘ general notiunea de ortogonalitate. Am v˘zut c˘ bazele
                                                                      ¸
ortonormate permit descrieri mai simple ale elementelor unui spatiu vectorial.
Ne punem ˆ   ıntrebarea: putem dintr-o baz˘ oarecare {uk , k ∈ 1, N } s˘ obtinem
                                              a                         a ¸
44                                1. Aproximarea functiilor de o variabila
                                                     ¸                   ˘


una ortonormat˘ {gk , k ∈ 1, N }? R˘spunsul este pozitiv ¸i furnizat de urm˘torul
              a                    a                     s                 a
algoritm denumit procedeul Gram-Schmidt
                          g1 = u1 /(u1 , u1 )
                          k=2:N
                                              k−1
                              vk = uk − j=1 (uk , gj )gj
                              gk = vk /(vk , vk )      .
                   ın                                                   ın
Geometric, ˆ etapa k, se scad din vectorul uk componentele sale ˆ directiile    ¸
                                                                a a               ¸a
g1 , g2 , . . . , gk−1 ce sunt deja ortogonale. Vectorul vk ce r˘mˆne din diferent˘
                                                       a a
este sigur ortogonal pe g1 , g2 , . . . , gk−1 . Mai r˘mˆne doar de adus la lungime
          a         ımp˘ ¸                        a        a          a
unitar˘ prin ˆ artirea gk = vk /(vk , vk ). S˘ consider˘m acum cˆteva exemple
                          s                         ın
de produse scalare ¸i baze ortonormate utile ˆ aplicatii.  ¸

Polinoame ortogonale.
Ortonormarea monoamelor {1, x, x2 , . . . } produce o baz˘ {p0 (x), p1 (x), p2 (x), . . . }
                                                         a
     a
ale c˘rei elemente sunt evident polinoame. Aceste polinoame ortogonale au
             ¸                           a
multe aplicatii iar expresiile lor rezult˘ din procedeul Gram-Schmidt ca fiind
                             p0 (x) = 1, p1 (x) = x − α1 ,                        (1.93)
                  a                                                            ¸
pentru primele dou˘ elemente, celelalte elemente ale bazei fiind definite de relatia
        a
recursiv˘
                  pn (x) = (x − αn )pn−1 (x) − βn pn−2 (x) , n ≥ 2 .              (1.94)
          ¸                      ¸                                      ¸
Coeficientii αn , βn sunt dependenti de produsul scalar ales fiind precizati de
    ¸
relatiile
 αn = (xpn−1 , pn−1 )/(pn−1 , pn−1 ),       βn = (xpn−1 , pn−2 )/(pn−2 , pn−2 ) . (1.95)
                                        s             ¸       a         ¸
Relatiile (1.93)-(1.95) se pot verifica u¸or prin inductie. Urm˘rind relatiile de
     ¸
                            a
mai sus se poate observa c˘ vom avea totdeauna un coeficient unitar al terme-
                             a               ¸
nului de grad maxim, adic˘ polinoamele obtinute vor fi sub forma lor monic˘     a
                       a                                        ¸
(vezi 1.2.1). De regul˘ asupra formei monice se impune o conditie de standar-
dizare ce revine la ˆ     ¸                  a a           a
                     ınmultirea cu o constant˘. S˘ consider˘m cazurile cele mai
    ıntˆ
des ˆ alnite.
     1. Polinoamele Legendre Pn (x). Se consider˘ V = C (0) [−1, 1] ¸i se adopt˘
                                                a                   s          a
        produsul scalar
                                               1
                                 (u, v) =          u(x)v(x)dx .                   (1.96)
                                              −1

             ¸
       Conditia de standardizare este Pn (1) = 1. Deci P0 (x) = 1, α1 = (x, 1)/(1, 1)
       = 0 ¸i deci P1 (x) = x. Apoi α2 = (x2 , x)/(x, x) = 0, β2 = (x2 , 1)/(1, 1) =
           s
       1/3 ¸i deci P 2 (x) = x2 − 1/3. Impunerea conditiei de standardizare con-
           s                                             ¸
       duce la P2 (x) = 3x2 /2 − 1/2. Primele cˆteva polinoame Legendre sunt
                                                  a
       date ˆ tabelul 1.4.
            ın
                               a
1.4. Elemente de teoria aproxim˘rii                                                 45


  2. Polinoamele Cebˆ¸ev Tn (x). Se consider˘ tot V = C (0) [−1, 1] dar se
                     as                     a
          a
     adopt˘ produsul scalar
                                    1
                       (u, v) =          u(x)v(x)(1 − x2 )−1/2 dx .              (1.97)
                                    −1

             ¸ a         ¸    ¸a                                              ¸
     Observati c˘ diferenta fat˘ de produsul scalar anterior (1.96) este aparitia
     unei functii de pondere w(x) = (1 − x2 )−1/2 . Intuitiv, ponderea adoptat˘
              ¸                                                                 a
     acord˘ o mai mare important˘ punctelor de la capetele de interval ±1.
           a                       ¸a
           ¸
     Conditia de standardizare este Tn (1) = 1. Expresiile lor au fost deja
                                 a     a ıns˘
     prezentate ˆ tabelul 1.2. S˘ aplic˘m ˆ a (1.93)-(1.95) pentru a vedea c˘
                 ın                                                             a
     ıntr-adev˘r reobtinem acele expresii. Avem T0 (x) = 1, α1 = (x, 1)/(1, 1).
     ˆ        a       ¸
                                   a               ¸                a
     Apar integrale ce se calculeaz˘ prin substitutia trigonometric˘ x = cos θ
                             1                                 π
                  (x, 1) =        x(1 − x2 )−1/2 dx =              cos θdθ = 0
                             −1                            0

     ¸i deci T1 (x) = x. Apoi α2 = (x2 , x)/(x, x) = 0, β2 = (x2 , 1)/(1, 1) =
     s
     1/2 deci T 2 (x) = x2 − 1/2. Am reobtinut forma monic˘ a polinomului
                                            ¸               a
          as                                  ¸
     Cebˆ¸ev pentru n = 2. Aplicarea conditiei de standardizare conduce la
     T2 (x) = 2x2 − 1, adic˘ exact forma din tabelul 1.2.
                           a

  3. Polinoamele Laguerre Ln (x). Se consider˘ V = C (0) [0, ∞) ¸i se adopt˘
                                             a                  s          a
     produsul scalar
                                         ∞
                         (u, v) =            u(x)v(x) exp(−x) dx .               (1.98)
                                     0

                         ¸                              ¸
     Domeniul de definitie al elementelor din acest spatiu vectorial este acum
                                 ¸ a                  ¸
     infinit la dreapta. Observati c˘ un astfel de spatiu permite tratarea pro-
                                           ¸                  a
     blemelor de aproximare a unor functii definite pe toat˘ semiaxa real˘    a
            a                                         a
     pozitiv˘. Ponderea w(x) = exp(−x) atenueaz˘ comportarea la infinit
     a functiilor u(x), v(x) astfel ˆ at integrala (1.98) s˘ convearg˘ pentru
            ¸                       ıncˆ                   a         a
                                          a                     ¸
     u(x), v(x) ce nu cresc mai repede decˆt un polinom. Conditia de standar-
     dizare este: coeficientul termenului de grad maxim s˘ fie 2n . Expresiile
                                                           a
     primelor cˆteva polinoame sunt date ˆ tabelul 1.4.
                a                          ın
  4. Polinoamele Hermite Hn (x). Se consider˘ V = C (0) (−∞, ∞) ¸i se adopt˘
                                            a                   s          a
     produsul scalar
                                     ∞
                        (u, v) =             u(x)v(x) exp(−x2 ) dx .             (1.99)
                                    −∞

                      ¸                      a                                  a
     Evident acest spatiu vectorial reprezint˘ extinderea celui anterior la toat˘
             a       ¸
     axa real˘. Conditia de standardizare este: coeficientul termenului de grad
     maxim s˘ fie (−1)n /n!.
              a
46                                1. Aproximarea functiilor de o variabila
                                                     ¸                   ˘


                  Tabelul 1.4: Primele cˆteva polinoame ortogonale
                                        a

 n              Pn                    Hn                                 Ln
 0               1                     1                                  1
 1              x                     2x                                 −x
 2         (−1 + 3x2 )/2           −2 + 4x2                        (2 − 4x + x2 )/2
 3        (−3x + 5x3 )/2          −12x + 8x3                   (6 − 18x + 9x2 − x3 )/6
 4     (3 − 30x2 + 35x4 )/8    12 − 48x2 + 16x4           (24 − 96x + 72x2 − 16x3 + x4 )/24



                     ¸
Ortogonalitate pe multimi discrete.
ˆ paragraful anterior s-au introdus produse scalare definite prin integrale, adec-
In
          ¸      ın      a a               a                            a ıns˘
vate situatiilor ˆ care c˘ut˘m aproxim˘ri pe intervale continue. Dac˘ ˆ a ne
intereseaz˘ o aproximare punctual˘, ˆ nodurile {xk , k ∈ 1, N }, atunci este
          a                            a ın
           a
mai util s˘ introducem produse scalare definite prin sume. Vom introduce
acum polinoame ortogonale discrete, rezultate din aplicarea procedeului Gram-
Schmidt asupra bazei {1, x, x2 , . . . } utilizˆnd aceste noi produse scalare. O
                                               a
     a a       a       a                    ¸                           a     ¸
prim˘ r˘splat˘ a abord˘rii abstracte a notiunii de ortogonalitate este c˘ relatiile
                a a                                                            a
(1.93)-(1.95) r˘mˆn valabile deoarece ele nu fac referire la forma particular˘ a
                                                  ¸
produsului scalar. Polinoamele ortogonale obtinute de data aceasta vor fi de-
pendente de nodurile alese {xk , k ∈ 1, N } ¸i vom include multimea nodurilor ca
                                              s                 ¸
un argument pentru a sublinia acest fapt.

     1. Polinoamele Legendre discrete Pn (x; {xk }). Se consider˘ V = C (0) [−1, 1],
                                                                a
        nodurile se consider˘ ˆ acest interval −1 ≤ xk ≤ 1 ¸i se adopt˘ produsul
                            a ın                             s        a
        scalar
                                               N
                                 (u, v) =           u(xk )v(xk ) .               (1.100)
                                              k=1



     2. Polinoamele Cebˆ¸ev discrete Tn (x; {xk }). Se consider˘ V = C (0) (−1, 1),
                         as                                    a
        nodurile se iau −1 < xk < 1 ¸i se adopt˘ produsul scalar
                                    s           a
                                       N
                          (u, v) =         u(xk )v(xk )(1 − x2 )−1/2 .
                                                             k                   (1.101)
                                     k=1



     3. Polinoamele Hermite discrete Hn (x; {xk }). Se consider˘ V = C (0) [0, ∞)
                                                               a
        s          a
        ¸i se adopt˘ produsul scalar
                                       N
                            (u, v) =         u(xk )v(xk ) exp(−xk ) .            (1.102)
                                       k=1
                               a
1.4. Elemente de teoria aproxim˘rii                                                 47


  4. Polinoamele Laguerre discrete Ln (x; {xk }). Se consider˘ tot V = C (0) (−∞, ∞)
                                                             a
     s          a
     ¸i se adopt˘ produsul scalar
                                           N
                         (u, v) =              u(xk )v(xk ) exp(−x2 ) .
                                                                  k             (1.103)
                                       k=1


1.4.3                      s      ¸
          Norme, operatori ¸i functionale
   ¸                                 ¸               a              a
Notiunea de ortogonalitate din sectiunea anterioar˘ ne-a permis s˘ descriem
                  a                                                     a     a
orientarea relativ˘ a doi vectori. Mai avem nevoie de un instrument ce s˘ poat˘
  a       a                                               ¸
m˘sura m˘rimea unui vector, instrument furnizat de notiunea matematic˘ de  a
norm˘. Norma unui vector u ∈ V se noteaz˘ u ¸i este un num˘r real pozitiv.
     a                                      a     s             a
Cu a ∈ S, u, v ∈ V, definitia formal˘ este precizat˘ de
                           ¸        a             a

  1.    ◦ : V → R+ ;

  2.    u = 0 ⇔ u = 0;

  3.    u + v ≤ u + v ; (inegalitatea triunghiului)

  4.    au = |a| u .

         a          a                     a
   O clas˘ important˘ de norme este definit˘ prin
                                                                       1/p
                                                   b
                                                             p
                          u    p   =                   |u(x)| dx                (1.104)
                                               a


pe cazul continuu, cu analogul discret pe multimea de noduri {xk , k ∈ 1, N }
                                             ¸

                                               N                      1/p
                                                                  p
                           u   p   =                   |u(xk )|             .   (1.105)
                                           k=1

                                  s            a
Presupunem ca aceste integrale ¸i sume exist˘. Acestea se numesc norme p
                                           a          a                a
continue sau discrete, respectiv. Se observ˘ imediat c˘ norma 2 discret˘ a unui
vector obi¸nuit u ∈ RN corespunde definitiei clasice a modulului unui vector
          s                                 ¸
            N
 u 2 = ( k=1 u2 )1/2 , astfel ˆ at ne putem ˆ ari intuitia perceperii normei
                 k             ıncˆ            ınt˘       ¸
      a                                    ¸
ca “m˘rime” a unui element dintr-un spatiu vectorial. Se poate demonstra c˘   a
atunci cˆnd p → ∞ avem
        a

                                   u   ∞   = sup |u(x)|                         (1.106)
                                                   x∈[a,b]

ın               s
ˆ cazul continuu ¸i

                               u       ∞   = max |u(xk )|                       (1.107)
                                               k∈1,N
48                                1. Aproximarea functiilor de o variabila
                                                     ¸                   ˘




                           Figura 1.17: Discurile x        p   ≤ 1.


ın                                                    a            a
ˆ cazul discret. Un alt exemplu important de norm˘ este norma indus˘ de
                 ın      ın                   a
produsul scalar, ˆ cazul ˆ care acesta din urm˘ este deja definit
                                     u = (u, u)1/2 .                             (1.108)

Se poate verifica satisfacerea propriet˘¸ilor unei norme. ˆ particular inegalita-
                                      at                  In
                       a                   a          at
tea triunghiului rezult˘ din forma general˘ a inegalit˘¸ii Cauchy-Buniacovski
                                 |(u, v)| ≤ u · v      .                         (1.109)
                     a                    ¸            ¸         a
    Este important s˘ se formeze o intuitie a semnificatiei adopt˘rii unei norme
               a          ¸
sau alta. Apel˘m la spatiul vectorial cel mai familiar, al vectorilor din planul
R2 ¸i desen˘m ˆ fig. 1.17 discurile ce satisfac x p ≤ 1, pentru p = 1, 2, 3 ¸i
    s       a ın                                                                s
p = ∞.
          ¸                                                                   ¸
    Distanta dintre doi vectori se poate acum introduce imediat ca fiind o functie
d : V × V →R+ definit˘ prin
                       a
                                 d(u, v) = u − v       .
                     ¸                           a
Altfel spus distanta dintre doi vectori este m˘rimea vectorului diferent˘. Defi- ¸a
                   ¸                              a at      s        ¸
nirea unei distante permite introducerea vecin˘t˘¸ilor ¸i a notiunilor conexe, ˆ       ın
particular continuitatea.
             s                                           ¸             ¸
    Norma ¸i produsul scalar sunt exemple de aplicatii sau functii prin care unor
                         ¸                        a             a
elemente ale unui spatiu vectorial li se face s˘ corespund˘ un num˘r. Se pot  a
       s            ¸      a
defini ¸i alte functii ale c˘ror valori pot fi scalari sau chiar vectori. O aplicatie   ¸
       a             ¸                                           s         ¸
definit˘ pe un spatiu vectorial care ia valori scalare se nume¸te functional˘. Sprea
                                                                         b
exemplu, pe spatiul vectorial al functiilor continue C (0) [a, b], a u(x)dx este o
                   ¸                    ¸
     ¸     a                             a             a           a       a
functional˘ deoarece integrarea face s˘ corespund˘ un num˘r fiec˘rei functii u       ¸
           ¸           a          ¸                           ın
. O functie definit˘ pe un spatiu vectorial, cu valori ˆ alt spatiu vectorial¸
(eventual acela¸i) e denumit˘ operator. Spre exemplu, dac˘ Rn este spatiul vec-
                 s            a                                a                 ¸
torilor coloan˘ cu n componente (x1 , x2 , ..., xn )T , atunci ˆ
               a                                                         ¸
                                                                ınmultirea vectorului
cu o matrice p˘trat˘ cu n × n elemente poate fi considerat˘ un operator.
                a      a                                         a
                                               s          ¸
    Cu ajutorul normelor, putem compara ¸i aplicatiile definite pe spatii vec-     ¸
toriale. S˘ consider˘m c˘ aplicatia f : V1 → V2 este liniar˘, adic˘ ∀a, b ∈ S,
           a           a   a       ¸                               a        a
u, v ∈ V1 avem
                            f (au + bv) = af (u) + bf (v) .
                               a
1.4. Elemente de teoria aproxim˘rii                                                   49


         ¸        a         a      a     a     a       a
O aplicatie liniar˘ f este m˘rginit˘ dac˘ exist˘ un num˘r real pozitiv M astfel
ˆ at f (u) ≤ M u . Cu alte cuvinte, norma valorilor aplicatiei liniare este
ıncˆ                                                            ¸
         a                                           a
raportat˘ la norma vectorului. Cel mai mic num˘r M pentru care are loc
                      s                ¸      s          a
inegalitatea se nume¸te norma aplicatiei f ¸i se noteaz˘ f . Prin urmare,
putem scrie

                                    f (u) ≤ f · u                                 (1.110)

                    ¸        a a       a                    ¸         a a       a
pentru orice aplicatie liniar˘ m˘rginit˘. Mai mult, o aplicatie liniar˘ m˘rginit˘
                                     as
este ¸i continu˘, deci (1.110) implic˘ ¸i continuitatea.
     s         a

1.4.4                    a                         a
         Problema general˘ a celei mai bune aproxim˘ri
 a                      ın         ¸
S˘ vedem acum modul ˆ care notiunile introduse permit o abordare general˘ a  a
problemei de aproximare. Reamintin problema de aproximare: avem o functie    ¸
            a                         as         a
f complicat˘ sau incomplet cunoscut˘ ¸i dorim g˘sirea unei aproximante g. Am
               ¸           s     a
dori ca diferenta dintre f ¸i g s˘ fie cˆt mai mic˘ posibil˘, adic˘ s˘ minimiz˘m
                                       a         a        a      a a         a
      ¸
distanta

                                   d(f, g) = f − g .                              (1.111)

           a                  a             ¸                              ¸
Din aceast˘ formulare general˘, putem reobtine criteriile de aproximare mentio-
        ınceputul capitolului. Dac˘ adopt˘m oricare dintre normele discrete ¸i
nate la ˆ                         a       a                                  s
                                                   ¸
impunem realizarea unei erori nule, d(f, g) = 0, obtinem

                                     N                               1/p
                                                                 p
                   f −g   p   =             |f (xk ) − g(xk )|             = 0,
                                    k=1

                               a     a
ceea ce nu se poate realiza decˆt dac˘

                              g(xk ) = yk , k ∈ 1, N ,

cu yk = f (xk ) sau exact conditia de interpolare (1.1). Dac˘ adopt˘m norma ∞
                               ¸                            a      a
pe cazul continuu, problema revine la a minimiza

                                  max |f (x) − g(x)| ,
                                  x∈[a,b]

sau criteriul mini-max (1.3). Alegerea normei ∞ discrete conduce la criteriul
mini-max discret (1.4). Alegerea normei 2 pe cazul discret conduce la minimi-
zarea sumei
                                         N
                              S=             [yk − g(xk )]2 ,
                                      k=1

    a                            a
adic˘ criteriul celor mai mici p˘trate (1.5).
                   a              a                       ıntreb˘ri peste care
   Teoria general˘ ne furnizeaz˘ cadrul de a pune anumite ˆ     a
     a ın                           a         a     a                a
am s˘rit ˆ prezentarea elementar˘ anterioar˘. Exist˘ o cea mai bun˘ aproxi-
            a       a a        ¸                ¸                       s
mare? Dac˘ exist˘, c˘rui spatiu vectorial apartine? Putem construi un ¸ir de
50                             1. Aproximarea functiilor de o variabila
                                                  ¸                   ˘




Figura 1.18: Cea mai bun˘ aproximare este ortogonal˘ pe subspatiul aproximantei.
                        a                          a          ¸


           ¸       a          a                 a
aproximatii care s˘ convearg˘ la cea mai bun˘ aproximare? Nu vom parcurge
      ın                                                  a     ¸         a
aici ˆ detaliu aceste chestiuni. Vom face mai degrab˘ o discutie calitativ˘,
     a          ¸             a       ¸
apelˆnd la intuitia geometric˘ din spatiul vectorial euclidian.
    ˆ                                                       a a
    Incepem printr-un exemplu simplu din geometria plan˘. S˘ presupunem c˘ a
         a         a   a
dorim s˘ aproxim˘m cˆt mai bine punctul X(a, b) din plan folosind elemente
doar de pe axa x1 , adic˘ de forma (x1 , 0) (fig. 1.18). Scriem
                        a
                         d(X, P ) = X − P = minim,
                                               1/2
ceea ce conduce la d(X, P ) = (a − ξ)2 + b2            =minim, pentru norma 2 dis-
     a                 a               a
cret˘. Este clar c˘ cea mai mic˘ abatere dintre toate punctele pe axa x1 se
   ¸                                                 a
obtine pentru punctul P ce are proprietatea c˘ XP este ortogonal pe axa x1 .
                            ¸                                              ¸
Axa x1 este un subspatiu al planului, iar P parcurge doar acest subspatiu. Cea
mai bun˘ “aproximare” a lui X de c˘tre P se obtine atunci cˆnd diferenta X −P
         a                               a           ¸           a         ¸
                 a            ¸
este ortogonal˘ pe subspatiul parcurs de P .
     Concluzia de mai este general valabil˘ ˆ               ¸ ın
                                               a ıntr-un spatiu ˆ care avem definit
                                         a
un produs scalar, iar norma rezult˘ din acest produs scalar conform (1.108).
De exemplu, s˘ adopt˘m spatiul C (∞) (−∞, ∞) ce are baza {1, x, x2 , . . . }. Pro-
                  a        a       ¸
                  a                        a                  ¸              a
blema analoag˘ celei anterioare este s˘ se aproximeze functia X = a+bx cˆt mai
bine cu o constant˘ P = ξ. Reprezentarea prin coordonate X ≡ (a, b, 0, . . . ),
                        a
P ≡ (ξ, 0, 0, . . . ) ne convinge imediat c˘ avem aceea¸i problem˘ ca ˆ cazul an-
                                             a           s         a    ın
                  ¸             a s ın                   ¸
terior, iar solutia este dat˘ ¸i ˆ acest caz de conditia de ortogonalitate. Este
          a               ¸          a
educativ˘ demonstratia general˘ a acestui rezultat.


Teorem˘. Fie V un spatiu vectorial ˆ care avem definit un produs scalar, ¸i S
       a               ¸           ın                                   s
    un subspatiu al lui V. Dac˘ v − u este ortogonal pe orice w din S atunci
               ¸               a
    u este cea mai bun˘ aproximare a lui v prin elemente din S, anume u
                         a
             a               ¸
    realizeaz˘ minimul distantei d(u, v).
   Demonstratie. S˘ vedem dac˘ vreun alt w ∈ S realizeaz˘ o distant˘ mai
            ¸     a          a                          a         ¸a
   a
mic˘:
 d2 (v, w) = (v − w, v − w) = (v − u + u − w, v − u + u − w) = (v − u, v − u)+
                                              2           2
  2(u − w, v − u) + (u − w, u − w) = v − u + u − w + 2(u − w, v − u).
                               a
1.4. Elemente de teoria aproxim˘rii                                                          51




Dar v − u este ortogonal pe orice element din S, ˆ particular pe u − w deci
                                                        ın
                                                     2           2        2
(u − w, v − u) = 0 ¸i avem d2 (v, w) = v − u + u − w ≥ v − u , adic˘
                     s                                                           a
       ¸                                                       a
distanta de la orice alt element w la v este mai mare decˆt cea de la u la v. 2
                                       ¸                           a
    Ortogonalitatea pe un subspatiu de dimensiune n se verific˘ prin ortogona-
                                                    ¸
litatea pe elementele unei baze a acelui subspatiu, cel mai eficient chiar pe una
ortonormat˘ {g1 , g2 , . . . , gn }. Conditia de cea mai bun˘ aproximant˘ g a unei
            a                             ¸                  a          a
functii f dintr-un spatiu V cu produs scalar se scrie a¸adar
     ¸                  ¸                                  s

                                 (f − g, gk ) = 0, k ∈ 1, n .                           (1.112)

        ¸ a                               ¸             ¸        a
Observati c˘ (1.86) sau (1.88) se pot obtine din conditia general˘ (1.112) prin
                              s     ıntre vectori din Rn cu ponderea w. Scriind
alegerea produsului scalar obi¸nuit ˆ
                                                        n
                                      ¸
aproximanta sub forma unei combinatii liniare g = j=1 aj gj sistemul (1.112)
                                 ¸
se poate rezolva pentru coeficientii ak

                             ak = (f, gk )/(gk , gk ), k ∈ 1, n,                        (1.113)

                ¸            ¸                       ¸
ce sunt numiti coeficienti Fourier generalizati. De exemplu alegerea bazei tri-
gonometrice cos(2πkx), k ∈ 0, N ; sin(2πmx), m ∈ 1, N − 1 definit˘ pe punctele    a
discrete {xj = j/2N, j ∈ 0, 2N − 1} ¸i a produsului scalar obi¸nuit permite
                                             s                                   s
    ¸            ¸
obtinerea relatiilor (1.58) folosind rezultatul general (1.113).
                                          a                  ¸                     ın
      Rezultate ca cele de mai sus arat˘ utilitatea spatiilor vectoriale ˆ care se in-
troduce un produs scalar ¸i norma indus˘ prin relatia (1.108). Un astfel de spatiu
                              s              a             ¸                                  ¸
se nume¸te spatiu prehilbertian. ˆ
          s       ¸                                ¸
                                      Intr-un spatiu prehilbertian putem obtine pen-    ¸
                                                       n
tru un n fixat coeficientii aproximantei g = j=1 aj gj prin relatiile (1.113). Pe
                            ¸                                                  ¸
   a a              s                   a a a a ın          ¸
m˘sur˘ ce n cre¸te, am dori ca g s˘ r˘mˆn˘ ˆ spatiul considerat. Acest dezide-
rat conduce natural la spatii Hilbert H, definite prin faptul c˘ limitele ¸irurilor
                                ¸                                          a              s
fundamentale apartin ¸i ele lui H. Spatiile vectoriale din exemplele din 1.4.1
                        ¸ s                    ¸
          ¸                                                               ¸
sunt spatii de acest tip, ele numindu-se complete. Aceste notiuni sunt deosebit
                                                   s          a a a
de importante pentru procedeele numerice ¸i merit˘ s˘ z˘bovim putin.                ¸
         a          ¸                            a a              ¸
      Dac˘ revedeti exemplele prezentate pˆn˘ acum, veti observa c˘ deseori s-a    a
calculat o eroare fat˘ de un rezultat exact cunoscut. ˆ exemplificarea unui
                         ¸a                                          In
                                                                   s
procedeu numeric alegerea unei probleme la care cunoa¸tem deja r˘spunsul este     a
                      a       ın       ¸                       s       a
perfect acceptabil˘. Dar ˆ aplicatiile reale nu cunoa¸tem r˘spunsul exact. Cum
          ın                    ¸    a      a
putem, ˆ asemenea conditii, s˘ ne d˘m seama de convergenta unui algoritm     ¸
                ¸                             a                          ın
numeric? Notiunile de mai sus furnizeaz˘ cadrul matematic ˆ care putem da un
  a
r˘spuns la aceast˘ ˆ                                    ¸                 ¸
                      a ıntrebare. Reamintim definitia convergentei unui ¸ir c˘tre o   s a
limit˘: a este limit˘ a ¸irului {an } cu n ∈ N dac˘ ∀ε > 0 exist˘ un Nε astfel ˆ at
       a               a s                             a                  a                 ıncˆ
|an − a| < ε pentru n > Nε . Observati c˘ ˆ aceast˘ definitie a convergentei
                                             ¸ a ın              a         ¸                  ¸
valoarea limitei se presupune cunoscut˘. ˆ afar˘ de aceast˘ definitie se mai
                                              a In          a               a         ¸
introduce ˆ analiz˘ notiunea de ¸ir fundamental sau Cauchy {an } caracterizat
             ın         a ¸            s
prin faptul c˘ ¸irul este convergent dac˘ ∀ε > 0, p ∈ N exist˘ un Nε astfel ˆ at
                as                           a                           a                  ıncˆ
|an+p − an | < ε pentru n > Nε . Observati elementul esential al definitiei unui
                                                 ¸                     ¸                ¸
s                                ¸             a
¸ir fundamental: convergenta este definit˘ prin aproprierea termenilor succesivi.
Pentru verificarea convergentei nu este nevoie s˘ cunoa¸tem limita ¸irului. ˆ
                                   ¸                      a          s                s        In
52                                       1. Aproximarea functiilor de o variabila
                                                            ¸                   ˘


       ¸                       ¸       a           ¸               ¸
aplicatii, aceasta este situatia uzual˘. Putem obtine aproximatii succesive, dar
              a s                a s                  ¸        a ın      ¸
nu, de regul˘, ¸i limita exact˘ a ¸irului de aproximatii. Lucrˆnd ˆ spatii Hilbert
                                          ¸            a              ¸
vom avea un bun indiciu al convergentei, atunci cˆnd aproximatiile succesive
devin apropriate ˆ  ıntre ele.
         ¸                                   at              ¸                   a
    Spatiile Hilbert au multe alte propriet˘¸ile utile aplicatiilor numerice. Dou˘
                                                e                       a a
exemple ar fi: (1) teorema de reprezentare Fr´chet-Riesz ce ne asigur˘ c˘ rezul-
            a              ¸                               a
tatul aplic˘rii unei functionale f (e.g. integrala definit˘) asupra unui element
u ∈ H este el ˆ si exprimabil ca un produs scalar f (u) = (u, vf ), unde vf este
                ınsu¸
                    ¸
un element al spatiului care depinde de f ; (2) teoreme generale asupra propri-
  at                                          a
et˘¸ilor operatorilor printre care se remarc˘ cele de descompunere spectral˘.  a
                                                                           a
    Exemplu. Relu˘m exemplul 4 din 1.3, de data aceasta folosind ca baz˘ un set de
                      a
polinoame ortogonale definite pe multimea discret˘ {xk = k − 1, k ∈ 1, N }, cu N = 15.
                                         ¸            a
Functia aproximat˘ este polinomul f (x) = 40 + 10x + 5x2 + 3x3 + 2x4 + x5 + x6 . Cum
     ¸              a
                          a      a                          ¸a        a a
nu avem vreun motiv s˘ acord˘m vreunui nod o important˘ deosebit˘ lu˘m ponderea
       s        a
w = 1 ¸i adopt˘m polinoamele Legendre discrete. Acestea sunt definite pe [−1, 1] astfel
ˆ at este nevoie s˘ introducem transformarea z = 2x/(N −1)−1. Functia aproximant˘
ıncˆ               a                                                   ¸              a
se scrie g(z) = n aj Pj (z) cu n = 6. Conform relatiilor de recurent˘ (1.93)-(1.95)
                   j=0                                    ¸            ¸a
primele 7 polinoame Legendre discrete sunt P0 (z) = 1, P1 (z) = z, P2 (z) = − 21 + z 2 ,
                                                                               8
                       3                        331 2   4                  545 3
P3 (z) = − 245 z + z , P4 (z) = 12005 − 343 z + z , P5 (z) = 151263 z − 441 z + z 5 ,
            167                      1296                       44252

P6 (z) = − 1294139 + 2042 z 2 − 115 z 4 + z 6 .
            36000
                       3773      77
              ¸             a
    Coeficientii ak rezult˘ imediat din (1.113)
                                     N                         N
                           aj =          f (zk )Pj (zk ) /           Pj2 (zk )   .
                                   k=1                         k=1

      a            ın         ¸                                  a         ¸
Efectuˆnd calculul ˆ numere rationale a produselor scalare rezult˘ coeficientii
         75236936          1058398              18800           1868             269
  a0 =    1764735
                    a1 =    84035
                                         a2 =    2401
                                                        a3 =     441
                                                                          a4 =    77
                                                                                        a5 = 1   a6 = 1

           s ın         ¸         a                        ¸                ın     a
ce introdu¸i ˆ combinatia liniar˘ de mai sus dau exact functia f . Calculul ˆ simpl˘
                  a                  ¸
precizie furnizeaz˘ valorile coeficientilor aj

     a0 =    42.633556      a1 =     12.594727          a2 =       7.8300747         a3 =   4.2358241
     a4 =    3.4935030      a5 =     0.99998158         a6 =       .99996691

cu o eroare relativ˘ maxim˘ de ε = 3 · 10−5 fat˘ de valorile exacte. Se observ˘
                    a        a                    ¸a                                a
 a                                           ¸                           a         ın
c˘ folosirea unei baze ortogonale a permis obtinerea unei erori mici lucrˆnd chiar ˆ
      a
simpl˘ precizie.
                                                                                 53




Capitolul 2

          s
Derivarea ¸i integrarea
       a
numeric˘




2.1                      a
        Derivarea numeric˘
                         a                       ıl                    a
Pentru derivarea numeric˘, punctul de plecare ˆ constituie tot g˘sirea unei
     ¸                            a ın                               ¸
functii aproximante. Ideea const˘ ˆ aproximarea derivatei functiei date cu
                                                               ¸           a
derivata aproximantei. Cele mai uzuale formule de calcul se obtin plecˆnd de la
                                    a        s
aproximarea prin interpolare. Utilizˆnd aceea¸i diviziune a intervalului pe care
       a         ın            s
se afl˘ punctele ˆ care se dore¸te calculul derivatei, xi , i = 1, 2, . . . , N , vom
scrie derivata sub forma
                                     df   dg   dR
                               y ≡      =    +    ,                           (2.1)
                                     dx   dx   dx
unde g este aproximanta iar R restul (eroarea).
    ˆ formulele de aproximare numeric˘ a derivatei, se utilizeaz˘ de regul˘ va-
    In                                  a                       a         a
           ¸      ın a                                   ¸       a ıntre aceste
lorile functiei f ˆ cˆteva din punctele xi . Fie h distanta tipic˘ ˆ
                                          a
abscise. Un aspect important al aproxim˘rii numerice este stabilirea ordinului
erorii. Eroarea se poate scrie sub forma
                               df   dg   dR
                          e=      −    =    = O(hk ) .                        (2.2)
                               dx dx     dx
54                                      2. Derivarea ¸i integrarea numerica
                                                     s                    ˘


Simbolul O este folosit pentru a elimina constantele ce ˆ       ¸
                                                          ınmultesc expresia de
interes de sub paranteze, ˆ cazul de fat˘ hk . Ordinul erorii este exponentul k.
                          ın           ¸a
          a           s                                 a
Se observ˘ ca la mic¸orarea pasului h, eroarea e va sc˘dea mai repede cu cˆt  a
ordinul erorii k este mai mare. Spre exemplu, pentru k = 1 o ˆ         a at
                                                                  ınjum˘t˘¸ire a
                                        a             a       a
pasului conduce tipic la o eroare de dou˘ ori mai mic˘, pe cˆnd pentru k = 2
eroarea scade de patru ori.

2.1.1      Derivate folosind polinoame de interpolare
ˆ cazul interpol˘rii polinomiale, cu diviziuni egale, se poate scrie
In              a

                    x = xi−1 + αh,     α ∈ [0, n],   n ∈ 1, N − 1 ,             (2.3)

                                2                    n
        g(x) = yi−1 + α∆yi−1 + Cα ∆2 yi−1 + . . . + Cα ∆n yi−1 ≡ pn (x)         (2.4)

                                            n+1
                         R = Rn (x) = hn+1 Cα f (n+1) (ξ) .                     (2.5)

         a a       a                         ¸
Se observ˘ c˘ exist˘ doi parametri la dispozitie:

                       ¸a               a         ¸
     1. punctul xi−1 fat˘ de care calcul˘m diferentele la dreapta;

     2. gradul n al polinomului de interpolare.

     Derivata (2.1) se scrie

                               df   1 df   1 dpn   1 dRn
                        y =       =      =       +       .                      (2.6)
                               dx   h dα   h dα    h dα
       ¸                       ın    ¸                 a      ¸     s
Prezenta pasului h la numitor ˆ relatia (2.6) sugereaz˘ tendinta cre¸terii erorii
                        a                a
la derivarea aproximativ˘. Astfel, dac˘ eroarea la interpolare era de ordinul
n + 1, R = O(hn+1 ), eroarea la derivare este ordinul n, R = O(hn ), datorit˘  a
ımp˘ ¸                                            ¸
ˆ artirii la h. De aceea, se iau o serie de precautiuni ca:

     1. utilizarea unor polinoame de aproximare de grad nu prea mare (n < 7)
                               ¸                  a
        (pentru a preveni aparitia vreunei comport˘ri prezise de teorema lui Faber,
        vezi 1.1.1);
                            ın
     2. centrarea punctului ˆ care se face calculul pe intervalul (xi−1 , xi−1 + nh);

                                                                     a        ¸
     3. calculul derivatei folosind polinoame de grade diferite – dac˘ diferentele
                                 ¸                     s
        sunt mari, se iau precautiuni suplimentare (mic¸orarea pasului, aproxima-
        rea spline sau prin alte metode de aproximare, etc.).

             a        a
     Consider˘m acum cˆteva cazuri particulare utile.
                      a
2.1. Derivarea numeric˘                                                        55


Cazul n = 1.
        ¸                      ¸
Din relatiile (2.4)-(2.6) se obtine

                            1         h d
                      y =     ∆yi−1 +      [α(α − 1)f (ξ)] .                 (2.7)
                            h         2 dα
                      s
Pentru valorile α = 0 ¸i α = 1, ce corespund la capetele intervalului (xi−1 , xi )
     ¸
se obtine
                                      yi − yi−1  h
                            yi−1 =              − f (ξ),                     (2.8)
                                          h      2

                                    yi − yi−1  h
                             yi =             + f (ξ) .                      (2.9)
                                        h      2
           ¸                a                    a
Aproximatia (2.8) utilizeaz˘ punctul xi ce se afl˘ la dreapta punctului xi−1
ın                 a          s        s                  a
ˆ care se evalueaz˘ derivata ¸i se nume¸te, uzual, formul˘ la dreapta. Analog
             s         a      a                                           ıntˆ
(2.9) se nume¸te formul˘ la stˆnga. Ambele formule au o eroare de ordinul ˆ ai.
                   a
Spunem pe scurt c˘ sunt formule de ordinul I.

Cazul n = 2.
ˆ acest caz, din (2.4)-(2.6), se obtine
In                                 ¸

           1         2α − 1 2       h2 d
     y =     ∆yi−1 +       ∆ yi−1 +      [α(α − 1)(α − 2)f (ξ)] .          (2.10)
           h           2h           6 dα
                               a
Pentru α = 1, din (2.10) rezult˘

                                 yi+1 − yi−1  h2
                          yi =               − f (ξ) ,                     (2.11)
                                     2h       6
ın
ˆ timp ce, pentru α = 0, se deduce

                             −yi+1 + 4yi − 3yi−1  h2
                    yi−1 =                       + f (ξ) .                 (2.12)
                                     2h           3
         a                    s                  a a           s
Comparˆnd formulele (2.11) ¸i (2.12), se observ˘ c˘, la acela¸i grad al polinomu-
lui de interpolare, plasarea punctului de calcul spre centrul diviziunii conduce
                    a                              a     ıns˘          ¸
la reducerea de dou˘ ori a erorii. Mai important˘ este ˆ a comparatia cu cazul
anterior, n = 1. Se observ˘ c˘ formulele (2.11), (2.12) sunt de ordinul doi fat˘
                            a a                                                ¸a
                                                  ıntˆ     as
de formulele (2.8), (2.9) care sunt de ordinul ˆ ai. Cˆ¸tigul de precizie este
   ¸           ¸            a        ¸       ¸
obtinut cu pretul consider˘rii variatiei functiei peste un interval mai mare, 2h,
                 ¸a
pentru n = 2, fat˘ de h, pentru n = 1.
                                                    s
     Cu ajutorul expresiei (2.10) se poate calcula ¸i derivata de ordinul doi

                       ∆2 yi−1   h d2
                 y =           +       [α(α − 1)(α − 2)f (ξ)] .            (2.13)
                         h2      6 dα2
56                                          2. Derivarea ¸i integrarea numerica
                                                         s                    ˘


                   ¸
Pentru α = 1, se obtine

            ∆2 yi−1   h2      dξ                       yi+1 − 2yi + yi−1  h2
     yi =           −                    f (4) (ξ) =                     − f (4) (ξ) ,
              h2      3       dα   α=1                        h2          12
                                                                                   (2.14)

                                                           ¸
eroarea fiind de ordinul doi. A doua egalitate (2.14) se obtine cu ajutorul unor
formule Taylor pentru yi−1 , sau prin utilizarea unui polinom de gradul trei. Se
       a                     a         a      a                 ¸a
constat˘ o precizie superioar˘, datorat˘ centr˘rii punctului, fat˘ de cazul α = 0,
                             a
pentru care din (2.13) rezult˘ formula

                          ∆2 yi−1            2h2           dξ
                 yi−1 =       2
                                  − hf (ξ) +                            f (4) (ξ)      (2.15)
                            h                 3            dα     α=0

                                ıntˆ
la care eroarea este de ordinul ˆ ai.
                                  a          ın           s a
    Exemplu. (Efectul reprezent˘rii finite ˆ numere ma¸in˘ a numerelor reale) Se
calculeaz˘ derivatele y , y ale functiei y(x) = ex/2 ˆ punctul xi = 2.5 folosind for-
         a                          ¸                ın
mulele de mai sus. Valorile exacte sunt yi = 1.74517, yi = 0.87259. ˆ formulele de
                                                                     In
                                                         a           ¸
derivare apare pasul h. Valoarea acestuia este necunoscut˘. Din definitia derivatei
                                                 y(x) − y(x0 )
                                y (x0 ) = lim                                          (2.16)
                                          x→x0      x − x0
ne-am putea a¸tepta ca valorile cele mai exacte s˘ fie obtinute pentru h → 0. Vom
                 s                                       a      ¸
considera valorile hk = 10−k , k = 1, 16. Aproxim˘rile derivatelor pentru cˆteva valori
                                                       a                         a
                             ın                                          a
ale lui h sunt prezentate ˆ tabelul de mai jos. S-au considerat urm˘toarele cazuri: (1)
yi ∼ (yi − yi−1 )/h, (2) yi ∼ (yi+1 − yi )/h, (3) yi = (yi+1 − yi−1 )/2h, (4) yi ∼ (yi+2 −
   =                          =                                                    =
2yi+1 +yi )/h2 , (5) yi ∼ (yi+1 −2yi +yi−1 )/h2 . S-a utilizat o precizie de lucru de 80 biti.
                         =                                                                 ¸
                     a      s                            ¸
Se poate observa c˘ mic¸orarea pasului conduce initial la ˆ           a at
                                                               ımbun˘t˘¸irea preciziei, dar,
     a                                                                              a
dup˘ un anumit prag, apar abateri mari. Acestea sunt rezultatul pierderii num˘rului de
cifre semnificative din diferenta yi −yi−1 . De exemplu, dac˘ ˆ calculator se memoreaz˘
                                 ¸                             a ın                          a
                                                                             ¸
7 cifre zecimale, iar yi , yi−1 au primele 6 cifre zecimale identice, diferenta are o singur˘a
    a         a
cifr˘ zecimal˘ exact˘. a

            lg hØCazul        1           2           3             4           5
                 -1        1.70226     1.78954     1.74590       0.91752     0.87277
                 -4        1.74513     1.74522     1.74517       0.87202     0.87239
                 -7        1.74517     1.74517     1.74517       0.00000     0.00000
                -10        1.70985     1.70985     1.70985       7.3·108     0.00000

      a                                 a
    M˘rirea preciziei de lucru nu elimin˘ fenomenul de pierdere de cifre semnificative.
                                                                            a
Acesta se va produce la valori mai mici ale pasului h. O prezentare sugestiv˘ a acestei
        a                                                     a
comport˘ri universale a procedeului de aproximare numeric˘ a derivatei este dat˘ ˆ a ın
                          a
fig. 2.1 unde se reprezint˘ grafic logaritmul zecimal al erorii

                         lg e1 = lg yi − yi ,
                                         ˜       lg e2 = lg yi − yi
                                                                 ˜                     (2.17)

    ¸                                                     a                 a
functie de logaritmul pasului. Reprezentarea logaritmic˘ este convenabil˘ pentru verifi-
carea practic˘ a ordinului erorii prezis teoretic. Dac˘ din teorie se prezice c˘ e = O(hk ),
              a                                       a                        a
                  ¸                 s                a
atunci dependenta dintre eroare ¸i pas se exprim˘ logaritmic prin lg e = C + k lg h,
                      a
2.1. Derivarea numeric˘                                                              57




  Figura 2.1: Variatia erorii absolute ˆ estimarea derivatelor functie de pasul h.
                   ¸                   ın                          ¸


                          a                               a
unde C este o constant˘. Putem construi regresia linear˘ (vezi Exemplul 1 din 1.3)
                             ın                     s a         a    ¸
a valorilor erorii calculate ˆ experimente numerice ¸i s˘ verific˘m obtinerea ordinului
                        a       a
de eroare. Trebuie s˘ elimin˘m din datele de intrare cele ce sunt afectate de pier-
                   a                                             s        ¸
derea catastrofal˘ de cifre semnificative. Pentru cazurile 1, 3 ¸i 5 se obtin dreptele
−0.364134 + 0.999353 lg h, −1.00836 + 2.05568 lg h, −1.72727 + 2.00789 lg h respectiv.
                                                                       as
Aceste drepte sunt reprezentate cu linie groas˘ ˆ fig. 2.1. Se confirm˘ ¸i prin expe-
                                              a ın
riment numeric ordinele O(h) pentru cazul 1, O(h2 ) pentru cazurile 3, 5, ce au fost
prezise teoretic.


2.1.2                           a
          Formularea operatorial˘
                              ¸             ¸
Folosind operatorul de translatie, se pot obtine operatorii de derivare. Astfel,
    a
plecˆnd de la expresia (1.19)

                           f (x0 + αh) = (E 0 + ∆)α y0 ,                       (2.18)

                    ¸
prin derivare, se obtine
      df    1 d                     1
          =        (E 0 + ∆)α y0 =    (E 0 + ∆)α ln(E 0 + ∆) y0 =              (2.19)
      dx    h dα                    h
         1                                   1
           ln(E 0 + ∆)     (E 0 + ∆)α y0 =     ln(E 0 + ∆) f (x)               (2.20)
         h                                   h
                ¸
unde s-a evidentiat prin [ ] operatorul ce trebuie aplicat. Prin identificare,
      a                                  ¸
rezult˘ operatorul de derivare cu diferenta la dreapta (∆)

                                d  1
                                  = ln(E 0 + ∆) .                              (2.21)
                               dx  h
58                                            2. Derivarea ¸i integrarea numerica
                                                           s                    ˘

ˆ mod similar, folosind operatorul diferenta la stˆnga ( ), se obtine
In                                        ¸       a              ¸
                                     d  1
                                       = ln(E 0 −             ).                                  (2.22)
                                    dx  h
                  ¸                      ¸          ¸
Extinderea operatiei de derivare a functiei exponentiale la derivarea operatorilor
               a                                                      a
este justificat˘ prin analogia expresiilor utilizate cu seria binomial˘. Practic,
                  s                     a             ¸     a
expresiile (2.21) ¸i (2.22) se utilizeaz˘ sub forma obtinut˘ prin dezvoltarea ˆ ın
serie a logaritmului
                     d          1             ∆2   ∆3   ∆4
                           =         ∆−          +    −    + ...                                  (2.23)
                    dx          h             2    3    4
                                                  2       3        4
                                1
                           =              +           +       +        + ...          .           (2.24)
                                h                 2       3       4
                      s                     ¸      a
    Operatorii (2.23) ¸i (2.24) pot fi aplicati oric˘rui polinom de interpolare cu
diferente la dreapta sau la stˆnga care aproximeaz˘ functia f (x). ˆ acest fel,
        ¸                      a                      a     ¸        In
      ¸                   a      ¸
se obtin, pe cale formal˘, relatii similare cu cele precedente. Prin aplicarea
repetat˘ a operatorilor (2.23) se obtin operatorii derivatelor de ordin superior.
        a                            ¸
Spre exemplu, pentru derivata de ordinul doi rezult˘  a
                      d2            1                     11 4
                            =             ∆2 − ∆3 +          ∆ + ...                              (2.25)
                     dx2            h2                     2
                                    1         2       3   11 4
                            =                     +     +      + ...              .               (2.26)
                                    h2                     2
    Exemplu. Fie f : [0, 1] → R o functie a c˘rei valori ˆ nodurile xj = j/n,
                                            ¸       a         ın
j = 0, n sunt fj = f (xj ) ¸i sunt cunoscute. Se cere o estimare de O(h4 ) a derivatei
                           s
f0 = f (x0 = 0) unde h = 1/n.
                                                                                  a
    Rezolvare. Fiind disponibile doar punctele la dreapta, vom aplica (2.23). Num˘rul
de termeni luati din dezvoltarea ˆ serie determin˘ ordinul formulei. ˆ cazul de fat˘,
               ¸                  ın               a                  In            ¸a
           a         a
va trebui s˘ consider˘m patru termeni
                                1             ∆2   ∆3   ∆4
                           f0 ∼
                              =          ∆−      +    −                f0 .                       (2.27)
                                h             2    3    4

    Aplicarea repetat˘ a operatorului de diferent˘ la dreapta conduce la ∆f0 = f1 −
                       a                           ¸a
f0 , ∆2 f0 = ∆(∆f0 ) = ∆(f1 − f0 ) = ∆f1 − ∆f0 = f2 − 2f1 + f0 , ∆3 f0 = ∆(∆2 f0 ) =
f3 − 3f2 + 3f1 − f0 , ∆4 f0 = ∆(∆3 f0 ) = f4 − 4f3 + 6f2 − 4f1 + f0 . Se remarc˘ aparitia
                                                                               a      ¸
coeficientilor din dezvoltarea binomial˘ (1 − a)n . Rezult˘ formula
         ¸                              a                  a
                          1      1    4                 25
                     f0 ∼
                        =       − f4 + f3 − 3f2 + 4f1 −    f0                    .                (2.28)
                          h      4    3                 12
                                                                             ın
Pentru a verifica ordinul formulei, folosim primii 5 termeni din dezvoltarea ˆ serie
                                                     (3)      (4)       (5)
             ¸                                                                  s
Taylor a functiei f , T5 (x) = f0 + f0 x + f0 x/2 + f0 x/6 + f0 x/24 + f0 x/120 ¸i se
  ¸
obtine
  1    1         4                               25                                       (5)
      − T5 (4h) + T5 (3h) − 3T5 (2h) + 4T5 (h) −    T5 (0)                    = f0 − h4 f0 /5 ,   (2.29)
  h    4         3                               12
                  ıntr-adev˘r de ordinul IV.
deci eroarea este ˆ        a
                      a
2.1. Derivarea numeric˘                                                                       59


2.1.3                                  ın    ¸ s           a
              Polinoame de interpolare ˆ functie ¸i derivat˘
  a                 a                             ¸    s
S˘ presupunem c˘ sunt date valorile unei functii yi ¸i ale derivatei sale yi ˆ ın
nodurile xi ∈ [a, b], i = 1, N . Pentru evaluarea derivatei ˆ alte puncte din
                                                              ın
intervalul [a, b], se poate urma procedeul anterior de derivare a polinomului de
                                                    a            a         s s
interpolare ce satisface pN −1 (xi ) = yi . O metod˘ mai precis˘, ce folose¸te ¸i
        ¸                      ın              ıns˘ a                a
informatiile asupra derivatei ˆ noduri, este ˆ a s˘ se construiasc˘ polinomul
de grad 2N − 1 ce satisface

                      p2N −1 (xi ) = yi ,       p2N −1 (xi ) = yi ,   i = 1, N .          (2.30)

                                 s s                           ın              s
O astfel de interpolare ce folose¸te ¸i valorile unor derivate ˆ noduri se nume¸te
de tip Hermite. Polinomul de interpolare Hermite este unic definit pentru abs-
cise distincte, i = j ⇒ xi = xj . Ca ¸i polinomul de interpolare uzual, polinomul
                                      s
                                     a                       a       ¸
de interpolare Hermite are o form˘ Newton, ce utilizeaz˘ diferente divizate, ¸i  s
       a
o form˘ Lagrange.
                                                                   a
    Forma Newton a polinomului de interpolare Hermite utilizeaz˘ o generalizare
        ¸                      a         ¸                   ¸ ın              s
diferentelor divizate, denumit˘ diferente divizate cu repetitie ˆ care se define¸te

                                   DD(xi , xi ) ≡ f (xi ) = yi .                          (2.31)

                             ¸               ¸                           a a
Regula recursiv˘ (1.9), de obtinere a diferentelor divizate superioare, r˘mˆne
                a
       a
valabil˘. Explicit, forma Newton a polinomului Hermite este

      p2N −1 (x) = y1 + (x − x1 ) DD(x1 , x1 ) + (x − x1 )2 DD(x1 , x1 , x2 ) +           (2.32)
                                   2
                         (x − x1 ) (x − x2 ) DD(x1 , x1 , x2 , x2 ) + . . .               (2.33)

                                       ¸
ce se poate compara cu (1.13). Coeficientii formei Newton se pot calcula con-
                       ın
venabil tabelar precum ˆ exemplul de mai jos.

 x1     y1     −                                −                                                  ···
 x1     y1     DD(x1 , x1 ) = y1                −                                                  ···
                              y2 − y1                               DD(x2 , x1 ) − DD(x1 , x1 )
 x2     y2     DD(x1 , x2 ) =                   DD(x1 , x1 , x2 ) =                                ···
                              x2 − x1                                        x2 − x1
                                                                    DD(x2 , x2 ) − DD(x2 , x1 )
 x2     y2     DD(x2 , x2 ) = y2                DD(x1 , x2 , x2 ) =                                ···
                                                                             x2 − x1
 .
 .      .
        .      .
               .                                .
                                                .                                                  ..
 .      .      .                                .                                                       .

      Forma Lagrange a polinomului de interpolare Hermite este
                                            N                 N
                          p2N −1 (x) =          Ak (x)yk +         Bk (x)yk ,             (2.34)
                                         k=1                 k=1

                     at
unde impunem propriet˘¸ile

             Ak (xj ) = δkj ,   Ak (xj ) = 0,        Bk (xj ) = 0,    Bk (x) = δkj        (2.35)
60                                         2. Derivarea ¸i integrarea numerica
                                                        s                    ˘


prin analogie cu procedeul din 1.1. S-a utilizat simbolul Kronecker: δkj = 0,
dac˘ j = k; δkj = 1, dac˘ j = k. Polinoamele Ak , Bk se pot exprima functie de
   a                    a                                               ¸
polinoamele Lagrange (1.29) Lk

                     Ak (x)    =    [1 − 2(x − xk )Lk (xk )] L2 (x) ,
                                                              k                      (2.36)
                     Bk (x)    =    (x −   xk )L2 (x) .
                                                k                                    (2.37)

                             a a
    Printr-un procedeu asem˘n˘tor celui folosit pentru determinarea formulei
                   ¸
(1.16), se poate obtine expresia restului la interpolarea Hermite
                                              N
      R2N −1 (x) ≡ f (x) − p2N −1 (x) =            (x − xi )2 f (2N ) (ξ)/(2N )! .   (2.38)
                                             i=1

                                      ¸                   ın
    Exemplu. Vom calcula derivata functiei f (x) = sin πx ˆ x = 1/8 folosind forma
Newton a polinomul Hermite. Utiliz˘m nodurile xj = (j − 1)/4, j = 1, 2. Tabelul
                                   a
       ¸
diferentelor divizate este

               xj    yj
               0      0        –          –                         –
               0      0        π          –                         –
                     √
               1       2       √         √
                              2 2     4(2 2 − π)                    –
               4      2
                     √         √
               1       2      π 2      √                      √           √
                                      2 2(π − 4)          4π(2 2 + 4) − 64 2
               4      2        2

                ¸                        a                          ıncadrate. Forma
unde valorile obtinute din derivata exact˘ f (x) = π cos πx au fost ˆ
Newton a polinomului Hermite este
                          √                           √            √
      p2 (x) = xπ + x2 4(2 2 − π) + x2 (x − 1/4) 4π(2 2 + 4) − 64 2 ,          (2.39)

                       a          a        a
ceea ce conduce la urm˘toarea form˘ canonic˘ a polinomului
                     √           √              √           √
     p2 (x) = π + (48 2 − 16π − 4 2π) x + (−192 2 + 48π + 24 2π) x2 .                (2.40)

                a                                            a                a
Derivata cerut˘ este p2 (1/8) = 2.90188 foarte apropriat˘ de cea exact˘ f (1/8) =
2.90245 ¸i cu mult mai precis˘ decˆt estimarea centrat˘ de ordinul II (f (1/4) −
          s                     a     a                      a
f (0))/(1/4) = 2.82843. Graficul logaritmului erorii relative lg ε = lg |(p2 (x) − f (x)) /f (x)|
                 a                a                         ın
de mai jos arat˘ prezicerea corect˘ a 3 cifre semnificative ˆ evaluarea derivatei pe in-
tervalul [0, 1/4].
                      a
2.1. Derivarea numeric˘                                                                61


2.1.4                              ¸
             Derivate folosind functii spline
      ¸                        a                                 a
Functia spline polinomial˘ de ordinul 3 poate fi utilizat˘ pentru calculul apro-
ximativ al derivatelor de ordinul 1 ¸i 2. ˆ acest scop, se determin˘ coeficientii
                                          s    In                         a  ¸
                      ¸       ¸
mi , ai , bi , restrictia functiei spline pe intervalul (xi , xi+1 ) fiind

                   p3,i (x) = yi + mi (x − xi ) + bi (x − xi )2 + ai (x − xi )3 ,   (2.41)

determinat˘ ˆ paragraful 1.1.2. Derivatele de ordinul 1 ¸i 2 se aproximeaz˘ prin
           a ın                                         s                 a
                   s
derivatele de acela¸i ordin ale polinomului p3,i

     y = mi + 2bi (x − xi ) + 3ai (x − xi )2 ,          y = 2bi + 6ai (x − xi ) .   (2.42)

                                                             a
Eroarea la aproximarea derivatei de ordinul k poate fi evaluat˘ cu ajutorul
    ¸                 ¸
relatiei (vezi Observatia 4 din 1.1.2)

                                        (b − a)m−k
                     (k)
    max f (k) (x) − sm (x) ≤                       max f (m) (x) − s(m) (x) ,
                                                                    m               (2.43)
   x∈[a,b]                               (m − k)! x∈[a,b]

                           ¸                              ¸              a
unde m este ordinul functiei spline (m = 3 pentru functia spline cubic˘). Deo-
                                                                            (m)
arece functia spline este derivabil˘ de m − 1 ori pe (a, b), am notat prin sm o
           ¸                       a
    ¸         a     ¸    a                      ¸           ¸
functie treapt˘, obtinut˘ prin derivarea restrictiilor functiei s pe subintervale.
                                       as                         a
Exemplul din paragraful 1.1.2 prezint˘ ¸i comportarea numeric˘ a derivatelor.

2.1.5                                          ¸
             Derivate folosind diverse aproximatii
                               ¸
Formule de derivare se pot obtine folosind oricare dintre procedeele de apro-
ximare prezentate ˆ capitolul 1. Consider˘m pe scurt cˆteva alte procedee
                   ın                      a              a
      a
inidicˆnd domeniile tipice de aplicare.

                         a
Interpolare trigonometric˘.
                                      ¸
Prin derivarea expresiei (1.57), se obtine

                                        df      dg
                                           =y ∼
                                              =    =
                                        dx      dx
             N −1
      2π            [−kak sin(2πkx) + kbk cos(2πkx)] − πN aN sin 2πN x .            (2.44)
             k=1

Rezultatul este o nou˘ functie ce are coeficientii Fourier −2πkak , −2πkbk . Con-
                      a    ¸                    ¸
                                        ¸           a
sideratiile din 1.1.3 asupra convergentei interpol˘rii trigonometrice se aplic˘
      ¸                                                                        a
acum noii functii. ˆ particular, vom urm˘ri dac˘ ck = 2πk(a2 + b2 )1/2 devin
                ¸ In                        a      a            k     k
                        a a             s
suficient de mici pe m˘sur˘ ce N cre¸te. O proprietate important˘ a apro-a
    a                           a              ¸                  ¸
xim˘rilor trigonometrice este c˘, pentru functii netede, coeficientii ck scad mai
            a
repede decˆt orice putere a lui h = 1/N ˆ          a
                                              ıncepˆnd de la un anumit rang k.
                                                           a
Prin analogie cu analiza de ordin de eroare de la formul˘rile anterioare, spu-
      a                             a
nem c˘ aproximarea trigonometric˘ a derivatei este de ordin infinit. Aceast˘    a
62                                             2. Derivarea ¸i integrarea numerica
                                                            s                    ˘


              a                                                ¸             ¸
proprietate st˘ la baza metodelor spectrale de rezolvare a ecuatiilor diferentiale.
                       a                    ıns˘        a         ¸
Aplicabilitatea general˘ a procedeului este ˆ a limitat˘ de cerinta de netezime.
                  a      ¸           a              at                  a
De exemplu, dac˘ functia f prezint˘ discontinuit˘¸i izolate, vor ap˘rea erori
importante de mascare (vezi 1.1.3).

Aproximarea mini-max.
            a
Se deriveaz˘ polinomul aproape mini-max (vezi 1.2.3). Gradul acestui polinom
       ın                     a                                             a
se ia, ˆ general, mai mic decˆt gradul polinomului de interpolare corespunz˘tor
                                       a               a a           s
unei diviziuni alese. Astfel de aproxim˘ri se utilizeaz˘ cˆnd se dore¸te minimi-
           a              ¸                            a
zarea num˘rului de operatii aritmetice necesare estim˘rii derivatei.

                                        a
Aproximarea prin metoda celor mai mici p˘trate.
Se deriveaz˘ aproximanta (1.83). ˆ general, derivatele astfel obtinute sunt mai
             a                    In                             ¸
            a ın                                 s                        ¸
netede decˆt ˆ cazul unei interpolari care folose¸te toate punctele din retea. Se
      s                                         a a
folose¸te tipic pentru date cunoscute incert (m˘sur˘tori experimentale).


2.2                          a
           Integrarea numeric˘
                    a         ¸                  a         a        ¸
Integrarea numeric˘ a functiilor de o variabil˘ reprezint˘ o aplicatie imediat˘ a
a aproxim˘rii. ˆ general, prin integrare numeric˘ erorile de calcul se reduc,
            a    In                                  a
     ¸                                                                     ¸
variatiile se netezesc. Cazurile mai dificile sunt legate de integrarea functiilor
              a      ¸                                                     ıncˆ
care prezint˘ variatii rapide de semn pe intervalul de integrare, astfel ˆ at
termenii ˆ       ¸                a                        a     ın
          ınsumati se compenseaz˘, iar rezultatul, un num˘r mic ˆ modul, apare
ca diferenta a unor numere mari ˆ modul1 . Asemenea functii sunt indicate
           ¸                         ın                         ¸
                                                                        a
pentru testarea diferitelor formule de integrare propuse. Schema general˘ pentru
    ¸                                     a          a
a obtine o formula de integrare numeric˘ este urm˘toarea:

     1. Se introduce o diviziune a intervalului de calcul [a, b] prin punctele {xi ,
        i ∈ 1, N }.

                     ¸                         a       ın      ¸a
     2. Se scrie functia de integrat f (x), punˆndu-se ˆ evident˘ aproximanta g(x)
        s
        ¸i eroarea (restul) R(x)

                                        f (x) = g(x) + R(x) .                        (2.45)

                    a     ¸                              ¸ a
     3. Se integreaz˘ relatia (2.45) termen cu termen, obtinˆndu-se o valoare apro-
                as
        ximativ˘ ¸i o eroare pentru integrare
                               b                   b                  b
                                   f (x)dx =           g(x)dx +           R(x)dx .   (2.46)
                           a                   a                  a
  1 Vezi   capitolul 4.
                       a
2.2. Integrarea numeric˘                                                                        63


                                             a
      Integrala aproximantei g(x) se evalueaz˘ numeric pe fiecare subinterval al
      diviziunii
                               b                 N                          b
                     I=            g(x)dx =          ak Ik , Ik ≡               gk (x)dx .   (2.47)
                           a                   k=1                      a


      Uzual aproximanta g(x) se alege de forma (1.6), astfel ˆ at integralele Ik
                                                              ıncˆ
       a      a                                            ın
      s˘ poat˘ fi evaluate exact. Eroarea de integrare este ˆ acest caz integrala
      restului
                                                     b
                                            δ=           R(x)dx .                            (2.48)
                                                 a


            a
  4. Se caut˘ o posibilitate de minimizare a erorii.
   ˆ efectuarea diverselor calcule mentionate mai sus, sunt utile cˆteva rezul-
    In                                  ¸                          a
               a                       aa           ¸
tate din analiz˘ pe care le reamintim f˘r˘ demonstratie.

                                                                           s
 Teorema de valoare medie a unei integrale. Pentru f, g continue pe [a, b] ¸i
     g(x) ≥ 0 pe [a, b], exist˘ un ξ ∈ [a, b] astfel ˆ at
                              a                      ıncˆ
                                   b                               b
                                       f (x)g(x)dx = f (ξ)             g(x)dx.
                               a                               a


                                            a           s                     a
 Teorema valorii intermediare. Fie f continu˘ pe [a, b] ¸i m valoarea sa minim˘
     ¸i M valoarea sa maxim˘ pe acest interval. Pentru orice r ∈ [m, M ] exist˘
     s                         a                                              a
     un ξ ∈ [a, b] astfel ˆ at f (ξ) = r.
                          ıncˆ
                     a                  a             a                        ¸
 Teorema fundamental˘ a analizei. Dac˘ f este continu˘ pe [a, b], atunci functia
              x
     ϕ(x) = a f (t)dt este derivabil˘ ˆ orice punct c ∈ [a, b] ¸i derivata sa este
                                    a ın                       s
     ϕ (c) = f (c).

2.2.1                          ınchise
          Formule Newton-Cotes ˆ
                                       a                ¸
Formulele de integrare care utilizeaz˘ valorile functiei la capetele intervalului de
integrare, y1 = f (a), yN = f (b) sunt denumite formule ˆ     ınchise. Foarte uzuale
                               a                            a
sunt metodele care utilizeaz˘ interpolarea polinomial˘ pe o diviziune echidis-
tant˘ a intervalului de integrare {a = x1 , x2 , . . . , xN = b} cu xi+1 − xi ≡ h =
     a
(b − a)/(N − 1), formulele obtinute fiind denumite de tip Newton-Cotes. ˆ
                                  ¸                                               In
   ¸                                                     a
obtinerea formulelor de integrare, este convenabil˘ forma Newton cu diferente     ¸
                                                               ıns˘ a
finite a polinomului de interpolare (1.25). Vom remarca ˆ a c˘ se prefer˘ uti-  a
lizarea unor polinoame de grad mic (unu, doi sau trei), pe subintervale, ceea ce
                                         ¸
revine de fapt, la integrarea unor functii spline, racordate pe noduri numai prin
valorile functiei f (x), dar nu ¸i prin derivate. ˆ cele ce urmeaz˘ vom folosi Πn
             ¸                  s                 In                 a
pentru a nota familia polinoamelor de grad cel mult n.
64                                                 2. Derivarea ¸i integrarea numerica
                                                                s                    ˘


Formula trapezelor.
     ¸                a                     a
Functia aproximant˘ este o linie poligonal˘. Pe fiecare subinterval (xi , xi+1 ),
    ¸            ınlocuie¸te cu aproximarea sa printr-un polinom de gradul ˆ ai
functia f (x) se ˆ       s                                                 ıntˆ
plus un rest. Conform (1.25), polinomul se scrie

                                       p1 (x) = yi + α∆yi ,                        (2.49)

cu α ∈ [0, 1], unde restul (1.26) este
                                   2
                      R1 (x) = h2 Cα f (ξi ), ξi ∈ (xi , xi+1 ) .                  (2.50)

Pe intervalul (xi , xi+1 ), variabila x se poate exprima

                                           x = xi + αh,

de unde dx = hdα. Integrala exact˘ a aproximantei (2.49) este
                                 a
                                 1
                     Ii =            (yi + α∆yi )dα = (yi + yi+1 )/2 ,             (2.51)
                             0

                              a
iar eroarea pe interval rezult˘ din integrarea restului (2.50)
                                  1
              δi = (h3 /2)            α(α − 1)f [ξi (α)] dα, ξi ∈ (xi , xi+1 ) .
                              0

                                          a     a
Expresia erorii poate fi transformat˘ aplicˆnd teorema de medie pentru inte-
grale. Avem −α(α − 1) ≥ 0 ¸i vom presupune c˘ −f [ξi (α)] este continu˘ pe
                                  s                   a                    a
                     ıncˆ      ¸               a          a           ¸
[xi , xi+1 ], astfel ˆ at conditiile teoremei s˘ fie satisf˘cute. Se obtine
                                              1
               δi = [h3 f (ξi )/2]                α(α − 1)dα = −h3 f (ξi )/12 ,    (2.52)
                                          0

cu ξi ∈ [xi , xi+1 ], ˆ general diferit de ξi din (2.50). Formula (2.51) se aplic˘ pe
                      ın                                                         a
                       s       ¸                                        a
fiecare subinterval ¸i vom obtine, prin sumare, valoarea aproximativ˘ a integralei
                      N −1
                                       h
                 I=          Ii =        (y1 + 2y2 + . . . + 2yN −1 + yN ) .       (2.53)
                      i=1
                                       2

                                                                           N −1
Eroarea la integrare este suma erorilor pe subintervale, δ = i=1 δi = −(h3 /12)·
   N −1         ˆ a           −1    N −1
   i=1 f (ξi ). Ins˘ (N − 1)        i=1 f (ξi ) este o valoare medie a valorilor
     ¸      ın             s                          a
functiei f ˆ punctele ξi ¸i am presupus f continu˘. Conform teoremei valorii
intermediare, exist˘ un ξ ∈ [x1 , xN ] astfel ˆ at
                   a                          ıncˆ
                                           N −1
                                1
                                                    f (ξi ) = f (ξ)                (2.54)
                              N −1         i=1
                       a
2.2. Integrarea numeric˘                                                                     65


s
¸i eroarea se poate scrie

                                     h2                   (b − a)3
                         δ=−            (b − a)f (ξ) = −            f (ξ) .               (2.55)
                                     12                  12(N − 1)2

Expresia (2.55) sugereaz˘ c˘, pentru functii cu derivata de ordinul doi continu˘,
                         a a             ¸                                     a
eroarea la integrare scade aproximativ cu p˘tratul num˘rului de intervale N −1.
                                           a            a
Spunem astfel c˘ eroarea la formula trapezelor este de ordinul doi, δ = O(h2 ).
                 a
Se observ˘ c˘, fat˘ de eroarea pe un subinterval δi = O(h3 ), eroarea pe tot
          a a      ¸a
                                               a        a
intervalul δ este cu un ordin mai mic datorit˘ acumul˘rii erorii din ˆ ınsumare.
           a                 a                               a
Se remarc˘, de asemenea, c˘ formula trapezelor este exact˘ pentru toate poli-
noamele de gradul 1, adic˘ pentru ∀f ∈ Π1 .
                           a

Formulele Simpson.
     a         ¸
Urm˘rim obtinerea unor formule mai precise pe subintervalele de calcul. Din
                             a    a
procedeul general, observ˘m c˘ acest deziderat se poate realiza prin folosirea
unor polinoame de interpolare de grad mai mare pe subintervale. Deoarece,
pentru polinoame de grad mai mare de unu, avem nevoie de mai mult de dou˘          a
noduri, vom grupa convenabil subintervalele (xi , xi+1 ). Din punctul de vedere
             a         ¸
al aproxim˘rii functiei f (x) pe tot intervalul de calcul [a, b] procedeul revine la
                         a                   ¸a      a            ¸
folosirea unei interpol˘ri spline cu deficient˘, ale c˘rei restrictii pe subintervale
sunt polinoame.
    Formula Simpson “1/3”. ˆ    Incepem cu polinoame de gradul doi pe subinterval.
                                s                  ¸               a
Avem nevoie de trei noduri ¸i ca atare vom obtine o formul˘ de integrare pe
(xi−1 , xi+1 ) 2 . Polinomul aproximant este

                         p2 (x) = yi−1 + α∆yi−1 + α(α − 1)∆2 yi−1 /2

conform (1.25) iar restul are forma
                                        3
                           R2 (x) = h3 Cα f (3) (ξi ), ξi ∈ (xi−1 , xi+1 ) .

          ¸    a
Formula obtinut˘ prin integrarea lui p2 (x) este
                                 2
                                                          h
                 Ii = h              p2 (xi−1 + αh)dα =     (yi−1 + 4yi + yi+1 ) .        (2.56)
                             0                            3
                                                                   a
Aplicarea teoremei de medie la integrarea restului trebuie efectuat˘ pe subin-
                   3
                              a
tervalele pe care Cα nu schimb˘ semnul
                 2
                                           h3 (3) (1)       1            (2)      1
        h3            3
                     Cα f (3) (ξi )dα =       f (ξi )           + f (3) (ξi ) −       .
             0                             3!               4                     4

              ¸         ıns˘                          a       ¸              ¸
Rezultatul obtinut este ˆ a o supraestimare. Faptul c˘ s-au obtinut coeficienti
                                   a a
numerici de semne contrare sugereaz˘ c˘ avem un efect de compensare a erorilor.
  2 Aici ¸i ˆ cele ce urmeaz˘ vom alege intervalele astfel ˆ at formulele s˘ fie centrate pe
         s ın               a                              ıncˆ            a
punctul xi .
66                                           2. Derivarea ¸i integrarea numerica
                                                          s                    ˘


Ne convingem de aceasta prin intermediul unui alt procedeu de calcul al erorii
                              a          a                      a
ce are aplicabilitate mai larg˘. Consider˘m valoarea aproximativ˘ a integralei
                                 h
                          Ii =     [f (xi−1 ) + 4f (xi ) + f (xi+1 )]
                                 3
s                             a                      a ın              ın
¸i vom presupune f derivabil˘ de minim 5 ori. Dezvolt˘m ˆ serie Taylor ˆ
jurul punctului xi−1 expresia de mai sus
                                                     (3)               (4)        (5)
Ii = 2hfi−1 + 2h2 fi−1 + 4h3 fi−1 /3 + 2h4 fi−1 /3 + 5h5 fi−1 /18 + h6 fi−1 /10 + . . .
                   (k)
unde am notat fi         = f (k) (xi ). Pe de alt˘ parte, introducem
                                                 a
                                               x
                                   F (x) =           f (x)dx ,
                                              xi−1

               a                                             ın
valoarea exact˘ a integralei pe intervalul (xi−1 , x). Avem, ˆ particular, F (xi−1 ) =
   s                                    a
0, ¸i F (xi−1 + 2h) este valoarea exact˘ pe intervalul (xi−1 , xi+1 ). Conform te-
oremei fundamentale a analizei, F (x) = f (x). Ca atare, dezvoltarea ˆ serieın
         ın
Taylor ˆ jurul punctului xi−1 a valorii exacte F (xi−1 + 2h) este
                                               (3)               (4)            (5)
 2hfi−1 + 2h2 fi−1 + 4h3 fi−1 /3 + 2h4 fi−1 /3 + 4h5 fi−1 /15 + 4h6 fi−1 /45 + . . .

Diferenta δ = F (xi−1 + 2h) − Ii este eroarea c˘utat˘ ¸i are expresia
       ¸                                       a    as
                                      (4)              (5)
                          δ = −h5 fi−1 /90 − h6 fi−1 /90 + . . . .

                  a
Astfel, chiar dac˘ am pornit cu un polinom aproximant de gradul doi, formula
   ¸    a            as
obtinut˘ este exact˘ ¸i pentru polinoame de gradul trei. Acest rezultat face ca
formula lui Simpson (2.56) s˘ fie economic˘ ˆ num˘rul de evalu˘ri ale functiei
                             a               a ın    a             a           ¸
                  a                                                    ın      ¸
f necesare realiz˘rii unei anumite precizii, de unde larga sa folosire ˆ aplicatii.
             a                          a
     Considerˆnd acum problema integr˘rii pe tot intervalul [a, b] vom introduce
        a
un num˘r impar de 2N + 1 noduri, pentru a avea un num˘r ˆ  a ıntreg de perechi de
                                        s     ¸
intervale, pe care sum˘m relatia (2.56) ¸i obtinem formula de integrare Simpson
                       a      ¸
               h
          I=     (y1 + 4y2 + 2y3 + . . . + 2y2N −1 + 4y2N + y2N +1 ) .                  (2.57)
               3
Estimarea erorii la integrare este

                    δ = −(b − a)5 f (4) (ξ) / 2880N 4 ,          ξ ∈ (a, b) .           (2.58)

                     a a                              ¸     a
Din (2.58), se observ˘ c˘ eroarea δ este invers proportional˘ cu puterea a patra
a num˘rului de perechi de subintervale N , adic˘ δ = O(h4 ). Spunem c˘ formula
      a                                         a                      a
Simpson “1/3” este de ordinul IV.
                                                  a
    Fomula Simpson “3/8”. Trecem acum la urm˘torul polinom de interpolare,
                           a
cel de gradul 3. Considerˆnd 4 puncte de diviziune pe intervalul (xi−1 , xi+2 ),
polinomul de interpolare este

     p3 (x) = yi−1 + α∆yi−1 + α(α − 1)∆2 yi−1 /2 + α(α − 1)(α − 2)∆3 yi−1 /3! ,
                       a
2.2. Integrarea numeric˘                                                                            67


                          ¸
iar, prin integrare, se obtine formula lui Simpson “3/8”
                   3
                                                    3h
      Ii = h           p3 (xi−1 + αh)dα =              (yi−1 + 3yi + 3yi+1 + yi+2 ) ,            (2.59)
               0                                     8
cu eroarea
                   3
    δ i = h5            4
                       Cα f (4) (ξi ) dα = −3h5 f (4) (ξi )/80,          ξi ∈ (xi−1 , xi+2 ) .   (2.60)
               0

Considerˆnd 3N + 1 puncte de diviziune, cu pasul h = (b − a)/3N , formula de
         a
integrare pe (a, b) se va scrie

        3h
   I=      (y1 + 3y2 + 3y2 + 2y4 + . . . + 2y3N −2 + 3y3N −1 + 3y3N + y3N +1 ) ,
         8
                                                                           (2.61)

iar eroarea de integrare pe (a, b) este

               δ = −(b − a)5 f (4) (ξ) / 6480N 4 = O(h4 ),                    ξ ∈ (a, b) .       (2.62)

         s                   s        s                          a     a ın
La acela¸i interval (a, b) ¸i acela¸i N , eroarea este mai mic˘ decˆt ˆ cazul
                                  a
formulei Simpson “1/3” datorit˘ factorului numeric de la numitor. Cum ˆ a o ıns˘
               a                        ¸   a ındeosebi prin m˘rirea num˘rului de
precizie sporit˘ la integrare este obtinut˘ ˆ                 a          a
                     a     a a
subintervale, observ˘m c˘ m˘rirea gradului polinomului de interpolare p3 (x) nu
conduce la un ordin al erorii mai mare, formula “3/8” fiind tot de ordinul IV
   s                            a       a                     a         ¸
ca ¸i formula “1/3”. Datorit˘ num˘rului mai mic de evalu˘ri de functie cerute
               a
este preferabil˘ folosirea formulei Simpson “1/3” celei “3/8”.
                  a s               ¸     a
    Informativ, d˘m ¸i formula obtinut˘ prin interpolare cu un polinom de gradul
4, pe intervalul (xi−2 , xi+2 )

                           2h
                   Ii =       (7yi−2 + 32yi−1 + 12yi + 32yi+1 + 7yi+2 ) ,                        (2.63)
                           45
cu eroarea

                          δi = −8h7 f (7) (ξi )/945,          ξi ∈ (xi−1 , xi+2 ) .              (2.64)

ˆ acest caz, cre¸terea gradului polinomului de interpolare a condus la o sc˘dere
In              s                                                          a
important˘ a erorii. Pe tot interalul [a, b] avem δ = O(h6 ) fat˘ de δ = O(h4 )
          a                                                      ¸a
din (2.62).
                                    ¸    s        a        a
   Formulele de mai sus se pot obtine ¸i pe dou˘ alte c˘i ce permit extinderi
              a          a   a
importante. S˘ consider˘m c˘ integrala pe un interval [a, b] se poate aproxima
                     a                ¸ ın
ca o medie ponderat˘ a valorilor functiei ˆ punctele xi , i = 1, . . . , N


                                              b                N
                                   I=             f (x)dx ∼
                                                          =         Ai yi ,                      (2.65)
                                          a                   i=1
68                                                                2. Derivarea ¸i integrarea numerica
                                                                               s                    ˘


                                                             a           a
unde Ai sunt ponderi necunoscute. Putem impune ca integrala s˘ fie evaluat˘
exact pentru functii polinomiale pˆn˘ la gradul N − 1. De exemplu, pentru
                  ¸                a a
         ¸                      ¸
N = 3, obtinem sistemul de ecuatii
             b
             a dx
                        =b−a           = A1 + A2 + A3
                b
                  xdx = (b2 − a2 )/2 = A1 x1 + A2 x2 + A3 x3        (2.66)
             a 2
             b              2    2           2      2     2
                a
                  x dx = (b − a )/3 = A1 x1 + A2 x2 + A3 x3

unde am ˆ           a        a         ¸
          ınlocuit rˆnd pe rˆnd functia f (x) cu un polinom de gradul 0,1,2.
      ¸           ¸                                       a
Se obtin coeficientii A1 = A3 = h/3, A2 = 4h/3, adic˘ exact cei din formula
Simpson “1/3” (2.56). Procedeul de mai sus este cunoscut sub denumirea de
                      ¸
identificare a coeficientilor de integrare.
   Un al doilea procedeu este dat de ˆ                ¸
                                       ınlocuirea functiei f cu forma Lagrange a
polinomului de interpolare (1.31)
                b                          b N                                  b             N
                                                                                    f (N ) (ξ)
                    f (x)dx =                     yi Li (x)dx +                                (x − xi ) dx ,         (2.67)
            a                          a i=1                                a          N ! i=1

                                                 a                      a a
unde s-a utilizat forma (1.16) a restului. Comparˆnd cu (2.65) se observ˘ c˘
                                                                       b
                                                     Ai =                  Li (x)dx .                                 (2.68)
                                                                   a

   ˆ final, s˘ ad˘ug˘m, c˘ ˆ numeroase situatii practice, este convenabil s˘ se
    In        a a a       a ın                ¸                            a
       ¸           ¸               ın       ¸                                a
evidentieze o functie pondere w(x) ˆ operatiile de integrare. Se generalizeaz˘
            ¸                    a              a        a
astfel operatia de medie ponderat˘ din aritmetic˘. Utilizˆnd (2.67) avem
     b                                 b            N                                         N                 N
                                                                                f (N ) (ξ)
         w(x)f (x)dx =                     w(x)          Li (x)yi +                        (x − xi ) dx =             Ai yi + δ,
 a                                 a               i=1
                                                                                   N ! i=1                      i=1


                        b                                     b                           N
                                                                            f (N ) (ξ)
     Ai =                   w(x)Li (x)dx,          δ=             w(x)                 (x − xi ) dx,        ξ ∈ (a, b).
                    a                                     a                    N ! i=1

2.2.2               Formule de integrare deschise
Oˆ ıntrebare imediat˘ asociat˘ formulei generale de integrare (2.65) este dac˘
                    a         a                                              a
                         s
alegerea altor puncte xi ¸i ponderi Ai ar putea aduce avantaje de calcul. Vom
considera ˆ cele ce urmeaz˘ cˆteva asemenea cazuri. ˆ general, ˆ obtinerea
           ın               a a                        In         ın ¸
                                a             ¸
acestor formule nu se utilizeaz˘ valorile functiei f din capetele intervalului.
Astfel de formule se numesc formule deschise.

Formule de integrare deschise de tip Newton Cotes
                      ¸        a
Aceste formule se obtin utilizˆnd un polinom de interpolare care nu trece prin
                                                a                  a ın
capetele intervalului, deci cu un polinom cu dou˘ grade mai mic decˆt ˆ cazul
                       a
2.2. Integrarea numeric˘                                                            69


formulelor ˆ                      ¸
            ınchise. Revenim la obtinerea formulelor de integrare prin integrarea
                                                               a ın
polinomului de aproximare. De data aceasta folosim o form˘ ˆ care nu apar
         ın
valorile ˆ capete
                                                           N −3
 pN −3 (x1 + αh) = y2 + (α − 1)∆y2 + Cα−1 ∆2 y2 + . . . + Cα−1 ∆N −3 y2 , (2.69)
                                      2


α ∈ [0, N − 1], eroarea fiind
                                               N −2
                      RN −1 (x1 + αh) = hN −2 Cα−1 f (N −2) (ξ) .                (2.70)

Evident, formulele de mai sus se pot utiliza pentru N > 3. Putem obtine      ¸
                                                        s
diverse formule prin alegerea intervalului de integrare ¸i a gradului polinomului
de aproximare.
                          a
   Pentru N = 4, calcul˘m integrala polinomului aproximant de la α = 0 la
       s      ¸
α = 2 ¸i se obtine

                            Ii = 2hyi ,      δi = h3 f (ξi )/3 .                 (2.71)

ˆ acest caz, intervalul de integrare a fost (xi−1 , xi+1 ), dar termenul yi+1 s-a
In
                                          ¸
redus, astfel ˆ at formula (2.71) nu contine nici una din valorile de la capetele
              ıncˆ
intervalului. Observ˘m c˘ se obtine acela¸i ordin al erorii δ ∼ O(h3 ) ca la
                       a   a       ¸          s
                                    ıns˘         a                ¸      ¸a      a
formula trapezelor (2.53), folosind ˆ a o singur˘ evaluare a functiei fat˘ de dou˘
ın                                                                  ıns˘
ˆ (2.53). Factorul numeric din expresia erorii de mai sus este ˆ a mai mare
    a                                                 ¸
decˆt cel din (2.55). Ca atare, avantajul de calcul obtinut poate fi nesemnificativ
ın        a
ˆ practic˘.
    Pentru N = 6 ¸i x ∈ (xi−1 , xi+3 ) se obtine o formul˘ cu acela¸i ordin de
                     s                         ¸             a          s
eroare ca formula Simpson
                      4h                                         14h5 (4)
               Ii =      (2yi − yi+1 + 2yi+2 ),           δi =       f (ξi ) .   (2.72)
                       3                                          45
                                                as             a
Coeficientul numeric din formula erorii este iar˘¸i mai mare decˆt cel din (2.58)
s     a            a          ¸               s                      ¸
¸i num˘rul de evalu˘ri de functie este acela¸i. Ca atare, nu se obtine vreun
avantaj de calcul.

Formule deschise de tip Gauss.
ˆ formula general˘ de integrare (2.65), observ˘m ˆ a c˘ avem la dispozitie 2N
In                 a                           a ıns˘ a                  ¸
                                       s           ın           a        ¸
parametrii, nu numai ponderile Ai ci ¸i abscisele ˆ care evalu˘m functia xi .
  a a                                      s        ¸
Pˆn˘ acum am utilizat abscise echidistante ¸i am obtinut formule exacte pentru
polinoame de grad pˆn˘ la N − 1, prin alegerea a N ponderi. Putem spera ca,
                     a a
                                              a ¸
prin utilizarea tuturor celor 2N parametri, s˘ obtinem formule exacte pentru
polinoame pˆn˘ la gradul 2N − 1. Calea de a obtine astfel de formule este dat˘
             a a                                ¸                            a
de un rezultat teoretic important formulat de Gauss.
    Punctul de plecare este formula de aproximare a valorii unei integrale
                                b                   N
                                    w(x)f (x)dx ∼
                                                =         Ai f (xi ) ,           (2.73)
                            a                       i=1
70                                                        2. Derivarea ¸i integrarea numerica
                                                                       s                    ˘


                     ¸                  a              ¸              s
unde w(x) este o functie pondere pozitiv˘, iar coeficientii Ai sunt ale¸i astfel
ˆ at formula este exact˘ pentru toate polinomale de grad pˆn˘ ˆ N − 1.
ıncˆ                   a                                   a a ın

       a      a
Teorem˘. Dac˘ abscisele xi , din (2.73) se aleg ca fiind zerourile unui polinom
                                      ¸
    q(x) de gradul N ce satisface relatia de ortogonalitate
                                              b
                                                  w(x)p(x)q(x)dx = 0                              (2.74)
                                          a

      pentru orice polinom p(x) de grad pˆn˘ la N − 1, atunci formula (2.73)
                                          a a
      este exact˘ pentru toate polinoamele de grad pˆn˘ la 2N − 1.
                a                                   a a

     Demonstratie. Fie f un polinom de grad cel mult 2N − 1. Acesta se poate
                    ¸
scrie f = pq + r unde p, r sunt polinoame de grad cel mult N − 1. Deoarece
                                                                          s
xi , i = 1, . . . , N sunt zerourile polinomului q, avem f (xi ) = r(xi ) ¸i
                     b                                b
                         w(x)f (x)dx =                    w(x) [p(x)q(x) + r(x)] dx =
                 a                                a
                             b                        N                   N
                                 w(x)r(x)dx =               Ai r(xi ) =         Ai f (xi ) ,      (2.75)
                         a                        i=1                     i=1

                                  a                         ¸
unde ultima egalitate rezult˘ din alegerea coeficientilor Ai enuntat˘. 2  ¸ a
    Se poate demonstra c˘ zerourile unui polinom ce satisface (2.74) sunt sim-
                              a
ple ¸i sunt ˆ interiorul intervalului [a, b], adic˘ xi ∈ (a, b). Pozitiile zerourilor
    s        ın                                        a                  ¸
         ın                                               ¸
depind, ˆ general, de intervalul [a, b]. Pentru a obtine valori standard ale absci-
                                                                    a
selor, se folosesc domenii de integrare canonice, specifice fiec˘rui tip de ponderi
                                                                    a
w(x). Aparitia functiei de pondere ˆ formula (2.73) faciliteaz˘ tratarea cazurilor
             ¸        ¸                     ın
              at                      a                               a      a
cu singularit˘¸i integrabile dup˘ cum vom vedea mai jos. Odat˘ stabilit˘ familia
                                                                      a a a
de polinoame ortogonale, prin alegerea ponderii w(x), se afl˘ r˘d˘cinile aces-
                    ¸               a
tora, iar coeficientii Ai rezult˘ prin integrarea polinoamelor Lagrange asociati      ¸
  a a                       ¸
r˘d˘cinilor conform relatiei (2.68).
           a     ıns˘ ın              a                          a
    Am v˘zut ˆ a ˆ 1.1.1, c˘ interpolarea polinomial˘ global˘ nu converge a
ıntotdeauna c˘tre functia f . O ˆ
ˆ               a         ¸                               a         a
                                         ıntrebare natural˘ este dac˘ o asemenea com-
                   a     s ın                                             ¸
portare nu ar ap˘rea ¸i ˆ formulele de integrare Gauss. Conditia de ortogo-
                      a                   ¸       s
nalitate (2.74) joac˘ un rol esential aici ¸i se poate demonstra (Stieltjes) c˘,     a
             ¸                                                    a
pentru functii f continue, aproximarea Gauss converge c˘tre valoarea exact˘ a      a
integralei pe m˘sur˘ ce N → ∞.
                  a a
    Fie acum f o functie de clas˘ C 2N [a, b] oarecare, nu neap˘rat un polinom.
                         ¸              a                             a
         a           a        a         ¸                     a
Dorim s˘ determin˘m dac˘ se obtine o eroare mai mic˘ la integrare prin folosirea
                                                          ¸             a
unei formule Gauss cu N noduri, prin comparatie cu formul˘rile anterioare.
Teorema de mai sus sugereaz˘ compararea cu un polinom de grad 2N − 1. Un
                                    a
polinom de grad 2N − 1 poate fi definit de valorile functiei ¸i derivatei ˆ cele
                                                                 ¸ s           ın
N noduri, dup˘ cum am v˘zut la interpolarea Hermite 2.1.3,
                 a              a

              p2N −1 (xi ) = f (xi ),             p2N −1 (xi ) = f (xi ),            i = 1, N .   (2.76)
                       a
2.2. Integrarea numeric˘                                                                                                            71


                               a                          a
Eroarea la interpolare este dat˘ de (2.38), de unde rezult˘

     b                                b                                          b              N
                                                                                                                    f (2N ) (ζ(x))
         w(x)f (x)dx −                    w(x)p2N −1 (x)dx =                         w(x)            (x − xi )2                    dx .
 a                                a                                          a                 i=1
                                                                                                                        (2N )!
                                                                                                                                 (2.77)

Formula de integrare Gauss, fiind exact˘ pentru polinoame de grad maxim 2N −
                                      a
         a
1, rezult˘

                           b                                     N                                        N
                               w(x)p2N −1 (x)dx =                        Ai p2N −1 (xi ) =                    Ai f (xi ) ,       (2.78)
                       a                                        i=1                                     i=1

                                  ¸
de unde eroarea la integrarea functiei f este

              b                            N                                             b          N
                                                                    1
δ=                w(x)f (x)dx −                 Ai f (xi ) =                                 w(x)         (x − xi )2 f (2N ) (ζ(x)) dx .
          a                               i=1
                                                                  (2N )!             a              i=1
                                                                                                                                 (2.79)

                             a a                                    s
Nodurile xi se aleg ca fiind r˘d˘cinile polinomului q(x) de gradul N ¸i ortogonal
pe orice polinom p(x) de grad pˆn˘ la N − 1. Conform teoremei de medie, avem
                                a a
                                                            b
                                          f (2N ) (ξ)
                                δ=                              w(x)q 2 (x) dx ,                    ξ ∈ (a, b).                  (2.80)
                                            (2N )!      a

       s         ¸
Recunoa¸tem aparitia produsului scalar
                                                                     b
                                                 (q, q) =                w(x)q 2 (x) dx                                          (2.81)
                                                                 a

(vezi 1.4.2). Ca atare, eroarea la integrarea Gauss este

                                                δ = f (2N ) (ξ) (q, q)/(2N )! .                                                  (2.82)

Dac˘ f ∈ C 2N [a, b], atunci f (2N ) (ξ) este m˘rginit˘. Produsul (q, q) se poate
    a                                          a      a
evalua folosind relatiile de recurent˘ (1.94) ¸i este de asemenea m˘rginit. ˆ
                      ¸               ¸a       s                       a       In
                                               s               a         a
plus, factorul (q, q)/(2N )! scade rapid cu cre¸terea lui N . S˘ consider˘m acum
             ıntˆ
cele mai des ˆ alnite cazuri.

Formule Gauss-Legendre.
     ıntˆ    a                             a
Mai ˆ ai lu˘m ponderea w(x) = 1, adic˘ vom considera integrala obi¸nuit˘.   s    a
Intervalul canonic uzual este [−1, 1]. Orice alt interval de integrare [a, b] poate
fi u¸or transformat ˆ [−1, 1] prin substitutia z = 2(x − a)/(b − a) − 1
   s                ın                     ¸
              b                                 +1
                                 b−a                                                            b−a    b+a
                  f (x)dx =                          F (z)dz,            F (z) ≡ f                  z+                       .   (2.83)
          a                       2            −1                                                2      2
72                                              2. Derivarea ¸i integrarea numerica
                                                             s                    ˘

ˆ cazul de fat˘ conditia de ortogonalitate este
In           ¸a      ¸
                                         +1
                                              p(x)q(x)dx = 0 ,                (2.84)
                                         −1

       a             s ıncˆ                                                      ¸
identic˘ cu (1.96), a¸a ˆ at polinoamele q(x) sunt polinoamele Legendre. Pozitiile
              s                                             a
zerourilor zi ¸i ponderile aferente Ai sunt redate, pentru cˆteva valori ale lui N ,
ˆ tabelul (2.1). Integrala pe [−1, 1] se aproximeaz˘ prin
ın                                                   a

                                    +1               N
                                         F (z)dz ∼
                                                 =         Ai F (zi ) ,       (2.85)
                                    −1               i=1

iar cea pe [a, b] prin

                                b                        N
                                              b−a
                                    f (x)dx ∼
                                            =                  Ai f (xi ) ,   (2.86)
                            a                  2         i=1

cu xi = (b − a)zi /2 + (a + b)/2. Din relatiile de recurent˘ (1.94) ¸i (2.82) rezult˘
                                          ¸               ¸a        s               a
eroarea la integrare

                    δ = 22N +1 (N !)4 f (2N ) (ξ)/(2N + 1)[(2N )!]3           (2.87)

pe intervalul [−1, 1] sau

                 δ = (b − a)2N +1 (N !)4 f (2N ) (ξ)/(2N + 1)[(2N )!]3        (2.88)

                                       ¸                           ın
pe intervalul [a, b] folosind substitutia de mai sus. Abscisele xi ˆ care se eva-
     a     ¸                         a                     ıns˘       ın
lueaz˘ functia F nu sunt de regul˘ echidistante. Putem ˆ a pune ˆ evident˘     ¸a
un pas mediu h = (b − a)/N , pentru a determina ordinul erorii ˆ vederea
                                                                       ın
       a
compar˘rii cu metodele anterioare. Se obtine¸
                     2N +1
              b−a                N 2N +1 f (2N ) (ξ)    h2N +1 f (2N ) (ξ)
       δ=                                             <                       (2.89)
               N             (N !)4 (2N + 1)[(2N )!]3    (N !)4 (2N )!

¸i se observ˘ obtinerea unui ordin al erorii de O(h2N +1 ), folosind doar N evalu˘ri
s           a ¸                                                                  a
         ¸                                                                   ¸
ale functiei f . Mai mult, coeficientul numeric din (2.89) scade exponential cu
    s
cre¸terea lui N (vezi tabelul 2.1).



                 as
Formule Gauss-Cebˆ¸ev.
Consider˘m acum ponderea w(z) = (1 − z 2 )−1/2 pe intervalul [−1, 1]. Se poate
         a
observa c˘ functia pondere prezint˘ singularit˘¸i ˆ ±1. Utilitatea practic˘ a
          a     ¸                   a         at ın                          a
                                              a       ¸                a       s
unei astfel de ponderi este integrarea numeric˘ a functiilor ce prezint˘ acela¸i
                               a ın
gen de singularitate integrabil˘ ˆ capetele domeniului de integrare. Fie f (z) o
                       a
2.2. Integrarea numeric˘                                                                     73


 Tabelul 2.1: R˘d˘cinile zi , ponderile Ai ¸i eroarea la integrarea Gauss-Legendre
               a a                         s
  N zi                               Ai                           δ
           √                                                      h5 f (4) (ξ)
  2     1/ 3                         1
                                                                  28 · 33 · 5
            3/5                       5/9                            h7 f (6) (ξ)
  3
       0                              8/9                         2 16 · 33 · 53 · 7

         0.86113 63115 94053           0.34785 48451 37454            h9 f (8) (ξ)
  4
         0.33998 10435 84856           0.65214 51548 62546        215 · 312 · 53 · 73
         0.90617 98459 38664           0.23692 68850 56189
                                                                     5h11 f (10) (ξ)
  5      0.53846 93101 05683           0.47862 86704 99366          36 · 316 · 73 · 11
                                                                  2
       0                               0.56888 88888 88889


              ¸ s a                 a                                       ¸
astfel de functie ¸i s˘ presupunem c˘ avem de evaluat integrala acestei functii
                                      ¸
pe [−1, 1]. Putem da factor comun fortat termenul singular
                                +1                      +1
                                      f (z) dz =             w(z)F (z) dz
                                −1                   −1

                              ¸            a                      a
unde F (z) este acum o functie continu˘. Cea de-a doua integral˘ se poate
                                             as
evalua prin folosirea formulelor Gauss-Cebˆ¸ev. Avantajul unui astfel de pro-
            a ın                   a                     ın     ¸
cedeu const˘ ˆ izolarea comport˘rii singulare din capete ˆ functia pondere.
R˘d˘cinile ¸i ponderile sunt (vezi ¸i 1.2.1)
  a a      s                       s
                   zi = cos [(2i − 1)π/2N ] ,            Ai = π/N,        i = 1, n .      (2.90)
                                a
Integrala pe [−1, 1] se evalueaz˘ ca
           +1                          N
                 F (z)        π                         2πF (2N ) (ζ)
                √        dz =               F (zi ) +                 ,     ζ ∈ (−1, 1)   (2.91)
       −1         1−z  2      N       i=1
                                                         2N (2N )!
unde ultimul termen este eroarea la integrare. Deoarece toate ponderile Ai de la
                    as           s                                 a        a
formulele Gauss-Cebˆ¸ev au aceea¸i valoare, aceste formule necesit˘ un num˘r de
      ¸                                                            ın
operatii mai mic pentru atingerea unui anumit ordin de precizie, ˆ comparatie ¸
                                         ın     ¸
cu formulele Gauss-Legendre. De aceea, ˆ situatii precum efectuarea unui mare
     a                                                 a
num˘r de integrale din interiorul unei bucle, se prefer˘ utilizarea unei formule
           as
Gauss-Cebˆ¸ev.

Formule Gauss-Laguerre.
                                   a
Un alt gen de comportare singular˘ apare la integrarea pe un interval semi-
                          a      ın                               s
infinit. Ponderea adecvat˘ este ˆ acest caz w(x) = exp(−x) ¸i familia de
                           a          a     ¸
polinoame ortogonale indus˘ de aceast˘ functie pondere este cea a polinoamelor
                                           ın
Laguerre din 1.4.2. Formula de calcul este ˆ acest caz
           ∞                    N
                                                     (N !)2 (2N )
               e−x f (x) dx =         Ai f (xi ) +          f     (ξ),      ξ ∈ (0, ∞)    (2.92)
       0                        i=1
                                                     (2N )!
    a a       s
cu r˘d˘cinile ¸i ponderile din tabelul 2.2.
74                                              2. Derivarea ¸i integrarea numerica
                                                             s                    ˘


 Tabelul 2.2: R˘d˘cinile xi , ponderile Ai ¸i eroarea la integrarea Gauss-Laguerre
               a a                         s
                N              xi                      Ai
                      0.58578 64376           8.53553 39059 E-1
                2
                      3.41421 35623           1.46446 60941 E-1
                      0.41577 45568           7.11093 00993 E-1
                3     2.29428 03603           2.78517 73357 E-1
                      6.28994 50829           1.03892 56502 E-2
                      0.32254 76896           6.03154 10434 E-1
                      1.74576 11012           3.57418 69244 E-1
                4
                      4.53662 02969           3.88879 08515 E-2
                      9.39507 09123           5.39294 70556 E-1
                        0.26356 03197         5.21755 61058 E-1
                        1.41340 30591         3.98666 81108 E-1
                5       3.59642 57710         7.59424 49682 E-2
                        7.08581 00058         3.61175 86799 E-3
                      12.64080 08443          2.33699 72386 E-5


  Tabelul 2.3: R˘d˘cinile zi , ponderile Ai ¸i eroarea la integrarea Gauss-Hermite
                a a                         s
                 N               xi                    Ai
                 2    0.70710 67812          8.86226 92545 E-1
                       0                      1.18163 59006
                 3
                       1.22474 48714          2.95408 97515 E-1
                       0.52464 76233          8.04914 09001 E-1
                 4
                       1.65068 01239          8.13128 35447 E-2
                       0                      9.45308 72048 E-1
                 5     0.95857 24646          3.93619 32315 E-1
                       2.02018 28705          1.99532 42059 E-2


Formule Gauss-Hermite.
ˆ fine, pentru domeniile de integrare infinite se poate folosi ponderea w(x) =
In
exp(−x2 ) ¸i polinoamele Hermite asociate. Formula de integrare numeric˘ este
          s                                                            a

     ∞                     N                         √
             2                                  (N !) π (2N )
          e−x f (x) dx =         Ai f (xi ) +             f   (ξ),        ξ ∈ (−∞, ∞)     (2.93)
     −∞                    i=1
                                                2N (2N )!

cu r˘d˘cinile ¸i ponderile din tabelul 2.3
    a a       s
                                                             a                        a
    Exemplu. (Calculul lungimii de arc al unui sfert de elips˘) Punctele de pe o elips˘
satisfac ecuatia (x/a)2 + (y/b)2 = 1 ¸i pot fi descrise parametric prin x = a cos θ,
              ¸                      s
                                                      a
y = b sin θ. Presupunem a > b. Lungimea de arc cerut˘ este
                                                       π/2
             L=     dl =          dx2 + dy 2 =               a2 sin2 θ + b2 cos2 θ dθ .   (2.94)
                                                   0
                       a
2.2. Integrarea numeric˘                                                                    75




Figura 2.2: Eroarea relativ˘ ε functie de pasul conventional h = 2/n la integrare
                           a       ¸                  ¸
         as
Gauss-Cebˆ¸ev.


             ¸                   ¸
Prin substitutia z = cos θ se obtine
                             1
                               √                      1
                                                          √
                                 1 + k2 z 2      b          1 + k2 z 2
                   L=b          √           dz =           √           dz ,              (2.95)
                           0      1−z   2        2   −1      1 − z2

unde k2 ≡ (a2 − b2 )/b2 iar ultima egalitate s-a obtinut observˆnd c˘ functia de sub
                                                   ¸           a    a     ¸
        a         a                                                                s
integral˘ este par˘. Integralele de tipul de mai sus se numesc integrale eliptice ¸i
        a                                                         a a         ¸
formeaz˘ un capitol important al analizei matematice. Se observ˘ c˘ am obtinut o
        a
integral˘ de forma
                                         1
                                   b      f (z)       b
                             L=         √         dz = I ,                       (2.96)
                                   2 −1   1−z   2     2
                                           √
ˆ care apare ponderea Cebˆ¸ev w(z) = 1/ 1 − z 2 . Pentru evaluarea integralei folosim
ın                        as
                          ¸                                         a              s
formula (2.91) cu coeficientii din (2.90). Pentru a = 5, b = 4 rezult˘ k = 3/4, iar ¸irul
            ¸                                     ¸     a
de aproximatii succesive ale integralei ce se obtine m˘rind ordinul formulei Gauss-
    as
Cebˆ¸ev utilizate este

   Ordin        2           3              4          5            6              7
                                                                                         (2.97)
     I      3.556041    3.544605       3.545250   3.545205     3.545209       3.545208

            ¸                       a                                      a
Teoria functiilor eliptice furnizeaz˘ valoarea I = 3.54520849. Se observ˘ convergenta  ¸
      a a                        ¸a                 ın
rapid˘ c˘tre valoarea de referint˘. Este instructiv ˆ acest sens graficul de convergent˘¸a
ˆ coordonate logaritmice (fig. 2.2). Se observ˘ pe acest grafic cum panta curbei scade
ın                                              a
                 a        a                       a      a                a
continuu, denotˆnd o sc˘dere a erorii mai rapid˘ decˆt cea polinomial˘ (pentru care
graficul ar fi fost o linie dreapt˘ ˆ coordonate logaritmice, vezi Exemplul din 2.1.1
                                 a ın
s                                                      s          a s ın            ¸
¸i fig. 2.1). O astfel de comportare a erorii se nume¸te spectral˘ ¸i, ˆ comparatie cu
comport˘rile erorii O(hk ) de la integrarea polinomului de interpolare, la o aproximare
         a
spectral˘ avem δ = O(h∞ ). Ordinul infinit se interpreteaz˘ ˆ sensul c˘ eroarea scade
         a                                                  a ın         a
mai repede decˆt orice putere a lui h. ˆ cazul de fat˘ de exemplu ˆ
                a                       In            ¸a                         s
                                                                     ıntre n = 2 ¸i n = 3
eroarea a avut o comportare δ = O(h0.7 ) pe cˆnd ˆ               s
                                                a ıntre n = 16 ¸i n = 17 comportarea
a fost δ = O(h640 ).
76                                                2. Derivarea ¸i integrarea numerica
                                                               s                    ˘


2.2.3         Tehnici de atingere a unei precizii impuse
                                                                       s
Pentru toate formulele de integrare prezentate anterior s-a determinat ¸i o ex-
presie a erorii de integrare. Tipic, forma acestei expresii este

                                            δ = C f (k) (ξ) hm ,                                        (2.98)

                         a                   ıns˘         ¸    ın
unde C este o constant˘. Sunt foarte rare ˆ a aplicatiile ˆ care derivata este
cunoscut˘. Dup˘ cum s-a mentionat, partea important˘ a expresiei (2.98) este
          a      a              ¸                           a
dependenta de pasul h. ˆ
           ¸             Intrebarea ce apare totdeauna ˆ               ¸
                                                          ıntr-o aplicatie este: cum
se poate stabili pasul h necesar atingerii unei precizii impuse ε? Vom considera
        a                                                                    aa a
acum cˆteva tehnici ce permit determinarea preciziei de integrare. O tr˘s˘tur˘
            a                              a
important˘ a tehnicilor considerate este c˘ ele pot fi aplicate ˆ         a
                                                                ımpreun˘ cu oricare
dintre formulele de integrare considerate mai sus.

Reguli de integrare recursive.
                            a                        ¸           a
Singura modalitate practic˘ de verificare a convergentei aproxim˘rilor numerice
                                                                            a
ale unei integrale este repetarea calculelor cu un pas mai mic. O tehnic˘ des
        a      ınjum˘t˘¸irea pasului. Consider˘m intervalul [a, b] ¸i o diviziune
utilizat˘ este ˆ      a at                     a                   s
echidistant˘ a sa ˆ N p˘rti egale. Pasul diviziunii este hN = (b − a)/N iar
            a       ın     a¸
                 (N )
nodurile sunt xj = a + jh, j = 0, N 3 . Prin ˆ         a at                ¸
                                                 ınjum˘t˘¸irea pasului obtinem
                            (2N )                                                (2N )      (N )
h2N = (b − a)/2N , xj                = a + jh, j = 0, 2N . Deoarece x2j                  = xj      , j = 0, N ,
              (2N )      (N )            (2N )           (2N )    (N )               (N )
rezult˘a     y2j=       unde
                        yj            = y2j              =
                                                     f (x2j ),   yj              f (xj ).
                                                                     Deci valorile
     ¸                                                                 ın
functiei cunoscute din calculul efectuat cu pasul hN pot fi refolosite ˆ calculul
efectuat cu pasul h2N . Noua aproximare a integralei se poate exprima recursiv
                                                                        (2N )
utilizˆnd vechea aproximare ¸i valorile functiei f ˆ noile noduri x2j+1 , j =
      a                         s               ¸     ın
0, 2N − 1. S˘ stabilim efectiv aceste reguli pentru dou˘ dintre formulele cele
              a                                            a
                                        s
mai utilizate, cea a trapezelor (2.53) ¸i formula Simpson “1/3” (2.56).
                                                        ¸    a
    Vom nota prin T (hN ) aproximarea integralei I obtinut˘ prin formula trape-
                            s                              ¸    a
zelor (2.53) cu N intervale ¸i prin T (h2N ) aproximarea obtinut˘ cu 2N intervale.
              s
2T (hN )/hN ¸i 2T (h2N )/h2N sunt
     (N )                                (N )                          (N )                                  (N )
  y0           +                 +    2y1        +     ...   +     2yN −1          +                   +    yN
     (2N )              (2N )            (2N )                         (2N )                (2N )            (2N )
                                                                                                                     ,
  y0           +      2y1        +    2y2        +     ...   +     2y2N −2         +      2y2N −1      +    y2N

                                                      a ¸ a           a
respectiv. Valorile egale au fost aliniate pe vertical˘. Tinˆnd cont c˘ avem
                  ¸
h2N = hN /2 se obtine
                                                                   N
                                              1                          (2N )
                                T (h2N ) =      T (hN ) + h2N          y2j−1 .                          (2.99)
                                              2                  j=1

    3 Datorit˘ operatiilor succesive de ˆ
             a      ¸                        a at                   a ınceperii numerot˘rii nodu-
                                        ınjum˘t˘¸ire este preferabil˘ ˆ                a
rilor de la 0.
                       a
2.2. Integrarea numeric˘                                                             77


                                 a        a         a                  a        a
     Formula trapezelor furnizeaz˘ o regul˘ recursiv˘ deosebit de simpl˘ datorit˘
           a            s          ¸                                      s
faptului c˘ avem aceea¸i coeficienti numerici la formulele din etapele N ¸i 2N .
                                                                    a         ¸
Pentru alte formule, regulile recursive sunt mai complicate datorit˘ alternantei
         ¸                a
coeficientilor. Exemplific˘m modalitatea de abordare pentru formula Simpson
“1/3”. Vom nota prin S(h2N ) suma din (2.56). Deoarece formula lucreaz˘         a
             a
cu un num˘r par de intervale, vom face trecerea de la etapa 2N la etapa 4N .
          ¸       ¸                                   ¸
Coeficientii asociati valorilor nodale sunt reprezentati grafic pe schema de mai
jos.




                 ¸                           ın
    Valorile functiei ce trebuiesc calculate ˆ etapa 4N sunt cele de indice im-
                                                                              a
par. Pentru cele de indice par se pot refolosi rezultatele etapei 2N . Datorit˘
        ¸            ¸                     a      a               ın
alternantei coeficientilor este convenabil s˘ separ˘m suma S(h2N ) ˆ suma com-
                 s
ponentelor pare ¸i a celor impare

                       S(h2N ) = Spar (h2N ) + Simpar (h2N ) ,                  (2.100)

                      h2N (2N )     (2N )             (2N )    (2N )
      Spar (h2N ) =       y0    + 2y2     + . . . + 2y2N −2 + y2N    ,          (2.101)
                       3

                       4h2N (2N )    (2N )            (2N )    (2N )
     Simpar (h2N ) =        y1    + y3     + . . . + y2N −3 + y2N −1 .          (2.102)
                         3
               a                        a
Regula recursiv˘ de trecere la noua etap˘ este
                                   1               1
                 Spar (h4N )   =     Spar (h2N ) + Simpar (h2N ),               (2.103)
                                   2               4
                    S(h4N )    =   Spar (h4N ) + Simpar (h4N ) .                (2.104)

                                       ın
    Regulile recursive se folosesc ˆ cadrul unei bucle de verificare a convergentei     ¸
         a                        a                                a
aproxim˘rilor. Exemplific˘m, pentru regula recursiv˘ Simpson “1/3”, ˆ algo-          ın
ritmul de mai jos. ˆ urma aplic˘rii algoritmului, se obtine un ¸ir de aproximatii
                     In                a                            ¸      s           ¸
ale integralei S1 , S2 , . . . , SM calculate cu 21 , 22 , . . . , 2M subintervale.

               M ← 1, N ← 2, h ← (b − a)/2
               Spar ← h(f (a) + f (b))/3, Simpar ← 4hf (a + h)/3
               S1 ← Spar + Simpar
78                                         2. Derivarea ¸i integrarea numerica
                                                        s                    ˘


            a
         repet˘
              N ← 2N, M ← M + 1, doih ← h, h ← h/2
            Spar ← Spar /2 + Simpar /4
           
            x ← a + h, Simpar ← 0
           
            k=1:2:N
                                                                                     (2.105)
           
                 Simpar ← Simpar + f (x)
           
                 x ← x + doih
            Simpar ← 4hSimpar /3
              SM ← Spar + Simpar
         pˆn˘ cˆnd |SM − SM −1 | ≤ ε |SM | + εS sau M > Mmax
          a a a                                                              .
     ¸                    ¸
Conditia de oprire a iteratiei este cea de atingere a unei erori relative impuse ε
                                |(SM − SM −1 )/SM | ≤ ε ,                             (2.106)

transcris˘ convenabil pentru a permite ¸i SM = 04 (sau foarte mic). ˆ plus, se
         a                             s                            In
                a                      a                         as
impune un num˘r maximal de subdiviz˘ri Mmax ce nu trebuie dep˘¸it.

Extrapolarea Richardson.
                 ¸ ın                       ¸                     s
Sunt multe situatii ˆ care evaluarea functiei f este costisitoare ¸i este de dorit
  ¸                                        a                a           ¸
obtinerea unei precizii sporite cu un num˘r minim de evalu˘ri ale functiei. Vom
considera acum un procedeu de ˆ         a at              ¸                  a
                                  ımbun˘t˘¸ire a aproximatiilor ce se bazeaz˘ pe
                                                       a       ıntˆ
cunoa¸terea formei erorii de integrare (2.98). Consider˘m mai ˆ ai aproximarea
      s
                                         a
prin formula trapezelor. Valoarea exact˘ a integralei este
                                I = T (h) + Cf (2) (ξ1 )h2 .                          (2.107)
ˆ    a at
Injum˘t˘¸ind pasul avem
                             I = T (h/2) + Cf (2) (ξ2 )h2 /4 ,                        (2.108)

cu ξ1 = ξ2 ˆ general. Dac˘ se poate presupune ˆ a c˘ f (2) (ξ1 ) ∼ f (2) (ξ2 )5 se
           ın                a                      ıns˘ a          =
poate elimina Cf (2) (ξ1 ) din cele dou˘ ecuatii de mai sus ¸i obtine
                                       a     ¸              s    ¸
                           I ∼ T (h/2) + [T (h/2) − T (h)] /3 .
                             =                                                        (2.109)
Tipic, noua aproximare este de un ordin de precizie mai ridicat
                     I = T (h/2) + [T (h/2) − T (h)] /3 + O(hk ) ,                    (2.110)
               s
cu k > 2. Acela¸i procedeu aplicat pentru formula Simpson, la care avem
                                 I = S(h) + Cf (4) (ξ)h4 ,                            (2.111)
conduce la
            I = S(h/2) + [S(h/2) − S(h)] /15 + O(hk ),            k > 4.              (2.112)
   4ε                                        ¸a s                       ¸      s a
         este denumit coeficient de sigurant˘ ¸i permite oprirea iteratiilor ¸i cˆnd SM = 0.
     S
Uzual se ia εS = ε ¸i conditia de oprire a iteratiilor se scrie |SM − SM −1 | ≤ ε(1 + |SM |).
                   s        ¸                     ¸
   5 Presupunerea f (2) (ξ ) ∼ f (2) (ξ ) implic˘ fie c˘ ξ nu difer˘ de ξ fie c˘ f (2) (x) nu are
                                                a     a 1          a            a
                          1 =          2                                 2
     ¸
variatii importante pe intervalul considerat.
                       a
2.2. Integrarea numeric˘                                                                                   79


Algoritmul Romberg.
Punctul slab al tehnicii de mai sus este presupunerea f (2) (ξ1 ) ∼ f (2) (ξ2 ). Exist˘
                                                                  =                   a
ˆ a o cale de a justifica acest pas pentru functii netede, f ∈ C (2m) [a, b]. Punctul
ıns˘                                          ¸
de pornire ˆ constituie formula Euler-MacLaurin6
           ıl
     1                                       m−1
                        F (0) + F (1)
         F (t) dt =                   +            A2k F (2k−1) (0) − F (2k−1) (1) − A2m F (2m) (ξ0 ),
 0                            2
                                             k=1

cu ξ0 ∈ [0, 1] ¸i A2k constante numerice. Aplic˘m formula pentru F (t) = f (xj +
               s                               a
     s    ¸
t h) ¸i obtinem
     xj+1                                                       m−1
                                  h [f (xj ) + f (xj+1 )]
            f (x) dx        =                             +               A2k h2k f (2k−1) (xj ) − f (2k−1) (xj+1 )
 xj                                          2
                                                                    k=1
                                           2m+1 (2m)
                                  −A2m h          f       (ξi ) .
                            2N −1
Prin sumarea                j=0 ,          ¸
                                      se obtine

     b                      2N −1                                    m−1
                                      h [f (xj ) + f (xj+1 )]
         f (x) dx       =                                     +             A2k h2k f (2k−1) (a) − f (2k−1) (b)
 a                              j=0
                                                 2
                                                                     k=1
                                                2m (2m)
                            −A2m (b − a)h             f     (ξ) .

         a                                                              ıncˆ
Prima sum˘ este chiar aproximarea prin formula trapezelor T (h), astfel ˆ at
avem
                   b
         I=            f (x) dx = T (h) + a2 h2 + a4 h4 + . . . + a2m h2m f (2m) (ξ) .                (2.113)
               a

                            a    a       ¸
   De data aceasta, observ˘m c˘ s-a obtinut un coeficient a2 al primului ter-
men din eroare, ce este constant. Ca atare, extrapolarea Richardson este justi-
ficat˘. De fapt procedeul de extrapolare poate fi repetat de m − 1 ori. Aceast˘
    a                                                                          a
         ¸                                  as
combinatie dintre regula trapezelor recursiv˘ ¸i extrapolare Richardson este cu-
noscut˘ ca metoda Romberg. Fie R(n, m) estimarea integralei obtinut˘ cu 2n su-
       a                                                        ¸    a
bintervale ¸i m etape de extrapolare Richardson. Avem R(n, 0) = T ((b − a)/2n )
           s
s
¸i
                                              1
     R(n, m) = R(n, m − 1) +                       [R(n, m − 1) − R(n − 1, m − 1)] .                  (2.114)
                                            4m − 1
ˆ scrierea programelor de calcul, este recomandat˘ utilizarea formei de mai sus
In                                                a
ˆ care se adaug˘ o corectie R(n, m − 1) − R(n − 1, m − 1), la o aproximatie deja
ın              a       ¸                                               ¸
efectuat˘ R(n, m − 1), spre deosebire de forma
        a
                                  4m                  1
             R(n, m) =            m−1
                                      R(n, m − 1) − m   R(n − 1, m − 1) .                             (2.115)
                                4                  4 −1
   6 Formula rezult˘ din integrarea prin p˘rti repetat˘ ¸i alegerea convenabil˘ a constantelor
                   a                       a¸          as                     a
               1                         1    1
de integrare: 0 F (t) dt = (t − 1 )F (t) 0 − 0 (t − 1 ) F (t) dt = . . .
                                 2                  2
80                                     2. Derivarea ¸i integrarea numerica
                                                    s                    ˘


                      a            ıntr-un tabel
Calculul se organizeaz˘ convenabil ˆ

                 R(0, 0)
                 R(1, 0)    R(1, 1)
                 R(2, 0)    R(2, 1)     R(2, 2)                              (2.116)
                 .
                 .          .
                            .           .
                                        .          ..
                 .          .           .            .
                 R(M, 0)    R(M, 1)     R(M, 2)    ···   R(M, M )

               ın
ce se parcurge ˆ sensul umplerii triunghiurilor inferioare: R(0, 0), R(1, 0), R(1, 1),
                                            a           ¸
R(2, 0), R(2, 1), R(2, 2), . . . . Noi evalu˘ri ale functiei f sunt necesare doar pen-
                  a         ¸
tru prima coloan˘ ce contine R(0, 0), R(1, 0), . . . . Algoritmul este

 n ← 0; h ← b − a; N ← 1
 R(0, 0) ← h(f (a) + f (b))/2
    a
 repet˘
      n ← n + 1; N ← 2N ; doih ← h; h ← h/2
    R(n, 0) = 0; x ← a + h
   
    k=1:2:N
   
   
         R(n, 0) ← R(n, 0) + f (x)
   
         x ← x + doih
    R(n, 0) ← R(n − 1, 0)/2 + h R(n, 0)
   
    AtinsPrecizie ← f als; m ← 0; putere4 ← 1
   
     a
    repet˘
   
         putere4 ← 4 putere4; m ← m + 1
     dif ← R(n, m − 1) − R(n − 1, m − 1)
    
     R(n, m) ← R(n, m − 1) + dif / (putere4 − 1)
   
         AtinsPrecizie ← |R(n, m) − R(n, m − 1)| ≤ ε (1 + |R(n, m − 1)|)
       a a a
      pˆn˘ cˆnd m > n sau AtinsPrecizie
  a a a
 pˆn˘ cˆnd AtinsPrecizie sau n > nmax .

                          a                                          ¸
   Partea cea mai sensibil˘ a algoritmului este stabilirea unei conditii de oprire.
                           a          ¸       a                         ¸
Cea de mai sus este simpl˘ dar functioneaz˘ bine doar pentru functii netede.
ˆ aplicatii ale procedeului trebuie atent e¸antionat˘ functia de sub integral˘
In       ¸                                  s         a      ¸                    a
                          ¸                  at                    ¸
pentru a determina prezenta unor singularit˘¸i sau zone de variatii rapide ce ar
ımpiedica ameliorarea aproximatiilor prin extrapolarea Richardson.
ˆ                               ¸

                  a
Integrarea adaptiv˘.
    a a                                    ın       a        s
Pe lˆng˘ atingerea unei precizii impuse, ˆ practic˘, se dore¸te atingerea acestei
                     a                   a          ¸
precizii cu un num˘r minim de evalu˘ri ale functiei f. Algoritmii considerati    ¸
  a a               a                a          a
pˆn˘ acum prezint˘ dezavantajul c˘ realizeaz˘ o diviziune a ˆ   ıntregului interval
                                       a                          a
de integrare. Ori, este adesea cazul c˘ subdivizarea este necesar˘ numai pe zone
                                                                              a
restrˆnse, de variatie mai rapid˘ a functiei f (fig. 2.3). Strategia adecvat˘ este
     a             ¸             a        ¸
               ındeplinirii unei conditii de eroare pe fiecare subinterval ˆ parte
de verificare a ˆ                       ¸                                   ın
s                                                              a       ¸
¸i de subdivizare numai a acelor subintervale pe care aceast˘ conditie nu este
ındeplinit˘.
ˆ         a
                       a
2.2. Integrarea numeric˘                                                                 81


                                                       a         a
    Algoritmul poate fi exprimat elegant sub form˘ recursiv˘. Fie F o formul˘      a
                                                        b
de integrare pe care o vom aplica pentru a calcula a f (x) dx, cu eroarea relativ˘a
       a                                   ¸                       a
ε. Not˘m prin P (F, a, b, ya , yb , ε) functia de integrare adaptiv˘. S-au introdus
ca argumente ¸i ya ≡ f (a), yb ≡ f (b), pentru a se putea refolosi evalu˘rile de
               s                                                            a
     ¸ ın                                     a
functie ˆ capetele intervalului, atunci cˆnd se face o subdivizare. Algoritmul
este

               P (F, a, b, ya , yb , ε)
                  
                    Iab ← F (a, b, ya , yb )
                   c ← (a + b)/2, yc ← f (c)
                  
                   Iac ← F (a, c, ya , yc ), Icb ← F (c, b, yc , yb )
                  
                   Inou ← Iac + Icb                                                 (2.117)
                  
                   dac˘ |Inou − Iab | ≤ ε(1 + |Inou |) atunci P ← Inou
                         a
                    altfel P ← P (F, a, c, ya , yc , ε) + P (F, c, b, yc , yb , ε)

                                       a    a       a
Pentru intervalul [a, b], se efectueaz˘ dou˘ evalu˘ri ale integralei, folosind for-
                              a                       a              a            ın
mula F . Prima Iab utilizeaz˘ tot intervalul, cealalt˘ Inou utilizeaz˘ o divizare ˆ
    a                      a ıntre cele dou˘ evalu˘ri conditia de eroarea relativ˘
dou˘ a intervalului. Dac˘, ˆ               a      a          ¸                     a
     ındeplinit˘, se accept˘ evaluarea mai precis˘ Inou . Altfel se repet˘ aplica-
este ˆ         a            a                      a                       a
                              a
rea procedeului pe cele dou˘ subintervale [a, c], [c, b]. Procedeul se zice recursiv
              ¸
deoarece functia P se autoapeleaz˘. a
                       a                 a
    Integrarea adaptiv˘ poate fi cuplat˘ cu oricare dintre formulele de integrare
prezentate anterior. Pentru formula Simpson “1/3” avem

                             F (a, b, ya , yb )
                                  h ← (b − a)/2, ym ← f (a + h)
                                                                ,                    (2.118)
                                  F ← h (ya + 4ym + yb )/3

iar pentru formula Gauss-Legendre de ordinul III (vezi tabel 2.1):

                        F (a, b, ya , yb )
                           
                              z1 = − 3/5, z2 = 0, z3 = 3/5
                            A1 = 5/9, A2 = 8/9, A3 = 5/9
                           
                            m ← (b − a)/2, n ← (a + b)/2
                           
                            j=1:3                                         .         (2.119)
                           
                            xj = m zj + n
                              F ← m (A1 f (x1 ) + A2 f (x2 ) + A3 f (x3 ))

                      a
   Exemplu 1. Consider˘m integrala
                  10
                                                   1                 1
        I=             f (x)dx,   f (x) =                   +                        (2.120)
              0                             (x − 1)2 + 0.01   (x − 3)2 + 0.04
                                                        a        a
ce se poate evalua analitic, I = 45.54044. Ne propunem s˘ compar˘m diversele metode
de integrare pe acest caz. Impunem atingerea unei erori relative de ε = 10−6 (6 cifre
                                                                          s
semnificative exacte). Prin regulile recursive, pentru formula trapezelor ¸i formula
                      ¸                             a
Simpson “1/3”, se obtin rezultatele din tabelul urm˘tor.
82                                        2. Derivarea ¸i integrarea numerica
                                                       s                    ˘




Figura 2.3: O functie cu variatii rapide ˆ jurul absciselor x = 1, x = 3 ¸i lente ˆ
                  ¸           ¸          ın                              s        ın
                                     s                 ¸
rest. Sunt figurate pe axa absciselor ¸i pe graficul functiei nodurile folosite la integrarea
        a
adaptiv˘ cu formula Simpson “1/3”.




      M     trapeze      Simpson “1/3”     M      trapeze       Simpson “1/3”
      1     4.38356         14.67353       7     45.54563          45.53835
      2    12.10104         30.84147       8     45.54017          45.54044
                                                                                   (2.121)
      3    26.15636         32.09992       9     45.54037          45.54044
      4    30.61403         51.99130       10    45.54042
      5    46.64699         43.96342       11    45.54043

                           ¸                                s
cu 2049 de apeluri ale functiei f pentru formula trapezelor ¸i 1025 pentru formula
          a a
Simpson pˆn˘ la atingerea erorii impuse.
        a
   Aplic˘m acum extrapolarea Richardson asupra rezultatelor de la metoda trapezelor
                         ¸
(metoda Romberg). Se obtine tabelul de mai jos.

     nØm         0              1            2              3            4
      0      5.667271
      1      4.383564      3.955662
                                                                                   (2.122)
      2      12.101037     14.673528     15.388053
      3      26.156360     30.841468     31.919330    32.181731
      4      30.614030     32.099919     32.183816    32.188014      32.188039

                    s                                     ¸        a
Algoritmul se opre¸te la n = 4, m = 4, deoarece corectia adus˘ de extrapolare este
    a a a
mic˘, l˘sˆnd primele 6 cifre semnificative nemodificate. Dar rezultatul este foarte
                      s                              a             a      a
departe de cel exact ¸i de fapt nu avem nici o cifr˘ semnficativ˘ corect˘. Functia f¸
       a     a                ¸              a           s                           s
prezint˘ dou˘ puncte de variatie foarte rapid˘, la x = 1 ¸i x = 3. Acestea apar ca ni¸te
          at     a          s                ¸                             a
singularit˘¸i dac˘ rata de e¸antionare a functiei f nu este suficient de fin˘.
                       a
2.2. Integrarea numeric˘                                                                        83

    ˆ fine, compar˘m diversele formule de integrare ˆ interiorul procedurii adaptive
    In                    a                        ın
                               ¸
P (F, a, b, ya , yb , ε). Se obtin rezultatele

     Formul˘a     Trapeze          Simpson “1/3”         GL II    GL III      GL IV
        I         45.5419             45.5405           45.5404   45.5405     45.5404       (2.123)
         a
    evalu˘ri f      839                 557               877       573         485

unde prin GLn s-a notat formula Gauss-Legendre de ordinul n. Procedeul adap-
               a ın                                                              ¸
tiv determin˘ ˆ general corect cele 6 cifre semnificative cerute. Exceptie face doar
                                                     ın
metoda trapezelor. Nesatisfacerea preciziei ˆ acest caz este rezultatul conditiei de   ¸
                ¸                                    a               as
oprire a iteratiilor. S-a presupus necunoscut˘ valoarea exact˘ ¸i s-au comparat dou˘          a
aproximatii succesive pentru a se estima eroarea. ˆ termenii din capitolul 1 s-a aplicat
           ¸                                              In
                           ¸a         s                                ıns˘
criteriul de convergent˘ pentru ¸iruri Cauchy. Criteriul este ˆ a strict valabil doar
cˆnd n → ∞. Exemplul de aici ne arat˘ pericolul identific˘rii aproprierii dintre dou˘
 a                                              a                 a                           a
           ¸                                 ¸             ¸      a
aproximatii cu aproprierea aproximatiilor de solutia exact˘. Pentru a preveni o esti-
              a                                                                    a
mare eronat˘ a preciziei cu care s-a determinat un rezultat trebuie impus˘ o conditie       ¸
                       a      a             a         ın                    a a
de eroare mai strict˘ decˆt cea dorit˘ efectiv ˆ rezultatul final. Ref˘cˆnd calculul cu
ε = 10−7 se obtine I = 45.5407 pentru metoda trapezelor cu 1801 evalu˘ri ale functiei
                  ¸                                                            a           ¸
f.
          a               a           ¸                 s
    Num˘rul de evalu˘ri de functie scade cu cre¸terea ordinului de integrare. Cˆ¸tigul as
                ın              ıns˘             ¸         a
devine din ce ˆ ce mai mic ˆ a. Diferenta de num˘r de evalu˘ri ˆ    a ıntre Simpson “1/3” ¸i  s
                                         a
GLII ce sunt procedee cu comport˘ri comparabile ale erorii provine de la posibilitatea
        a                 ın
reutiliz˘rii nodurilor ˆ formula Simpson. La formulele Gauss-Legendre modificarea
                         s                         ¸
intervalului conduce ¸i la modificarea pozitiei nodurilor.
                    ¸                          a                  a
    Prin comparatie cu regula recursiv˘ Simpson se observ˘ reducerea semnificativ˘ a        a
     a                 a            ¸       ın                                       a
num˘rului de evalu˘ri ale functiei f ˆ cazul procedurii adaptive ce utilizeaz˘ formula
Simpson “1/3”. Nodurile folosite pentru atingerea unei erori relative de ε = 10−3 sunt
reprezentate ˆ fig. 2.3. Se observ˘ ˆ
                ın                                               ın                  ¸
                                           a ındesirea nodurilor ˆ zonele de variatie rapid˘  a
       ¸                   ¸                s                          a
a functiei. Pentru obtinerea acelea¸i precizii regula recursiv˘ Simpson ˆ          ımparte tot
                     s       ¸         a                  a          ¸            ın
intervalul cu acee¸i finete rezultˆnd multe evalu˘ri ale functiei inutile, ˆ zonele de
     ¸        a
variatie lent˘.
    Exemplul 2. Fie acum integrala
                           10
                                                          1              1
                 I=             f (x)dx,   f (x) =                +                         (2.124)
                       0                             (x − 1)2 + 1   (x − 3)2 + 4
                     a                    ¸            a a
ce are valoarea exact˘ I = 3.38318. Functia este asem˘n˘toare celei din exemplu
                                                                       a
precedent dar are un aspect mult mai neted. Procedeul Romberg furnizeaz˘ tabelul:


     nØm           0                1            2            3           4             5
      0        3.039931
      1        2.439083         2.238800
      2        2.737904         2.837511     2.877425
      3        3.326170         3.522259     3.567908      3.578868
      4        3.365313         3.378361     3.368768      3.365607   3.364771
      5        3.378763         3.383246     3.383572      3.383807   3.383878     3.383897
      6        3.382077         3.383182     3.383178      3.383172   3.383169
84                                      2. Derivarea ¸i integrarea numerica
                                                     s                    ˘


Valoarea la care s-a ˆ                 ¸                                  a            a
                      ındeplinit conditia de eroare este I = 3.38317 dup˘ 65 de evalu˘ri
         ¸          ¸              a                               ¸      a          ¸ a
ale functiei f. Functia fiind neted˘ extrapolarea Richardson functioneaz˘ corect obtinˆndu-
   s                                                      a          ¸
se ¸i un efort de calcul mult inferior celor 1025 de evalu˘ri de functie necesare atingerii
       s                                          a                   ¸
acelea¸i precizii prin regula trapezelor recursiv˘ (de 16 ori mai putine calcule!).
                                                                                 85




Capitolul 3

               ¸
Rezolvarea ecuatiilor
neliniare




    Vom aborda, la ˆ                        a     a a
                    ınceput problema g˘sirii r˘d˘cinilor reale ale unei functii   ¸
             a                            a
F (x), definit˘ pe un interval [a, b], adic˘ a valorilor variabilei x pentru care are
        ¸
loc relatia
                              F (x) = 0,    x ∈ [a, b].                        (3.1)
     a                  ¸          a                      as                  ¸
Dac˘ F (x) este o functie liniar˘ problema este banal˘ ¸i admite o solutie ana-
     a                                a                     a      ın
litic˘. Ca atare vom presupune c˘ F (x) este neliniar˘, caz ˆ care problema
               a        a        ¸                                        a
devine dificil˘ datorit˘ absentei vreunei teoreme matematice ce s˘ furnizeze
      a     a a                   a at ın                        a ın
num˘rul r˘d˘cinilor sau vecin˘t˘¸ile ˆ care acestea se afl˘ ˆ cazul general.
                                                                 a
De aceea o prim˘ etap˘ ˆ rezolvarea ecuatiei (3.1) este c˘utarea r˘d˘cinilor
                  a       a ın                  ¸                           a a
                                                              a
pentru care se folosesc rezultate din analiza matematic˘, precum teorema lui
             s                 ¸               a
Rolle, sau e¸antionarea functiei F (x). Dup˘ determinarea intervalelor pe care
       a a a                       a                                            s
se afl˘ r˘d˘cini se trece la restrˆngerea acestor intervale, proces cunoscut ¸i sub
                              a a                        a a
denumirea de localizare a r˘d˘cinilor. Localizarea r˘d˘cinilor se efectueaz˘ de   a
       a                                                                    ¸
regul˘ prin procedee sigure dar nu deosebit de eficiente. Pentru a obtine rapid
                  a              ¸         a a                   a         a
o precizie ridicat˘ a aproximatiei unei r˘d˘cini se efectueaz˘ o ultim˘ etap˘ de  a
             a a
rafinare a r˘d˘cinilor.
                                                               a    s               ¸
     Uzual, procedeele de rezolvare a ecuatiei (3.1) furnizeaz˘ un ¸ir de aproximatii
                                           ¸
{xn }n∈N ce tinde c˘tre o r˘d˘cin˘ α. ˆ analiza acestor procedee este util s˘ se
                    a        a a a       In                                       a
86                                      3. Rezolvarea ecuatiilor neliniare
                                                          ¸


           a                                     at           s            a
stabileasc˘ o modalitate de cuantificare a rapidit˘¸ii cu care ¸irul tinde c˘tre li-
mit˘. Spunem c˘ ¸irul {xn }n∈N converge liniar c˘tre α dac˘ exist˘ c < 1, N ∈ N
    a           as                              a          a       a
       ıncˆ
astfel ˆ at

                       |xn+1 − α| ≤ c |xn − α| ,      n>N.                    (3.2)

Sirul {xn }n∈N converge p˘tratic c˘tre α dac˘ exist˘ C, N astfel ˆ at
                         a        a         a      a             ıncˆ
                                               2
                      |xn+1 − a| ≤ C |xn − a| ,       n>N.                    (3.3)

                                        ¸a                  a ıns˘
Analog se pot defini ordine de convergent˘ superioare, existˆnd ˆ a, un num˘r a
                                           ¸a
mic de algoritmi ce au ordine de convergent˘ mai mari de 2. Multe metode
        a                       ¸a
prezint˘ un ordin de convergent˘ intermediar ˆ                  s        a
                                               ıntre cel liniar ¸i cel p˘tratic.
Spunem c˘ ¸irul {xn }n∈N converge superliniar c˘tre α dac˘ exist˘ N ¸i un alt
           as                                  a           a      a    s
¸ir {εn }n∈N cu limn→∞ εn = 0 astfel ˆ at
s                                    ıncˆ

                      |xn+1 − a| ≤ |εn | |xn − a| ,   n>N                     (3.4)

                          ¸a               a             ¸
    Ordinul de convergent˘ va indica num˘rul de iteratii ce trebuiesc efectuate
                            a
pentru a atinge o anumit˘ precizie. Metodele cu ordin de convergent˘ mai   ¸a
              a                          ¸                       ¸
ridicat tind s˘ efectueze mai multe operatii aritmetice pe iteratie. De aceea este
        a s
necesar˘ ¸i o cuantificare a efortului de calcul ˆ             ¸
                                                  ıntr-o iteratie pentru a avea o
                 a                                                          a
estimare realist˘ a timpului de calcul. Uzual, unitatea de lucru adoptat˘ este
     a             a          ¸        ıntr-o iteratie.
num˘rul de evalu˘ri ale functiei F (x) ˆ           ¸


3.1            ınjum˘t˘¸irii intervalelor
        Metoda ˆ    a at
Metoda este exemplul clasic de un procedeu de localizare. Vom presupune c˘       a
               a
din etapa de c˘utare s-a determinat un interval [a, b] pentru care F (a)F (b) < 0,
              a       ¸          ¸         a a                       a
ceea ce denot˘ existenta a cel putin unei r˘d˘cini (eventual un num˘r impar) ˆ  ın
acest interval. Metoda ˆ      a at    ımparte intervalul ˆ dou˘ p˘rti egale prin
                        ınjum˘t˘¸irii ˆ                  ın     a a¸
punctul

                                  c = (a + b)/2 .                             (3.5)

    a                              a a a        a                        a
Dac˘ F (c) = 0, atunci c este o r˘d˘cin˘. Dac˘ F (c) = 0, se calculeaz˘ semnul
                            a                                              a a
produsului F (a)F (c). Dac˘ acesta este negativ, F (a)F (c) < 0, atunci r˘d˘cina
      a ın                          a a          a ın
se afl˘ ˆ intervalul [a, c], altfel r˘d˘cina se afl˘ ˆ [c, b]. Calculele se reiau pe
noul subinterval.
                      as           a                         ¸           ¸
    Metoda este simpl˘ ¸i necesit˘ doar o evaluare de functie per iteratie. Con-
                                                                     a
vergenta este ˆ a doar liniar˘ (c = 1/2 ˆ 3.2), algoritmul efectuˆnd tipic un
       ¸      ıns˘              a           ın
3.2. Procedee iterative                                                              87


        a          ¸
mare num˘r de iteratii. Algoritmul este
               Fa ← F (a); Fb ← F (b); m ← 0; e ← b − a
                  a
               repet˘
                    e ← 0.5e; c ← a + e; Fc = F (c)
                        a
                  dac˘ semn(Fa ) = semn(Fc ) atunci
                 
                 
                     [b ← c; Fb ← Fc                                              (3.6)
                  altfel
                 
                     [a ← c; Fa ← Fc
                    m←m+1
               pˆn˘ cˆnd m > mmax sau |b − a| < δ sau |Fc | < ε
                a a a

                                                        ¸                  as
Se poate observa utilizarea a unui cumul de trei conditii de oprire: dep˘¸irea
    a                       ¸       a
num˘rului maxim de iteratii, restrˆngerea intervalului sub un prag ales δ, sau
obtinerea unei valori a functiei mai mici decˆt num˘rul mic ε. ˆ algoritm
  ¸                           ¸                 a     a              In
                          a        a                     ¸
valoarea c este actualizat˘ prin ad˘garea unei mici corectii e, spre deosebire de
transcrierea direct˘ a formulei (3.5). Aceasta conduce tipic la un control mai
                   a
                                           ¸
bun al erorilor numerice pe parcursul iteratiilor.


3.2     Procedee iterative
Metoda ˆ        a at                            a
         ınjum˘t˘¸irii intervalului este simpl˘ dar converge lent, deci nu este
       a           a           s                       a         a
indicat˘ atunci cˆnd se dore¸te o precizie ridicat˘ (un num˘r mare de cifre
semnificative exacte). De obicei, metoda ˆ         a at                     s
                                           ınjum˘t˘¸irii intervalului serve¸te pen-
                                         a     a a a        a     a
tru stabilirea intervalului pe care exist˘ o r˘d˘cin˘ real˘, dup˘ care se aplic˘  a
procedee care converg mai rapid.

3.2.1         ¸        a
         Iteratia simpl˘
Se scrie ecuatia (3.1) sub forma
             ¸

                                F (x) = x − f (x) = 0 ,                            (3.7)

                     s     ¸        a                                      s
unde f (x) se nume¸te functie iterat˘, iar [a, b] este un interval pe care ¸tim
 a      a     a a a                 a
c˘ exist˘ o r˘d˘cin˘ x = α (separat˘, spre exemplu, cu metoda ˆ         a at
                                                                   ınjum˘t˘¸irii
intervalelor). Prin urmare

                          F (α) = α − f (α) = 0,     α ∈ (a, b).                   (3.8)

            s      a      s ın
Se construie¸te urm˘torul ¸ir, ˆ mod recurent,

                          xk+1 = f (xk ),   k = 0, 1, 2, . . .   .                 (3.9)

      a    a          ın        ¸ s
Vom c˘uta s˘ stabilim ˆ ce conditii ¸irul (3.9) converge spre valorea α, plecˆnd
                                                                              a
de la un punct arbitrar x0 ∈ (a, b). ˆ acest scop, vom calcula distanta la
                                       In                                   ¸
 a a a
r˘d˘cin˘

      |xk+1 − α| = |f (xk ) − f (α)| = |f (ξ)| |xk − α| ,        ξ ∈ (xk , α) .   (3.10)
88                                        3. Rezolvarea ecuatiilor neliniare
                                                            ¸


    t            a        a a a s                            s
Am ¸inut seama c˘ α este r˘d˘cin˘, ¸i am folosit formula cre¸terilor finite (La-
                a     a                    a                          a
grange) presupunˆnd c˘ f (x) este derivabil˘ pe intervalul (a, b). Notˆnd cu m
cea mai mare valoare a modulului derivatei f (x)

                                m = sup |f (x)| ,                               (3.11)
                                      x∈(a,b)

                ¸
din (3.10) se obtine

                             |xk+1 − α| ≤ m |xk − α| .                          (3.12)

      a a             s           a    a         a
Rezult˘ c˘, pentru ca ¸irul xk+1 s˘ aib˘ ca limit˘ pe α este suficient ca

                                       m < 1,                                   (3.13)

            ¸                          a           ¸
convergenta procedeului fiind liniar˘. Conditia (3.13) este ¸i necesar˘ dac˘
                                                                     s          a     a
            s           a          a
dorim ca ¸irul (3.9) s˘ convearg˘ spre α, oricare ar fi punctul de plecare x0 .
                            ın                  a
Astfel, valorile derivatei, ˆ modul, trebuie s˘ fie subunitare ˆ                 a
                                                                   ıntr-o vecin˘tate a
r˘d˘cinii α, inclus˘ ˆ intervalul pe care c˘ut˘m r˘d˘cina. Sirul (3.9) define¸te
 a a                a ın                     a a       a a       ¸                 s
                                     a a                            ¸        a
un procedeu de determinare a unei r˘d˘cini reale denumit iteratie simpl˘. Forma
              ¸                                  a       a           a ın
(3.7) a ecuatiei are o interpretare geometric˘ simpl˘, ilustrat˘ ˆ fig. 3.1. Se
        a a a a                  a      a      a                ¸         ¸
observ˘ c˘, r˘d˘cinile reale, dac˘ exist˘, se g˘sesc la intersectia functiei y = f (x)
                              a                                        a
cu prima bisectoare. Plecˆnd dintr-un punct x0 , este accesibil˘ doar r˘d˘cina a a
x = α2 ˆ vecin˘tatea c˘reia |f (x)| < 1. Pe de alt˘ parte |f (x0 )| > 1 deci
          ın      a         a                              a
conditia (3.13) nu este ˆ
      ¸                                     a                          ¸
                         ıntodeauna necesar˘. Pentru oprirea iteratiilor un criteriu
                       ¸ ıntre doua aproximatii succesive sa fie suficient de mic˘.
simplu este ca distanta ˆ                      ¸                                     a
                     as                              ¸         ıncˆ
Fie ε precizia dorit˘ ¸i n + 1 rangul ultimei iteratii astfel ˆ at

                                  |xn+1 − xn | ≤ ε .                            (3.14)

                  ¸
Mai departe, se obtine succesiv

           |xn+1 − xn | = |f (xn ) − xn | = |F (xn )| = |F (xn ) − F (α)| = (3.15)
      |xn − α| |F (ξn )| = |xn − α| |1 − f (ξn )| ≥ |xn − α| |1 − m|        (3.16)

¸ a                               s
Tinˆnd, mai departe cont de (vezi ¸i 3.10)

               |xn+1 − α| ≤ m |xn − α| ,        |xn − α| ≤ mε/(1 − m)           (3.17)

      a a        ¸      a a
rezult˘ c˘ distanta la r˘d˘cina ultimei valori calculate, xn+1 satisface inegalita-
tea

                            |xn+1 − α| ≤ ε m/(1 − m) .                          (3.18)

    ˆ consecint˘, dac˘ panta m este foarte apropiat˘ de unitate, distanta la
    In          ¸a     a                               a                   ¸
r˘d˘cin˘ poate fi de alt ordin de m˘rime decˆt ε ales. ˆ particular, dac˘ nu
 a a a                              a          a          In                a
                   ¸            ¸a    a a                              a
s-a verificat conditia de existent˘ a r˘d˘cinii, s-ar putea ca aceasta s˘ nici nu
                            ın                                 a
existe (fig. 3.1). De aceea, ˆ programul de calcul, se recomand˘ testarea valorii
|f (x)|.
3.2. Procedee iterative                                                             89




Figura 3.1: (a) Exemplu de convergent˘ a iteratiei simple. (b) Exemplu de divergent˘
                                    ¸a        ¸                                   ¸a
       ¸
a iteratiei simple.


3.2.2      Metoda Newton-Raphson
     ¸                                   a           a a           a
Conditia (3.13) este destul de restrictiv˘, anumite r˘d˘cini neputˆnd fi atinse
            a a               a
(cum ar fi r˘d˘cina corespunz˘toare punctului A din fig. 3.1). De aceea, ne
                               s               a     a       a a
propunem construirea unui alt ¸ir iterativ ce s˘ tind˘ spre r˘d˘cina x = α,

                      xk+1 = xk + β (f (xk ) − xk ) ,     k = 0, 1, 2, . . . ,   (3.19)

                                                                       ¸
unde s-a introdus parametrul de ajustare β. Evident, pentru β = 1 se obtine
     ¸        a           a              ¸      a a a
iteratia simpl˘. Pe de alt˘ parte, distanta la r˘d˘cin˘ este

               |xk+1 − α| ≤ |xk − α + β (f (xk ) − f (α) + α − xk )| =           (3.20)


                       |xk − α| |1 − β (1 − f (ξk ))| ,     ξk ∈ (xk , α) .      (3.21)

                          ¸ s                              a
Pentru a realiza convergenta ¸irului (4.15) este suficient s˘ avem

                            |1 − β (1 − f (x))| < 1,      x ∈ (a, b)             (3.22)

                    a a a a                   a a    ınlocuit ξk cu x, deoarece
pe intervalul unde c˘ut˘m r˘d˘cina. Se observ˘ c˘ am ˆ
ξk este, ˆ general, necunoscut. ˆ particular, dac˘ am cunoa¸te ξk , luˆnd
         ın                     In               a          s         a

                                     β = 1/ [1 − f (ξk )]                        (3.23)

                      a a a
am avea xk+1 = α, adic˘ r˘d˘cina ar fi determinat˘.a
                               s               ¸                    a
   Pentru ξk = xk , din (3.23) ¸i (3.19), se obtine formula iterativ˘ Newton-
Raphson

          xk+1 = xk − F (xk )/F (xk ),        k = 0, 1, . . . , F (xk ) = 0 ,    (3.24)
90                                         3. Rezolvarea ecuatiilor neliniare
                                                             ¸


      a          ¸                 ¸a
ale c˘rei conditii de convergent˘ le vom preciza mai jos. Din punct de ve-
                                                                     a a a
dere geometric, procedeul iterativ (3.24) corespunde apropierii de r˘d˘cin˘ prin
                     ¸                                      ın
punctele de intersectie ale tangentelor duse la curba F (x) ˆ punctele (xk , F (xk ))
                              a                  ¸     a a
(fig. 3.2). Altfel spus, urm˘toarea aproximatie a r˘d˘cinii xk+1 este dat˘ de    a
 a a                    a           ¸                s
r˘d˘cina unei liniariz˘ri a functiei F (x). Aceea¸i idee, de aproximare local˘      a
      a        as                    a
liniar˘, rezult˘ ¸i pe cale analitic˘ din formula lui Taylor

  F (x) = F (xk ) + (x − xk )F (xk ) + (x − xk )2 F (ξk )/2,         ξk ∈ (x, xk ) . (3.25)

                  a       ¸
Aproximarea liniar˘ a functiei F (x) va fi

                        L(x) = F (xk ) + (x − xk )F (xk ) ,                         (3.26)

        a a        a
ce are r˘d˘cina dat˘ de formula (3.24).
                        ¸                ¸a
    Stabilim acum conditiile de convergent˘ a metodei Newton-Raphson. Pentru
                        a
x = α, din (3.25) rezult˘

               0 = F (xk ) + (α − xk )F (xk ) + (α − xk )2 F (ξk )/2 .              (3.27)

             a
sau, considerˆnd F (xk ) diferit de zero,

                                 F (xk )   (xk − α)2
                      α = xk −           −           F (ξk ) .                      (3.28)
                                 F (xk )    2F (xk )

    a       ¸            s              ¸          ¸      a a a ın          ¸
Scazˆnd relatiile (3.24) ¸i (3.28) se obtine distanta la r˘d˘cin˘ ˆ aproximatia
k+1

       |xk+1 − α| = (xk − α)2 |F (ξk )/F (xk )| /2 ≤ M (xk − α)2 ,                  (3.29)

  unde am notat cu M marginea

                 M=       sup        |F (x )/F (x )| ,   F (x ) = 0 .               (3.30)
                       x ,x ∈(a,b)

     ¸             a a              a            a            ¸
Relatia (3.29) arat˘ c˘ de la o etap˘ k la o etap˘ k+1 distanta scade aproximativ
     a             ¸      a a                           a       a
cu p˘tratul distantei la r˘d˘cina din etapa precedent˘, adic˘ metoda Newton-
                     a               ¸a a       a           a          ¸
Raphson are o vitez˘ de convergent˘ p˘tratic˘, superioar˘ aproximatiei simple.
                                a      at                                   ¸
Efortul de calcul este de dou˘ unit˘¸i de lucru deoarece la fiecare iteratie se
         a a         ¸   a s                                 a
evalueaz˘ atˆt functia cˆt ¸i derivata acesteia. Astfel, notˆnd cu x0 punctul de
            ¸
start, se obtine
                                                          2k+1
                       |xk+1 − α| ≤ M −1 [M (x0 − α)]            .                  (3.31)

ˆ consecint˘, o conditie suficient˘ de convergent˘ este
In        ¸a         ¸           a             ¸a

                                     M |x0 − α| < 1 .                               (3.32)

                                             a a ıntotdeauna dac˘ plec˘m su-
Dac˘ M este finit, conditia (3.32) este satisf˘cut˘ ˆ
    a                  ¸                                        a     a
                      a a a         a        ¸             ¸a
ficient de aproape de r˘d˘cin˘. Alt˘ conditie de convergent˘ pentru metoda
3.2. Procedee iterative                                                          91




Figura 3.2: Reprezentarea geometric˘ a iteratiilor din metoda Newton-Raphson (a)
                                   a        ¸
s
¸i secantei (b).


                            a
Newton-Raphson este urm˘toarea: metoda converge ˆ                           a ın
                                                          ıntotdeauna dac˘ ˆ ve-
   a       a a                        s          a      a
cin˘tatea r˘d˘cinii derivatele F (x) ¸i F (x) p˘streaz˘ un semn constant.
       a              a                        a s     a a
   Dac˘ s-a stabilit c˘ intervalul pe care se g˘se¸te r˘d˘cina este (a, b), se poate
                  ¸      ¸ a
pleca cu aproximatia initial˘

                                  x0 = (a + b)/2 .                           (3.33)

            a    ın            a a
Se recomand˘ ca ˆ orice etap˘ s˘ control˘m ˆ                      a s     a a
                                            a ıntre ce valori se g˘se¸te r˘d˘cina,
             a          a               a                              a
tangenta putˆnd fi dus˘ dintr-un cap˘t al intervalului sau din cel˘lalt (dac˘     a
                                         ın                    ın
noua valoare calculat˘ cu (3.24) iese ˆ afara intervalului ˆ care se g˘se¸te
                      a                                                     a s
 a a           a                                      a
r˘d˘cina). Dac˘ se iese din interval indiferent de cap˘tul unde se duce tangenta,
            a       a ınjum˘t˘¸ire a intervalului.
se recomand˘ o nou˘ ˆ       a at

3.2.3     Metoda secantei
                                  a                      at        s
Metoda Newton-Raphson prezint˘ dezavantajul necesit˘¸ii cunoa¸terii derivatei
     ¸                 ıns˘ ınlocui linearizarea ce folose¸te tangenta la graficul
functiei F (x). Putem ˆ a ˆ                               s
     ¸                   s                     a         a      ¸
functiei cu cea ce folose¸te secanta construit˘ cu dou˘ iteratii succesive (fig.
3.2). Formula de iterare este

              xk+1 = xk − (xk − xk−1 ) F (xk )/ [F (xk ) − F (xk−1 )] ,      (3.34)

                    ınlocui
ceea ce revine la a ˆ

                   F (xk ) ∼ [F (xk ) − F (xk−1 )] / (xk − xk−1 )
                           =                                                 (3.35)

ın
ˆ (3.24), adic˘ o aproximare cu diferente finite a derivatei. Pentru pornirea
                a                           ¸
                             a                             a          s
metodei este nevoie de dou˘ valori x0 , x1 . Uzual, dac˘ se cunoa¸te intervalul
[a, b] pe care se afl˘ o r˘d˘cin˘, se ia x0 = a, x1 = b. ˆ acest caz metoda poate
                    a    a a a                          In
              a
fi interpretat˘ ca o ˆ      a at
                     ımbun˘t˘¸ire a metodei ˆ       a at
                                              ınjum˘t˘¸irii intervalului prin faptul
92                                         3. Rezolvarea ecuatiilor neliniare
                                                             ¸


 a ımparte intervalul [a, b] ˆ segmente proportionale, dintre care cel mai mic
c˘ ˆ                         ın               ¸
   ¸     a a
contine r˘d˘cina (fig. 3.3).
   ˆ vederea analizei convergentei metodei not˘m Fk = F (xk ) ¸i ek = xk − α,
    In                           ¸             a                s
        ın     ¸
eroarea ˆ iteratia k. Avem
                               (xk − xk−1 ) Fk     Fk ek−1 − Fk−1 ek
     ek+1 = xk+1 − α = xk −                    −α=                   .           (3.36)
                                 Fk − Fk−1             Fk − Fk−1

Dˆnd factor comun fortat pe ek ek−1 ¸i inserˆnd raportul unitar (xk −xk−1 )/(xk −
 a                   ¸              s       a
            ¸
xk−1 ) se obtine

                                  xk − xk−1     Fk /ek − Fk−1 /ek−1
              ek+1 = ek ek−1                                             .       (3.37)
                                  Fk − Fk−1          xk − xk−1
            ın             ın       a a
Dezvoltarea ˆ serie Taylor ˆ jurul r˘d˘cinii α

       F (xk ) = F (α + ek ) = F (α) + ek F (α) + e2 F (α)/2 + O(e3 )
                                                   k              k              (3.38)

conduce la

                     Fk /ek = F (α) + ek F (α)/2 + O(e2 ) .
                                                      k                          (3.39)

ˆ                       ¸        ¸             ¸a ın
Inlocuind ˆ (3.37) se obtine relatia de recurent˘ ˆ erori
          ın

                          ek+1 ∼ [F (α)/2F (α)] · ek ek−1 ,
                               =                                                 (3.40)

asem˘n˘toare relatiei (3.29) de la procedeul Newton-Raphson. ˆ deducerea
      a a            ¸                                               In
    ¸               ınlocuit aproximarea prin diferente finite a derivatei cu F (α).
relatiei (3.40) s-a ˆ                                ¸
     ¸             a                        ¸a                a
Relatia sugereaz˘ un ordin de convergent˘ mai mare decˆt liniar dar sub cel
 a
p˘tratic
                                                   p
                                   |ek+1 | = A |ek | .                           (3.41)

                      p                                  1/p
Avem |ek | = A |ek−1 | de unde |ek−1 | = A−1 |ek |             . ˆ
                                                                 Inlocuind ˆ (3.40) vom
                                                                           ın
  ¸
obtine

                    2A1+1/p |F (α)| / |F (α)| ∼ |ek |
                                                         1−p+1/p
                                              =                     .            (3.42)

Membrul stˆng este ˆ general finit pe cˆnd ˆ membrul drept ek → 0. Singura
             a        ın                 a ın
                    ¸ a a a a            a     a a           s
posibilitate ca relatia s˘ r˘mˆn˘ valabil˘ pe m˘sur˘ ce k cre¸te este ca

                                   1 − p + 1/p = 0                               (3.43)
                              √
ceea conduce la p = (1 + 5)/2 ∼ 1.62, ordinul de convergent˘ al metodei
                                     =                             ¸a
                         ¸    a                      ¸a         a      a
secantei. Valoarea obtinut˘ ar indica o convergent˘ mai lent˘ decˆt metoda
Newton-Raphson. ˆ a, ˆ fiecare iteratie metoda secantei efectueaz˘ o singur˘
                     Ins˘ ın            ¸                             a        a
                 ¸                  a     ¸
evaluare a functiei F . Pentru dou˘ iteratii ale metodei secantei (pentru a avea
     s                     s                                                ¸a
acela¸i efort de calcul ca ¸i metoda Newton-Raphson), ordinul de convergent˘ ar
fi p2 ∼ 2.62, metoda secantei fiind mai rapid˘ decˆt metoda Newton-Raphson.
     =                                        a    a
3.2. Procedee iterative                                                                93




Figura 3.3: (a) Metoda secantei restrˆnge intervalul pe care se afl˘ r˘d˘cina la (x2 , x1 ),
                                      a                           a a a
               a                                   ınjum˘t˘¸irii. (b) Metoda parabo-
mai mic decˆt intervalul (c, b) furnizat de metoda ˆ      a at
                        a                                                    a a a
lelor tangente restrˆnge rapid, din ambele capete, intervalul pe care se afl˘ r˘d˘cina
de la (a0 , b0 ) la (a1 , b1 ).


3.2.4     Metoda parabolelor tangente
ˆ cadrul metodei Newton-Raphson procesul iterativ se bazeaz˘ pe aproxima-
In                                                               a
          a      a       ¸                                a
rea liniar˘ local˘ a functiei F (x). Imediat este sugerat˘ ideea construirii unei
                                                            a
metode mai rapid convergente prin folosirea unei aproxim˘ri locale mai exacte,
                                       a                a          ¸
de exemplu prin parabole. O parabol˘ ce aproximeaz˘ local functia F (x) s-ar
         ¸                            a ın
putea obtine din trunchierea dezvolt˘rii ˆ serie Taylor

               F (x) ∼ F (xk ) + (x − xk )F (xk ) + (x − xk )2 F (ξk )/2 .
                     =                                                              (3.44)

      ¸                                               a ıns˘          a
Aparitia derivatei de ordinul doi este dezavantajoas˘ ˆ a, datorit˘ pierderii de
precizie.
                         a                a           a           s          ¸
    Mai convenabil este s˘ se construiasc˘ o parabol˘ ce folose¸te informatii din
    a                ¸        a
dou˘ puncte ale functiei. Dac˘ acestea se aleg ca fiind capetele intervalului [a, b]
pe care ¸tim c˘ se afl˘ o r˘d˘cin˘ se obtine o metod˘ foarte rapid convergent˘1 .
        s     a      a a a a            ¸            a                          a
                  a                                                               a
Vom construi dou˘ parabole care trec prin (a, F (a)), (b, F (b)), una fiind tangent˘
la F (x) ˆ x = a, cealalt˘ fiind tangent˘ la F (x) ˆ x = b (fig. 3.3). Se consi-
          ın              a               a         ın
der˘ c˘ F (x) are derivate continui pˆn˘ la ordinul 3 inclusiv (F (x) ∈ C 3 [a, b]).
   a a                               a a
Parabolele se exprim˘ ca polinoamele de gradul doi pi (x), i ∈ {1, 2}, de forma
                     a

                               pi (x) = Ai x2 + Bi x + Ci .                         (3.45)

Coeficientii Ai , Bi ,Ci , i ∈ {1, 2}, sunt determinati din conditiile
        ¸                                           ¸           ¸

                 p1 (a) = F (a),        p1 (b) = F (b),   p1 (a) = F (a) .          (3.46)
                 p2 (a) = F (a),        p2 (b) = F (b),   p2 (b) = F (b) .          (3.47)
  1 Metoda                  a
             a fost elaborat˘ de prof. M. Blumenfeld, 1977.
94                                            3. Rezolvarea ecuatiilor neliniare
                                                                ¸


         a                                     ¸a        ¸
    Notˆnd cu δi abaterea polinomului pi (x) fat˘ de functia F (x), δi (x) = F (x)−
             ¸       ¸
pi (x), se obtin relatiile
              δ1 (x) = (x − a)2 δ1 (ξ1 )/2,    δ2 (x) = (x − b)2 δ2 (ξ2 )/2,        (3.48)
cu ξ1 ∈ (a, x), ξ2 ∈ (x, b). Dac˘ derivata δi (x) = F (x) este diferit˘ de zero pe
                                 a                                     a
              a a                                            s               ın
(a, b), rezult˘ c˘ derivatele δi (x) sunt monotone pe (a, b) ¸i se pot anula ˆ cel
                   a          a
mult un punct. S˘ consider˘m, spre exemplu, abaterea δ1 (x). Deoarece δ1 (b) =
          a a                      a
0, rezult˘ c˘ δ1 (ξ1b ) = 0, adic˘ δ1 = 0 pentru valoarea ξ1b care corespunde
lui x = b. ˆ mod similar se obtine o singur˘ valoare ξ2a care anuleaza pe δ2 .
            In                     ¸           a
                                           at
Tinˆnd cont de (3.48), se deduc inegalit˘¸ile
 ¸ a
                        F (x)δ1 (x) < 0,       F (x)δ2 (x) > 0,                     (3.49)
pentru F (x) = 0 de unde rezult˘ c˘ pentru x ∈ (a, b)
                               a a
                                     δ1 (x)δ2 (x) < 0 .                             (3.50)
ˆ consecint˘, dac˘ derivata F (x) nu se anuleaz˘ pe (a, b), F (x) se g˘se¸te
In          ¸a     a                                  a                   a s
ıntre cele dou˘ parabole tangente definite de (3.46,3.47).
ˆ              a
        ¸        ¸                        a s ın
    Solutia ecuatiei p1 (x) = 0, care se g˘se¸te ˆ intervalul (a, b) este

     x0 = a + 2l(b − a)/        k 2 + 4l(k + 1) − k ,     k 2 + 4l(k + 1) ≥ 0,      (3.51)

         k ≡ (b − a)F (a)/[F (a) − F (b)],      l = F (a)/[F (a) − F (b)] .         (3.52)
                                       a         a       a        a      a
La aplicarea algoritmului, se utilizeaz˘ o singur˘ formul˘, schimbˆnd cap˘tul
          ¸a             ¸        s                      a a a
de tangent˘, pentru a obtine un ¸ir care converge spre r˘d˘cin˘ cu valori din
           ¸ ın a       ın                a
ambele parti (ˆ m˘sura ˆ care F (x) p˘streaza un semn constant).
                  a     a     a a a                      ¸
     Exemplul 1. S˘ se g˘seasc˘ r˘d˘cinile reale ale ecuatiei
                                F (x) ≡ x − ln |x| − 1.2 = 0                        (3.53)
        ın
situate ˆ intervalul (−1, 2).
                               ¸ a       a              s                          ın
    Rezolvare. Pentru etapa initial˘ de c˘utare folosim ¸irul lui Rolle sintetizat ˆ
    a
urm˘torul tabel
                 x       −1              0                 1            2
               F (x)     -2.2         +∞ | +∞             -0.2        0.107
               F (x)      2      +    +∞ | −∞        -     0     +     0.5
               F (x)      +      +    +∞ | +∞              +            +

                     ¸          a a       a       ın
     Se deduce prezenta a trei r˘d˘cini, cˆte una ˆ fiecare din intervalele (−1, 0), (0, 1),
                       a                                        a                 a
(1, 2). E preferabil s˘ se evite singularitatea din x = 0, luˆnd primele dou˘ inter-
vale ca (−1, −ε), (ε, 1) cu ε apropriat de zero ¸i care p˘streaz˘ semnul functiei F .
                                                   s       a       a               ¸
                                 s
Cum F (−0.1) = 1.00259 > 0 ¸i F (−0.1) = 1.20259 > 0, vom considera intervalele
(−1, −0.1), (0.1, 1) ¸i (1, 2). Am ˆ
                     s                                   a           a a
                                     ıncheiat etapa de c˘utare a r˘d˘cinilor. Trecem
         a                                                             a        a
la restrˆngerea intervalelor sau localizarea acestora. Pentru aceast˘ etap˘ utiliz˘m   a
ınjum˘t˘¸irea intervalelor. Nu se recomand˘ efectuarea unui mare num˘r de iteratii.
ˆ      a at                                   a                             a           ¸
            ¸                                                ın               a
Patru iteratii ale metodei conduc la intervalele precizate ˆ tabelul urm˘tor pentru
         a a a
prima r˘d˘cin˘
3.2. Procedee iterative                                                                     95

     k        ak           ck            bk         f (ak )         f (ck )     f (bk )
     0    -1.000000    -0.550000     -0.100000    -2.200000      -1.152163    1.002585
     1    -0.550000    -0.325000     -0.100000    -1.152163      -0.401070    1.002585
     2    -0.325000    -0.212500     -0.100000    -0.401070       0.136313    1.002585
     3    -0.325000    -0.268750     -0.212500    -0.401070      -0.154776    0.136313
     4    -0.268750    -0.240625     -0.212500    -0.154776      -0.016109    0.136313

                    a a            a                               s
     Un calcul asem˘n˘tor furnizeaz˘ intervalele (0.4375, 0.49375) ¸i (1.75, 1.78125) pen-
                  a a a                   ¸                               a
tru celelalte dou˘ r˘d˘cini. Valorile functiei la mijloacele acestor dou˘ intervale sunt
f (0.465625) = 0.0299 ¸i f (1.765625) = −0.00288, suficient de mici. S-a ˆ
                       s                                                    ıncheiat etapa
                 a a
de localizare a r˘d˘cinilor.
                       a a                                                 ¸
     Pentru rafinarea r˘d˘cinilor vom compara mai multe metode. Iteratia simpl˘ con- a
             ¸
duce la relatia

                              xk+1 = f (xk ) = ln |xk | + 1.2                            (3.54)

cu m = |f (x)| = 1/ |x| < 1 doar pentru intervalul (1.75, 1.78125). Pentru celelalte
dou˘ intervale se poate folosi modificarea iteratiei simple (3.19) pentru care β trebuie
    a                                          ¸
 a         a            ın           ¸a
s˘ satisfac˘ (3.22), ce ˆ cazul de fat˘ devine

                                   |1 − β(1 − 1/x)| < 1 .                                (3.55)

Alegem β = 0.1 pentru intervalul (−0.26875, −0.2125) ¸i β = 0.5 pentru intervalul
                                                            s
(0.4375, 0.49375). Aceste alegeri nu sunt unicele posibile. Vom compara aceste trei
                  ¸                                            s
variante ale iteratiei simple cu metoda Newton-Raphson ¸i a secantei. Ne propu-
                    a a           s                               s       ınc˘
nem determinarea r˘d˘cinilor cu ¸ase cifre semnificative exacte ¸i astfel ˆ at valoarea
functiei s˘ fie mai mic˘ de 10−7 . Primele cˆteva iteratii sunt redate ˆ tabelul urm˘tor.
    ¸     a            a                   a          ¸               ın           a


      k    β = 0.1            a
                        secant˘        Newton        β = 0.5            a
                                                                  secant˘     Newton
      0   -0.240625    -0.240625      -0.240625     0.465625     0.465625     0.465625
      1   -0.239014    -0.268750      -0.237501     0.480625     0.437500     0.491765
      2   -0.238236    -0.238841      -0.237517     0.487271     0.493294     0.493235
      3   -0.237862    -0.237449          –         0.490374     0.493245     0.493239
      4   -0.237682    -0.237517          –         0.491855     0.493239         –
      5   -0.237596        –              –         0.492568         –            –
      6   -0.237555        –              –         0.492913         –            –



                              β=1               a
                                          secant˘     Newton
                            1.765625     1.765625     1.765625
                            1.768505     1.772176     1.772266
                            1.770134     1.772250     1.772250
                            1.771055     1.772250         –
                            1.771869         –            –
                            1.772228         –            –
                            1.772248         –            –

          ¸                   ın                            ¸
    Iteratiile au fost oprite ˆ momentul atingerii conditiilor impuse. Metodele de
     ¸         a                    s             ¸ a a                              ¸
iteratie simpl˘ au necesitat 18, 18 ¸i 20 de iteratii pˆn˘ la atingerea acestor conditii.
96                                          3. Rezolvarea ecuatiilor neliniare
                                                              ¸


         a          ¸                a                     s        a ¸a          ¸
Se observ˘ convergenta mult mai rapid˘ a metodelor Newton ¸i secant˘ fat˘ de iteratia
      a                           ın                     ıns˘
simpl˘. Metoda Newton converge ˆ general mai repede, ˆ a metoda secantei reali-
    a      a                 a          ¸   a a
zeaz˘ num˘rul minim de evalu˘ri de functie pˆn˘ la atingerea preciziei impuse.
                  a              a a         ¸
    Exemplu 2. S˘ se determine r˘d˘cina ecuatiei
                                   F (x) = ex − cos x = 0

        a ın
cuprins˘ ˆ intervalul (-2,-1) cu 7 cifre semnificative exacte.
    Rezolvare. Vom compara de data aceasta metoda Newton-Raphson cu metoda
                                                    a
parabolelor tangente. Valoarea de start furnizat˘ de metoda parabolelor tangente
(3.51) este x0 = −0.17271412. Din acest punct de start se obtine r˘d˘cina evident˘
                                                              ¸   a a            a
                  a         s                                   a             ¸
din x = 0. Efectu˘m totu¸i calculul pentru a compara cele dou˘ metode. Iteratiile
succesive sunt
                       k    xk Newton       xk Parabole tangente
                       1    0.0419823             0.0376656
                       2    0.0016474            -0.0001885
                       3    0.0000027             0.0000000

             a          ¸              a        ¸
    Se observ˘ convergenta mai rapida c˘tre solutie a metodei parabolelor tangente pe
acest exemplu.


3.3                    a a
         Determinarea r˘d˘cinilor polinoamelor
                                                       a a                ¸
Metodele prezentate anterior permit determinarea r˘d˘cinilor unei functii F (x)
                a    ¸                     a            a
oarecare. Dac˘ functia F (x) are o form˘ particular˘ se pot elabora algoritmi
                ¸               a
mai performanti ce exploateaz˘ acest fapt. Spre exemplu, metodele anterioare
        a                 ¸ a          a a     s                   ¸
necesit˘ o aproximare initial˘ a unei r˘d˘cini ¸i nu pot garanta obtinerea tuturor
 a a              ¸             a                    ¸             a
r˘d˘cinilor functiei F (x). Dac˘ F (x) este o functie polinomial˘ cu coeficienti ¸
                                                                  a a        aa
reali se pot elabora metode care permit determinarea tuturor r˘d˘cinilor f˘r˘ a
                                       ¸     ¸
fi nevoie de furnizarea unor aproximatii initiale.

3.3.1     Metoda Lobacevschi-Graeffe
           a                                          ¸
Se consider˘ polinomul Pn (x) de gradul n, cu coeficienti reali
                             n                  n
                                        j
                 Pn (x) =         an−j x = a0         (x − xj ),   a0 = 0 ,    (3.56)
                            j=0                 j=1

  a     a a                                                                     ¸
avˆnd r˘d˘cinile xj , j = 1, 2, . . . , n, reale sau complex conjugate (coeficientii aj
                                                   ¸                     a
fiind numere reale). Reamintim prima relatie Vieta care furnizeaz˘ o leg˘tur˘    a a
               ¸                     s a a
dintre coeficientii unui polinom ¸i r˘d˘cinile acestuia
                            x1 + x2 + . . . + xn = −a1 /a0 .                   (3.57)
    a            a a        a                                   ın a
Dac˘ una din r˘d˘cini, s˘ zicem x1 , ar fi mult mai mare ˆ modul decˆt toate
celelalte, |x1 |  |xj |, j = 2, n, relatia (3.57) ar conduce la
                                       ¸
                                      x1 ∼ −a1 /a0 ,
                                         =                                     (3.58)
                   a a
3.3. Determinarea r˘d˘cinilor polinoamelor                                                                97


iar r˘d˘cina x1 se zice preponderent˘. ˆ general, nu vom putea presupune
     a a                              a In
 a                               a a a                 a      a ıns˘
c˘ un polinom oarecare are o r˘d˘cin˘ preponderent˘. Dac˘ ˆ a una dintre
r˘d˘cini este mai mare ˆ modul decˆt toate celelalte |x1 | > |xj |, j = 2, n, prin
 a a                     ın          a
ridicarea la o putere mare m ea va deveni preponderent˘ |xm |
                                                           a 1         xm , j =
                                                                         j
                                               a         a
2, n. Procedeul Lobacevschi-Graeffe furnizeaz˘ o metod˘ de ridicare succesiv˘     a
    a        a a                              a a
la p˘trat a r˘d˘cinilor ce permite separarea r˘d˘cinilor preponderente.
    Se observ˘ imediat c˘, schimbˆnd x ˆ −x, se obtine
              a           a       a      ın          ¸
                                                              n
                            Pn (−x) = (−1)n a0                    (x + xj ) .                          (3.59)
                                                         j=1

 a a
F˘cˆnd apoi produsul
                                                                  n
                        (−1)n Pn (x)Pn (−x) = a2
                                               0                        (x2 − x2 ) ,
                                                                               j                       (3.60)
                                                                  j=1

se obtine un polinom de gradul n, ˆ variabila x2 . Repetˆnd procedeul pentru
     ¸                             ın                   a
polinomul ˆ variabila x2 se obtine un polinom de gradul n ˆ variabila x4 ¸i a¸a
           ın                  ¸                          ın             s s
mai departe. ˆIntr-o etapa s vom nota
                              z = xm ,          m = 2s ,           s ∈ N,                              (3.61)
              ın
iar polinomul ˆ variabila z se va scrie
                  n                     n
                                                        (s)
   Qn (z) = am
             0          (z − xm ) =
                              j               (−1)j An−j z j ,            m = 20 , 21 , . . . , 2s .   (3.62)
                  j=1                   j=0

                      ¸                   ¸                 a a
    Evident, coeficientii Aj (s) nu se obtin cu ajutorul r˘d˘cinilor xj deoarece
acestea sunt necunoscutele problemei, ci prin ˆ                   a
                                                 ınmultirea direct˘ a polinoamelor
                                (s+1)
       s              a
Pn (z) ¸i Pn (−z). Notˆnd cu Aj                                ¸ ın
                                      valorile acestor coeficienti ˆ etapa s + 1, se
  ¸         a           ¸              ¸a                             ¸
obtine urm˘toarea relatie de recurent˘ (prin identificarea coeficientilor):
                                    2          n
               (s+1)          (s)                             (s)         (s)
             Aj          = Aj           +2          (−1)k Aj−k Aj+k ,             j = 0, n ,           (3.63)
                                              k=0

unde s-a f˘cut conventia c˘ termenii de indice j + k > n sau de indice j − i < 0
          a            ¸    a
              ¸
sunt considerati nuli.
     a       a a         ın                                       a
   G˘sirea r˘d˘cinilor ˆ metoda Lobacevschi-Graeffe se bazeaz˘ pe interpre-
                                           (s)
tarea semnului ¸i valorilor coeficientilor Aj ˆ diverse etape s. Pentru a ar˘ta
                s                   ¸          ın                            a
                  a
cum se procedeaz˘, vom considera trei cazuri, discutate mai jos.

       a a              s
Cazul r˘d˘cinilor reale ¸i distincte.
 a               a          a a
S˘ presupunem c˘ toate r˘d˘cinile xj , j = 1, n, ale polinomului Pn (x) sunt
            a a                         a                ın                a
distincte. R˘d˘cinile vor fi ordonate dup˘ indici astfel, ˆ ordinea descresc˘toare
a modulelor,
                                |x1 | > |x2 | > . . . > |xn | .                                        (3.64)
98                                              3. Rezolvarea ecuatiilor neliniare
                                                                  ¸


     ¸                   a a     s          ¸
Relatiile Vieta, dintre r˘d˘cini ¸i coeficienti, pentru polinomul Qn (z) din (3.62)
sunt
                                                                   (s)         (s)
                          xm + xm + . . . + xm = A1 /A0
                           1    2            n                                                   (3.65)

                                                                               (s)   (s)
                  xm xm + xm xm + . . . + xm xm = A2 /A0
                   1 2     1 3             n−1 n                                                 (3.66)

                                                                                     (s)   (s)
            xm xm xm + xm xm xm + . . . + xm xm xm = A3 /A0
             1 2 3      1 2 4              n−2 n−1 n                                             (3.67)

                                                ···
                                                                         (s)
                            xm xm · . . . · xm = A(s) /A0
                             1 2             n    n                                              (3.68)
Tinˆnd cont de inegalit˘¸ile (3.64) rezult˘ c˘, la un anumit m, termenul xm va
    a                    at                a a                              1
deveni preponderent ˆ relatia (3.65); la fel se va ˆ ımpla cu termenul xm xm
                      ın     ¸                        ıntˆ                  1 2
ˆ relatia (3.66) ¸i a¸a mai departe. ˆ consecint˘, pentru m suficient de mare,
ın    ¸          s s                  In          ¸a
                                     a             at              a a
sistemul (3.65)-(3.68) se aproximeaz˘ prin cantit˘¸i care reprezint˘ p˘trate per-
fecte
                                 xm ∼ A /A
                                         (s)  (s)
                                    = 1              1     0               (3.69)

                                    xm xm ∼ A2 /A0
                                             (s) (s)
                                     1 2 =                                                       (3.70)

                                                ···

                            xm xm · . . . · xm ∼ A(s) /A0 ,
                                                        (s)
                             1 2             n = n                                               (3.71)
             ¸                     a a
de unde se obtin imediat modulele r˘d˘cinilor
                                                         1/m
                                     (s)       (s)
                      xj = ± Aj /Aj−1                          ,    j = 1, n .                   (3.72)

                                                  ın     ¸     ¸
Determinarea semnului se face prin introducerea ˆ ecuatia initiala Pn (x) = 0. O
        a                             s a                  ¸ ¸ ın
problem˘ care se pune este aceea de a ¸ti cˆnd termenii retinuti ˆ sistemul (3.69-
                 ıntr-adev˘r preponderenti, astfel ˆ at s˘ se produc˘ separarea
3.71) au devenit ˆ        a                ¸        ıncˆ a             a
 a a                                     a
r˘d˘cinilor. Pentru aceasta se calculeaz˘ rapoartele
                                           2
                      (s)        (s−1)               (s)
                     rj     = Aj               /Aj ,           j = 1, n − 1 ,                    (3.73)

ˆ fiecare etap˘ s. Cu m = 2s , avem m/2 = 2s−1 . Dac˘ separarea s-ar fi produs
ın            a                                    a
ˆ iteratia s − 1 atunci ar trebui ca
ın     ¸
                                m/2
                               x1      ∼ A(s−1) /A(s−1) .
                                       = 1        0

     a           ın     ¸      a
Cu atˆt mai mult ˆ iteratia urm˘toare
                                     xm ∼ A1 /A0
                                           (s) (s)
                                      1 =

Ca atare, raportul r1 ar trebui s˘ fie aproape de unu, rn−1 ∼ 1. Rationamentul
                    (s)                                (s)
                                 a                         =       ¸
        a               ¸         ¸          a               a
se repet˘ pentru ceilalti coeficienti astfel c˘ ajungem la urm˘torul criteriu de
                                    (s)
separare: dac˘ toate rapoartele rj , j = 1, n − 1 tind c˘tre unu atunci s-a
              a                                            a
                   a a
produs separarea r˘d˘cinilor polinomului ce au fost presupuse distincte.
                   a a
3.3. Determinarea r˘d˘cinilor polinoamelor                                        99


       a a                        ın
Cazul r˘d˘cinilor reale, multiple ˆ modul.
             s       ın                                     a a
Putem trata ¸i cazul ˆ care polinomul Pn (x) are mai multe r˘d˘cini reale, de
     s          a
acela¸i modul. S˘ presupunem

       |x1 | = |x2 | = . . . = |xM | > |xM +1 | > |xM +1 | > . . . > |xn | ,   (3.74)

    a                a a a ın
adic˘ cea mai mare r˘d˘cin˘ ˆ modul apare de M ori. Atunci partea prepon-
derent˘ a primei relatii Vieta (3.65) este
      a              ¸

                   xm + xm + . . . + xm = M xm ∼ A1 /A0 ,
                                                  (s) (s)
                    1    2            M      1 =                               (3.75)

              ¸
iar cea a relatiei Vieta M este

                        xm xm . . . xm = xmM ∼ AM /A0 .
                                                (s) (s)
                         1 2         M    1  =                                 (3.76)

S˘ deducem criteriul de separare. Dac˘ separarea s-ar fi produs ˆ iteratia s − 1
 a                                   a                         ın     ¸
atunci ar trebui ca

                             x1
                               m/2   ∼ A(s−1) /A(s−1) /M ,
                                     = 1        0

    ın     ¸      a
iar ˆ iteratia urm˘toare

                                  xm ∼ A1 /A0 /M .
                                        (s) (s)
                                   1 =


Ca atare, raportul r1 ar trebui s˘ fie aproape de M , r1 ∼ M . Deci, cˆnd
                     (s)                                 (s)
                                 a                           =             a
                    a          a ıntreg M , atunci s-a produs separarea unei
un raport rj tinde c˘tre un num˘r ˆ
 a a                 ın                 a a                   a             ¸
r˘d˘cini M -multiple ˆ modul. Calculul r˘d˘cinii se efectueaz˘ folosind relatia
Vieta M
                                                         1/mM
                                            (s)   (s)
                              x1 = ± AM /A0                                    (3.77)

               ¸               ¸            a     a
deoarece se obtine o aproximatie mai bun˘ datorit˘ exponentului mai mare.
          a a                         a a               ın
Se observ˘ c˘ pentru calculul unei r˘d˘cini M -multiple ˆ modul se folosesc
        ¸            ¸ ıntre indici egal˘ cu M .
coeficienti cu diferenta ˆ               a
       a a a              a ın                s            ın
   Dac˘ r˘d˘cina multipl˘ ˆ modul nu este ¸i cea mai mare ˆ modul,

                   |x1 | > . . . > |xk | = . . . = |xM | > . . . > |xn | ,     (3.78)

                                    a
atunci formulele de mai sus se aplic˘ cu o deplasare cu k a indicilor. Anume
          (s)
raportul rk va tinde c˘tre M la separarea r˘d˘cinii xm , iar calculul acesteia se
                      a                    a a       k
         a
efectueaz˘ conform formulei
                                                         1/mM
                                          (s)      (s)
                            xk = ± Ak+M /Ak                     .              (3.79)
100                                         3. Rezolvarea ecuatiilor neliniare
                                                              ¸


       a a
Cazul r˘d˘cinilor complexe.
 a                  a               a a
S˘ presupunem acum c˘ x1 , x2 sunt r˘d˘cini complex conjugate

                              |x1 | = |x2 | > . . . > |xn | .                  (3.80)

Vom scrie

                              x1 = ρeiθ ,     x2 = ρe−iθ                       (3.81)

cu ρ = |x1 | = |x2 | modulul r˘d˘cinilor ¸i θ argumentul acestora. Prima relatie
                              a a        s                                   ¸
Vieta (3.65) devine

                  2ρm cos mθ + xm + . . . + xm ∼ A1 /A0 .
                                                  (s) (s)
                                3            n =                               (3.82)

Termenul 2ρm cos mθ nu poate fi considerat preponderent datorit˘ factorului
                                                                   a
                            ¸
oscilant cos mθ. A doua relatie Vieta (3.66) are partea preponderent˘a

                                  ρ2m ∼ A2 /A0 .
                                         (s) (s)
                                      =                                        (3.83)

                     a                a          a a                     a ın
Modulul ρ se determin˘ analog determin˘rii unei r˘d˘cini reale, 2-multipl˘ ˆ
modul
                                                         1
                                        (s) (s)         2m .
                                ρ=     A2 /A0                                  (3.84)

         a a                                          a
   Mai r˘mˆne de determinat criteriul de separare. Dac˘ separarea s-ar fi
produs ˆ iteratia s − 1 atunci ar trebui ca
       ın     ¸

                              ρm/2 ∼ A2
                                      (s−1)   (s−1)
                                   =        /A0     ,

    ın     ¸      a
iar ˆ iteratia urm˘toare

                                   ρm ∼ A2 /A0 .
                                         (s) (s)
                                      =

Ca atare, raportul r2
                     (s)
                           ar trebui s˘ fie aproape de unu, r2
                                      a
                                                                (s)   ∼ 1. Pe de alt˘
                                                                      =             a
parte, raportul
                                                    2
                                 (s)        (s−1)         (s)
                               r1 = A1                  /A1                    (3.85)

este oscilant datorit˘ schimb˘rii semnului termenului 2ρm cos mθ. A¸adar, vom
                     a       a                                      s
        s          ¸ a a                                      ¸
recunoa¸te prezenta r˘d˘cinilor complex conjugate prin aparitia unor rapoarte
                                                 a a
oscilante. Separarea modulului unei perechi de r˘d˘cini complex conjugate se
                 a                                               a
produce atunci cˆnd raportul imediat vecin celui oscilant tinde c˘tre unu.
                   a a
3.3. Determinarea r˘d˘cinilor polinoamelor                                        101


                           a a
Regulile de determinare a r˘d˘cinilor.
        a                    ¸                                  a
Sintetizˆnd rezultatele discutiilor de mai sus vom stabili urm˘toarele concluzii.
                  a a
    1. Modulele r˘d˘cinilor, reale sau complexe, sunt date de rapoartele coefi-
           (s)
cientilor Aj , j = 1, n − 1 care reprezint˘ p˘trate perfecte, ˆ ordinea indicilor.
                                          a a                 ın
                (s)   (s)
Coeficientii A0 ¸i An sunt ˆ
        ¸       s                     a
                          ıntodeauna p˘trate perfecte.
                                (s)
                                            a                     s
   2. Verificarea c˘ un anumit Aj este un p˘trat perfect se stabile¸te prin
                  a
          (s)                                      (s)
raportul rj dintre valorile coeficientului Aj             ın
                                                         ˆ etape succesive, care tinde
 a
c˘tre unitate,
                                              2
                             (s)      (s−1)        (s)
                            rj     = A1           /A1 → 1                       (3.86)

 a      a                         a
cˆnd p˘tratul perfect se realizeaz˘.
                         (s)
    3. Dac˘ rapoartele rj care tind c˘tre unitate au indici consecutivi, atunci
           a                          a
      ¸   a a
se obtin r˘d˘cini simple.
               (s)     (s)
    4. Dac˘ Aj ¸i Aj+M sunt p˘trate perfecte consecutive, atunci modulul
            a      s                a
                                                                  (s)   (s)
unor r˘d˘cini are ordinul de multiplicitate M. Dac˘ ˆ
        a a                                            a ıntre rj ¸i rj+M exist˘ M
                                                                    s           a
                                                          a a
rapoarte oscilante, atunci vor apare M perechi de r˘d˘cini complex conjugate.
              (s)   (s)                                        (s)
     a ıntre rj ¸i rj+M nu exist˘ rapoarte oscilante, ci rj → M , atunci se va
Dac˘ ˆ            s                 a
             a a            a
produce o r˘d˘cina real˘ cu ordinul de multiplicitate M .
     5. Metoda prezentat˘ furnizeaz˘ doar modulele r˘d˘cinilor. ˆ cazul r˘d˘cinilor
                            a         a                 a a           In      a a
reale, semnul se stabile¸te prin ˆ
                          s       ınlocuirea ˆ ecuatia original˘, Pn (x) = 0. ˆ ca-
                                              ın     ¸            a            In
      a a                                 a                            a
zul r˘d˘cinilor complexe, modulul odat˘ determinat, se determin˘ partea real˘ ¸i  as
          a               ¸
imaginar˘ folosind relatiile ˆ       a a     s          ¸                ¸
                              ıntre r˘d˘cini ¸i coeficienti pentru ecuatia Pn (x) = 0.
                  a                                       ¸
Nu se recomand˘ determinarea argumentului din relatii de forma (3.82) deoarece
      a                 s       ¸              ¸           ¸
num˘rul m este mare ¸i se obtin multe solutii ale ecuatiilor de forma cos mθ = λ,
λ ∈ R, care trebuie verificate apoi ˆ ecuatia initial˘.
                                      ın       ¸    ¸ a
     6. Principalul avantaj al metodei Graeffe-Lobacevski este furnizarea tutu-
      a a              s                                               ¸
ror r˘d˘cinilor, reale ¸i complexe, ale unui polinom cu coeficienti reali. Printre
                        a                     as
dezavantaje se numar˘: posibilitatea dep˘¸irii superioare de registru, necesita-
            a       a                                      ¸              s
tea examin˘rii de c˘tre utilizator a tabloului coeficientilor precum ¸i necesitatea
        a                          ¸             ın               ¸ a a
rezolv˘rii unor sisteme de ecuatii neliniare ˆ cazul existentei r˘d˘cinilor com-
plexe.
                a                                       ¸     a a
     7. Datorit˘ lucrului cu numere mari, aproximatiile r˘d˘cinilor furnizate de
metoda Lobacevschi-Graeffe sunt destul de imprecise. Ca atare metoda va fi
        a                               a a               a
folosit˘ pentru localizarea tuturor r˘d˘cinilor. Dup˘ localizare, se va trece la
rafinarea acestora prin procedeele de factorizare a polinoamelor prezentate mai
jos.

3.3.2    Metode de factorizare a polinoamelor
          s           a    a                      a a a         a
Se cunoa¸te faptul c˘, dac˘ un polinom are ca r˘d˘cin˘ simpl˘ pe x = α, atunci
                                                         a a
el este divizibil cu x−α. Prin procedee de localizare a r˘d˘cinilor precum metoda
                                                   a at ın              a a a
Lobacevschi-Graeffe, sau teoreme asupra vecin˘t˘¸ii ˆ care se afl˘ r˘d˘cina
                           ¸                ¸     ¸ a      a a
unui polinom, se poate obtine o aproximatie initial˘ a r˘d˘cinii α0 . Procedeele
102                                         3. Rezolvarea ecuatiilor neliniare
                                                              ¸


uzuale de rafinare, precum metoda Newton-Raphson, pot fi apoi folosite pentru
cre¸terea preciziei aproximatiei initiale. ˆ aplicarea metodei Newton-Raphson
    s                        ¸      ¸      In
         s                                                                    a
se folose¸te schema lui Horner pentru a evalua valorile unui polinom cu un num˘r
                 ¸
minim de operatii aritmetice.

Schema lui Horner.
ˆ artind polinomul Pn (x) prin monomul x − α se obtine
Imp˘ ¸                                            ¸
                           n                        n−1
               Pn (x) =         an−j xj = (x − α)         bn−j−1 xj + bn ,   (3.87)
                          j=0                       j=0


                                ¸                  a
unde bj , j = 0, n sunt coeficienti care se determin˘ prin identificarea termenilor
  a          s
avˆnd aceea¸i putere a lui x,

                     b 0 = a0 ,    bk = ak + αbk−1 ,       k = 1, n .        (3.88)

                     a a                         ın                       ¸
Din (3.87) se observ˘ c˘ valoarea polinomului ˆ x = α este chiar bn . Relatia de
        ¸a              s
recurent˘ (3.88) define¸te schema lui Horner, ce permite determinarea valorii
Pn (α) cu doar n ˆınmultiri ¸i n − 1 adun˘ri.
                        ¸ s                a
                                           a s
    Schema lui Horner poate fi adaptat˘ ¸i pentru evaluarea derivatelor unui
                                              ın
polinom. Deoarece valoarea polinomului ˆ x = α este bn putem considera
Pn (α) = bn (α) ¸i deriva relatiile de recurent˘ dup˘ (3.88) α
                s             ¸               ¸a    a

                          dbk            dbk−1
                              = bk−1 + α       ,       k = 1, n .            (3.89)
                          dα              dα
       ¸         ¸             ¸a                     ¸
S-au obtinut relatii de recurent˘ pentru noii coeficienti
                                         dbk
                                ck−1 ≡       ,   k = 1, n ,                  (3.90)
                                         dα
                ¸               ¸a
ce satisfac relatiile de recurent˘

                   c0 = b0 ,      ck = bk + αck−1 ,    k = 1, n − 1.         (3.91)

                               ın
Valoarea derivatei polinomului ˆ x = α este Pn (α) = cn−1 .

              a a
Determinarea r˘d˘cinilor simple.
   a              ¸      ¸ a           a a                                  a
Dat˘ fiind aproximatia initial˘ a unei r˘d˘cini simple α0 , rafinarea iterativ˘ prin
procedeul Newton-Raphson se exprim˘ ca a

                          αm+1 = αm − bn (αm )/cn−1 (αm )                    (3.92)
                   a a
3.3. Determinarea r˘d˘cinilor polinoamelor                                        103


                    ¸                  ¸
cu bn , cn−1 calculati folosind recurentele (3.88, 3.91), respectiv. Algoritmul
complet este
      α ← α0 ; m ← 0; M ← 1; EvalPolinom(α, b, c);
         a
      repet˘
           dac˘ |c| < δ1 atunci Determin˘ multiplicitatea M
              a                         a
         αnou ← α − M b/c; EvalPolinom(α, b, c)                                (3.93)
        
         AtinsPrecizie ← |αnou − α| ≤ ε (1 + |αnou |) sau |b| < δ
           α ← αnou ; m ← m + 1
       a a a
      pˆn˘ cˆnd AtinsPrecizie sau m > mmax
                            a               a          a a a
unde ε este eroarea relativ˘ maxim admis˘ pentru r˘d˘cin˘, δ este valoarea
              a                                                          a a
maxim admis˘ pentru valoare polinomului, iar M este multiplicitatea r˘d˘cinii
 a          ¸                                                as
c˘utate. Initial se presupune M = 1. Valoarea δ1 este folosit˘ ¸i pentru a stabili
un prag pentru valoarea derivatei. Valori ale derivatei sub acest prag indic˘   a
                       a a
probabilitatea unor r˘d˘cini multiple. Procedura de evaluare a polinomului
este
                       EvalPolinom(α, b, c)
                         
                           b ← a0 ; c ← b
                          k = 1 : (n − 1)                                 (3.94)
                         
                          [b ← ak + αb, c ← b + αc
                           b ← an + αb
                        a                        a a
Metoda poate fi aplicat˘ direct pentru calculul r˘d˘cinilor complexe, deoarece
                     ¸           a ın
polinomul este o functie analitic˘ ˆ tot planul C.

              a a
Determinarea r˘d˘cinilor multiple.
    a          a a a           a                      ın          a
Dac˘ α este o r˘d˘cin˘ multipl˘, derivata polinomului ˆ α va fi nul˘, Pn (α) = 0.
                                 a                                ¸
Numerele bn , cn−1 vor tinde c˘tre zero simultan, iar convergenta procedeu-
                         ınr˘ at s
lui Newton-Raphson se ˆ aut˘¸e¸te. Se poate efectua o modificare simpl˘ a     a
procedeului ce ˆ      a at s             ¸
                ımbun˘t˘¸e¸te convergenta. Fie M ordinul de multiplicitate a
                                                                         1/m
 a a             a                                   ¸
r˘d˘cinii. Aplic˘m procedeul Newton-Raphson functiei f (x) = [Pn (x)]          ce
                             1/m−1
are derivata f (x) = [Pn (x)]               ¸
                                   /m. Iteratia Newton-Raphson se exprim˘ caa
                       αm+1 = αm − M bn (αm )/cn−1 (αm ) ,                      (3.95)
             a ın                                  a a
forma folosit˘ ˆ algoritmul de mai sus. Mai r˘mˆne de stabilit o modalitate
                              at           s     a   a a a
de determinare a multiplicit˘¸ii M . Se ¸tie c˘ dac˘ r˘d˘cina α are ordinul de
multiplicitate M , avem P (k) (α) = 0 pentru k = 1, 2, . . . , M − 1 ¸i P (M ) (α) = 0.
                                                                     s
                                 at          a a                               a
Ca atare, la detectarea posibilit˘¸ii unei r˘d˘cini multiple (prin faptul c˘ prima
       a               a
derivat˘ a devenit mic˘) vom evalua toate derivatele polinomului. Prima dintre
                                      a                                a a
derivatele polinomului ce este nenul˘ va furniza multiplicitatea r˘d˘cinii.
                                             s
   Pentru evaluarea derivatelor se folose¸te schema lui Horner complet˘. De-    a
                                               ın                         a
terminarea tuturor derivatelor unui polinom ˆ x = α este echivalent˘ cu dezvol-
      ın              ın
tarea ˆ serie Taylor ˆ jurul lui x = α
                                                                      (k)
 Pn (x) = C0 + C1 (x − α) + C2 (x − α)2 + . . . + Cn (x − α)n , Ck = Pn (α)/k! .
                                                                          (3.96)
104                                           3. Rezolvarea ecuatiilor neliniare
                                                                ¸


                                              a              a      ¸           ¸
Prin aplicarea schemei Horner (3.88) se observ˘ (vezi 3.87) c˘ se obtin coeficientii
polinomului Pn−1 (x) din factorizarea

                            Pn (x) = (x − α)Pn−1 (x) + C0 ,                    (3.97)

                          ¸
cu C0 = Pn (α). Coeficientii polinomului Pn−1 (x) sunt b0 , b1 , . . . , bn−1 din 3.87.
    a             a      a
Dac˘ se mai aplic˘ o dat˘ schema lui Horner asupra polinomului Pn−1 (x) vom
  ¸            ¸
obtine coeficientii lui Pn−2 (x) din factorizarea

                           Pn−1 (x) = (x − α)Pn−2 (x) + C1 ,                   (3.98)

s s                                                                  ¸          ¸
¸i a¸a mai departe. Aplicarea de n ori a schemei Horner va furniza toti coeficientii
                                                   (k)
Ck , k = 0, n − 1, deci implicit toate derivatele Pn (α) = k! Ck . Algoritmul este

                              k=0:n
                                [Ck = an−k
                              k = 0 : (n − 1)                                  (3.99)
                                  j = (n − 1) : k : −1
                                     [Cj ← Cj + α Cj+1

                                         at       a a                  ¸
Procedura de determinare a multiplicit˘¸ii unei r˘d˘cini, ce a fost mentionat˘a
ˆ algoritmul (3.93), va determina primul indice k pentru care |k! Ck | > δ, iar
ın
                                     a a
acesta va fi luat ca multiplicitatea r˘d˘cinii M .

              a a
Determinarea r˘d˘cinilor complex conjugate (Metoda Bairstow).
ˆ cazul cˆnd polinomul Pn (x) are coeficientii reali, r˘d˘cinile complexe (dac˘
In         a                                  ¸         a a                   a
exist˘) sunt conjugate, iar calculul cu numere complexe poate fi evitat. ˆ acest
     a                                                                    In
scop, se utilizeaz˘ o factorizare cu un polinom de gradul doi de forma x2 +px+q
                  a
                 n                               n−2
      Pn (x) =         an−j xj = (x2 + px + q)         bn−j−2 xj + Rx + S .   (3.100)
                 j=0                             j=0

                                       ¸
Identificarea termenilor conduce la relatiile

                       bk = ak − pbk−1 − qbk−2 ,       k = 0, n − 2 ,         (3.101)


                  R = an−1 − pbn−2 − qbn−3 ,           S = an − qbn−2 .       (3.102)

                                       a               ¸             ¸a
unde s-a convenit b−2 = b−1 = 0. Dac˘ extindem relatia de recurent˘ pentru
k = 0, n, vom obtine R = bn−1 , S = bn + pbn−1 . Pentru ca factorul x2 + px + q
                 ¸
 a      a                                    a
s˘ divid˘ pe Pn (x) exact trebuie ca restul s˘ fie nul R(p, q) = 0, S(p, q) = 0,
ceea ce este echivalent cu

                             bn (p, q) = 0,   bn−1 (p, q) = 0 .               (3.103)

   Relatiile (3.103) formeaz˘ un sistem de dou˘ ecuatii cu dou˘ necunoscute.
        ¸                    a                   a     ¸         a
    ¸                    s                                       a            a
Ecuatiile sunt nelineare ¸i pentru rezolvarea sistemului se aplic˘ tot o metod˘
                   a a
3.3. Determinarea r˘d˘cinilor polinoamelor                                                  105


de tip Newton-Raphson2 . Vom aplica principiul liniariz˘rii, p˘strˆnd numai
                                                              a       a a
                            a     ın                   ¸                             ın
termenii liniari din dezvolt˘rile ˆ serie Taylor a functiilor bn (p, q), bn−1 (p, q) ˆ
                     ¸
jurul unei aproximatii curente (pm , qm )

                                        ∂bn                        ∂bn
  bn (p, q) ∼ bn (pm , qm ) + (p − pm )
            =                                        + (q − qm )              = 0,       (3.104)
                                        ∂p       m                 ∂q     m


                                              ∂bn−1                       ∂bn−1
 bn−1 (p, q) ∼ bn−1 (pm , qm ) + (p − pm )
             =                                              + (q − qm )                  = 0.
                                               ∂p       m                  ∂q        m
                                                                                         (3.105)

     a               ¸                           a         ¸
Urm˘toarea aproximatie (pm+1 , qm+1 ), va fi dat˘ de solutia sistemului liniarizat
                     ¸                      ¸            ¸        ¸             ¸a
de mai sus. Pentru obtinerea derivatelor partiale diferentiem relatia de recurent˘
(3.101)
    ∂bk             ∂bk−1    ∂bk−2            ∂bk             ∂bk−1    ∂bk−2
        = −bk−1 − p       −q       ,              = −bk−2 − p       −q       .
    ∂p               ∂p       ∂p              ∂q               ∂q       ∂q
                                                                          (3.106)

Dac˘ not˘m ck ≡ ∂bk /∂p, dk ≡ ∂bk+1 /∂q, obtinem
   a    a                                  ¸

      ck = −bk−1 − pck−1 − qck−2 ,      dk = −bk−1 − pdk−1 − qdk−2                       (3.107)

                  s                                                  a
pentru k = 0, n ¸i cu c−1 = c−2 = d−1 = d−2 = 0. Cum cele dou˘ relatii de  ¸
        ¸a                   a
recurent˘ sunt identice vom p˘stra numai una dintre ele pentru calcule. Sistemul
liniarizat devine
                   (pm+1 − pm )cn + (qm+1 − qm )cn−1 = −bn
                                                             .                           (3.108)
                 (pm+1 − pm )cn−1 + (qm+1 − qm )cn−2 = −bn−1

                            s                     a s                 a
Matricea sistemului se nume¸te matrice Jacobian˘, ¸i este nesingular˘ pentru
 a a                          ¸                    ın            ¸
r˘d˘cini complexe simple. Solutia sistemului este, ˆ aceste conditii,

                   δp ≡ pm+1 − pm = (bn−1 cn−1 − bn cn−2 )/J ,                           (3.109)
                   δq ≡ qm+1 − qm = (bn cn−1 − bn−1 cn )/J ,                             (3.110)

cu J ≡ cn cn−2 − c2 .
                  n−1
   Procedeul poate fi repetat pentru polinomul
                                           n−2
                              Pn−2 (x) =         bn−j−2 xj                               (3.111)
                                           j=0

 a a                                      ın
pˆn˘ la factorizarea polinomului Pn (x) ˆ produse de polinoame de grad cel
               ¸                  ¸
mult doi. Se obtin perechi de solutii de forma

                            x1,2 = −p ±       p2 − 4q /2 .                               (3.112)
  2 Vezi   capitolul 8.
106                                            3. Rezolvarea ecuatiilor neliniare
                                                                 ¸


            ¸     ¸ a                         ¸
   Aproximatia initial˘ (p0 , q0 ) se poate obtine dintr-un procedeu de localizare.
                 a
Este recomandabil˘ folosirea coordonatelor polare

  x1 = ρeiθ , x2 = ρe−iθ ,          x1 x2 = ρ2 = q,   x1 + x2 = 2ρ cos θ = −p .       (3.113)

                                                              a a             ¸
Prin folosirea metodei Lobacevschi-Graeffe pentru localizarea r˘d˘cinilor se obtine
            ¸      ¸ a            a
o aproximatie initial˘ foarte bun˘ pentru ρ. Mai trebuie doar ˆıncercate diverse
                                            ¸                         ¸
valori pentru θ pentru a vedea ce valori initiale conduc la convergenta proce-
               a s
deului. Exist˘ ¸i alte rezultate teoretice ce pot fi folosite pentru localizarea
 a a                            a   a
r˘d˘cinilor. Spre exemplu, dac˘ not˘m
                                                                             −1
                       −1                                   −1
      R1 = 1 + |a0 |        max |ak | ,    R2 = 1 + |an |        max |ak |        ,   (3.114)
                            0<k≤n                                0≤k<n

              a a                                         ¸                 ın
atunci toate r˘d˘cinile nenule ale polinomului cu coeficientii ak se vor afla ˆ
coroana

                                          R2 < ρ ≤ R1 .                               (3.115)

   Algoritmul Bairstow este

 p ← p0 ; q ← q0 ; m ← 0;
    a
 repet˘
      c0 ← 0; c1 ← 0; b0 ← 0; b1 ← 0
    k=0:n
    
   
          b2 ← b1 ; b1 ← b0 ; c2 ← c1 ; c1 ← c0
    
          b0 ← ak − pb1 − qb2
   
          c0 ← −b1 − pc1 − qc2
    J ← c0 c2 − c2 ;
                    1
   
    dac˘ |J| < δ1 atunci mesaj(R˘d˘cini multiple); stop
         a                           a a
   
    δp ← (b1 c1 − b0 c2 )/J; δq ← (b0 c1 − b1 c0 )/J;
   
    pnou ← p + δp; qnou ← q + δq
   
    AtinsPrecizie ← |δp| + |δq| ≤ ε (1 + |pnou | + |qnou |) sau |b0 | + |b1 | < δ
      p ← pnou ; q ← qnou ; m ← m + 1
  a a a
 pˆn˘ cˆnd AtinsPrecizie sau m > mmax .
                                                                              (3.116)

               a               a a
   Exemplu 1. S˘ se determine r˘d˘cinile polinomului

                             p5 (x) = x5 − 4x4 + x3 + 3x2 − x + 6 .


                                                                                    ¸
     Rezolvare. Vom folosi metoda Lobacevschi-Graeffe pentru a determina aproximatiile
                                                                            ın   a
initiale ale r˘d˘cinilor. Rezultatele aplic˘rii relatiei (3.63) sunt redate ˆ urm˘torul
   ¸          a a                          a        ¸
tabel.
                   a a
3.3. Determinarea r˘d˘cinilor polinoamelor                                                      107

        (s)        (s)            (s)                    (s)                (s)          (s)
  s    A0        A1            A2                     A3                 A4            A5
  0    1.00   4.000E+00     1.000E+00             -3.000E+00         -1.000E+00    -6.000E+00
  1    1.00   1.400E+01     2.300E+01             -3.700E+01         -3.500E+01     3.600E+01
  2    1.00   1.500E+02     1.495E+03              3.987E+03          3.889E+03     1.296E+03
  3    1.00   1.951E+04     1.047E+06              4.657E+06          4.790E+06     1.680E+06
  4    1.00   3.785E+08     9.139E+11              1.172E+13          7.301E+12     2.821E+12
  5    1.00   1.433E+17     8.263E+23              1.241E+26         -1.285E+25     7.959E+24
  6    1.00   2.053E+34     6.828E+47              1.543E+52         -1.811E+51     6.334E+49

                     as                                         a        s    ın
    Calculul s-a desf˘¸urat cu mai multe cifre semnificative decˆt sunt afi¸ate ˆ
                                                    (6)       (6)
tabel. Dup˘ 6 iteratii valorile coeficientilor sunt A0 = 1, A1 = 2.05336782 ·
            a        ¸                  ¸
        (6)                       (6)                       (6)
1034 , A2 = 6.82754862 · 1047 , A3 = 1.54270278 · 1052 , A4 = −1.81053152 ·
        (6)
1051 , A5 = 6.33402866 · 1049 . Pentru stabilirea convergentei metodei se calcu-
                                                           ¸
    as
leaz˘ ¸i rapoartele din (3.73):
                                  (s)           (s)      (s)       (s)
                           s     r1           r2        r3         r4
                           0       –            –        –           –
                           1     1.14         0.04     -0.24      -0.03
                           2     1.31         0.35     0.34        0.31
                           3     1.15         2.14     3.41        3.16
                           4     1.01         1.20     1.85        3.14
                           5     1.00         1.01     1.11       -4.15
                           6     1.00         1.00     1.00       -0.09
                                                                                  (s)   (2)    (s)
              a ¸            a            a a
    Se observ˘ obtinerea izol˘rii a trei r˘d˘cine reale din rapoartele r1 , r2 , r3 ce
                               (s)
            a                             a      a           ¸                  a a
tind toate c˘tre 1. Raportul r4 oscileaz˘ denotˆnd prezenta unei perechi de r˘d˘cini
                                             a     a                        a a
complexe, conjugate. Procedeul furnizeaz˘ dou˘ valori posibile pentru r˘d˘cina de
modul maxim
                                                       1/64
                                        (6)      (6)
                          x1 = ± A1 /A0                       = ±3.4366.                      (3.117)

Cum p5 (3.4366) = −0.00269734 ¸i p5 (3.4366) = −1032.99 alegem x1 = 3.4366. Analog
                              s
  ¸
obtinem
                                        1/64
                           (6)    (6)
                x2 = ± A2 /A1                    = ±1.62659 ⇒ x2 = 1.62659                    (3.118)

                                        1/64
                          (6)    (6)
               x3 = ± A3 /A2                    = ±1.16958 ⇒ x3 = −1.16958                    (3.119)

                     a a
Modulul perechii de r˘d˘cini complexe este
                                                 1/(2·64)
                                 (6)      (6)
                         ρ = A5 /A3                           = 0.9579761                     (3.120)


                ¸                        a a
   Rafinarea solutiilor reale conduce la r˘d˘cinile

                     x1 = 3.43663, x2 = 1.62659, x3 = −1.16958                                (3.121)

   a          a       ¸                             a                       a
dup˘ o singur˘ iteratie Newton-Raphson. Se observ˘ calitatea extrem de bun˘ a a-
       ¸         ¸                                                        a a
proximatiilor initiale furnizate de procedeul Lobacevschi-Graeffe. Pentru r˘d˘cinile
108                                         3. Rezolvarea ecuatiilor neliniare
                                                              ¸


                                          a ¸ s a           a       ¸     a    a
complexe am putea extrage factorii deja g˘siti ¸i s˘ rezolv˘m ecuatia p˘tratic˘ ce
      a                ıns˘
rezult˘. Vom proceda ˆ a la aplicarea procedeului Bairstow pentru exemplificarea
modului de lucru. Lu˘m q = ρ2 ¸i p = 0 ca aproximatie initial˘ ceea ce corespunde la
                    a          s                   ¸     ¸ a
              ¸       a
θ = π/2. Se obtin urm˘toarele rezultate
           ¸
      Iteratie       p         q          b0            b1           R          S
         0        0.0000    0.9180    -1.25E-01    -1.08E+00      -1.0753   -0.1249
         1       -0.1052    0.9028     1.43E-01     -3.60E-02     -0.0360    0.1468
         2       -0.1064    0.9407    -7.04E-04     3.54E-04      0.0004    -0.0007
         3       -0.1064    0.9178    -4.73E-09     1.76E-08      0.0000    0.0000
      a                             ¸
   Rad˘cinile complexe satisfac ecuatia
                                     x2 + px + q = 0                              (3.122)
cu p = −0.1063682185, q = 0.91771811581 de unde r˘d˘cinile
                                                 a a
                             x4,5 = 0.0531841 ± 0.956499i .                       (3.123)
          a           ¸a      a        ¸                          ıns˘
Se observ˘ o convergent˘ rapid˘ a iteratiilor. Plecarea din θ = 0 ˆ a nu converge
 a        ¸
c˘tre solutie.
                 a              a a
    Exemplu 2. S˘ se determine r˘d˘cinile polinomului
                           p4 (x) = x4 − 6x3 + 18x2 − 30x + 25


                                                                          a
    Rezolvare. Cum nici unul din rapoartele r1 , r2 , r3 nu se stabilizeaz˘ deducem
      ¸        a            a a                        s
prezenta a dou˘ perechi de r˘d˘cini complexe, de acela¸i modul
                                                           √
                    ρ1 = ρ2 = ρ3 = ρ4 = (A4 /A0 )1/(464) = 5 .
     a a                                                 a
Fie r˘d˘cinile x1,2 = a1 + ib1 , x3,4 = a2 + ib2 . Rezult˘
                                 a2 + b 2 = a2 + b 2 = 5 .
                                  1     1    2     2

      a              a     ¸                                        ¸
Utilizˆnd primele dou˘ relatii Vieta pentru polinomul original se obtine
                                 a1 + a2 = 3, a1 a2 = 2
                                                     a a
de unde a1 = 1, b1 = 2, a2 = 2, b2 = 1. Prin urmare r˘d˘cinile sunt
                               x1,2 = 1 + 2i, x3,4 = 2 + i .


                                            ¸                               a
    Exemplu 3. Un ultim exemplu cu implicatii profunde pentru matematic˘ provine
    ıntrebarea relativ simpl˘: din ce puncte ale planului complex converge metoda
din ˆ                        a
                         a a                          at
Newton pentru aflarea r˘d˘cinilor de ordinul p ale unit˘¸ii? Procesul iterativ este
                                       p         p−1
                         zk+1 = zk − (zk − 1)/(pzk ),        p > 1.               (3.124)
                a                       a                                      a
Pentru aflarea r˘spunsului se efectueaz˘ o serie de experimente numerice, luˆnd diverse
puncte din [−2, 2] × [−2, 2] ca puncte de start. Se ˆ              a      a            ¸
                                                       ınregistreaz˘ num˘rul de iteratii
                         a a                 a
necesare atingerii unei r˘d˘cini sau faptul c˘ procesul diverge. Frontiera dintre dome-
                                                 s
niul “atractiv”, pentru care procesul converge ¸i cel “repulsiv”, pentru care procesul
                                   a         a                                a
diverge este extrem de complicat˘. Cercet˘ri matematice moderne au ar˘tat c˘ este  a
                a          a            a             at
vorba de o nou˘ structur˘ matematic˘ cu propriet˘¸i remarcabile, printre care ¸i o   s
dimensiune a frontierei ce nu este un num˘r ˆ                             ¸
                                             a ıntreg. O asemenea multime Julia este
           a            a                      ¸
reprezentat˘ pe copert˘ pentru p = 6. Nuantele de culori ˆ                  a          ¸
                                                              ınchise indic˘ convergenta
     a a        a a a        a                      a
rapid˘ c˘tre o r˘d˘cin˘ pe cˆnd cele deschise indic˘ divergenta.¸
                                                                              109




Capitolul 4

Erorile de calcul numeric




   ˆ momentul de fat˘, suntem ˆ posesia unui bagaj de metode numerice
   In                    ¸a          ın
                                  ın
suficient pentru a considera mai ˆ detaliu problema erorilor de calcul numeric.
                     a          a                             a
Se poate observa c˘ o formul˘ de calcul numeric se aplic˘ de obicei ˆ mod  ın
repetat. ˆ consecint˘, prezint˘ important˘ nu numai eroarea introdus˘ ˆ
          In          ¸a        a           ¸a                             a ıntr-o
     a    s        ¸                              a
etap˘, ci ¸i tendinta de a amplifica sau, dimpotriv˘, de a atenua erorile introduse
               a                                                            a a
anterior, adic˘ stabilitatea metodei numerice. Studiul erorilor numerice r˘mˆne
                a        a                 a ın
deci o problem˘ deschis˘, care trebuie luat˘ ˆ considerare pentru fiecare metod˘   a
           ın
de calcul ˆ parte.


4.1     Surse de erori
                                                s                   a
Erorile inerente sunt erorile legate de cunoa¸terea aproximativ˘ a unor valori
                a a                        a
provenite din m˘sur˘tori sau din faptul c˘ avem√                           ¸
                                                    de-a face cu numere irationale
                                                        s
(algebrice sau transcendente: numerele π, e, 3 ¸.a.). Evident, rezultatul
    a                     s                                     ¸
oric˘ror calcule depinde ¸i de precizia datelor introduse initial. Ca erori ine-
                        s                         a                ın
rente pot fi considerate ¸i erorile de conversie f˘cute la trecerea ˆ baza 2 a unor
                            ın
numere care se introduc ˆ memoria calculatoarelor numerice actuale. Spre
110                                                4. Erorile de calcul numeric


                 a                                 a                    ın
exemplu, num˘rul 0.1 reprezentat printr-un num˘r finit de zecimale ˆ baza 10,
               ¸           a         a ın
devine o fractie zecimal˘ periodic˘ ˆ baza 2 (0.110 = 0.0(0011)2 ).
                        a                                                      ¸
    Erorile de metod˘ sau erorile de trunchiere sunt provenite din aproximatiile
 a
f˘cute la deducerea formulelor de calcul. Exemple: restul RN (x) la interpolarea
polinomial˘, distanta |xn+1 − α| la r˘d˘cin˘, din metodele iterative de calcul,
           a           ¸                 a a a
eroarea δi = −h3 /12 f (ξ) introdus˘ de formula de integrare a trapezelor pe un
                                       a
interval egal cu pasul h, erorile introduse prin trunchierea seriilor la un anumit
                                                                a
rang, etc. Spre deosebire de erorile inerente, erorile de metod˘ pot fi reduse, ˆ   ın
                 a
principiu, oricˆt de mult.
                                                  at
    Erorile de rotunjire sunt legate de posibilit˘¸ile limitate de reprezentare a
numerelor ˆ calculatoarele numerice. ˆ general, orice calculator poate repre-
            ın                             In
                             a                                    a
zenta numerele cu un num˘r redus de cifre semnificative, depinzˆnd de lungimea
cuvˆntului (num˘rul de biti) utilizat la stocarea unui num˘r. ˆ mod curent se
    a               a        ¸                               a In
       a                                                  ın        a         s
lucreaz˘ cu un echivalent de circa 7 cifre semnificative ˆ simpl˘ precizie ¸i de
                               ın     a
circa 15 cifre semnificative ˆ dubl˘ precizie.
        a            s    ın                 a
    Dup˘ cum se ¸tie, ˆ memoria intern˘ a calculatoarelor actuale se folose¸te   s
                 ın       a       a ın                  a                   a
reprezentarea ˆ virgul˘ mobil˘, ˆ forma normalizat˘. Astfel, orice num˘r real
x se scrie

                               x = f · bn ,    |f | < 1                        (4.1)

                    a                        a
unde f este un num˘r real denumit mantis˘, b > 0 (b = 1) este baza sistemului
          ¸                   ıntreg) este exponentul. ˆ forma normalizat˘,
de numeratie utilizat, iar n (ˆ                        In                  a
mantisa este cuprins˘ ˆ intervalul [b−1 , 1)
                    a ın

                                  b−1 ≤ |f | < 1 .                             (4.2)

               ¸             a     a                            a
Singura exceptie de la acest˘ regul˘ de reprezentare este num˘rul zero.
    ˆ consecint˘, un num˘r real cu mai multe cifre semnificative este “rotunjit”
    In          ¸a         a
       a                                             a
la num˘rul de cifre maxim. Acest lucru se realizeaz˘ prin rotunjirea mantisei.
                           a ın               ¸
Alte rotunjiri se efectueaz˘ ˆ decursul operatiilor.
    ˆ general, notˆnd cu x valoarea exact˘ a num˘rului ¸i cu x valoarea calculat˘
    In             a                     a        a    s                        a
             a                  a               s             ¸
(aproximativ˘), eroarea absolut˘ ex se define¸te ca diferenta dintre valoarea
      as
exact˘ ¸i cea aproximativ˘ a

                                    ex = x − x .                               (4.3)

             x        s                 a       a
Raportul ex /¯ se nume¸te eroare relativ˘, notat˘ deseori cu εx

                                             x
                                    εx = ex /¯ .                               (4.4)

              a                                              a             a
    Fie t num˘rul de cifre semnificative. Pentru comoditate, s˘ presupunem c˘
     a ın                                    a     a
lucr˘m ˆ baza 10 (b = 10). Atunci, un num˘r x a c˘rui valoare o presupunem
   ¸            a
initial cunoscut˘ cu exactitate, se va scrie

                   x = f · 10n + g · 10n−t ,    |f | , |g| ∈ [0.1, 1),         (4.5)
                         ın
4.2. Propagarea erorilor ˆ calcule                                           111


           ¸                                 ın
unde g contine cifrele care nu pot fi incluse ˆ mantisa f . Rotunjirea se face de
                     a    ınlocuie¸te
obicei simetric, adic˘ se ˆ       s

                 |g| = 1 dac˘ |g| ≥ 0.5, |g| = 0 dac˘ |g| < 0.5 .
                            a                       a                        (4.6)

ˆ acest fel, marginea erorii relative este
In

                     |ex | = |g| · 10n−t / |f | · 10n ≤ 5 · 10−t .           (4.7)

Erorile cu marginea dat˘ de (4.7) se fac la introducerea numerelor reale ˆ
                         a                                                     ın
                                            a             ın    ¸           ¸
memoria calculatorului numeric. Ele afecteaz˘ rezultatele ˆ functie de operatiile
la care sunt supuse valorile introduse.


4.2                         ın
        Propagarea erorilor ˆ calcule
                       ınmultire.
Propagarea erorilor la ˆ    ¸
                 a           s
Vom considera dou˘ numere, x ¸i y, introduse cu erorile ex , respectiv ey

                                  ¯
                              x = x + ex ,       ¯
                                             y = y + ey .                    (4.8)

            a             a
Presupunem c˘ se efectueaz˘ produsul numerelor

                          x                   ¯¯ ¯         ¯
                   x y = (¯ + ex )(y + ey ) = x y + y ex + x ey ,            (4.9)

                                                 a                a
unde s-a neglijat produsul ex ey considerat ca avˆnd un ordin de m˘rime suficient
                a
de mic. Rezult˘ eroarea la ˆ       ¸
                            ınmultire

                               x¯        x       y
                          exy /¯ y = ex /¯ + ey /¯ = εx + εy .              (4.10)

           a a    ınmultire erorile relative introduse initial se adun˘. ˆ afar˘
    Rezult˘ c˘ la ˆ     ¸                                 ¸           a In     a
                       a     ıns˘
de aceste erori, pot ap˘rea ˆ a noi erori, deoarece produsul xy poate avea, la
 a       a          a                                       a
rˆndul s˘u, un num˘r de cifre semnificative mai mare decˆt cel admis (notat cu
           a         a                    a        a               a     a
t), necesitˆnd o nou˘ rotunjire (simetric˘). Notˆnd cu εp aceast˘ nou˘ eroare,
        ¸                  a      a
vom obtine eroarea relativ˘ total˘ εtp la ˆ      ¸          a
                                           ınmultirea a dou˘ numere

                                  εtp = εx + εy + εp                        (4.11)

iar ca margine a erorii

                      |εtp | ≤ |εx | + |εy | + |εp | < 15 · 10−t .          (4.12)

                                 a       ¸
Desigur, evaluarea (4.12), bazat˘ pe relatia (4.7), este acoperitoare deoarece
                  a                  a
erorile nu se adun˘, ci se compun dup˘ legi mai complicate (probabilistice).
112                                                    4. Erorile de calcul numeric


                       ımp˘ ¸
Propagarea erorilor la ˆ artire.
       ¸
Cu notatiile (4.8) vom scrie
  x/y = (¯ + ex )/(¯ + ey ) = x/¯(1 + ex /¯ − ey /¯) = x/¯(1 + εx − εy ),
         x         y          ¯ y         x       y    ¯ y                    (4.13)
                                                  ın      s
unde am neglijat termenii de grad superior lui 2 ˆ ex ¸i ey . S-a folosit dezvolta-
rea ˆ serie Taylor pentru 1/(1 + εy ) ∼ 1 − εy + . . . . Rezult˘ c˘ eroarea relativ˘
    ın                                =                        a a                 a
   ımp˘ ¸            a                          ın                  s
la ˆ artire, datorat˘ erorilor de reprezentare ˆ calculator (ex ¸i ey ), este
                               ex/y /(¯/¯) = εx − εy ,
                                      x y                                     (4.14)
    a          a           ¸                                 ¸ ın               aa
adic˘ este egal˘ cu diferenta erorilor relative introduse initial ˆ valorile num˘r˘-
        s                                    a
torului ¸i numitorului. La acestea se adaug˘ eroarea de rotunjire la reprezentarea
            ¯ y                                      ıncˆ                 a     a
raportului x/¯, pe care o vom nota cu εd , astfel ˆ at eroarea relativ˘ total˘ la
ımp˘ ¸            a
ˆ artirea a dou˘ numere x, y este
                                 εtd = εx − εy + εd .                         (4.15)

Propagarea erorilor la adunare.
ˆ acest caz, suma a dou˘ numere este
In                     a
                                      ¯ ¯
                              x + y = x + y + ex + ey ,                       (4.16)
       ıncˆ                a
astfel ˆ at eroarea relativ˘ la sumare este
             x ¯                   x ¯       ¯ x ¯          ¯ x ¯
      ex+y /(¯ + y ) = (ex + ey )/(¯ + y ) = x/(¯ + y )εx + y /(¯ + y )εy ,   (4.17)
    a        a          a                                      ın
adic˘ o sum˘ ponderat˘ a erorilor introduse la reprezentarea ˆ calculator a
      at            ¸ ın                                            a
cantit˘¸ii sumate. Si ˆ acest caz se introduce o eroare suplimentar˘ la repre-
                 ¯ ¯      a                   a
zentarea sumei x + y , a c˘rei valoare relativ˘ o vom nota cu εs . Ca urmare,
               a
eroarea relativ˘ la sumare, εts , va fi
                             ¯ x ¯          ¯ x ¯
                       εts = x/(¯ + y )εx + y /(¯ + y )εy + εs .              (4.18)
   Ca aplicatie, s˘ scriem eroarea total˘ la calculul expresiei E = (x + y)z ∼
              ¸    a                    a                                    =
 x ¯z             a
(¯ + y )¯ . Rezult˘
                       ¯ x ¯          ¯ x ¯
                 εtE = x/(¯ + y )εx + y /(¯ + y )εy + εz + εs + εp ,          (4.19)
cu marginea
                      |εtE | ≤ 5 · 10−t [(|¯| + |¯|)/ |¯ + y | + 3]
                                           x     y     x ¯                    (4.20)
                           a ın                                  as
    Ca recomandare general˘, ˆ calculul numeric trebuie studiat˘ ¸i propaga-
rea erorilor. ˆ anumite cazuri, acumularea erorilor poate conduce la rezultate
              In
                                        a                a         a
complet eronate. Pentru a ilustra aceast˘ posibilitate, s˘ consider˘m calculul
integralei
                                            1
                                 In =           xn ex−1 dx .                  (4.21)
                                        0
                         ın
4.2. Propagarea erorilor ˆ calcule                                           113


                  Tabelul 4.1: Exemplu   de amplificare a erorilor
             n   In (4.22) In (4.24)       n    In (4.22)       In (4.24)
             0   0.632121 0.632121         9    0.091586        0.091612
             1   0.367879 0.367879         13   -0.377925       0.066948
             3   0.207277 0.207277         17       –           0.052778
             7   0.112383 0.112384         20       –           0.000000



                                  a                     ¸             ¸a
O modalitate de calcul o reprezint˘ utilizarea unei relatii de recurent˘

                        In = 1 − nIn−1 ,    n = 1, 2, . . . ,               (4.22)

plecˆnd de la valoarea I0 = 1 − e−1 . Rezultatele calculelor pentru diferitele
    a
valori ale lui ˆ sunt date ˆ tabelul 4.1 Se observ˘ c˘, pentru n = 13, se obtine
               ın          ın                        a a                    ¸
                   a                                           ¸          a
o valoare negativ˘ a integralei, ceea ce nu este posibil, functia integrat˘ fiind
        a                   a a               ¸
pozitiv˘ pe [0, 1]. Rezult˘ c˘ valorile obtinute sunt eronate, ˆ       a
                                                                  ıncepˆnd cu o
        a                           ¸                        a
anumit˘ valoare a lui n. Explicatia o constituie faptul c˘ valoarea integralei
                 a                                    a
I0 se calculeaz˘ cu o eroare e0 care este amplificat˘ prin aplicarea formulei de
                         a
recurent˘ (4.22) astfel c˘, la calculul lui I13 eroarea este
        ¸a

                         e13 ∼ 13! e0 = 6.227 · 109 e0 .
                             =                                              (4.23)

             ¸                  a ın                               a
Pentru a obtine o valoare corect˘ ˆ cazul indicilor n mari se aplic˘ formula
(4.22) sub forma

                   In−1 = (1 − In )/n,     n = N, N − 1, . . . ,            (4.24)

ın                           ın              a                       a
ˆ care erorile sunt reduse ˆ fiecare etap˘. Prin urmare, plecˆnd de la un
                                      a              s
N suficient de mare eroarea introdus˘ din necunoa¸tera valorii In va fi redus˘,  a
       ıncˆ a ¸                                  a     a
astfel ˆ at s˘ obtinem rezultate corecte. Observˆnd c˘ valoarea integralei scade
cu n, vom alege N = 20 ¸i vom aproxima I20 ∼ 0, calculˆnd integralele de indice
                          s                    =          a
mai mic din ce ˆ ce mai precis. Valorile obtinute sunt date ˆ acela¸i tabel 4.1
                 ın                          ¸                 ın      s
                                               a                             a a
(s-a utilizat un calculator HP-25 care lucreaz˘ cu zece zecimale). Se observ˘ c˘
                                          s
rezultatele sunt mai bune la indici mari ¸i identice la indici mici (n < 7).
114   4. Erorile de calcul numeric
                                                                               115




Capitolul 5

Rezolvarea sistemelor
liniare




                                             a          ¸
    Rezolvarea sistemelor cu un mare num˘r de ecuatii liniare reprezint˘ unula
                ın                                s
din domeniile ˆ care calculatoarele numerice ¸i-au dovedit din plin eficienta.    ¸
                  a                      ¸                           ıntˆ   a ın
Problema rezolv˘rii sistemelor de ecuatii liniare este foarte des ˆ alnit˘ ˆ si-
                   a         a    a           ¸                        ¸
mularea numeric˘. Enumer˘m cˆteva situatii: interpolare cu functii spline cu-
                                     ¸
bice, rezolvarea sistemelor de ecuatii neliniare cu ajutorul metodelor iterative
               a                  ¸                         ¸             ¸
care au la baz˘ liniarizarea ecuatiilor, discretizarea ecuatiilor diferentiale ordi-
nare cu conditii la limit˘, discretizarea ecuatiilor cu derivate partiale. ˆ mod
              ¸          a                      ¸                     ¸     In
          a                a
corespunz˘tor, a trebuit s˘ fie puse la punct procedee numerice adecvate, atˆt     a
                       a                      ¸     a s
pentru reducerea num˘rului mare de operatii, cˆt ¸i pentru reducerea erorilor
                                                          ¸
de calcul care cresc cu dimensiunile sistemului de ecuatii.
   ˆ cazul general, problema care trebuie rezolvat˘ poate fi scris˘ sub forma
    In                                                a               a
                             n
                                  ai,j xj = bi , i ∈ 1, m ,                   (5.1)
                            j=1
116                                         5. Rezolvarea sistemelor liniare


unde ai,j ∈ R sunt coeficienti, xj , j ∈ 1, n sunt necunoscutele sistemului, iar bi
                           ¸
                                              ¸
sunt termenii liberi. Vom distinge trei situatii.

                                                            ¸         ¸
 (a) Pentru m < n sistemul este subdeterminat, avem mai putine ecuatii decˆta
     necunoscute. ˆ general, vor trebui ale¸i n − m parametrii pentru a obtine
                  In                       s                              ¸
           ¸
     o solutie.

                       s
  (b) Pentru m = n ¸i det A = 0 sistemul este compatibil determinat. Sistemul
                 ¸        a                            ıntˆ
      are o solutie unic˘. Este cazul cel mai des ˆ alnit. Pentru m = n ¸i s
      det A = 0 sistemul poate fi compatibil nedeterminat, cu o infinitate de
          ¸                                             ¸
      solutii posibile, sau incompatibil, cu nici o solutie.
                                                         ın            a
  (c) Pentru m > n sistemul este supradeterminat, caz ˆ care se caut˘ o solutie ¸
            a                            ¸           ın              a
      care s˘ verifice “cel mai bine” ecuatiile (5.1) ˆ sensul minimiz˘rii reziduu-
                 n          n
      lui R = i=1 (bi − j=1 ai,j xj )2 .

                       a                               ın                      ¸
     Nu trebuie uitat c˘, la reprezentarea numerelor ˆ calculator nu putem retine
    a          a                                                   a     a
decˆt un num˘r finit de cifre, iar erorile de rotunjire se propag˘ dup˘ regulile
discutate ˆ capitolul 4. Se poate ajunge ˆ situatia ca din cauza acestor erori,
           ın                                ın      ¸
                 a       a                   a    a                    a ın
determinantul s˘ devin˘ egal cu zero sau s˘ aib˘ o valoare foarte mic˘ ˆ modul.
                             a              ın
Complexitatea implement˘rilor prezente ˆ bibliotecile matematice se datoreaz˘     a
ın                                                    ¸             as
ˆ mare parte tehnicilor de evitare a acestei situatii, dar totodat˘ ¸i eforturilor
                                       s
de minimizare a memoriei utilizate ¸i a timpului de calcul.
                                                 ¸                    a
     Metodele de rezolvare a sistemelor de ecuatii liniare sunt de dou˘ tipuri: (a)
                                                                ın          ¸
metode directe (sau metode de eliminare sau metode exacte), ˆ care solutia este
   ¸    a ın                  a          ¸
obtinut˘ ˆ urma unui num˘r de operatii dinainte cunoscut; (b) metode iterative,
               a                               ¸    ¸
care se bazeaz˘ pe folosirea unei aproximatii initiale ce se ˆ       a at s
                                                              ımbun˘t˘¸e¸te de la
       a
o etap˘ la alta.


5.1      Metode directe
5.1.1                  a
          Metoda elimin˘rii a lui Gauss
               a ın                    a
Metoda const˘ ˆ eliminarea succesiv˘ a necunoscutelor ˆ                  a
                                                           ıntr-o manier˘ care
                    a         ¸                      a
conduce la un num˘r de operatii mult mai redus decˆt procedeul care ar utiliza
                    s                    ¸             a
regula lui Cramer ¸i calculul determinantilor corespunz˘tori. Vom observa c˘, a
ın       ¸                                 a             s
ˆ operatia de eliminare, nu este necesar s˘ transcriem ¸i necunoscutele; este
           a     a                   ¸                     s
suficient s˘ oper˘m doar cu coeficientii matricei sistemului ¸i cu termenii liberi.
  a          a                     ¸
S˘ consider˘m un sistem de n ecuatii liniare cu n necunoscute scris sub forma

                                     Ax = b ,                                  (5.2)

unde A este o matrice p˘trat˘, nesingular˘ (det A = 0), de dimensiuni n × n,
                         a     a             a
      s                         a
iar x ¸i b sunt vectori coloan˘ de dimensiune n. Pentru fixarea ideilor, vom
considera c˘ A are coeficientii aij , iar b are componentele bi (i, j ∈ 1, n). Pe de
            a                ¸
   a                      ¸                          ¸       s
alt˘ parte, deoarece operatiile efectuate cu coeficientii aij ¸i cu termenii liberi bi
5.1. Metode directe                                                                          117


                                ın                   a                 a      a
sunt simultane, este avantajos ˆ prezentarea teoretic˘ a algoritmului s˘ renot˘m
coeficientii bi ≡ ai,n+1 ¸i s˘ consider˘m matricea extins˘ A
        ¸               s a           a                  a
                                                            
                          a1,1 a1,2 . . . a1,n | a1,n+1
                        a2,1 a2,2 . . . a2,n | a2,n+1 
                                                            
                        ...     ... ... ... |         ... 
                 A =                                        .            (5.3)
                        ai,1 ai,2 . . . ai,n | ai,n+1 
                                                             
                        ...     ... ... ... |         ... 
                          an,1 an,2 . . . an,n | an,n+1

               a                      a ın     ¸                   ıntˆ
Metoda elimin˘rii a lui Gauss const˘ ˆ a obtine zerouri succesiv, ˆ ai pe prima
       a                                                 a
coloan˘ (sub coeficientul a1,1 ), apoi pe a doua coloan˘ (sub coeficientul a2,2 )
s                                          a a a
¸.a.m.d., pe ultima linie a matricei A r˘mˆnˆnd doar coeficientul an,n (evident
                    ¸
modificat de operatiile de eliminare anterioare). Aceasta revine la a reduce
matricea A la o matrice superior triunghiular˘, iar sistemul (5.2) la forma
                                                 a
                                                       a         
      a1,1 a1,2 . . .     ...   ...      a1,n        x1        1,n+1
             (1)                           (1)                 (1)
    0
           a2,2 . . .    ...   ...      a2,n   x2   a2,n+1 
                                                                   
                 ..                             .  
                                                 .           .
                                                                 .
                                                                      
    0       0       .    ...   ...       ...   .            .    
                                         (i−1)  · 
   
                         (i−1)
                                                         =  (i−1)  . (5.4)
    0       0     0 ai,j       . . . ai,n       xi   ai,n+1 
                                                                     
                                                 .  
                                                                 .
   
                                 ..
                                                                      
                                                      .          .
                                                         
                                          ...   .  
                                              
                                    .
                                                                      
    0       0     0       0                                     .    
       0     0     0       0      0 an,n
                                         (n−1)       xn        (n−1)
                                                              an,n+1

                       a       ın               ¸                             ¸
Indicii superiori indic˘ etapa ˆ care a fost obtinut elementul. Pentru a obtine
                                      a                   ¸
zerourile de sub diagonala principal˘, se folosesc operatii simple de ˆ     ¸
                                                                       ınmultire a
                               s       a            a
unei linii cu un multiplicator ¸i de sc˘dere din alt˘ linie. Spre exemplu, pentru
    ¸                              a
a obtine zerouri pe prima coloan˘, din linia i se scade prima linie ˆ      ¸ a
                                                                     ınmultit˘ cu
                         ¸ a
multiplicatorul mi,1 , obtinˆndu-se
                      (1)
                    ai,1 = ai,1 − mi,1 a1,1 = 0 ⇒ mi,1 = ai,1 /a1,1 .                    (5.5)

                                             ¸                            ıntˆ ın
Repetˆnd procedeul pentru i = 2, n, se obtin elemente nule pe coloana ˆ ai ˆ
       a
        a      a     a
aceast˘ prim˘ etap˘. Evident, pentru a putea opera, trebuie ca a1,1 = 0. Mai
mult, dup˘ cum vom vedea la paragraful (5.1.3), se recomand˘ ca a1,1 s˘ fie ˆ
            a                                                  a           a   ın
          a                             ın
modul cˆt mai mare posibil, deoarece ˆ acest mod, erorile de rotunjire sunt re-
                                                     a      s             ¸
duse. Elementul ai,i plasat pe diagonala principal˘ se nume¸te pivot. Obtinerea
                       a                        a          a           s
unui pivot cu modul cˆt mai mare este posibil˘ prin schimb˘ri de linii ¸i coloane
                  a                               a
care nu afecteaz˘ zerourile deja produse, adic˘ pivotul se poate alege dintre
                    s                      ¸                            a
elementele de sub ¸i/sau la dreapta pozitiei de pe diagonala principal˘ a pivo-
tului. ˆ functie de num˘rul de elemente dintre care este selectat, pivotul poate
        In     ¸         a
fi partial, cˆnd se alege cel mai mare ˆ modul1 dintre elementele de pe coloana
      ¸      a                         ın
                                    a                a
pivotului, sub diagonala principal˘, sau total, cˆnd se alege cel mai mare ˆ   ın
                                   ¸       ın      s
modul dintre toate elementele continute ˆ linii ¸i coloane care, interschimbate,
nu modific˘ zerourile deja obtinute. ˆ cazul ˆ care pentru obtinerea unui pivot
            a                 ¸       In       ın             ¸
  1 Cu                                                 ın             s
         privire la alegerea elementului “cel mai mare ˆ modul”, vezi ¸i paragraful 5.1.3.
118                                                5. Rezolvarea sistemelor liniare


                          a                                                a a
convenabil este necesar˘ o schimbare de linii, aceasta poate fi f˘cut˘ efectiv ˆ           ın
                a
matricea extins˘ A , sau se poate memora doar indicele liniei pe care se afl˘ ele-     a
                                                        a ın
mentul dorit ca pivot, cu ajutorul unui vector l. Dac˘ ˆ etapa s elementul dorit
ca pivot se afl˘ pe linia i (evident i ≥ s, pentru a p˘stra zerourile deja obtinute),
              a                                      a                             ¸
                                                         a
atunci atribuim ls = i. Acest mod de lucru complic˘ algoritmul, f˘r˘ a aduce    aa
                                            ıncˆ               a
avantaje privind timpul de calcul, astfel ˆ at recomand˘m prima variant˘. La          a
                        a                                         a
interschimbarea a dou˘ coloane (j cu k), vo m observa c˘ trebuie interschim-
      s
bate ¸i necunoscutele (xj cu xk ). Acest lucru se poate realiza cu ajutorul unui
                         ¸                                                           a
vector c, care este initializat cu valorile c = (1, 2, . . . , k, . . . , n). Dac˘ spre
          ın             a        a
exemplu ˆ prima etap˘ schimb˘m coloanele 1 cu k, se schimb˘ corespunz˘tor  a            a
s
¸i elementele c1 cu ck , iar vectorul c devine c = (k, 2, . . . , 1, . . . , n).
    ˆ fiecare etap˘ s ∈ 1, n − 1, elementele din matrice se modific˘ dup˘ regula
    In            a                                                           a    a

                    s = 1 : (n − 1)
                      
                         i = (s + 1) : n
                                        (s−1) (s−1)
                            
                      
                              mi,s ← ai,s /as,s                                      (5.6)
                        j = (s + 1) : (n + 1)
                       
                                      (s)      (s−1)           (s−1)
                                     ai,j ← ai,j       − mi,s as,j     .

ˆ                                         (s−1)
           a ın
Intr-adev˘r, ˆ etapa (s) pivotul este as,s , iar elementele care se anuleaz˘ a
sunt plasate ˆ pozitia ai,s , i ∈ s + 1, n. Practic, aceste elemente nu se mai
              ın     ¸
          a             s     a                             ¸
calculeaz˘ deoarece se ¸tie c˘ ele sunt nule, iar pe pozitiile acestora se pot
memora multiplicatorii mi,s , eventual necesari pentru calcule ulterioare cum
ar fi rafinarea solutiei (paragraful 5.1.3). ˆ final, dac˘ matricea A nu este
                    ¸                         In          a
                                                                 (i−1)
singular˘, se ajunge la forma (5.4) a sistemului, coeficientii ai,j , i ∈ 1, n,
         a                                                    ¸
j ∈ 1, n + 1 fiind obtinuti prin operatii asupra matricei extinse A . Ca urmare,
                     ¸ ¸             ¸
                    ¸                            a
necunoscutele se obtin prin retrosubstituire, dup˘ schema
                             (n−1)     (n−1)
                   xcn ← an,n+1 /an,n
                   i = (n − 1) : 1
                     
                                               n                                      (5.7)
                      xci ← (a(i−1) −
                               i,n+1
                                                     (i−1)        (i−1)
                                                    ai,j xcj ) / ai,i      ,
                                            j=i+1


ın             t         s                          a                   ın
ˆ care am ¸inut cont ¸i de eventualele schimb˘ri de coloane necesare ˆ cazul
                 a          s           ın
folosirii pivot˘rii totale ¸i memorate ˆ vectorul c. Trebuie observat faptul c˘ a
                          ¸                   a
elementele matricei initiale A se pierd dac˘ se folosesc schemele (5.6) ¸i (5.7).
                                                                        s
ˆ cazul ˆ care matricea A este necesar˘ pentru calcule ulterioare (cum ar fi
In         ın                               a
                                           a      a
rafinarea inversei, vezi. 5.1.7), trebuie p˘strat˘ o copie a acesteia.
          a              ¸                      ¸           ¸
    Num˘rul de operatii necesare pentru obtinerea solutiei prin procedeul de
                     a             a s                        a ın
eliminare gaussian˘ se calculeaz˘ u¸or. Evident, nu lu˘m ˆ considerare ¸i       s
      ¸                                         ın          a                 ¸
operatiile legate de permutarea elementelor ˆ vederea g˘sirii pivotului partial
                                                          ın
sau total, deoarece acestea depind de fiecare matrice ˆ parte. De regul˘, se a
          a a ımp˘ ¸                a          a       ¸     ın
consider˘ c˘ ˆ artirea reprezint˘ o singur˘ “operatie”, ˆ timp ce o adunare
s    ınmultire formeaz˘ ˆ
¸i o ˆ       ¸                     a                 ¸                   s
                          a ımpreun˘ tot a “operatie” (aproximativ acela¸i timp
5.1. Metode directe                                                                 119


                                              a      ¸                 a
de calcul pe calculator). Amintindu-ne c˘ operatiile se efectueaz˘ cu elemen-
tele matricei extinse A , de dimensiuni n · (n + 1), vom avea de efectuat, dup˘     a
schema (5.6), ˆ  ıntr-o etap˘ s, n − s ˆ artiri pentru a obtine multiplicatorii mi,s .
                            a          ımp˘ ¸              ¸
     a               a s ınmultiri este egal cu produsul num˘rului de valori luate
Num˘rul de adun˘ri ¸i ˆ          ¸                             a
de indicii i, j, adic˘ (n − s)(n + 1 − s). Rezult˘ num˘rul de operatii la eliminarea
                      a                          a     a           ¸
Gauss
                          n−1
                                                          n3   n2   5n
                   nG =         [(n − s)2 + 2(n − s)] =      +    −    .           (5.8)
                          s=1
                                                          3    2     6

            a                ıncepˆnd cu n ≥ 3) fat˘ de n · n! operatii cerute de
Acest num˘r este foarte mic (ˆ     a               ¸a               ¸
regula lui Cramer (cu determinantii calculati dup˘ minori). La operatiile (5.8) se
                                 ¸         ¸     a                  ¸
adaug˘ ˆ a aproximativ 1 + (n − 1) + n(n − 1)/2 = n2 /2 + n/2 operatii pentru
      a ınc˘                                                           ¸
                               a       a                   ¸
retrosubstituirea (5.7). Rezult˘ num˘rul total de operatii pentru eliminarea
gaussian˘a

                                         n3       n  n3
                             nG =           + n2 − ≈    + n2 .                     (5.9)
                                         3        3  3
          ¸                a
aproximatia fiind valabil˘ pentru n       1.
                    s                          ¸ a                            a
    Relatiile (5.6) ¸i (5.7) se pot optimiza obtinˆnd 1 pe diagonala principal˘,
        ¸
    a                                           s
dup˘ algoritmul dat de (5.10), unde am inclus ¸i calculul determinantului matri-
                         a            ¸                                ımp˘ ¸
cei A, d = det A. Num˘rul de operatii se reduce (nesemnificativ) cu n ˆ artiri
la etapa de retrosubstituire.

 Algoritm Gauss                                      Algoritm Gauss-Jordan
 [Eliminare ]                                        [Eliminare ]
 d←1                                                 d←1
 s = 1 : (n − 1)                                       =
                                                     s 1 : n
                                                        j = (s + 1) : (n + 1)
     j = (s + 1) : (n + 1)                             [as,j ← as,j /as,s ]
   [as,j ← as,j /as,s ]                              
                                                      d ← d · as,s ; as,s ← 1
   d ← d · as,s ; as,s ← 1                           
                                                      i=1:n
   i = (s + 1) : n                                    
                                                             a
                                                            dac˘ i = s
       j = (s + 1) : n                               
  
             (s)      (s−1)        (s−1) (s−1)
                                                            j = (s + 1) : n
           ai,j ← ai,j          − ai,s  ai,j
                                                       
                                                                 (s)   (s−1)      (s−1) (s−1)
                                                               ai,j ← ai,j − ai,s      ai,j
 [Retrosubstituire ]                                 [Calculul necunoscutelor ]
        (n−1)
 xn ← an,n+1                                         i=1:n
                                                              (i−1)
 i = (n − 1) : 1                                      xi ← ai,n+1
 
                      n
 xi ← a(i−1) −
        i,n+1
                              (i−1)
                            ai,j      xj
                    j=i+1
                                                                                  (5.10)
120                                             5. Rezolvarea sistemelor liniare


                                   a
    Exemplu. Folosind metoda elimin˘rii                   a                            ¸
                                              gaussiene, s˘ se rezolve sistemul de ecuatii

                      x1 + 2 x2
                     
                                 9
                                               +    x3       =    2
                       8x1 + 2x2               −   3x3       =   −1 .                     (5.11)
                        x1 + 2x2               −   5x3       =    1
                     

Scriem matricea extins˘ ¸i efectu˘m elimin˘rile
                      as         a        a                                ¸
                                                      dup˘ regula (5.6). Obtinem succesiv
                                                         a
                                      2                       

    1  2
             1 |     2
                                1     9
                                             1         |     2       
                                                                        1 92
                                                                                 1 |      2
                                                                                            
       9                   s=1                                 s=2 
                                      2                                    2
 8 2 −3 | −1  →  0
                                      9
                                          −11          | −17  →        0 9 −11 | −17  .
     1 2 −5 |        1           0    16
                                           −6          |   −1           0 0     82 | 135
                                      9

      a
Rezult˘
       x3 = 135/82 1.6463, x2 = (9/2) 17 + 11 135 = 819/164 4.9939,
                                                 82                                       (5.12)
             x1 = 2 − 135/82 − (2/9)(819/164) = −31/41 −0.7561 .

                                 a
Valoarea din chenar reprezint˘ pivotul etapei respective. Modul de lucru nu este cel
mai adecvat pentru transpunerea pe calculator deoarece: (a) elimin˘rile s-au f˘cut
                                                                            a           a
f˘r˘ a utiliza nici o tehnic˘ de pivotare (partial˘ sau total˘); (b) calculele s-au efectuat
 a a                        a                  ¸ a           a
      a        ¸                           a
utilizˆnd fractii ordinare, ceea ce implic˘ programe speciale.
                     ¸              s t a             a
     Pentru evidentierea erorilor ¸i ¸inˆnd cont c˘ sistemul este foarte mic, relu˘m      a
calculele folosind pivotarea partial˘ ¸i lucrˆnd doar cu trei cifre semnificative2 . Se
                                   ¸ a s        a
   ¸
obtine
                                                                           
             1 0.222      1    |   2              8      2     −3 | −1
                                        l1 ↔l2                                  s=1
          8       2     −3 | −1  →  1 0.222                  1     |   2  →
             1     2     −5 |      1              1      2     −5 |       1



                                                                         −3     |    −1
                                                                                      
      8        2        −3       |    −1             8          2
 s=1                                        l2 ↔l3                                         s=2
  →  0      −0.028     1.38     |   2.13  →  0             1.75      −4.63   |   1.13  →
      0       1.75     −4.63     |   1.13            0       −0.028     −1.38   |   2.13

                                                                 
                               8         2     −3        |   −1
                           s=2
                           →  0       1.75   −4.63      |   1.13  .
                               0         0     1.31      |   2.15

      a
Rezult˘

                  x3 = 0.164 · 101 , x2 = 0.498 · 101 , x1 = −0.755 · 100 .
                  ¯                  ¯                  ¯                                 (5.13)

                                                            ¸          a¯
 Valorile necunoscutelor fiind aproximative, s-a folosit notatia cu bar˘ x. Scrierea este
          a      a            a ın                    s                   s
cu virgul˘ mobil˘ normalizat˘ ˆ sistem zecimal. De¸i sistemul este mic ¸i relativ bine
                                        a            ¸                         s
conditionat (vezi paragraful 5.1.8, num˘rul de conditionare calculat cu (5.64) ¸i norma
      ¸
          a                                                         ın              a
euclidian˘ este µ(A) = 24, iar calculat cu (5.85) este µ(A) = 21.6, ˆ timp ce num˘rul
  2 Calculele                                  ıns˘   s
                intermediare au fost efectuate ˆ a cu ¸apte cifre semnificative.
5.1. Metode directe                                                                    121


de conditionare al matricei Hilbert3 3 × 3 calculat cu (5.85) este 524), utilizarea a
         ¸
                                                     ¸                   a            a
numai trei cifre semnificative a condus la erori resimtite la a treia cifr˘ semnificativ˘.
                              ¸
    Pentru a observa influenta alegerii pivotului asupra preciziei rezultatelor, refacem
                      a a
calculele de mai sus f˘r˘ a mai schimba liniile 2 cu 3 pentru a aduce valoarea 1.75 pe
    ¸              ın                   ¸
pozitia pivotului ˆ etapa a doua. Se obtine
         8       2        −3    | −1
                                                                              
                                                   8      2       −3 | −1
                                           s=2
       0 −0.028         1.38   | 2.13  →  0 −0.028 1.38 | 2.13  ,
         0     1.75     −4.63 | 1.13               0      0      81.6 | 1.13
       ¸
cu solutiile
                       x3 = 0.164 · 101 , x2 = 0.476 · 101 , x1 = −0.7 · 100 .
                       ¯                  ¯                  ¯                        (5.14)
         a      ¸
Se observ˘ aparitia unor erori mult mai mari, comparativ cu valorile (5.12). Normele
maxime ale erorilor sunt
                           x−x
                             ¯      ∞   = 0.139 · 10−1 , x − x
                                                             ¯   ∞   = 0.234 .        (5.15)



5.1.2      Metoda Gauss-Jordan
             a                      a                  a                   a
Este similar˘ cu metoda precedent˘, cu deosebirea c˘ produce zerouri atˆt de-
           a s                                        a                      ¸ a
desubtul cˆt ¸i deasupra diagonalei principale, reducˆnd astfel matricea initial˘
la o matrice diagonal˘. ˆ acest fel, num˘rul de operatii este cu circa 50% mai
                      a In                a              ¸
                      a                              s
mare (nu este de dou˘ ori mai mare cum ne-am fi a¸teptat, unele reduceri apar
                                                    ¸
la determinarea necunoscutelor care nu se mai obtin prin retrosubstituire, ci
                       a ımp˘ ¸                          a
direct, printr-o singur˘ ˆ artire). Ca urmare a num˘rului sporit de operatii, ¸
                                                                 ¸
utilizarea metodei Gauss-Jordan la rezolvarea sistemelor de ecuatii nu este justi-
     a         a       a     ıns˘       a
ficat˘. Aceast˘ metod˘ este ˆ a utilizat˘ la calculul numeric al matricei inverse,
                                                           a            ¸
operatie pe care o vom prezenta la paragraful 5.1.5. Num˘rul de operatii, nGJ ,
       ¸
                                                         a      a     a
pentru metoda de eliminare Gauss-Jordan se calculeaz˘ observˆnd c˘ la fiecare
etap˘ s, se calculeaz˘ n − 1 multiplicatori. Algoritmul elimin˘rii Gauss-Jordan
     a               a                                        a
                           a      a           ¸
este dat de (5.10). Rezult˘ num˘rul de operatii la eliminarea Gauss-Jordan
               n
                                                          n3        3n   n3
  nGJ =            [(n − 1) + (n − 1)(n + 1 − s)] =          + n2 −    ≈    + n2 , (5.16)
          s=1
                                                          2          2   2
        ¸               a
aproximatia fiind valabil˘ pentru n                 1.

5.1.3      Propagarea erorilor la metodele de eliminare. Rafi-
                     ¸
           narea solutiei
Formula de calcul a coeficientilor matricei extinse este dat˘ de relatiile (5.6) pe
                             ¸                             a        ¸
care le retranscriem sub forma
                     (s)    (s−1)        (s−1) (s−1)
                   ai,j = ai,j      − ai,s    as,j /a(s−1) ,
                                                     s,s         j ∈ s + 1, n + 1 ,   (5.17)
   3 Elementele matricei Hilbert sunt date de relatia h
                                                    ¸    i,j = 1/(i + j + 1). Matri-
                                          a        ¸      a                    a
cea Hilbert este un caz tipic de matrice r˘u conditionat˘; spre exemplu num˘rul de
conditionare al matricei Hilbert de 5 × 5 este de ordinul 105 iar pentru 6 × 6 este de
      ¸
          7
ordinul 10 .
122                                                         5. Rezolvarea sistemelor liniare


unde i ∈ s + 1, n, s ∈ 1, n − 1 la procedeul Gauss ¸i i = 1, 2, . . . s − 1, s + 1, . . . n,
                                                   s
s ∈ 1, n la procedeul Gauss-Jordan. Rezult˘ eroarea relativ˘ total˘
                                             a                 a         a
                                     (s−1)                   (s−1)     (s−1)
                      (s)          ai,j       (s−1)         ai,s      as,j
                   εi,j       =              εi,j      −                         ε + εs ,   (5.18)
                                      (s)                     (s−1)        (s)
                                     ai,j                    as,s      ai,j
                                    (s−1)           (s−1)
                      ε       ≡    εi,s      + εs,j         − ε(s−1) + εp + εd .
                                                               s,s

ˆ expresia (5.18) s-a ¸inut seama de propagarea erorilor la sc˘dere (sau sumare),
In                     t                                      a
            s     ımp˘ ¸           a              ın
la produs ¸i la ˆ artire, dup˘ regulile date ˆ capitolul 4. Marginea erorii
relative totale este
                                                               
                                     (s−1)     (s−1) (s−1)
                 (s)               a
                              −t  i,j
                                              ai,s as,j
                εi,j ≤ 5 · 10              +5               + 1 ,         (5.19)
                                       (s)       (s−1) (s)
                                     ai,j      as,s ai,j
                     a                                               a
unde t este num˘rul de cifre semnificative cu care se lucreaz˘. Se observ˘ c˘     a a
                                                                  (s−1)
                            a                 ¸                            a
singurul factor asupra c˘ruia se poate actiona este pivotul as,s a c˘rui valoare
ˆ modul se recomand˘, ˆ general, s˘ fie cˆt mai mare. ˆ leg˘tur˘ cu strategia
ın                        a ın            a      a            In    a a
                                    ıns˘ s        a              a
pivotului maxim, se poate face ˆ a ¸i urm˘toarea remarc˘: deoarece, conform
relatiei (5.35), produsul pivotilor este ˆ modul egal cu valoarea lui det A, rezult˘
     ¸                           ¸         ın                                       a
 a                           ¸         ın           ın
c˘ introducerea de pivoti mari, ˆ modul, ˆ primele etape de eliminare, va
          ın                          ¸               ¸     ın
implica ˆ mod obligatoriu aparitia unor pivoti mici ˆ etapele finale, cu atˆt       a
                       a                    a
mai devreme cu cˆt valoarea absolut˘ a determinantului matricei A este mai
     a                             a                    a
mic˘. Prin urmare, este posibil˘ o strategie optim˘ de alegere a pivotilor.   ¸
                 s                                                         ıl
     Un aspect ¸i mai important legat de strategia alegerii pivotului ˆ constituie
               ¸                     ¸
scalarea ecuatiilor (sau preconditionarea prin echilibrare), care poate fi f˘cut˘a a
   a            a s                             ınt
atˆt pe linii cˆt ¸i pe coloane. Pentru a ˆ ¸elege mai bine care este problema,
 a
s˘ presupunem c˘ ˆ           ¸                                          a
                     a ınmultim una din liniile sistemului cu un num˘r foarte mare.
                           a               ¸                              s
Acest lucru nu modific˘ teoretic solutia sistemului dar avem mari ¸anse ca ele-
                   ın          a                     a                a
mentul maxim ˆ modul s˘ se afle pe aceast˘ linie, chiar dac˘ acest lucru nu
         ıntˆ                           a               a
s-ar fi ˆ amplat cu linia original˘. Este necesar˘ deci scalarea matricei care
       a ın ınmultirea fiec˘rei linii cu cˆte un multiplicator ri astfel ˆ at eleme-
const˘ ˆ ˆ         ¸         a             a                              ıncˆ
               ın                               a
tele maxime ˆ modul de pe fiecare linie s˘ fie egale cu unitatea. Sistemul (5.1)
devine
                      n
                            ri ai,j xj = ri bi , ri = 1/ max |aij |, i ∈ 1, n ,             (5.20)
                                                             j∈1,n
                   j=1

                       a
Pentru a reduce pe cˆt de mult posibil erorile de rotunjire, multiplicatorul se
alege de forma 1/2m astfel ˆ at elementele maxime de pe fiecare linie s˘ fie cˆt
                             ıncˆ                                         a    a
mai apropiate de unitate. ˆ cazul ˆ care se calculeaz˘ inversa sau determinan-
                            In      ın                  a
        s                                  ¸
tul, ace¸ti multiplicatori trebuie memorati.
                     ¸                                          a ın
    Similar, preconditionarea prin echilibrare pe coloane, const˘ ˆ transformarea
                 ın
sistemului (5.1) ˆ sistemul echivalent
                  n
                      pj ai,j (xj /pj ) = bi , pj = 1/ max |aij |, j ∈ 1, n ,               (5.21)
                                                                   i∈1,n
                j=1
5.1. Metode directe                                                                  123


                    ¸                          a
    Tot pe linia obtinerii unei unei precizii cˆt mai bune se ˆ        s
                                                               ınscrie ¸i rafinarea
    ¸               a ın ımbun˘t˘¸irea solutiei printr-un proces iterativ. Notˆnd
solutiei, care const˘ ˆ ˆ     a at         ¸                                   a
                       s    ¯              ¸                   a
cu e vectorul eroare ¸i cu x vectorul solutiei aproximative g˘site, ˆ ınlocuind ˆın
sistemul (5.2) vom obtine o valoare ¯ = b
                        ¸            b
                               A¯ = ¯ x = x − e ,
                                 x b, ¯                                      (5.22)
    a                ¸a ¸a                         ¸a
adic˘ apare o diferent˘ fat˘ de vectorul b, diferent˘ pe care o vom nota cu β
                                   β =b−b   ¯.                            (5.23)
                               s               ¸
Prin sc˘derea ecuatiilor (5.2) ¸i (5.22), se obtine un sistemul
       a          ¸
                                           Ae = β ,                                 (5.24)
               s                           ¸
care are aceea¸i matrice cu sistemul initial. Prin urmare, sistemul (5.24) se
      a         s                               a       ¸
rezolv˘ cu acela¸i algoritm, nefiind necesare decˆt operatiile de eliminare aplicate
                                ¸        ¸
asupra termenilor liberi. Se obtine solutia rafinat˘a
                                        ¯    ¯
                                        x1 = x + e .                                (5.25)
Evident, nici aceast˘ solutie (5.25) nu este exact˘, deoarece la determinarea
                     a      ¸                       a
                                        s                                     ¸
vectorului eroare e se introduc acelea¸i erori ca la rezolvarea sistemului initial
                     a                                        a              a
(5.2), prin transform˘rile efectuate asupra matricei A. O nou˘ rafinare, plecˆnd
                      a
de la x1 este posibil˘, dar aceasta nu ˆ        a at s ın
                                          ımbun˘t˘¸e¸te ˆ mod necesar solutia  ¸
                   ¸                                  ¸
sistemului. Conditii suficiente pentru corectarea solutiei se vor da la paragraful
5.1.7.
                   a                                                   a ¸
    Exemplu. Relu˘m exemplul (5.11). Indiferent de metoda utilizat˘, solutia trebuie
verificat˘ ˆ sistem. ˆ acest fel, se g˘se¸te vectorul erorilor β (5.23)
        a ın        In               a s
                      ¸
                  Solutia        β1         β2         β3         β ∞/ b ∞
                  (5.13)    0.944 · 10−2    0      −0.5 · 10−2    0.47 · 10−2
                  (5.14)    0.328 · 10−2    0       0.38 · 100     0.19 · 100
           a a ın             ¸               a                  a
Se constat˘ c˘, ˆ cazul solutiei (5.14), exist˘ o eroare relativ˘ mare (circa 20%) ˆ  ın
                                               ¸               ınd a          a
termenii liberi, deci se impune rafinarea solutiei. Presupunˆ c˘ efectu˘m asupra
                  s        ¸                          ¸
matricei A acelea¸i operatii care ne-au condus la solutia (5.14), sistemul (5.24) pentru
determinarea vectorului eroare e conduce la matricea
     8        2        −3    |      0
                                                                                
                                                 8      2       −3 |         0
    0 −0.028         1.38   | 0.00328  →  0 −0.028 1.38 | 0.00328  ,
     0      1.75     −4.63 |      0.38           0      0      81.6 |      0.585
       ¸
cu solutia
                  e3 = 0.717 · 10−2 , e2 = 0.236 · 100 , e1 = −0.563 · 10−1
    ¸           a
Solutia corectat˘ este
             x3 = 0.165 · 101 , x2 = 0.450 · 101 , x1 = −0.756, (¯i = xi + ei ) ,
             ¯                  ¯                  ¯             x    ¯
              a
cu norma maxim˘ a erorii
                                   x−x
                                     ¯      ∞    = 0.4 · 10−1 .
         a                                     ın              ¸ ¯
Se observ˘ o reducere a normei erorii absolute ˆ raport cu solutia x , dar rezultatul este
                     a                     a a
sub precizia realizat˘ cu pivotare, chiar f˘r˘ rafinare (5.12), care are norma maxim˘     a
   a
dat˘ de (5.15).
124                                                5. Rezolvarea sistemelor liniare


5.1.4                             a
           Interpretarea matriceal˘ a metodelor de eliminare
                                                       a
Eliminarea elementelor de pe coloane este echivalent˘ cu ˆ          ¸
                                                            ınmultirea matricei
                                                ın           a
A cu anumite matrice simple. Spre exemplu, ˆ prima etap˘, matricea A este
ınmultit˘ la stˆnga cu o matrice notat˘ cu L1 , ˆ a doua etap˘ cu o matrice L2 ,
ˆ     ¸ a       a                      a        ın            a
s                 a         a
¸.a.m.d. Se verific˘ direct c˘ aceste matrice sunt de forma
                                                                          
             1     0 ... ... 0                     1    0     ... ... 0
         −m2,1 1 . . . . . . 0                0      1     ... ... 0 
                                                                          
                      ..                                   ..             
  L1 =  −m3,1 0
                         . . . . 0  , L2 =  0 −m3,2
                                                                . ... 0  ,
              .
              .     . ..
                    .        ..   . 
                                  . 
                                                .      .       .     ..   . 
                                                .      .       .          . 
        
             .     .     .     . .                .    .       .        . .
          −mn,1 0 . . .       0 1                  0 −mn,2 . . . . . . 1

adic˘ se obtin din matricea unitate de dimensiuni n × n prin introducerea mul-
     a      ¸
                                  ın    ¸
tiplicatorilor, cu semn schimbat, ˆ pozitiile specificate chiar prin indicii acestor
                         a
multiplicatori. Ca prob˘, elementul pi,1 din matricea produs L1 A este

                    pi,1 = −mi,1 · a1,1 + 1 · ai,1 = 0, i = 2, 3, . . . , n .           (5.26)

ˆ consecint˘, ˆ absenta permut˘rilor de linii ¸i coloane (pe care de fapt le
In         ¸a ın      ¸          a            s
      a           ¸           ¸                                ¸
efectu˘m pentru obtinerea pivotilor de modul convenabil), se obtine produsul
de matrice

                                 U = Ln−1 Ln−2 . . . L2 L1 A ,                          (5.27)

U fiind matricea superior triunghiular˘4 , obtinut˘ ˆ etapa n − 1 a elimin˘rii ga-
                                       a      ¸    a ın                  a
ussiene (etapa final˘). Vom observa, mai departe, c˘ matricele Ls , s ∈ 1, n − 1
                   a                                   a
                           a               ¸
sunt toate inversabile, avˆnd determinanti egali cu unitatea. Mai mult, se ve-
rific˘ direct c˘ matricele inverse L−1 se obtin din matricele Ls prin schimbarea
    a         a                     s        ¸
semnelor elementelor mi,s . Notˆnd cu L = (Ln−1 Ln−2 . . . L2 L1 )−1 matricea
                                  a
                                                      a a
invers˘ a transform˘rilor matricei A (5.27), rezult˘ c˘ la eliminarea gaussian˘
      a             a                                                           a
  aa          a
(f˘r˘ permut˘ri de linii sau coloane), s-a realizat factorizarea

                                          A=L·U ,                                       (5.28)

                                             a a
unde L este o matrice inferior triunghiular˘ avˆnd elemente egale cu unitatea
                        a     ın                            ¸
pe diagonala principal˘, iar ˆ rest multiplicatorii utilizati la eliminare
                                                                   
                                    1     0     ...      ...      0
                                  m2,1   1     ...      ...      0 
                                                                   
                                  m3,1 m3,2     1       ...      0 .
      L = L−1 L−1 . . . L−1 = 
            1   2         n−1                                             (5.29)
                                  .       .    ..        ..      . 
                                  ..      .
                                           .       .         .    . 
                                                                  .
                                         mn,1     mn,2    ...   mn,n−1      1
  4 Literele     s                                                  a       s
               L ¸i U sunt preluate de la cuvintele din limba englez˘ lower ¸i upper.
5.1. Metode directe                                                                 125


         a                                          a
Pe de alt˘ parte, matricea U , superior triunghiular˘, are       expresia
                                                                
                           a1,1 a1,2 a1,3 . . .     a1,n
                                  (1)    (1)          (1)
                         0
                                a2,2 a2,3 . . .    a2,n         
                                                                 
                                         (2)          (2)
                   U = 0         0    a3,3 . . .   a3,n
                                                                
                                                                 .                (5.30)
                         .        .    ..    ..       .
                                                                
                         .        .       .     .     .         
                            .      .                   .         
                                                    (n−1)
                            0     0     ...    0 an,n

     Permutarea de linii sau coloane revine la ˆ           ¸                  a
                                                     ınmultirea matricei ale c˘rei linii
                         a
sau coloane se permut˘, cu o matrice de permutare. Vom nota cu Pi,j matricea
   ¸     a                   ın                                s
obtinut˘ prin permutarea ˆ matricea unitate de acelea¸i dimensiuni, a liniilor
                 s                                     s
sau coloanelor i ¸i j. Pentru a permuta liniile i ¸i j dintr-o matrice oarecare, se
ınmulte¸te matricea respectiv˘ cu Pi,j la stˆnga, iar pentru a permuta coloanele
ˆ      ¸ s                      a                a
  s        ınmulte¸te cu Pi,j la dreapta. Presupunem c˘, spre exemplu, pentru
i ¸i j, se ˆ    ¸ s                                           a
                                  a                      a         a           a s
a ajunge la forma triunghiular˘ U s-au folosit atˆt permut˘ri de linii cˆt ¸i de
                ıncˆ ınainte de a efectua elimin˘rile ˆ coloana a doua, s-au
coloane, astfel ˆ at, ˆ                                  a    ın
permutat liniile i, j ¸i coloanele k, l (i, j, k, l ≥ 2). Se obtine
                      s                                        ¸

                            U = Ln−1 . . . L2 Pi,j L1 APk,l                        (5.31)

unde Pi,j ¸i Pk,l sunt matrice de permutare. Din (5.31) se poate trage conclu-
          s
     a         a        a
zia c˘, datorit˘ permut˘rilor, matricea A nu se mai descompune chiar ˆ ıntr-un
produs de matrice triughiulare. De fapt

                         A = (L−1 Pi,j L−1 . . . L−1 )U Pk,l ,
                               1        2         n−1                              (5.32)

        t           a −1
unde am ¸inut cont c˘ Pi,j = Pi,j , sau

                                  Pi,j APk,l = LU ,                                (5.33)

         t          a      ¸                           s
unde am ¸inut cont c˘ operatiile de permutare de linii ¸i de eliminare sunt
                a
comutative, adic˘

   Pi,j L−1 Pi,j (L−1 . . . L−1 U Pk,l ) = Pi,j Pi,j L−1 (L−1 . . . L−1 U Pk,l )
         1         2         n−1                      1    2         n−1           (5.34)

                      a                 as                                     ¸
   Eliminarea gaussian˘ poate fi utilizat˘ ¸i pentru calculul valorii determinantilor.
                ¸
Din (5.32) se obtine
                                                  (1)
                det A = (−1)np det U = a1,1 a2,2 . . . a(n−1) (−1)np ,
                                                        n,n                        (5.35)

                  a      a                      a           s
unde np reprezint˘ num˘rul total de permut˘ri de linii ¸i coloane. Deoarece
                                                (s−1)
det A = 0, rezult˘ c˘ nici unul dintre pivotii as,s , (s ∈ 1, n) nu poate fi nul.
                 a a                       ¸

5.1.5     Calculul matricei inverse
                            a     a                  ¸      as
Matricea A este inversabil˘ dac˘ det A = 0, conditie pus˘ ¸i pentru existenta  ¸
    ¸                                            s
solutiei sistemului (5.2). Prin urmare, este de a¸teptat ca rezolvarea sistemului
126                                             5. Rezolvarea sistemelor liniare


¸i inversarea matricei A s˘ fie probleme strˆns legate. ˆ
s                         a                a                    a
                                                       Intr-adev˘r, matricea B
este inversa matricei A dac˘a

                                       AB = BA = I .                                  (5.36)

   a a ın                           a                 ¸
Dac˘ lu˘m ˆ considerare prima coloan˘ a matricei B, obtinem
                                                     
               a1,1 a1,2 . . . a1,n       b1,1          1
             a2,1 a2,2 . . . a2,n   b2,1   0 
                                    ·       =        ,                          (5.37)
             ...    ... ... ...   ...   ... 
              an,1 an,2 . . . an,n        bn,1          0

    a                     ¸                             a       a
adic˘ un sistem de n ecuatii cu n necunoscute. Rezult˘ deci c˘ problema deter-
    a                                     a                                    ¸
min˘rii matricei inverse B este echivalent˘ cu rezolvarea a n sisteme de n ecuatii
cu n necunoscute. Vom considera matricea M de dimensiuni n × 2n, format˘         a
      a                                                a
din al˘turarea matricei unitate I la matricea A, urmˆnd a aplica transform˘ri  a
                  ıncˆ a
matricei A astfel ˆ at s˘ o aducem la matricea unitate I,

                                   M = [A|I] → [I|A] .                                (5.38)

ˆ acest scop, se aplic˘ transform˘rile de la eliminarea Gauss- Jordan. Rezult˘
In                    a          a                                           a
      ¸
o relatie de forma

                        I = D(n) Tn Tn−1 . . . Pi,j T1 APk,l ,                        (5.39)

unde Pi,j , Pk,l reprezint˘ matricele de permutare, Ts , s ∈ 1, n sunt matrice care
                          a
contin multiplicatorii, iar D(n) este o matrice diagonal˘
   ¸                                                      a

                                         T1 = L1 ,
        1      −m1,2   ...      ...    0                                                      
       0       1      ...      ...    0 
                                                     1/a1,1         0       ...       0
                                                                       (1)
      
                      ..                
                                                    
                                                       0          1/a2,2    ...       0       
                                                                                               
 T2 =  0      −m3,2      .     ...    0  , D(n) =    .            .       ..        .       .
      
       .
                                                      .
                                                        .            .
                                                                     .          .      .
                                                                                       .
                                                                                               
                 .      .       ..     . 
       .        .      .              .                                                     
        .        .      .          .   .                                               (n−1)
                                                        0            0       ...    1/an,n
           0   −mn,2   ...      ...    1

   a       s           a        a                  s                          a
Dac˘ acelea¸i transform˘ri la stˆnga sunt aplicate ¸i matricei unitate, rezult˘ o
             a
matrice B avˆnd expresia

                              B = D(n) Tn Tn−1 . . . Pi,j T1 I .                      (5.40)

           s              ¸
Din (5.39) ¸i (5.40) se obtine

                                        I = BAPk,l ,                                  (5.41)

             a     a 2     s ınmultind egalitatea (5.41) la dreapta ¸i la stˆ
sau, observˆnd c˘ Pk,l = I ¸i ˆ   ¸                                 s       ınga
               ¸
cu Pk,l , se obtine

  Pk,l IPk,l = Pk,l BAPk,l Pk,l , rezult˘ (Pk,l B)A = I, deci A−1 = Pk,l B , (5.42)
                                        a
5.1. Metode directe                                                                  127


    a                a      ¸
adic˘ matricea invers˘ se obtine din matricea B printr-o permutare de linii, co-
       a             a                              a           ¸     ın     ¸
respunz˘toare permut˘rilor de coloane efectuate la c˘utarea pivotilor ˆ operatiile
                 a                                  a
de eliminare. Dac˘ s-au efectuat mai multe permut˘ri de coloane, spre exemplu

                            I = BAPk1 ,l1 Pk2 ,l2 . . . Pkm ,lm ,                   (5.43)

      a
rezult˘

                      A−1 = (Pkm ,lm . . . (Pk2 ,l2 (Pk1 ,l1 B)) . . . ) ,          (5.44)

     a        a            ın                       a ın               a ¸a
adic˘ permut˘rile de linii ˆ matricea B se efectueaz˘ ˆ ordine invers˘ fat˘ de
        a                         ın                 a     a             ¸
permut˘rile de coloane efectuate ˆ matricea A. Dac˘ la c˘utarea pivotilor nu
se folosesc schimb˘ri de coloane, atunci A−1 = B.
                  a
      aa                      a         a           ¸
    L˘sˆnd la o parte permut˘rile, num˘rul de operatii la inversare este

          ninv = 3n3 /2 − 2n2 + 5n/2 + 1 ≈ 3n3 /2 − 2n2 , (n                 1) .   (5.45)

Se observ˘ c˘ num˘rul de operatii la inversarea matricelor mari (n ≥ 40) este
             a a     a            ¸
                               a                                      s
de circa 3 ori mai mare decˆt pentru eliminarea Gauss-Jordan ¸i de 4.5 ori
                a                             a            ¸
mai mare decˆt la eliminarea Gauss. Num˘rul de operatii se poate reduce ˆ a    ıns˘
¸inˆnd seama de forma particular˘ a matricei unitate. ˆ
t a                                 a                                  a ın
                                                             Intr-adev˘r, ˆ prima
     a           a                     a ın
etap˘ a elimin˘rii, matricea I (plasat˘ ˆ coloanele n + 1, 2n) sau orice matrice
                                      a     ın         ın
de permutare Pi,j care ar putea ap˘rea ˆ locul ei ˆ urma alegerii pivotului,
contine doar un element nenul pe fiecare linie. ˆ urma elimin˘rii din prima
    ¸                                               In              a
     a                                                                   a
etap˘, coloanele n + 1 . . . 2n vor forma o matrice cu cel mult dou˘ elemente
nenule pe fiecare linie cu care se va opera ˆ etapa a doua, ¸.a.m.d. ˆ etapa s,
                                             ın                s         In
                                                                        ın
se va opera cu cel mult s elemente diferite de zero pe linia pivotului, ˆ coloanele
                               a              ¸
n + 1 . . . 2n. Ca urmare, num˘rul de operatii poate fi redus la expresia

                           ninv1 = n3 − n2 + 1 ≈ n3 − n2 ,                          (5.46)

                                                ın
deci, aproape de 1.5 ori mai mic fat˘ de (5.45) ˆ cazul matricelor mari. Aceast˘
                                    ¸a                                            a
                           t            ¸        ¸
reducere se face pe seama ¸inerii evidentei pozitiilor elementelor nenule din linia
                  a        ¸a              a                          a
pivotului. Aceast˘ evident˘ nu este dificil˘ deoarece, la fiecare etap˘ se adaug˘   a
o coloan˘ nou˘ la precedentele. ˆ final, vom observa c˘ permut˘rile de linii
          a    a                    In                      a        a
                        a        ¸          a ¸                             a
(singurele care se aplic˘ pe pozitia ocupat˘ initial de matricea I) schimb˘ doar
     ¸                            s     a
pozitiile elementelor nenule (nu ¸i num˘rul acestora).
                                         a      a                a
    Determinarea matricei inverse am v˘zut c˘ este echivalent˘ cu rezolvarea a
                     ¸                     s                 a
n sisteme de n ecuatii simultane (cu aceea¸i matrice A), avˆnd ca termeni liberi
coloanele matricei I, iar ca necunoscute elementele matricei inverse. Aceea¸i     s
         a                 as                           a
problem˘ poate fi rezolvat˘ ¸i prin eliminare gaussian˘, retrosubstituirea pentru
g˘sirea celor n2 necunoscute cerˆnd ˆ a n2 (n+1)/2 operatii. ˆ aceste conditii,
 a                               a ıns˘                     ¸ In                ¸
     a             ¸
num˘rul de operatii pentru inversare este

      aa
 (a) f˘r˘ considerarea zerourilor din matricea unitate

                                     ninv2 = 4n3 /3 − n/3 ;                         (5.47)
128                                          5. Rezolvarea sistemelor liniare


  (b) cu considerarea zerourilor din matricea unitate

                                ninv3 = n3 + n2 /2 − n/2 .                        (5.48)

               a a                 ın
      Se observ˘ c˘ ninv2 < ninv , ˆ timp ce ninv3 > ninv1 .

                             a       a
    Exemplu. Ne propunem s˘ calcul˘m inversa matricei A a sistemului (5.11). Vom
                                            a                       a
folosi metoda Gauss-Jordan cu pivotare total˘ pentru matricea extins˘. Avem succesiv
                                                                                  
      1   0.2222    1   | 1 0 0                    8      2     −3 | 0 1         0
                                        l1 ↔l2
      8      2     −3   | 0 1 0          −→  1 0.2222            1     | 1 0    0 
      1      2     −5   | 0 0 1                    1      2     −5 | 0 0         1
                        8      2           −3     | 0       1       0
                  s=1
                 −→     0 −0.0278        1.375    | 1 −0.125 0
                       0    1.75      −4.625 | 0 −0.125 1 
                         8     2            −3      | 0       1       0
               l2 ↔l3
                 −→  0 -4.625             1.75     | 1 −0.125 1 
               c2 ↔c3
                        0   1.375     −0.0278 | 0 −0.125 0                
                     8     0      0.8649 | 0          1.081     −0.6486
             s=2
            −→  0 −4.625           1.75      | 1 −0.125            1      
                     0     0      0.4925 | 0 −0.1622             0.2973
                   8     0        0       | −1.756      1.366       −1.171
           s=3
           −→      0 −4.625       0       | −3.553      0.4513     −0.0564
                   0     0     0.4925 |         1      −0.1622      0.2973
                      1 0 0 | −0.2195             0.171     −0.1463
               D
               → 0 1 0 | 0.7683 −0.09758 0.0122                          .
                      0 0 1 |        2.030      −0.3293     0.06037
                                                                                  (5.49)

Calculele au fost efectuate cu 4 cifre semnificative.    Deoarece am permutat coloanele
2 ¸i 3 pentru aducerea valorii −4.625 pe pozitia
   s                                              ¸                               a
                                                        pivotului, matricea invers˘ B0 se
                                              s
obtine din (5.49) prin permutarea liniilor 2 ¸i 3 ˆ
  ¸                                                ın                   a
                                                        matricea format˘ cu ultimele trei
coloane
                                                               
                              −0.2195      0.1707       −0.1463
                      B0 =  2.030        −0.3293        0.6037  .                (5.50)
                               0.7683    −0.09758        0.0122



5.1.6         ¸
          Relatia Sherman-Morisson
Fie matricea A pentru care am calculat, cu un efort apreciabil, o aproximatie¸
a inversei, B ∼ A−1 . S˘ presupunem c˘ ˆ matricea A sunt cˆteva elemente
              =          a              a ın                    a
          a             a
care sufer˘ mici modific˘ri (se poate modifica numai un element, sau o linie, sau
         a                                                    a
o coloan˘, etc.). Se pune problema de a folosi munca depus˘ anterior pentru
calculul matricei inverse B. Acest lucru se poate realiza cu formula Sherman-
Morisson

             (A + u · v T )−1 = A−1 − (A−1 u)(vA−1 )T /(1 + vA−1 u) ,             (5.51)
5.1. Metode directe                                                            129


       s                                  a
unde u ¸i v sunt doi vectori cu ajutorul c˘rora putem exprima schimbarea din
matricea A de forma

                                    A → A + u · vT .                         (5.52)

                      a           a
Spre exemplu, dac˘ se modific˘ linia i din matricea A, trebuie ca uj = 0,
j ∈ 1, n\{i}, ui = 1, iar vectorul v contine valorile cu care se modific˘ elementele
                                        ¸                              a
ai,j , j ∈ 1, n. Analog, pentru a modifica coloana j, vi = 0, i ∈ 1, n \ {j}, vj = 1,
iar vectorul u contine valorile cu care se modific˘ elementele ai,j , i ∈ 1, n.
                    ¸                               a

5.1.7     Rafinarea matricei inverse
          ın                                                             ¸
Deoarece ˆ cursul calculelor se produc erori de rotunjire, matricea B, obtinut˘ a
prin oricare din procedeele prezentate, nu este chiar matricea A−1 . Fie B0
                      ¸    a ¸
inversa matricei A, obtinut˘ initial. Putem defini o matrice a erorilor, F0 , prin
    ¸
relatia

                                    F0 = I − AB0 .                           (5.53)

            a                 a              a             a
Evident, dac˘ B0 este exact˘, atunci F = 0. S˘ presupunem c˘ erorile sunt
                         ıncˆ
suficient de mici, astfel ˆ at

                                       F0         1,                         (5.54)

                   a        a                            s
unde F0 reprezint˘ o norm˘ oarecare a matricei F0 (vezi ¸i paragraful 5.4).
                             s           ¸          ıncˆ
Mai departe, vom construi un ¸ir de iteratii astfel ˆ at
                                            2
                 Fk+1 = I − ABk+1 , Fk+1 = Fk , k = 0, 1, 2, . . .           (5.55)

Tinˆnd cont de (5.54), atunci Fk → 0, deoarece
¸ a
                                k
                        2                   2k
                  Fk = F0           ≤ F0         → 0, pentru k → ∞ .         (5.56)

Din (5.55) se deduc succesiv

             Fk+1 = Fk Fk = (I − ABk )Fk = Fk − ABk Fk =
                                                                             (5.57)
        = I − ABk − ABk Fk = I − A(Bk + Bk Fk ) = I − ABk+1 ,

          a               a       at
sau comparˆnd ultimele dou˘ egalit˘¸i (5.57)

   Bk+1 = Bk + Bk Fk = Bk (I + Fk ) = 2Bk − Bk ABk , k = 0, 1, 2, . . .      (5.58)

    ¸
Relatia (5.58) arat˘ cum trebuie construite inversele cu o precizie din ce ˆ ce
                   a                                                        ın
        a     a             a      ¸                   ¸
mai bun˘, dac˘ este realizat˘ conditia (5.54). Din relatia (5.55) se poate scrie

                               A−1 Fk+1 = A−1 − Bk+1 .                       (5.59)

      a                a               ın    a
Rezult˘ eroarea relativ˘ la inversare, ˆ norm˘

             δA−1     k+1 /   A−1 = A−1 − Bk+1 / A−1 ≤ Fk+1 .                (5.60)
130                                                5. Rezolvarea sistemelor liniare


      a a a          a                  a             ¸    s        ¸         a
Odat˘ g˘sit˘ o invers˘ suficient de exact˘, se poate obtine ¸i o solutie rafinat˘
a sistemului (5.2)

                                x = A−1 b = Bk+1 b, k ≥ 1 .                                 (5.61)

Deoarece procesul de rafinare contine ˆ
                                  ¸   ınmultiri de matrice care necesit˘ circa n3
                                           ¸                           a
      ¸                          a     a          a ın
operatii, este de dorit ca F0 s˘ fie cˆt mai mic˘ ˆ raport cu unitatea, adic˘    a
              ¸ a a        a         a
inversarea initial˘ s˘ fie cˆt mai bun˘.
   Exemplu. Matricea erorilor pentru matricea invers˘ B0 dat˘ de (5.50) este
                                                    a       a
                                                                   
                                           13.4    7.046     −4.214
                                  −5
                        F0 = 10        ·  90        20       −40  ,                        (5.62)
                                           100      −10       −10
cu norma

                      F0   ∞   = 10−5 (90 + 20 + 40) = 1.5 · 10−3         1.

Deoarece F0    ∞                                                                ¸
                   < 1, putem rafina inversa B0 folosind (5.58), unde apare corectia
                                                               
                                      −2.208 3.33      −4.44
                     B0 F0 = 10−5 ·  57.94     1.68 −1.419  .
                                       2.731   3.339    0.544

     ¸                    a   s
Se obtine matricea rafinat˘ B1 ¸i matricea erorilor F1 date de
                                                                                              
        −0.2195      0.171   −0.1463                     3.923                 2.775    −2.962
                                                   −8 
B1 =  2.0306      −0.3293    0.6037  , F1 = 10        −9.94                  14.34    −7.793  .
         0.7683    −0.09758   0.0122                     −5.6                  −6.046    0.786
                                                                                             (5.63)

                      s
Folosind inversele B0 ¸i B1 pentru rezolvarea sistemului (5.11), se obtin solutiile
                                                                      ¸       ¸

  x(0) = B0 b = (−0.756, 4.993, 1.6464)T , x(1) = B1 b = (−0.7561, 4.9941, 1.6464)T ,
  ¯                                        ¯

                     ¸
cu vectorii eroare dati de

  e(0) = 10−5 · (−9.756, 90.024, −5.854)T , e(1) = 10−5 · (0.244, −19.76, −5.854)T .

Eroarea relativ˘ la inversare dat˘ de relatia (5.60) ˆ norma ·
               a                 a        ¸          ın                  ∞     este pentru matricea
         a        a
nerafinat˘ B0 dat˘ de (5.50)

                       δ0 A−1    ∞/    A−1   ∞    ≤ F0   ∞   = 1.5 · 10−3 ,

iar pentru matricea rafinat˘ B1 dat˘ de (5.63) este
                          a       a

                       δ1 A−1    ∞/    A−1   ∞   ≤ F1    ∞   = 0.32 · 10−6 .
5.1. Metode directe                                                          131


5.1.8                                     ¸
          Efectele erorilor din datele initiale
    a ın         ¸                               a
Dac˘ ˆ datele initiale ale sistemului (5.1) exist˘ erori, acestea pot fi amplificate
ın                               ¸    ın      ¸            a
ˆ calcul mai mult sau mai putin, ˆ functie de num˘rul de conditionare al ¸
                           a             ¸                              ¸
matricei sistemului. Num˘rul de conditionare (sau indicele de conditionare) al
                                                   s                 ¸
unei matrice A, nesingulare, este notat cu µ(A) ¸i are, prin definitie, expresia

                             µ(A) = A · A−1 ≥ 1 .                          (5.64)

     a                              a                    a       ¸     a
Cu cˆt µ(A) este mai mare, cu atˆt matricea este mai r˘u conditionat˘, calculul
                                                                       a
matricei inverse fiind mai dificil de efectuat. De aceea, este mai util˘ definitia¸
                            ın
(5.85) pe care o vom da ˆ paragraful 5.1.10.
    Exemplu. Num˘rul de conditionare al matricei A din exemplul (5.11) calculat
                      a           ¸
cu relatia (5.64), folosind norma · ∞ ¸i cu matricea invers˘ nerafinat˘ B0 dat˘ de
       ¸                              s                    a         a       a
(5.50) este

                  µ∞ (A) = A        ∞    B0   ∞   = 13 · 2.962 = 38.5 ,

    a                                  a
adic˘ amplificarea erorilor este moderat˘.
     a              a ın             ¸ a                         ¸
   S˘ presupunem c˘, ˆ matricea initial˘ A, s-a introdus perturbatia δA astfel
ıncˆ                a ın     a
ˆ at eroarea relativ˘, ˆ norm˘, satisface inegalitatea

                                    δA · A−1 < 1 .                         (5.65)

S˘ presupunem c˘ ¸i vectorul b este dat cu eroarea δb. ˆ consecint˘, va rezulta
 a               as                                    In        ¸a
                ın    ¸           ıncˆ
o imprecizie δx ˆ solutie, astfel ˆ at

                            (A + δA)(x + δx) = b + δb ,                    (5.66)

     t a
sau, ¸inˆnd cont de (5.1)

                            δA · x + (A + δA)δx = δb .                     (5.67)

Din (5.67) se obtine succesiv
                ¸

     δx = (A + δA)−1 (δb − δA x) = [A(I + A−1 δA)]−1 (δb − δA x) =
                                                                           (5.68)
                  = (I + A−1 δA)−1 A−1 (δb − δA x) ,

                          a ıns˘
Inegalitatea (5.65) implic˘ ˆ a

      (I + A−1 δA)−1 ≤ (1 − A−1 δA )−1 ≤ (1 − A−1 · δA )−1 .               (5.69)

iar din (5.1) se obtine
                   ¸
                                    −1                 −1
                                x        ≤ A · b            .              (5.70)

      a
Utilizˆnd (5.68), rezult˘
                        a

              δx ≤ (1 − A−1 / δA )−1 A−1 ( δb + δA · x )                   (5.71)
132                                                  5. Rezolvarea sistemelor liniare


     ımp˘ ¸            s        a
sau, ˆ artind cu x = 0 ¸i utilizˆnd (5.70)

                         δx          µ(A)                   δb   δA
                            ≤                                  +             .        (5.72)
                         x    1 − µ(A) δA / A                b   A

Semnul “egal” ˆ (5.72) corespunde matricelor hermitice, cu norma spectral˘.
                ın                                                         a
          a         ¸      a             ¸            ın
Se observ˘ importanta num˘rului de conditionare µ(A) ˆ amplificarea erorilor
   ¸                                                           s
initiale. Legat de eroarea la inversarea matricei A, se stabile¸te o expresie
        a
similar˘ cu (5.72)

                   (A + δA)−1 − A−1          µ(A)                         δA
                           −1
                                    ≤                                        .        (5.73)
                         A            1 − µ(A) δA / A                      A

5.1.9       Factorizarea L · U
    a             a                                      a              aa
Dup˘ cum am v˘zul la paragraful 5.1.4, metoda elimin˘rii gaussiane f˘r˘ per-
   a                                       a
mut˘ri de linii sau coloane este echivalent˘ cu descompunerea matricei A ˆıntr-un
                                               a s                            a
produs dintre o matrice superior triunghiular˘ L ¸i una inferior triunghiular˘ U

                                             A=L·U ,                                  (5.74)

    a
adic˘
                                                                              
                  l1,1     0     ...     0           u1,1   u1,2   ...    u1,n
                 l2,1    l2,2   ...     0          0     u2,2   ...    u2,n   
        A=                                    ·                               .   (5.75)
                                                                              
                    .
                    .       .
                            .    ..      .
                                         .            .
                                                      .      .
                                                             .     ..      .
                                                                           .
                   .       .       .    .          .      .        .    .     
                  ln,1    ln,2   ...    ln,n          0      0      0     un,n

                                                                  t a
Putem folosi descompunerea (5.74) pentru a rezolva sistemul (5.2) ¸inˆnd cont
de asociativitatea produsului de matrice

                                 Ax = (LU )x = L(U x) = b ,                           (5.76)

      a       a
rezolvˆnd pe rˆnd sistemele

                                        Lz = b, U x = z .                             (5.77)

                            a     s    ¸a         a              a
Sistemele (5.77) se rezov˘ cu u¸urint˘ datorit˘ faptului c˘ matricele L ¸i U     s
sunt triunghiulare. Relatia (5.75) reprezint˘ un sistem de n2 ecuatii cu n2 + n
                          ¸                    a                        ¸
necunoscute, deci trebuie precizate n dintre necunoscute. Cele mai utilizate
                                             a
alegeri sunt date de factorizarea Doolittle cˆnd se aleg li,i = 1, factorizarea Crout
cˆnd se aleg ui,i = 1 ¸i factorizarea Cholesky cˆnd U = LT , deci li,i = ui,i .
 a                      s                           a
                                    a              a
Factorizarea Cholesky este posibil˘ numai dac˘ matricea A este simetric˘ ¸i       a s
pozitiv definit˘5 .
               a
  5O    matrice se nume¸te pozitiv definit˘ dac˘ pentru orice vector x = 0, avem xT Ax > 0.
                       s                 a    a
5.1. Metode directe                                                                   133


                                                           a          s          a
    Algoritmul de calcul pentru factorizarea LU se determin˘ relativ u¸or dezvoltˆnd
    ¸          s                       a
relatia (5.75) ¸i este dat de (5.78)-stˆnga.

                                               k=1:n
                                               
  k=1:n                                          [Se alege lk,k , se determin˘   a
  
    [Se alege uk,k sau lk,k ,                                    a
                                                uk,k care se p˘streaz˘ ˆ a ın
                                               
   se determin˘ lk,k sau uk,k ]
                 a                                   ¸
                                                locatia ak,k ]
                                                                 k−1
                       k−1                    
   lk,k uk,k ← ak,k −
                             lk,s us,k        
                                                        (ak,k −        ak,s as,k )
                       s=1                     a ←               s=1
   i = (k + 1) : n                             k,k                lk,k
                                             
  
      j←i                                      i = (k + 1) : n
                                                
                      k−1                        j←i
   
              (ak,j −       lk,s us,j )      
                                                                    k−1
                        s=1
    uk,j ←                                                (ak,j −        ak,s as,j )
                                              
                                                
                         lk,k                                         s=1
                                                 ak,j ←
                                              
                     k−1
                                                                       lk,k
               (ai,k −
                                              
                          li,s us,k )                             k−1
                       s=1
                                              
       li,k ←                                             (ai,k −        ai,s as,k )
                       uk,k                                         s=1
                                                    ai,k ←
                                                                      ak,k
                                                                                     (5.78)

ˆ partea dreapt˘ este dat algoritmul ˆ care se aleg valorile lk,k , k ∈ 1, n, care
In               a                     ın
se memoreaz˘ separat, iar elementele li,j , i ∈ 2, n, j ∈ 1, i − 1, um,p , m ∈ 1, n,
             a
p ∈ m, n, se plaseaz˘ pe locul elementelor matricei A.
                     a
                       a a                     ¸
    Din (5.78) observ˘ c˘ pentru a putea obtine factorizarea LU este necesar
         s       a
ca lk,k ¸i uk,k s˘ fie nenule. Factorizarea LU poate fi implementat˘ eficient a
                                ¸       ın                            ¸
folosind tehnica pivotului partial, caz ˆ care P A = LU , iar solutia se obtine¸
       a
rezolvˆnd sistemul echivalent LU = P b, unde P este matricea care contine      ¸
              a
toate permut˘rile de linii efectate asupra matricei A pe parcursul procesului de
                   ¸    ın
factorizare. Conditiile ˆ care o matrice admite o factorizare LU sunt incluse ˆ   ın
     a                             a aa
urm˘toarele teoreme pe care le d˘m f˘r˘ demonstratie:  ¸

      a       a
Teorem˘. Dac˘ minorii principali ai matricei A sunt nenuli, atunci aceasta
    admite o factorizare LU .

      a       a                     a         as                 a
Teorem˘. Dac˘ A este o matrice real˘, simetric˘ ¸i pozitiv definit˘, atunci ea
    admite o factorizare LU unic˘, ˆ care U = LT .
                                a ın
    ˆ cazul ˆ care A este o matrice real˘, simetric˘ ¸i pozitiv definit˘, descom-
    In      ın                          a          as                 a
punerea A = LLT se nume¸te factorizarea Cholesky ¸i este dat˘ de algoritmul
                           s                          s          a
(5.79).

                       k=1:n
                                            k−1 2     1/2
                         lk,k ← (ak,k −      s=1 lk,s )
                        i = (k + 1) : n                                            (5.79)
                       
                                             k−1
                            li,k ← (ai,k −   s=1 li,s lk,s )/lk,k   .
134                                            5. Rezolvarea sistemelor liniare


5.1.10           Descompunerea SV D
ˆ unele cazuri, metodele prezentate anterior e¸ueaz˘ datorit˘ matricei sistemu-
In                                              s     a       a
                                                          a
lui care are determinantul foarte mic ca valoare absolut˘. Altfel spus, una din
liniile sistemului este aproape o combinatie liniar˘ a celorlalte linii6 . ˆ aceste
                                         ¸          a                      In
situatii se recomand˘ descompunerea SV D7 pe care o prezent˘m ˆ acest para-
      ¸               a                                         a ın
         a aa              ¸      a
graf. D˘m f˘r˘ demostratie urm˘toarea teorem˘:    a

Teorem˘ Oricare ar fi matricea A de m linii ¸i n coloane, cu m ≥ n, ea poate
       a                                   s
               a ıntr-un produs de trei matrice
    fi descompus˘ ˆ

                                       A=U ·W ·VT ,                                 (5.80)

unde U este o matrice ortogonal˘ m × n, W este o matrice diagonal˘ n × n, iar
                               a                                 a
V este o matrice ortogonal˘ n × n.
                          a
                s                                 a
   Matricele U ¸i V au coloanele ortonormate, adic˘

                                  UT U = V T V = I ,                                (5.81)

unde I este matricea unitate n × n. Important este faptul c˘ descompunerea
                                                               a
                 a a s ın         ın
(5.80) poate fi f˘cut˘ ¸i ˆ cazul ˆ care matricea A este singular˘.a
    ˆ cazul ˆ care matricea A este p˘trat˘ (m = n), sistemul (5.2) se rezolv˘
    In       ın                         a    a                                 a
 s                                        s                a         t a
u¸or, deoarece inversele matricelor U , V ¸i W se calculeaz˘ imediat ¸inˆnd cont
          s
de (5.81) ¸i deci

                             A−1 = V · diag(1/wi ) · U T ,                          (5.82)

        ¸
iar solutia sistemului (5.2) este

                            x = V · [diag(1/wi )] · (U T · b) .                     (5.83)

     a                         a
Dac˘ matricea A este singular˘, unul sau mai multe din elementele wi sunt nule,
                                     s                                         a
iar sistemul (5.2) este nedeterminat ¸i poate fi compatibil sau incompatibil dup˘
cum rangul matricei A este sau nu egal cu rangul matricei extinse A . Dac˘     a
                                             a    a      ¸             a
sistemul (5.2) este compatibil, se poate ar˘ta c˘ o solutie particular˘ poate fi
   ¸     a
obtinut˘ prin ˆ                                                          a ın
                ınlocuirea elementelor infinite din (5.83) cu zero (adic˘ ˆ loc
de 1/wi = ∞ vom pune wi = 0!). Dac˘ proced˘m ˆ acela¸i fel ˆ cazul ˆ
                                           a        a ın         s    ın      ın
                                                               a    ¸      ¸
care sistemul (5.83) este incompatibil, se poate demonstra c˘ solutia obtinut˘ a
            a
minimizeaz˘ reziduul

                                    R = Ax − b      2   ,                           (5.84)

adic˘ vectorul x satisface cel mai bine (5.2) ˆ sensul celor mai mici p˘trate.
    a                                         ın                        a
   ˆ cazul ˆ care matricea A este aproape singular˘, unul sau mai multe
   In        ın                                          a
                                   ın                   ın            a
elemente wi au valori foarte mici ˆ modul. Spunem ˆ acest caz c˘ matricea
  6 Spunem   ın           a                                  a
             ˆ acest caz c˘ matricea A este aproape singular˘.
  7 Initialele
       ¸                                                  a
              SV D provin de la cuvintele din limba englez˘ Singular Value Decomposition.
5.1. Metode directe                                                             135


        a       ¸       a    a           ¸
A este r˘u conditionat˘. Num˘rul de conditionare al matricei A poate fi definit
                  s
de raportul (vezi ¸i (5.64))

                               µ(A) = wmax /wmin ,                            (5.85)

unde

                       wmax = max |wi |, wmin = min |wi | .                   (5.86)

      a       a            ¸                              a
Cu cˆt num˘rul de conditionare este mai mare, cu atˆt matricea A este mai r˘u     a
       ¸     a
conditionat˘ (vezi paragraful 5.1.8), iar una sau mai multe ecuatii sunt foarte
                                                                       ¸
                s            ¸                            ¸
aproape de ni¸te combinatii liniare ale celorlate ecuatii. Metodele de eliminare,
        s                  a       s ın
chiar ¸i cu pivotare total˘, pot e¸ua ˆ astfel de cazuri. Folosind descompunerea
             ¸      ¸   a                   a             ¸
(5.80), solutia obtinut˘ (5.83) este efectat˘ de prezenta elemetelor wi foarte mici
ın                                                                a ın
ˆ modul. O modalitate de a evita astfel de probleme const˘ ˆ renuntarea la  ¸
      ¸                                  s             ¸                          ¸
ecuatiile care sunt foarte aproape de ni¸te combinatii liniare ale celorlate ecuatii
  s                             ¸
(¸i deci care nu aduc informatii suplimentare), ceea ce ce se poate realiza prin
ınlocuirea cu zero a elementelor 1/wi foarte mari ˆ modul. Se obtin astfel solutii
ˆ                                                   ın               ¸            ¸
                                                  a                  ¸    ¸
care au reziduul R dat de (5.84) mai mic decˆt cel dat de solutia obtinut˘ cu   a
                        a
valorile 1/wi ce rezult˘ din descompunerea (5.80).
                     ın          a            ¸                       a
    Pentru cazul ˆ care num˘rul de ecuatii este mai mic decˆt num˘rul de     a
necunoscute (m < n), se poate obtine o solutie particular˘ ad˘ugˆnd n − m
                                      ¸           ¸             a a a
linii de zerouri ˆ matricea A obtinˆnd o matrice p˘trat˘ n × n, efectuˆnd apoi
                  ın               ¸ a                  a   a              a
descompunerea (5.80) ¸i ˆs ınlocuind cu zero termenii 1/wi ce corespund valorilor
          ın
wi mici ˆ modul.
                                                   a             ın
    Tehnica descompunerii (5.80) are implement˘ri puternice ˆ toate bibliotecile
                                                ¸                             ¸
matematice de rezolvare a sistemelor de ecuatii liniare. Algoritmii folositi sunt
                  ¸     as                       a              ¸ ın
relativ sofisticati, dep˘¸ind cadrul acestei lucr˘ri, fiind folositi ˆ cazurile dificile
                                  s a         ¸
ale sistemelor cu matrice mari ¸i r˘u conditionate.

5.1.11      Sisteme cu matrice rare
ˆ practic˘ apar deseori sisteme mari a c˘ror matrice prezint˘ foarte multe ele-
In         a                               a                     a
mente nule. Astfel de matrice se numesc matrice rare. Aplicarea metodelor de
            ın                                      a   a
eliminare ˆ forma standard devine neeconomic˘, atˆt din punct de vedere al
                     a s
timpului de calcul cˆt ¸i din punct de vedere al memoriei utilizate. Se utilizeaz˘a
ın                                           ın       a         a
ˆ acest scop tehnici speciale de memorare ˆ form˘ compact˘ a elementelor ne-
                            s                               a
nule ale matricei, precum ¸i metode de ordonare care urm˘resc, prin intermediul
              ¸                                a
unor secvente de pivotare, minimizarea num˘rului de elemente nenule nou cre-
    ın                                                          a
ate ˆ procesul de eliminare. Ne propunem descrierea sumar˘ a principiilor care
                                                                 a   ¸ a
stau la baza lucrului cu matrice rare, o prezentare mai am˘nuntit˘ dep˘¸ind  as
                a¸
cadrul acestei c˘rti.
    Majoritatea metodelor utilizate pentru rezolvarea sistemelor cu matrice rare
sunt metode de eliminare de tip Gauss sau metode de factorizare LU , la care
         a       ¸            a                  ın            s a
se acord˘ o atentie deosebit˘ elementelor nule ˆ scopul mic¸or˘rii volumului de
       s                                          as
calcul ¸i a memoriei utilizate. Aplicarea eficient˘ ¸i cu succes a metodelor directe
ın                                                      a              a
ˆ rezolvarea sistemelor cu matrice rare depinde de cˆt de “ordonat˘” (simpl˘)    a
136                                          5. Rezolvarea sistemelor liniare




                   Figura 5.1: Forme speciale de matrice rare.


este structura matricei. ˆ bibliotecile matematice sunt implementate tehnici
                              In
            a                          s
de analiz˘ a structurii matricei ¸i de transformare a acesteia ˆ                      a
                                                                       ıntr-o structur˘
                        a                  a                s       s
suficient de ordonat˘. Aceste prelucr˘ri au ca rezultat ¸i o cre¸tere a num˘rului a
           ¸
de conditionare a matricei, efect nedorit care se poate ameliora prin echilibrarea
(scalarea) matricei, tehnic˘ descris˘ la paragraful 5.1.3.
                               a         a
    ˆ figura 5.1 sunt reprezentate principalele forme speciale de matrice rare.
     In
                                           a                      ¸
Aceste forme speciale au avantajul c˘ permit evitarea aparitiei elementelor ne-
       ın                   s
nule ˆ afara zonelor ha¸urate.
                                    a         a ın
     Sistemele cu matrice band˘ rezult˘ ˆ general din discretizarea ecuatiilor    ¸
                   ¸                                                   a
cu derivate partiale. Un caz simplu al matricelor de tip band˘ a fost descris
la interpolarea cu functii spline cubice, paragraful 1.1.2. Pentru sistemele cu
                           ¸
                 a
matrice band˘, metodele directe de eliminare sau factorizare se dovedesc ˆ           ın
                              ¸              ın
general eficiente, cu exceptia cazurilor ˆ care dimensiunea sistemului este foarte
          a                 a
mare, cˆnd se recomand˘ metodele iterative sau combinatii ˆ   ¸ ıntre metode directe
s
¸i iterative.
                           a                 ın                     a
     Problema principal˘ care se pune ˆ cazul matricei band˘ este memorarea
  a                a                              a   a
cˆt mai eficient˘ a acesteia. Cea mai simpl˘ schem˘ de memorare a unei matrice
simetrice cu l˘¸imea benzii egal˘ cu 2b − 1 (figura 5.1) cu elementele ai,j = 0
                 at                   a
pentru |i − j| ≥ b, const˘ ˆ memorarea doar a elementelor de pe diagonala
                               a ın
principal˘ ¸i a celor de sub ea (j ≤ i), avˆnd nevoie de un vector v de dimensiune
            as                                 a
n + (n − 1) + . . . + (n − b + 1) = b(2n − b + 1)/2. ˆ cazul ˆ care memor˘m
                                                         In         ın              a
                                                 a ın                     ¸
matricea pe linii, elementul ai,j se va g˘si ˆ vectorul v pe pozitia k = [1 +
2 + . . . + (i − 1)] + j = i(i − 1)/2 + j dac˘ i ≤ b. Dac˘ i > b, vom avea
                                                    a             a
1 + 2 + . . . + b = b(b + 1)/2 elemente pe primele b linii, apoi b(i − b − 1) elemente
5.1. Metode directe                                                                            137


pˆn˘ la linia i − 1 inclusiv ¸i j − (i − b) elemente pe linia i, deci elementul ai,j se
  a a                             s
va g˘si pe pozitia (b − 1)i − b(b − 1)/2 + j. ˆ cazul matricelor mari care contin
      a             ¸                              In                                ¸
                              ın
multe elemente nule ˆ interiorul benzii, se pot folosi scheme adecvate care s˘         a
memoreze numai elementele nenule.
                                                                  a
    Pentru memorarea unei matrice inferior triunghiular˘ este nevoie de un vec-
                                                                         a
tor v de dimensiune 1 + 2 + . . . + n = n(n + 1)/2 elemente. Dac˘ matricea este
  a      a                                               ın
p˘strat˘ pe linii, elementele ei sunt memorate ˆ ordinea a1,1 , a2,1 , a2,2 , a3,1 ,
a3,2 , a3,3 , a4,1 . . . , elementul ai,j avˆnd ˆ vectorul v pozitia i(i − 1)/2 + j.
                                             a ın                   ¸
                                                                a
    Pentru memorarea unei matrice rare oarecare exist˘ mai multe tehnici dintre
                                                       a
care amintim: memorare prin identificare binar˘, memorare compact˘ aleatoare,a
                           a           a
memorare compact˘ sistematic˘, memorare prin utilizarea adreselor ˆ antuite, ınl˘ ¸
s                a              a                               a
¸.a. De regul˘, o tehnic˘ de memorare care minimizeaz˘ capacitatea de memorie
         a a s               ¸                                 s
utilizat˘ pl˘te¸te pretul unui timp mai mare de calcul ¸i viceversa. Pentru exem-
                       a                  a
plificare, prezent˘m pe scurt dou˘ tehnici: memorare prin identificare binar˘ ¸i       as
                           a           a
memorare compact˘ sistematic˘. Vom folosi ca exemplu matricea
                                                                 
                                     a1,1 0 a1,3      0      0
                                   0       0   0     0      0 
                               A= 0
                                                                  .              (5.87)
                                            0 a3,3    0     a3,5 
                                     a4,1 0     0   a4,4     0
                       a            a             a       a ın
Matricea se memoreaz˘ folosind dou˘ zone: o zon˘ primar˘ ˆ care sunt memo-
                                      s       a         a ın           a
rate elementele nenule ale matricei A ¸i o zon˘ secundar˘ ˆ care sunt p˘strate
        ¸             a
informatii necesare g˘sirii rapide a acestora. Ambele tehnici folosesc o zon˘a
       a            a
primar˘ reprezentat˘ de vectorul
                           v = (a1,1 , a1,3 , a3,3 , a3,5 , a4,1 , a4,4 ).                 (5.88)
    ˆ cazul memor˘rii prin identificare binar˘, zona secundar˘ se bazeaz˘ pe
    In             a                           a                a         a
             a
natura binar˘ a sistemului de calcul. Pentru fiecare element ai,j al matricei A
             a     a      a       a          s       a
se memoreaz˘ o cifr˘ binar˘: 0 dac˘ ai,j = 0 ¸i 1 dac˘ ai,j =0. Pentru matricea
                     a         a
(5.87), zona secundar˘ va fi dat˘ de succesiunea de cifre binare
      1   0   1   0   0     0   0   0    0    0    0   0    1    0    1      1   0 0   1 0 .
       a       a        a                          a          a
Aceast˘ schem˘ necesit˘ calcule complicate (care s˘ permit˘ accesul la bit)
                        ¸
pentru identificarea pozitiei elementelor matricei.
   ˆ cazul memor˘rii compacte sistematice, avem dou˘ zone secundare, prima
   In              a                                 a
ın                   a                 a
ˆ care se memoreaz˘ indicii de coloan˘ ck al elementului vk , iar cea de a doua
ın                   a                   a
ˆ care se memoreaz˘ indicele de coloan˘ fi al primului element nenul din fie-
                                           a ın                          a
care linie. Pentru matricea (5.87) memorat˘ ˆ vectorul (5.88), cele dou˘ zone
secundare sunt
                          c = (1, 3, 3, 5, 1, 4), f = (1, 3, 3, 1, 3) .                    (5.89)
Num˘rul de elemente nenule de pe linia i este dat de fi+1 − fi . Avem deci
     a
3 − 1 = 2 elemente nenule pe prima linie, 3 − 3 = 0 elemente nenule pe linia
        s                           a                a                  ¸
a doua, ¸.a.m.d. Schema prezentat˘ nu este potrivit˘ extragerii informatiilor
                                                          a ın
asupra coloanelor matricei A, dar se poate concepe o schem˘ ˆ acest sens.
138                                         5. Rezolvarea sistemelor liniare


5.2      Metode iterative
                                 a          a          ¸          s
Metodele de eliminare comport˘ un num˘r de operatii care cre¸te la sistemele
mari, cu cubul num˘rului de ecuatii din sistem, O(n3 ). Operatii suplimentare
                      a              ¸                           ¸
                  a           ¸     ın
sunt cerute de c˘utarea pivotilor, ˆ vederea reducerii erorilor de rotunjire. Me-
                                          a                  ¸          ¸
todele iterative pot conduce la un num˘r mai mic de operatii pe iteratie. Dac˘  a
                                                                 ¸
procedeul iterativ este suficient de rapid convergent se poate obtine o economie
important˘ de timp de calcul. ˆ plus, metodele iterative permit mentinerea
           a                      In                                       ¸
              ¸                                a
structurii initiale a unei matrice rare, rezultˆnd un consum redus de memorie.
    Principiul general al metodelor iterative poate fi prezentat prin analogie cu
                                                          ¸                ın
metoda iteratiei simple (vezi 3.2.1) de rezolvare a ecuatiei F (x) = 0, ˆ care
              ¸
     ¸           a              a
ecuatia original˘ este transcris˘ ca

                                     x = f (x) ,                             (5.90)

ce conduce la procedeul iterativ

                                   xk+1 = f (xk ) .                          (5.91)

ˆ cazul sistemelor liniare, Ax = b vom forta o descompunere a matricei A
In                                        ¸

                                 A=A+B−B                                     (5.92)

s                            a                        ¸
¸i vom scrie forma echivalent˘ a sistemului liniar initial

                             Bx = c ≡ (B − A)x + b .                         (5.93)

                                                                      a      ¸
Analog iteratiei simple, vom considera relatia (5.93) ca o procedur˘ de obtinere a
               ¸                              ¸
                 ¸ ımbun˘t˘¸ite a solutiei sistemului x(k+1) , dat˘ fiind o aproximatie
unei aproximatii ˆ      a at          ¸                           a                ¸
initial˘ x(k) ,
   ¸ a

                           Bx(k+1) = (B − A)x(k) + b .                       (5.94)

                                     ıncˆ
Descompunerea (5.92) se alege astfel ˆ at:

  1. ¸irul aproximatiilor {x(k) }k∈N s˘ fie cˆt mai rapid convergent c˘tre solutia
     s             ¸                  a     a                        a        ¸
     sistemului Ax = b;
                      a     s
  2. sistemul Bx = c s˘ fie u¸or de rezolvat.

5.2.1                    a
          Metoda iterativ˘ Jacobi
               a              s
Metoda iterativ˘ Jacobi folose¸te descompunerea

                                   A=D−C,                                    (5.95)

                              a              a              a
unde D este o matrice diagonal˘, ce trebuie s˘ fie nesingular˘ det D = 0. Siste-
mul Ax = b devine

                     Dx = Cx + b ⇒ x = D−1 C x + D−1 b,                      (5.96)
5.2. Metode iterative                                                                                            139


s        a
¸i rezult˘ procesul iterativ

     x(k+1) = P x(k) + d;          P ≡ D−1 C;                   d ≡ D−1 b;                k = 0, 1, . . . ,    (5.97)

pentru pornirea c˘ruia este nevoie de specificare unei aproximatii initiale x(0) .
                 a                                            ¸      ¸
                   s                     a
Matricea P se nume¸te matricea rezolvant˘ a sistemului.
                                                  a                ın
   Matricea D poate fi chiar diagonala principal˘ a matricei A, ˆ care caz
exprimarea pe componente a procedeului este
                            i−1                         n
          (k+1)                             (k)                          (k)
        xi        = (bi −         ai,j xj         −             ai,j xj )/ai,i , i = 1, n ,                    (5.98)
                            j=1                       j=i+1

                                                    a ın
cu ai,i = 0. O generalizare a procedeului const˘ ˆ separarea elementelor de pe
                   a                                      a
diagonala principal˘ ai,i = ai,i + ai,i , ai,i = 0, rezultˆnd procedeul
                                      i−1                           n
     (k+1)                  (k)                       (k)                           (k)
   xi        = (bi − ai,i xi      −         ai,j xj         −             ai,j xj )/ai,i , i = 1, n .          (5.99)
                                      j=1                       j=i+1

                a          ın         ¸ s
    Va trebui s˘ stabilim ˆ ce conditii ¸irurile (5.98) sau (5.99) converg spre
    ¸                                                ¸           a             ¸a
solutia sistemului Ax = b. Pentru a determina o conditie suficient˘ de convergent˘,
vom nota cu x solutia exact˘ ¸i cu e(k) eroarea ˆ aproximatia k
                    ¸        as                 ın          ¸

                                            e(k) = x − x(k) .                                                 (5.100)

F˘cˆnd diferenta ecuatiilor (5.96) ¸i (5.97), se obtine imediat
 a a          ¸      ¸             s               ¸

                                             e(k+1) = P e(k)                                                  (5.101)

sau, trecˆnd la norme ¸i notˆnd cu e(0) eroarea initial˘
         a            s     a                      ¸ a
                                                  2                                           k
     e(k+1) ≤ P · e(k) ≤ P                            · e(k−1) ≤ . . . ≤ P                        · e(0) .    (5.102)

ˆ consecint˘, o conditie suficient˘ de convergent˘ a procedeului iterativ Jacobi
In         ¸a        ¸           a             ¸a
                                   a             a
este ca norma matricei rezolvante s˘ fie subunitar˘

                                                      P ≤ 1.                                                  (5.103)

                              a                                  a
Desigur, matricea rezolvant˘ P depinde de matricea D extras˘ din A. Este
                            a                               ıncˆ
avantajos, prin urmare, s˘ facem descompunerea astfel ˆ at P s˘ fie cˆt a      a
mai mic˘. ˆ mod uzual, se extrage ˆ
         a In                                             a
                                       ıntreaga diagonal˘ a matricei A, adic˘   a
se utilizeaz˘ ¸irul (5.98). ˆ acest caz, ˆ
            a s             In                            a                 ¸
                                         ındeplinirea oric˘reia dintre conditiile
    a                    a                           ¸
urm˘toare este suficient˘ pentru a asigura convergenta procedeului Jacobi:

                     ¸
 (a) diagonal-dominanta matricei A pe linii
                                       i−1                      n
                          |ai,i | >          |ai,j | +                  |ai,j | ,     i = 1, n ;              (5.104)
                                       j=1                  j=i+1
140                                                        5. Rezolvarea sistemelor liniare


                           ¸
       (b) diagonal-dominanta matricei A pe coloane
                                         j−1                n
                           |aj,j | >           |ai,j | +            |ai,j | ,   j = 1, n ;     (5.105)
                                         i=1               i=j+1

                            ¸
       (c) satisfacerea relatiei
                                                                                   
                           n       i−1                          n
                                        (ai,j /ai,i )2 +             (ai,j /ai,i )2  < 1 .   (5.106)
                       i=1         j=1                      j=I+1


         ¸                        ¸         a                        a
    Conditiile (5.104-5.106) se obtin utilizˆnd respectiv norma maxim˘, norma
  s                  a                            a
1 ¸i norma euclidian˘ pentru matricea rezolvant˘ P (vezi paragraful 5.4).
                                     a
    Procedeul Jacobi (5.98) se aplic˘ prin algoritmul
      i=1:n
        
           dac˘ |ai,i | < δ atunci Termen diagonal practic nul; stop.
              a
         m ← 1/ai,i ; bi ← m bi
        
         j=1:n
             [dac˘ i = j atunci ai,j ← m ai,j
                  a
      xvechi ← x0 ; k ← 0;
         a
      repet˘
           i=1:n
                                                                                              (5.107)
        
               s ← bi
          j=1:n
         
         
                  [dac˘ i = j atunci s ← s − ai,j xvechij
                        a
        
               xnoui ← s
         AtinsPrecizie ← xnou − xvechi ≤ ε (1 + xnou )
           xvechi ← xnou; k ← k + 1
       a a a
      pˆn˘ cˆnd AtinsPrecizie sau k > kmax
  a                   a                      s a             s
M˘rimea δ este un num˘r mic, tipic epsilon ma¸in˘, ce stabile¸te un prag pentru
                                              a       ¸
elementele diagonale. Acolo unde se efectueaz˘ operatii identice asupra tutu-
ror elementelor unui vector nu vom mai transcrie explicit bucla de parcugere
a indicilor. Spre exemplu, prin xvechi ← xnou ˆ algoritmul de mai sus se
                                                  ın
    ınt
subˆ ¸elege
                                     j=1:n
                                                         .                                     (5.108)
                                      [xvechij ← xnouj .

5.2.2                       a
             Metoda iterativ˘ Gauss-Seidel
ˆ aceast˘ metod˘, ideea const˘ ˆ a folosi noile valori ale componentelor vecto-
In       a        a           a ın
rului necunoscutelor x(k+1) imediat ce au fost calculate. Sirul de iteratii (5.98)
                                                          ¸             ¸
   ınlocuie¸te cu
se ˆ       s
                           i−1                         n
         (k+1)                            (k+1)                        (k)
        xi       = (bi −         ai,j xj          −           ai,j xj )/ai,i , i = 1, n.       (5.109)
                           j=1                        j=i+1
5.2. Metode iterative                                                                       141


     ¸
Relatia (5.109) corespunde la descompunerea matricei A ˆ    ıntr-o matrice diago-
   a            a                                          a s
nal˘, nesingular˘ D, o matrice strict inferior triunghiular˘ T ¸i o matrice strict
                     a
superior triunghiular˘ S

                                       A=D−T −S.                                         (5.110)

Matricele T, S au elementele diagonale nule. Procedeul iterativ este

         Dx(k+1) = b + T x(k+1) + Sx(k) ⇒ x(k+1) = P x(k) + d ,                          (5.111)

cu P ≡ (D − T )−1 S, d ≡ (D − T )−1 b. Conditia de convergent˘ este, ca ¸i la
                                             ¸               ¸a         s
                                               a             a
metoda Jacobi, ca norma matricei rezolvante P s˘ fie subunitar˘

                               P < 1 ⇒ (D − T )−1 S < 1 .                                (5.112)

Evaluarea inversei (D − T )−1 este costisitoare, necesitˆnd O(n3 /6) operatii, ast-
                                                        a                 ¸
    ıncˆ        a      ¸                            ¸a
fel ˆ at se caut˘ conditii mai simple de convergent˘ a procedeului Gauss-Seidel.
                         a                                     a
Una dintre ele este: dac˘ matricea A este diagonal-dominant˘ pe linii, (5.104),
                                              ¸         a
atunci metoda Gauss-Seidel converge cel putin tot atˆt de rapid ca metoda Ja-
                                        ¸                  a           ¸
cobi. Pentru transcrierea acestei conditii vom folosi urm˘toarele notatii
                           i−1                                n
                    pi ≡         |ai,j /ai,i | ,    qi ≡               |ai,j /ai,i | .   (5.113)
                           j=1                              j=i+1

     ¸                      ¸a
Conditia de diagonal-dominant˘ pe linii a matricei A revine la a scrie

                               ri ≡ pi + qi < 1,            i = 1, n .                   (5.114)

 a            a    ¸           ın            ¸                    ¸
S˘ demonstr˘m enuntul anterior ˆ aceste conditii. Sistemul de ecuatii Ax = b
se scrie sub forma
                                i−1                 n
                xi = (bi −            ai,j xj −            ai,j xj )/ai,i , i = 1, n     (5.115)
                                j=1                j=i+1

                                         s              s                      a a
cu xi valorile exacte ale necunoscutelor ¸i ai,i presupu¸i nenuli (ai,i = 0). F˘cˆnd
sc˘derea membru cu membru a sistemelor de egalit˘¸i (5.115) ¸i (5.109), se
  a                                                       at            s
  ¸
obtine
                         i−1                                   n
            (k+1)              ai,j        (k+1)          ai,j        (k)
     xi − xi        =−              (xj − xj     )−            (xj − xj ) ,              (5.116)
                         j=1
                               ai,i                 j=i+1
                                                          ai,i

            a   a ın
sau, observˆnd c˘ ˆ (5.116) au ap˘rut componentele vectorului eroare absolut˘
                                 a                                          a
s      a
¸i trecˆnd la module
                                   i−1                             n
                     (k+1)               ai,j (k+1)         ai,j (k)
                    ei         ≤              ej    +           e                        (5.117)
                                   j=1
                                         ai,i         j=i+1
                                                            ai,i j
142                                             5. Rezolvarea sistemelor liniare


                            a ın                    a              a
Inegalitatea poate fi majorat˘ ˆ continuare, introducˆnd norma maxim˘ a vec-
torului eroare,
                                                        (k)
                                e(k)        = max ej              .                   (5.118)
                                        ∞       j

ˆ acest fel, utilizˆnd ¸i notatiile (5.113), se obtine
In                 a s        ¸                   ¸
                        (k+1)
                      ei        ≤ pi e(k+1)         + qi e(k)             .           (5.119)
                                                ∞                     ∞

                               a a                                   a a s
Inegalitatea (5.119), fiind adev˘rat˘ pentru orice i = 1, n, este adev˘rat˘ ¸i
                 ∗              (k+1)
pentru acel i = i pentru care |ei     | este maxim. Deci:

                   e(k+1)       ≤      pi e(k+1)        + qi e(k)             ⇒       (5.120)
                            ∞                       ∞                     ∞
                                          ∗
                                         qi
                   e(k+1)       ≤               e(k)          .                       (5.121)
                            ∞          1 − p∗
                                            i            ∞


         a              a        ¸                  a
Pe de alt˘ parte, utilizˆnd conditia (5.114), rezult˘
                       ∗
                      qi    r∗ − qi∗        ∗
                                      r∗ − ri p∗    ∗
                           = i       ≤ i       i
                                                 = ri < 1 .                           (5.122)
                    1 − p∗
                         i   1 − p∗
                                  i     1 − p∗
                                             i

          ın                      ¸
Deoarece, ˆ cazul diagonal-dominantei matricei A, cantitatea r = max ri re-
                                                                                  i
         a                         a
prezint˘ tocmai norma maxim˘ a matricei rezolvante a procedeului Jacobi,
(r ≡ PJ ) din (5.121) rezult˘ c˘ rata de mic¸orare a erorii de la o aproximatie
                                a a            s                              ¸
                       a                   a          a
la alta este mai mic˘ sau cel mult egal˘ cu r, adic˘ procedeul Gauss-Seidel
                 ¸          a
converge cel putin tot atˆt de rapid ca procedeul Jacobi.
                   ¸               a    ın       a
     Pentru aplicatii se recomand˘ ca, ˆ cazul cˆnd matricea A este dominant˘   a
                                                            ın
pe linii, s˘ se ia startul cu ecuatia i = i1 din (5.109) ˆ care se realizeaz˘
             a                       ¸                                          a
           ¸         a                                            a
dominanta maxim˘ a elementului diagonal. Prima necunoscut˘ calculat˘ va fi   a
xi1 . ˆ acest fel, se realizeaz˘ reducerea maxim˘ a erorii la start, deoarece
      In                       a                 a

                            pi1 = 0,    qi1 = ri1 = minim .                           (5.123)

ˆ continuare, pot fi ordonate celelalte ecuatii dup˘ gradul de dominant˘ a
In                                            ¸      a                     ¸a
elementelor diagonale. ˆ cazul cˆnd matricea are elementele dominante pe
                         In         a
coloane (5.105), procedeul Gauss-Seidel este de asemenea convergent.
         a s            ¸ ın
    Exist˘ ¸i alte conditii ˆ care procedeul este convergent. Un alt criteriu,
                         ¸        a      ¸                               a    a
important pentru aplicatii, este c˘ iteratia Gauss-Seidel este convergent˘ dac˘
                         as                 a
matricea A este simetric˘ ¸i pozitiv definit˘.
5.2. Metode iterative                                                          143


   Algoritmul pentru procedeul Gauss-Seidel este
        xvechi ← x0 ; xnou ← x0 ; k ← 0;
           a
        repet˘
             i=1:n
               
          
                s ← bi
            j=1:n
                                                                          (5.124)
           
                   [dac˘ i = j atunci s ← s − ai,j xnouj
                        a
          
                xnoui ← s
           AtinsPrecizie ← xnou − xvechi ≤ ε (1 + xnou )
             xvechi ← xnou; k ← k + 1
         a a a
        pˆn˘ cˆnd AtinsPrecizie sau k > kmax .

                                                                           s ın
Se observ˘ asem˘narea cu algoritmul pentru metoda Jacobi (5.107). Ca ¸i ˆ acel
          a      a
                          a                   s                           ımp˘ ¸
algoritm s-a considerat c˘ liniile matricei A ¸i ale vectorului b au fost ˆ artite
                            a                                        ın
la termenii de pe diagonal˘.Vectorul xvechi este utilizat numai ˆ conditia de ¸
                     ¸
stabilire a convergentei.

5.2.3                          ¸
          Accelerarea convergentei metodelor iterative
                        ¸                                     a     a
Accelerarea convergentei procedeelor iterative este posibil˘ dac˘ avem informa-
¸ii privind valorile proprii ale matricei rezolvante. ˆ
t                                                               a       ¸          a
                                                      Intr-adev˘r, conditia necesar˘
s           a                         a         a a                a
¸i suficient˘ pentru ca orice metod˘ iterativ˘ s˘ fie convergent˘ este

                               ρ(P ) = max |λi | < 1                        (5.125)
                                         i

unde λi , i = 1, n sunt valorile proprii ale matricei P . Valoarea proprie maxim˘a
ın                    a              as            a                           a
ˆ modul este numit˘ raza spectral˘ ¸i se noteaz˘ cu ρ(P ). Dificultatea aplic˘rii
                       a ın         a ın                              a
acestui criteriu const˘ ˆ faptul c˘, ˆ general, problema determin˘rii valorilor
                                              a     a                 a
proprii ale unei matrice este mai complicat˘ decˆt problema rezolv˘rii sistemu-
                                  a ¸
lui Ax = b. De aceea, se caut˘ obtinerea unor metode de accelerare care s˘       a
         a                      a                          a            ¸
ocoleasc˘ problema determin˘rii valorilor proprii, utilizˆnd informatii minime.
             a
Vom da dou˘ exemple.

Cazul matricelor pozitiv definite.
     a                a
Exist˘ sisteme ale c˘ror matrice A sunt cunoscute ca fiind pozitiv definite (de
       s                  a a                                                 as
obicei ¸i simetrice), adic˘ avˆnd valorile proprii pozitive. Fie m cea mai mic˘ ¸i
M cea mai mare valoare proprie (M > m > 0). Aceste valori (vezi Cap. 6) se
          a       s
determin˘ mai u¸or.
             s s              ¸
   Se define¸te ¸irul de iteratii

               x(k+1) = x(k) + β(b − Ax(k) ) = (I − βA)x(k) + βb ,          (5.126)

            s                    a                             ¸        ¸
care aminte¸te de tehnica folosit˘ pentru accelerarea convergentei iteratiei sim-
                              a
ple (3.19). Matricea rezolvant˘ este

                        P = I − βA,     λ(P ) = 1 − βλ(A)                   (5.127)
144                                                  5. Rezolvarea sistemelor liniare


  a                              ¸
avˆnd valorile proprii λ(P ) functii de parametrul de accelerare β. Valoarea
minim˘ a lui max |λ(P )| se obtine pentru
     a                        ¸
                                   2                         M −m
                          β=          ,          ρ(P ) =          <1                            (5.128)
                                  m+M                        M +m
s                a                                    a        ¸
¸i este subunitar˘ pentru orice M, m > 0. Se observ˘ importanta raportului
                       ¸                                           a
M/m pentru convergenta procedeului iterativ. Acest raport reprezint˘ o evalu-
           a             ¸
are a num˘rului de conditionare al matricei A, notat µ(A).

                     ¸
Accelerarea convergentei procedeului Gauss-Seidel.
Sirul iterativ (5.126) se poate generaliza introducˆnd o matrice B, u¸or inver-
¸                                                  a                 s
     a         ıncˆ
sabil˘, astfel ˆ at

           x(k+1) = x(k) + βB(b − Ax(k) ) = (I − βBA)x(k) + βBb .                               (5.129)

           s                              ıncˆ                   a
Matricea B ¸i parametrul β se aleg astfel ˆ at matricea rezolvant˘ a sistemului
(5.129),

                                       P = I − βBA ,                                            (5.130)

 a    a        a       a         a         a            a a ın
s˘ aib˘ o raz˘ spectral˘ ρ(P ) cˆt mai mic˘. Se observ˘ c˘, ˆ cazul procedeului
Jacobi (5.97), se obtine β = 1 ¸i B = D−1 . Din punctul de vedere al aplicatiilor,
                     ¸         s                                              ¸
           a       a   a                                 ¸          ın
este util s˘ observ˘m c˘ procedeele de accelerare a iteratiilor iau ˆ calcul o parte
convenabil˘ din elementul de pe diagonala principal˘ (vezi 5.99). Spre exemplu,
             a                                        a
ın                              s            ¸
ˆ cazul metodei Gauss-Seidel ¸irul de iteratii (5.109) se ˆ          s
                                                             ınlocuie¸te prin
                                           i−1                          n
       (k+1)              (k)                           (k+1)                       (k)
      xi       = (1 − β)xi      + β(bi −         ai,j xj          −            ai,j xj )/ai,i   (5.131)
                                           j=1                         j=i+1

pentru i = 1, n. Din punct de vedere matriceal, (5.131) este echivalent˘ cu
                                                                       a
descompunerea matricei A sub forma

                             A = β −1 D − (β −1 − 1)D − T − S .                                 (5.132)

Comparˆnd (5.132) cu (5.110) se observ˘ c˘ singura modificare este reˆmp˘r-
        a                               a a                             a a
t                                   ¸     ¸                 ¸
¸irea diagonalei matricei A, o operatie putin costisitoare. Sirul iterativ va fi
definit acum sub forma

               Dx(k+1) = (1 − β)Dx(k) + β(T x(k+1) + Sx(k) + b) ,                               (5.133)

              ınmultire cu D−1 , se obtine
de unde, prin ˆ    ¸                  ¸

            x(k+1) = (1 − β)x(k) + βD−1 (T x(k+1) + Sx(k) + b) ,                                (5.134)

expresie echivalent˘ cu (5.131). Explicitˆnd x(k+1) din (5.134) se obtine
                   a                     a                           ¸

                x(k+1)   =      (I − βD−1 T )−1 (1 − β)I + βD−1 S x(k+1)                        (5.135)
                                           −1      −1        −1
                                +(I − βD        T)      βD        b,
            ¸ ıntre metode
5.3. Comparatii ˆ                                                            145


                  a a
matricea rezolvant˘ avˆnd expresia

                      P = (D − βT )−1 [(1 − β)D + βS] .                   (5.136)

                                    a s                     a
Pentru β = 1, din (5.136) se reg˘se¸te matricea rezolvant˘ a metodei Gauss-
                           ¸          a              ¸a s
Seidel standard. O conditie necesar˘ de convergent˘ a ¸irului iterativ (5.135)
este ca produsul valorilor proprii ˆ modul s˘ fie subunitar. ˆ acest fel se obtine
                                   ın       a               In               ¸
intervalul de valori ale parametrului de accelerare β

                                   0 < β < 2.                             (5.137)

                         a
Metodele care utilizeaz˘ 0 < β < 1 se numesc metode de subrelaxare, iar meto-
dele cu 1 < β < 2 se numesc metode de suprarelaxare. ˆ lipsa altor informatii
                                                         In                     ¸
                                                                     ıncerc˘ri.
privind valorile proprii ale matricei P , parametrul β se alege prin ˆ     a


5.3            ¸ ıntre metode
        Comparatii ˆ
                                              a
Am prezentat o serie de algoritmi din cele dou˘ clase mari de metode: de
          s              a       a                 ¸ ıntre cele dou˘ clase
eliminare ¸i iterative. S˘ efectu˘m acum o comparatie ˆ            a
de metode.

      a          ¸
Ca num˘r de operatii.
Oricare din metodele iterative prezentate necesit˘ O(n2 ) operatii aritmetice per
                                                  a             ¸
     ¸                                                            a     a
iteratie. Prin urmare, metodele iterative devin avantajoase dac˘ num˘rul k de
     ¸                                                ¸
iteratii nu este prea mare. Spre exemplu, o comparatie cu metoda de eliminare
                              a                          a
Gauss conduce la concluzia c˘, pentru a avea un num˘r apropiat de operatii,   ¸
                     a           ¸     a         a
este necesar ca num˘rul de iteratii k s˘ satisfac˘ inegalitatea

                              k ≤ 1 + n/3 ∼ n/3 .
                                          =                               (5.138)

                               a       s            a        a     a           ¸
Inegalitatea (5.138) este cu atˆt mai u¸or de satisf˘cut cu cˆt num˘rul de ecuatii
                                 ¸                       a
n este mai mare. Practic, conditia (5.138) se realizeaz˘ pentru n & 50.

Ca propagare a erorilor.
                          ın
Metodele iterative sunt, ˆ general, mai avantajoase, deoarece erorile sunt di-
minuate la fiecare pas prin ˆ       ¸
                             ınmultirea cu norma matricei rezolvante, care este
           a
subunitar˘ ( P < 1). De fapt, rata de diminuare a erorii corespunde razei
                                          a               ¸
spectrale a matricei rezolvante. Totodat˘, la fiecare iteratie se introduc erori de
rotunjire.
    S˘ consider˘m c˘ dorim s˘ obtinem un rezultat cu q zecimale exacte. ˆ
     a          a    a         a ¸                                              In
                                 ¸          ıncˆ ın      ¸
acest scop sunt necesare k iteratii, astfel ˆ at, ˆ absenta erorilor de rotunjire,
se obtine (vezi 5.102)
     ¸
                                      k
                          e(k) ≤ P        · e(0) ≤ 10−q ,                 (5.139)
146                                        5. Rezolvarea sistemelor liniare


e(0) fiind eroarea de start. Logaritmˆnd a doua inegalitate ˆ baza 10, rezult˘
                                    a                      ın               a

                           k lg P + lg e(0) ≤ −q .                         (5.140)

                  ¸           ¸             a            ¸
Prin urmare, se obtine o conditie pentru num˘rul de iteratii k

                   k ≥ − q + lg e(0)       / lg P ,    P < 1.              (5.141)

        a a        a           ¸            s                      a
Rezult˘ c˘ num˘rul de iteratii necesar cre¸te cu precizia impus˘ q, cu eroarea
initial˘ e(0) ¸i scade cu − lg P . Dac˘ se adaug˘ ¸i efectul erorilor de rotunjire,
   ¸ a        s                       a          as
marginea (5.141) trebuie majorat˘.  a
    Deoarece e(0) nu se cunoa¸te, se pot utiliza evalu˘ri obtinute cu ajutorul
                                  s                     a      ¸
unor prime iteratii. ˆ
                   ¸ Intr-adev˘r, din inegalitatea (5.139) se poate obtine
                                 a                                     ¸

                α                   αk
      e(k) ≤       x(k) − x(k−1) ≤     x(1) − x(0) ≤ 10−q ,                (5.142)
               1−α                 1−α
cu α ≡ P . Pentru procedeul Jacobi, P este u¸or de calculat. Pentru pro-
                                                 s
                     ın                                                       s
cedeul Gauss-Seidel, ˆ cazul matricei diagonal-dominante pe linii se ia (vezi ¸i
5.121)
                                              qi
                                 α = max                                   (5.143)
                                       i    1 − pi

ceea ce corespunde la folosirea normei ∞ pentru eroare. ˆ acest fel se obtine
                                                          In             ¸
o evaluare a num˘rului de iteratii ˆ functie de prima aproximatie x(1)
                 a              ¸ ın     ¸                    ¸

                k ≥ − q + lg x(1) − x(0) − lg 1 − α        / lg α .        (5.144)


5.4      Elemente de calcul matriceal
  s            a     ın                                ¸
A¸a cum s-a v˘zut, ˆ rezolvarea sistemelor de ecuatii (dar nu numai aici) in-
            ¸
tervin operatii cu matrice, ˆ                     a             a
                             ındeosebi matrice p˘trate. Oper˘m de multe ori cu
                 a                           ın                   s
matrice, chiar cˆnd acest lucru nu apare ˆ mod explicit, a¸a cu se ˆ ampl˘ ıntˆ  a
              ın              a                                ¸
spre exemplu ˆ cazul elimin˘rii unor necunoscute din ecuatiile sistemului.
                                   ¸
    Presupunem cunoscute operatiile de adunare ¸i ˆ            ¸
                                                      s ınmultire ale matricelor.
                a                       a                           s
Amintim doar c˘ adunarea este definit˘ pentru matrice de acela¸i tip (cu acela¸i s
     a          s           s a      ınmultirea de matrice, num˘rul de coloane
num˘r de linii ¸i coloane) ¸i c˘, la ˆ     ¸                         a
                   a              a                  a
ale matricei din stˆnga trebuie s˘ fie egal cu num˘rul de linii ale matricei din
                 a      ¸              a ıntotdeauna pentru matricele p˘trate de
dreapta. Aceast˘ conditie se realizeaz˘ ˆ                                  a
      s
aceea¸i dimensiune. Produsul matricelor nu este comutativ.
    Fie A o matrice p˘trat˘ de dimensiuni n × n. Matricea obtinut˘ prin
                        a     a                                          ¸    a
ınmultirea lui A cu ea ˆ a¸i de k ori este tot o matrice p˘trat˘ ¸i se noteaz˘
ˆ      ¸                ıns˘s                                 a       as         a
cu Ak . Prin analogie cu puterile scalarilor, prin A0 se ˆ ¸elege matricea unitate
                                                         ınt
               a    a                                                  a
I, o matrice p˘trat˘ de dimensiune n. Cu puterile matricelor p˘trate se pot
                                 ın             a a
construi polinoame de matrice, ˆ mod asem˘n˘tor cu cazul scalarilor.
5.4. Elemente de calcul matriceal                                             147


                    ınmultite (la dreapta sau la stˆnga) cu vectori (coloan˘ sau
    Matricele pot fi ˆ     ¸                        a                       a
                                a
linie) de dimensiuni corespunz˘toare, rezultatul fiind un vector. Ca urmare, o
                        as                       ¸            ¸
matrice poate fi privit˘ ¸i ca un operator (functie sau aplicatie) definit pe un
    ¸                                    a                                    ¸
spatiu vectorial cu valori care reprezint˘, de asemenea, elementele unui spatiu
                              a
vectorial (de dimensiune finit˘).
        s ın
    Ca ¸i ˆ cazul vectorilor, compararea matricelor (ˆ ıntr-un anumit sens) cu
                                    a
numere reale se poate face introducˆnd norme de matrice. Norma unei matrice
                      a
oarecare A se noteaz˘ cu A ¸i ˆ             s
                                s ındepline¸te axiomele generale ale normelor

  1.    A > 0;

  2.    αA = |α| A cu α ∈ C;

  3.    A+B ≤ A + B .

                         a
   Din acestea mai rezult˘

                               AB ≤ A · B .                                (5.145)

   a                          a            a
Dac˘ x este un vector asupra c˘ruia opereaz˘ matricea A, atunci normele A
s                         a
¸i x sunt compatibile dac˘ are loc inegalitatea

                                Ax ≤ A · x .                               (5.146)

                                        s                                 ¸
Se poate ar˘ta c˘ inegalit˘¸ile (5.145) ¸i (5.146) se pot deduce din conditiile im-
            a    a        at
                                    s                  ¸
puse normelor operatorilor liniari ¸i continui pe spatii vectoriale de dimensiune
finit˘ (vezi ¸i 1.4.3). Printre normele de matrice des utilizate care ˆ
    a        s                                                         ındeplinesc
      ¸                   aa
conditiile impuse se num˘r˘:

                a
  1. norma maxim˘

                                   A    ∞   = sup          |ai,j | ,       (5.147)
                                                 i
                                                       j

          a              a
       dat˘ de suma maxim˘ a modulelor elementelor matricei, pe linii;

  2. norma unu

                                   A    1   = sup          |ai,j | ,       (5.148)
                                                j
                                                       i

          a              a
       dat˘ de suma maxim˘ a modulelor elementelor matricei, pe coloane;

                    a
  3. norma euclidian˘
                                                             1/2
                                                             2
                               A    E   =            |ai,j |         ;   (5.149)
                                                i,j
148                                             5. Rezolvarea sistemelor liniare


                    a
   4. norma spectral˘
                                                               1/2
                                    A   2   = (ρ(A∗ A))              ,           (5.150)

      adic˘ raza spectral˘ a matricei produs A∗ A, cu A∗ matricea adjunct˘ a
          a               a                                                a
                       ¸                      s                    a
      lui A, care se obtine prin transpunerea ¸i conjugarea complex˘ a matricei
      A
                                                 ¯
                                            A∗ = AT .                            (5.151)

   Pentru vectori se utilizeaz˘ normele precizate ˆ (1.105). Normele de matrice
                              a                   ın
sunt compatibile cu normele vectoriale de acela¸i indice. ˆ particular, norma
                                                 s         In
        a                       a                    a                   a
spectral˘ A 2 este compatibil˘ cu norma euclidian˘ a vectorului x. Dac˘ vec-
                                                       a          a
torul x are componente complexe norma sa euclidian˘ este definit˘ de
                                                         n
                            x   2   =    (x, x) =                ¯
                                                              xi xi .            (5.152)
                                                        i=1

Produsul scalar a doi vectori ce au componente complexe este definit ca
                                                        n
                             x · y = (x, y) =                   ¯
                                                             xi yi               (5.153)
                                                    i=1

s              at
¸i are propriet˘¸ile

         (x, y) = (y, x),   (λx, y) = λ(x, y),                        ¯
                                                            (x, λy) = λ(x, y).   (5.154)

    Un ¸ir de matrice An este convergent dac˘ ¸irurile {ai,j }n sunt convergente.
        s                                     as
                  s              a                                     ¸
Limitele acestor ¸iruri formeaz˘ o matrice A care este, prin definitie, limita
¸irului de matrice An . ˆ acest fel, convergenta ¸irului de matrice s-a redus
s                         In                     ¸ s
la convergenta ¸irurilor de numere. ˆ mod similar, se introduce convergenta
              ¸ s                      In                                      ¸
s                            ¸            a                  ¸
¸irurilor de vectori. O conditie suficient˘ pentru convergenta seriei matriceale
                                              ∞
                                        S=          An                           (5.155)
                                              n=0


este ca norma matricei A s˘ fie subunitar˘, A > 1. ˆ acest caz se obtine
                          a             a         In               ¸
suma seriei

                                    S = (I − A)−1 ,                              (5.156)

egal˘ cu inversa matricei I − A. Se observ˘ analogia cu seria geometric˘ de
    a                                       a                             a
                          ¸        a                                    a
numere. Din (5.156) se obtine, trecˆnd la norme, o inegalitate important˘
                                        ∞
                                                    n
                       (I − A)−1 ≤             A        = (1 − A )−1 .           (5.157)
                                        n=0
5.4. Elemente de calcul matriceal                                           149


      ¸          as           a                         a              a
Conditia necesar˘ ¸i suficient˘ pentru ca seria (5.155) s˘ fie convergent˘ este ca
                                          a                ın            a
toate valorile proprii λi ale matricei A s˘ fie subunitare ˆ modul, adic˘ raza
        a                     a
spectral˘ ρ(A) a matricei A s˘ fie subunitar˘ a

                              ρ(A) = max |λi | < 1 .                     (5.158)
                                         i

   Deoarece orice procedeu iterativ este de forma

                               x(k+1) = P x(k) + d ,                     (5.159)

                              a        a a
unde P este matricea rezolvant˘, rezult˘ c˘

                x(k+1) = (I + P + P 2 + . . . + P k )d + P k+1 x(0) .    (5.160)

Deoarece vectorii d ¸i x(0) sunt arbitrari, pentru ca procedeul iterativ s˘ fie
                     s                                                      a
                                         a              a                       a
convergent, trebuie ca seria de matrice s˘ fie convergent˘, deci ca raza spectral˘
              a               a
a matricei P s˘ fie subunitar˘, ρ(P ) < 1.
150   5. Rezolvarea sistemelor liniare
                                                                            151




Capitolul 6

        s
Vectori ¸i valori proprii




6.1     Elemente introductive
Fie A o matrice p˘trat˘, de dimensiuni n × n. Se nume¸te valoare proprie o
                  a    a                             s
  a          a                      ¸
m˘rime scalar˘ λ care satisface relatia

                                   Ax = λx ,                                (6.1)

                                             a
vectorul x fiind vectorul propriu corespunz˘tor valorii proprii λ. Sistemul de
ecuatii liniare (6.1) se poate scrie (A − λI)x = 0, deci este omogen ¸i admite o
    ¸                                                                s
    ¸         a     as             a
solutie nenul˘ dac˘ ¸i numai dac˘ determinantul sistemului este nul

                           P (λ) ≡ det(A − λI) = 0 .                        (6.2)

                                       s
Polinomul de gradul n, P (λ) se nume¸te polinomul caracteristic al matricei A iar
                      s       ¸                 a
ecuatia (6.2) se nume¸te ecuatie caracteristic˘. Conform teoremei fundamentale
     ¸
                a                                    a a
a algebrei exist˘ n valori proprii care sunt tocmai r˘d˘cinile polinomului carac-
             ¸                                s                      s          a
teristic. Multimea valorilor proprii se nume¸te spectrul matricei A ¸i se noteaz˘
152                                                       6. Vectori ¸i valori proprii
                                                                     s


                                        ¸                          ¸
cu spec(A). Vectorii proprii, ca solutii ale unor sisteme de ecuatii omogene, sunt
           ¸ a a                   a              a     a                 s
determinati pˆn˘ la o constant˘ multiplicativ˘. G˘sirea valorilor ¸i vectorilor
                a              ¸a          a        a
proprii prezint˘ o important˘ practic˘ deosebit˘ pentru rezolvarea sistemelor
         ¸        ¸                                     at     s a
de ecuatii diferentiale liniare, pentru studiul stabilit˘¸ii mi¸c˘rilor mecanice sau
       a      a                                   at
de alt˘ natur˘, inclusiv pentru studiul stabilit˘¸ii diverselor metode numerice.
                    ıns˘ a                        a              s
Trebuie remarcat ˆ a c˘ determinarea practic˘ a valorilor ¸i vectorilor proprii
            ın                a
nu se face, ˆ general, plecˆnd de la construirea polinomului caracteristic, de-
                       ın                    ¸
oarece mici abateri ˆ valorile coeficientilor acestui polinom conduc la abateri
      ın              ¸                  a                 a       ¸
mari ˆ valorile solutiilor (se spune c˘ problema rezolv˘rii ecuatiei caracteristice
       a       ¸       a                                           a
este r˘u conditionat˘). Ca urmare, procedeele care determin˘ valorile proprii
prin construirea polinomului caracteristic sunt limitate la matrice de dimensiuni
mici (n ≤ 10) unde erorile de rotunjire introduse nu sunt importante.
            ın                                          a               s
    Vom da ˆ continuare o serie de procedee, precizˆnd avantajele ¸i limitele lor
                                     ın
de aplicabilitate. Ne vom limita, ˆ general, la cazul matricelor reale.


6.2                     a
         Metode pentru cˆteva valori proprii
Metodele numerice pentru rezolvarea problemei Ax = λx se pot clasifica ˆ       ın
                a                                           s ın
metode ce urm˘resc determinarea tuturor valorilor proprii ¸i ˆ metode ce de-
        a       a
termin˘ doar cˆteva dintre valorile proprii. Ne ˆ         a       ıntˆ
                                                   ındrept˘m mai ˆ ai atentia¸
                                               a                     ın      ¸
asupra celei de-a doua clase de metode. Prezint˘ un interes deosebit ˆ aplicatii
                                                         a
determinarea valorilor proprii extremale, care delimiteaz˘ spectrul matricei A.
         s
De aici ¸i marea varietate de metode concepute pentru a determina valorile pro-
                                                 a
prii cele mai mari sau mai mici. Vom considera cˆteva dintre metodele cele mai
folosite.

6.2.1     Metoda puterii directe
Metoda puterii directe permite determinarea valorii proprii de modul maxim,
ın            a                                        a       a       a
ˆ ipoteza c˘ vectorii proprii ai matricei formeaz˘ o baz˘, adic˘ sunt liniar
            ¸                      ıntˆ
independenti. Acest lucru se ˆ ampl˘ ˆ                   a
                                          a ıntotdeana cˆnd valorile proprii sunt
                a       a
distincte. Dac˘ exist˘ valori multiple, atunci vectorii proprii pot sau nu s˘     a
                       ¸
fie liniar independenti. Spre exemplu, matricea unitate I are toate valorile
                                                                             ¸
proprii egale (λi = 1, i = 1, n), dar vectorii proprii sunt liniar independenti. Se
         a                                            a a              a
consider˘ un vector y cunoscut, de obicei de form˘ cˆt mai simpl˘. In ipoteza
c˘ vectorii proprii xi , i = 1, n, ai matricei A formeaz˘ o baz˘, putem scrie
 a                                                       a       a
                                         n
                                  y=          ci x(i) ,                          (6.3)
                                        i=1

unde ci sunt scalari.

Cazul valorilor proprii reale.
Valorile proprii, reale λi , i = 1, n se pot ordona sub forma
                             |λ1 | > |λ2 | ≥ . . . ≥ |λn |                       (6.4)
                    a
6.2. Metode pentru cˆteva valori proprii                                                            153


astfel ˆ at valoarea proprie λ1 este cea mai mare dintre ele ˆ modul. ˆ
       ıncˆ                                                  ın             ¸
                                                                       Inmultind
                                   s      a       ¸               ¸
repetat vectorul y cu matricea A ¸i utilizˆnd relatia (6.1), se obtine
                             n                     n
       z (1)   =   Ay =           ci Ax(i) =           ci λi x(i)                                   (6.5)
                            i=1                 i=1
                   ···                                                                              (6.6)
                                               n
       z (k)   =   Ak y = Az (k−1) =                ci λk x(i) = λk c1 x(1) + O λk /λk
                                                        i         1              2   1              (6.7)
                                              i=1
                                  n
    z (k+1)    =   Ak+1 y =                 k+1
                                        ci λi x(i) = λk+1 c1 x(1) + O λk+1 /λk+1
                                                      1                2     1                      (6.8)
                                                                                                    .
                                  i=1

                                                                           k
Pentru k suficient de mare termenii de ordinul (λ2 /λ1 ) devin neglijabili, astfel
ıncˆ
ˆ at putem aproxima

                         z (k) ∼ λk c1 x(1) ,
                               = 1                  z (k+1) ∼ λk+1 c1 x(1) .
                                                            = 1                                     (6.9)

Prin urmare, luˆnd o component˘ de indice i a vectorilor z (k) ¸i z (k+1) , se obtine
               a              a                                s                 ¸
valoarea proprie de modul maxim

                                         λ1 ∼ zi
                                               (k+1)   (k)
                                            =        /zi .                                         (6.10)

           ımbun˘t˘¸it˘ a valorii proprii este furnizat˘ de raportul Rayleigh
O estimare ˆ    a at a                                 a
                   T                      T                     T                    T
      λ1 ∼ z (k)
         =             z (k+1) / z (k)        z (k) = z (k)         Az (k) / z (k)       z (k) .   (6.11)

    ˆ ceea ce prive¸te vectorul propriu corespunz˘tor x(1) , acesta are directia
    In                s                                 a                             ¸
z (k+1) . Practic, vectorul y se alege sub forme ca: y = (1, 0, . . . ), y = (1, 1, . . . )
                                                ¸
sau alte forme convenabile, deci coeficientii ci nu trebuie cunoscuti efectiv,¸
       ¸                                                                          ¸
conditiile de aplicabilitate ale procedeului (vectori proprii liniar independenti, c1 =
                                                  (k+1)   (k)
0) verificˆndu-se prin comportarea ¸irurilor zi
           a                           s                /zi , 1, n. Dac˘ aceste ¸iruri
                                                                         a        s
par convergente, ˆ       a                  s                  s
                    ıncepˆnd cu anumit k, ¸i tind spre acea¸i valoare (care repre-
     a         a                                                           a
zint˘, la limit˘, valoarea proprie λ1 ) atunci se poate trage concluzia c˘ procedeul
                                                                           a
este aplicabil. Pentru reducerea erorilor de rotunjire se recomand˘ normarea
prin ˆ artire cu z (k) , ˆ fiecare etap˘. Dac˘ nu exist˘ o singur˘ valoare
       ımp˘ ¸                 ın              a       a           a           a
             a
proprie real˘ de modul maxim, spre exemplu dac˘       a

                             |λ1 | = |λ2 | > |λ3 | ≥ . . . ≥ |λn | ,                               (6.12)

          a        ¸        ¸
atunci dup˘ k iteratii se obtine

     z (k) ∼ λk c1 x(1) + c2 x(2) ,
           = 1                                 z (k+1) ∼ λk+1 c1 x(1) + c2 x(2)
                                                       = 1                                     ,   (6.13)

                                                          k
                ¸                                       a a
termenii neglijati fiind de ordinul (λ3 /λ1 ) . Se observ˘ c˘ valoarea proprie se
poate calcula ca ¸i pˆn˘ acum, din (6.10); ˆ schimb vectorii proprii x(1) ¸i x(2)
                  s a a                     ın                            s
154                                                         6. Vectori ¸i valori proprii
                                                                       s


    a ın         ¸       a            ¸                       ¸
intr˘ ˆ combinatie liniar˘, cu cel putin unul dintre coeficientii c1 , c2 nenul. Se
poate scrie ˆ a Ax(1) = λ1 x(1) , Ax(2) = λ1 x(2) de unde se deduce imediat c˘
            ıns˘                                                               a

             λ1 λk c1 x(1) + c2 x(2)
                 1                           = A λk c1 x(1) + c2 x(2)
                                                  1                              ,        (6.14)

adic˘ z (k) este de asemenea un vector propriu corespunz˘tor valorii λ1 . Un
    a                                                       a
al doilea vector propriu liniar independent de z (k) se va g˘si ˆ mod similar,
                                                             a ın
repetˆnd procedeul pentru un alt vector y (1) , liniar independent de y. Viteza
     a
              ¸˘
de convergenta a procedeului depinde de modulul raportului λ3 /λ1 .

Cazul valorilor proprii complex conjugate.
            a
Presupunem c˘ valorile proprii de modul maxim λ1 , λ2 sunt complex conjugate
                        ¯
                   λ1 = λ2 ,    |λ1 | = |λ2 | > |λ3 | ≥ . . . ≥ |λn | ,                   (6.15)

                                                           ¸
¸i c˘ vectorii proprii xi , i = 1, n sunt liniar independenti. Vom observa, mai
s a
ˆ ai, c˘ vectorii proprii x(1) ¸i x(2) sunt de asemenea complex conjugati, a¸a
ıntˆ a                           s                                          ¸ s
cum rezult˘ imediat din relatia de definitie (6.1) pentru matrice reale. Metoda
            a                  ¸            ¸
        a                                                     a
se aplic˘ similar cu cazul valorilor proprii reale dar necesit˘ utilizarea rezulta-
                            ¸                a
telor din mai multe iteratii succesive dac˘ dorim evitarea lucrului cu variabile
                   ¸           ¸
complexe. In iteratia k se obtine

                        ¯k
   z (k) = λk c1 x(1) + λ1 /λk c2 x(2) + O λk /λk             , x(2) = x(1) , c2 = c1 .
                                                                                   ¯      (6.16)
            1                1              3   1

                       ¸   t a           a
Ultima egalitate se obtine ¸inˆnd cont c˘ s-a plecat cu un vector real y. Se caut˘a
                                   at                          ¸       a
o modalitate de a exprima cantit˘¸ile reale λ1 +λ1 , λ1 λ1 functie de m˘rimile dis-
                           ¸                                       ¸          ¸
ponibile pe parcursul iteratiilor. Pentru k suficient de mare se obtin combinatiile
                                                      2
              (k+1) (k−1)       (k)             (1)
      uki ≡ zi     zi       − (zi )2 = ci xi              (λ1 λ1 )k−1 (λ1 − λ1 )2 ,       (6.17)


                        (k+2) (k−1)          (k+1) (k)
                 vki ≡ zi    zi         − zi      zi        = uki (λ1 + λ1 ) ,            (6.18)

                 a                     ¸                      ¸
de pe o component˘ i oarecare. Din relatiile (6.17-6.18) se obtin valorile proprii,
      a    a
observˆnd c˘

      λ1 + λ1 = vki /uki + O(λk /λk ), λ1 λ1 = uk+1,i /uk + O(λk /λk ) .
                              3   1                            3   1                      (6.19)

Notˆnd λ1 ≡ a + ib, rezult˘
   a                      a

                      a = vki /2uki ,      a2 + b2 = uk+1,i /uki .                        (6.20)

    ˆ ceea ce prive¸te vectorul propriu corespunz˘tor, x(1) se poate proceda ˆ
    In             s                              a                          ın
         a                                          a a              a
felul urm˘tor: vectorul propriu fiind determinat pˆn˘ la o constant˘ multipli-
      a                  a         a     a               ıncˆ
cativ˘, putem lua aceast˘ constant˘ egal˘ cu c1 , astfel ˆ at
                                 (1)
                             c1 xi     = ρi eiθ1 ,    i = 1, n.                           (6.21)
                    a
6.2. Metode pentru cˆteva valori proprii                                                           155


   a                           a
Notˆnd apoi cu σ argumentul num˘rului complex λ1 din (6.16) se deduce
         (k)                                                  k
        zi     = λk c1 x(1) + λk c1 x(1) = 2 |λ1 | cos(θi + σ),
                  1            1                                                   i = 1, n ,     (6.22)

                    ¸
iar din (6.17) se obtine
                                                        2k
                                   uki = −4 |λ1 |            ρ2 sin2 σ < 0 .
                                                              i                                   (6.23)

Putem acuma deduce necunoscutele ρi , θi
           √           k                      k
                                                      √
       ρi = −uki /2 |λ| sin σ, cos(θi + σ) = zi sin σ/ −uki .                                     (6.24)
             a
   Exemplu. S˘ se determine valoarea proprie de modul maxim a matricei
                                              
                                     1 2 3
                              A= 2 1 2 
                                     3 2 1

                                                     a
    Rezolvare. Deoarece matricea A este simetric˘, toate valorile proprii sunt reale.
Pentru aflarea valorii proprii de modul maxim vom aplica metoda puterii pornind cu
vectorul y = (1, 0, 0)T . Primele cˆteva iteratii sunt redate ˆ tabelul de mai jos. S-au
                                   a          ¸               ın
             ¸
utilizat notatiile
                                              (k)        (k+1)
                                            ri      = zi           /zi                            (6.25)

iar R este raportul Rayleigh.
                     (k)           (k)        (k)            (k)          (k)     (k)
               k    z1         z2           z2            r1              r2      r3       R
               2     14         10           10          4.571           5.800   7.200   5.5455
               3     64         58           72            –               –       –        –
               5   2196        1882         2228         5.758           5.701   5.646   5.7013
               6   12644      10730        12580           –               –       –

    Valorile proprii ale matricei sunt λ1 = 5.701562, λ2 = −2, λ3 = −0.01562. Se
      a ¸                                           a             ¸
observ˘ obtinerea primelor 4 cifre semnificative dup˘ circa 6 iteratii. O estimare mai
    a                               a                               a
bun˘ a valorii proprii este furnizat˘ de raportul Rayleigh. Aceast˘ comportare este
             a                                                           a
caracteristic˘ pentru matricele simetrice, unde raportul Rayleigh tinde c˘tre valoarea
proprie conform
                              T                     T
                      z (k)       z (k+1) / z (k)       z (k) = λ1 + O λ2k /λ2k .
                                                                        1    2


De asemenea, se observ˘ cre¸terea rapid˘ a componentelor vectorului z (k) pe m˘sur˘
                       a    s          a                                      a a
        s                        a ımp˘ ¸                                       ¸
ce k cre¸te. De aceea se recomand˘ ˆ artirea la norma vectorului la fiecare iteratie.


6.2.2        Metoda puterii inverse
             a           a              a                 ın              a
Este utilizat˘ pentru a g˘si cea mai mic˘ valoare proprie ˆ modul, diferit˘ de
zero. ˆ aceste conditii, matricea A este nesingular˘ ¸i A−1 exist˘. Notˆnd cu
      In             ¸                             as            a     a
          a
λ1 aceast˘ valoare proprie de modul minim, se scrie

                                   0 < |λ1 | < |λ2 | ≤ . . . ≤ |λn | .                            (6.26)
156                                                    6. Vectori ¸i valori proprii
                                                                  s


                 ¸
Din Ax = λx se obtine

                          x = λA−1 x ⇒ A−1 x = λ−1 x,                        (6.27)

     a                  a
sau c˘ matricea invers˘ are valorile proprii 1/λ. Prin urmare, 1/λ1 este valoarea
proprie de modul maxim a matricei A−1 ¸i se poate aplica metoda puterii directe
                                            s
                 ın           a                        a     a      a
acestei matrice, ˆ ipoteza c˘ vectorii proprii formeaz˘ o baz˘. Plecˆnd de la un
vector initial arbitrar y = z (0) , se formeaz˘ ¸irul
          ¸                                   as

                        z (k+1) = A−1 z (k) ,    k = 0, 1, . . . .           (6.28)

                        a                                               a
Practic, nu se calculeaz˘ inversa matricei A, deoarece este mai economic˘ rezol-
              a                     ¸
varea repetat˘ a sistemului de ecuatii

                                  Az (k+1) = z (k) ,                         (6.29)

                        a                                        ¸
prin eliminare gaussian˘ de exemplu. Mai departe, toate consideratiile de la
                                       s ın
metoda puterii directe sunt aplicabile ¸i ˆ acest caz.

6.2.3                 a
         Metoda deplas˘rii
          a            ¸   a      a
Se bazeaz˘ pe observatia c˘, dac˘ matricea A are valoarea proprie λ atunci
matricea A − qI, unde q este un scalar, are valoarea proprie q − λ. Scalarul
           a                    s                               a s
q reprezint˘ tocmai deplasarea ¸i poate fi utilizat pentru a g˘si ¸i alte valori
           a                           ın                             a
proprii decˆt cele maxime sau minime ˆ modul. Spre exemplu, dac˘ am g˘sit  a
valoarea de modul maxim λ1 (folosind metoda puterii directe), atunci valoarea
                    a    a
proprie cea mai dep˘rtat˘ de λ1 , fie aceasta λj , va avea proprietatea

                           |λj − λ1 | = sup |λj − λ1 | .                     (6.30)
                                         i=1,n

ˆ consecint˘, metoda puterii directe aplicat˘ matricei A − λ1 I ne va conduce
In          ¸a                                a
la valoarea proprie λj .
                  a                           a ın       ¸
    Metoda deplas˘rii originii poate fi folosit˘ ˆ combinatie cu metoda puterii
inverse atunci cˆnd cunoa¸tem aproximativ valoarea proprie λ ∼ µ. ˆ aceste
                a         s                                     =     In
conditii matricea A − µI are o valoare proprie mic˘, ˆ modul, deci ¸irul similar
      ¸                                            a ın            s
cu (6.29)

                              (A − µI)z (k+1) = z (k)                        (6.31)

                         a                 a
va converge rapid, furnizˆnd valoarea exact˘ λ.


6.3                                    s
        Determinarea tuturor valorilor ¸i vectorilor
        proprii
                      a a ın             s
Metodele prezentate pˆn˘ ˆ prezent, de¸i foarte simple, permit determinarea
                                                       s          ¸
numai a unor valori proprii particulare, fiind limitate ¸i de conditia ca vectorii
6.4. Metoda Danilevschi                                                           157


         a
proprii s˘ formeze un sistem liniar independent. Metodele mai generale, care
                                      s                               a ın      ¸a
permit determinarea tuturor valorilor ¸i vectorilor proprii, se bazeaz˘, ˆ esent˘,
                               a            a                  a
pe aducerea matricei la o form˘ particular˘ prin transform˘ri similare.
        a          a         s
   Dou˘ matrice p˘trate A ¸i B de dimensiune n se numesc matrice asemenea
                   a      a                         a         ıncˆ            ¸
(sau similare), dac˘ exist˘ o matrice P , inversabil˘, astfel ˆ at au loc relatiile

                            B = P AP −1 ,      A = P −1 BP .                     (6.32)

Dou˘ matrice asemenea au acelea¸i valori proprii. ˆ
    a                             s                        a      a
                                                  Intr-adev˘r, dac˘ λ este o
                                  a                   t a                ¸
valoare proprie a matricei A, adic˘ Ax = λx cu x = 0, ¸inˆnd cont de relatiile
            ¸
(6.32) se obtine

                      P −1 BP x = λx ⇒ B(P x) = λ(P x),                          (6.33)

adic˘ matricea B are acelea¸i valori proprii ca ¸i A. ˆ plus, dac˘ pentru o
    a                       s                   s      In          a
valoare proprie λ matricea A are vectorul propriu x, atunci pentru matricea B
                          a
vectorul propriu corespunz˘tor lui este

                                         y = Px,                                 (6.34)

     a      ¸
adic˘ se obtine din vectorul x prin ˆ      ¸
                                     ınmultire cu matricea P de premultiplicare.
    Este de dorit ca transform˘rile similare specificate prin matricele P , P −1
                                 a
        ınmultim matricea A, s˘ conduc˘ la matrice B “simple”, avˆnd valorile
cu care ˆ     ¸                  a        a                         a
        s                    s                       a
proprii ¸i vectorii proprii u¸or de determinat. Exist˘ mai multe astfel de forme
                                         ın               a
simple. Prima pe care o vom considera ˆ cele ce urmeaz˘ este forma Frobenius
       a ın
utlizat˘ ˆ metoda Danilevschi. Apoi vom prezenta algoritmii LR ¸i QR des
aducere a matricei A la forma triunghiular˘. a


6.4     Metoda Danilevschi
      a      a
Aceast˘ metod˘ aduce matricea       A la forma
                                                                      
                           p1        p2     ...        pn−1       pn
                        1           0      ...        0          0    
                                                                      
                   F = 0            1      ...        0          0    ,        (6.35)
                                                                      
                        .           .      ..         .          .
                        .           .                 .          .    
                           .         .         .       .          .    
                                0    0      ...        1          0

         a     a                           a
denumit˘ form˘ Frobenius, prin transform˘ri similare. Avantajul formei Frobe-
            ¸              a       ¸
nius este obtinerea imediat˘ a ecuatiei caracteristice a matricei
                                                           n
                        n                          n
                   (−1) det(F − λI) = λ −                        pi λn−i = 0 .   (6.36)
                                                           i=1

                                              a       a         as
   Vom deduce relatia (6.36) pe o cale care s˘ permit˘ totodat˘ ¸i construirea
                     ¸
vectorilor proprii y ai matricei F . ˆ acest scop, vom scrie, conform definitiei
                                     In                                    ¸
158                                                           6. Vectori ¸i valori proprii
                                                                         s


(6.1), egalitatea F y             a
                        = λy, adic˘
                                                                             
                 p1     p2   ...    pn−1       pn             y1             y1
                1      0    ...    0          0            y2           y2   
                                                                             
                0      1    ...    0          0              y3             y3
                                                     ·            = λ         .   (6.37)
                                                                              
               
                .      .    ..     .          .              .              .
                .      .           .          .              .              .
                                                                              
                 .      .       .   .          .            .            .    
                 0      0    ...    1          0              yn             yn

    a                       a                ¸
Operˆnd de la ultima linie c˘tre prima, se obtine

                                    yn−j = λyn−j+1 ,                                   (6.38)

pentru j = 1, n − 1, ¸i
                     s
                                        n
                                              pi yi = λyi .                            (6.39)
                                        i=1

        a                                     ın    ¸                   ¸
Exprimˆnd componentele y1 , y2 , . . . , yn−1 ˆ functie de yn , din ecuatiile (6.38)
      a
rezult˘

                yn−1 = λyn ,        yn−2 = λ2 yn , . . . ,         y1 = λn−1 yn .      (6.40)

ˆ         ın              a
Inlocuind ˆ (6.39), rezult˘
                                               n
                              yn    λn −            pi λn−i    = 0.                    (6.41)
                                              i=1

Deoarece yn = 0 (altfel toate componentele vectorului y ar fi nule), din (6.41)
     ¸               ¸                a           a
se obtine tocmai ecuatia caracteristic˘ (6.36). Luˆnd yn = 1, vectorul propriu
y are expresia

                             y = (λn−1 , λn−2 , . . . , λ, 1)T .                       (6.42)

    ˆ concluzie, vectorii proprii ai matricei Frobenius se construiesc cu ajutorul
    In
                               a                 ¸
puterilor valorii proprii, adic˘ pot fi determinati imediat ce au fost determinate
                          a                        a       ın        ¸a s
valorile proprii. Aceast˘ proprietate remarcabil˘ pune ˆ evident˘ ¸i anumite
      a                                    a
limit˘ri ale formei Frobenius. Astfel, dac˘ valorile proprii sunt multiple, vecto-
              a                                               a
rii corespunz˘tori ai unei matrice Frobenius nu pot fi decˆt liniar dependenti.   ¸
        a                       ıns˘                a
Aceast˘ proprietate nu este ˆ a general valabil˘ pentru orice matrice. Spre
                                                                ın
exemplu, matricea unitate are toate valorile proprii egale, ˆ timp ce vectorii
                ¸                    ¸                 a
proprii sunt toti liniar independenti. Concluzia este c˘ forma Frobenius nu este
                     a      a                              a          a      a
suficient de general˘, adic˘ nu orice matrice poate fi adus˘ la aceast˘ form˘ prin
           a                  s
transform˘ri similare. Totu¸i, o matrice oarecare A ar putea fi descompus˘ ˆ    a ın
                                     a
blocuri, dintre care cele corespunz˘toare valorilor proprii distincte, ar fi blocuri
Frobenius.
6.4. Metoda Danilevschi                                                         159

   ˆ metoda Danilevschi aducerea la forma Frobenius a unei matrice p˘trate
   In                                                               a
          ıncepˆnd cu ultima linie, dup˘ schema
A se face ˆ    a                       a

                      a1,1     a1,2    . . . a1,n−1   a1,n
                                                            
                    a2,1      a2,2    . . . a2,n−1   a2,n   
                    .         .       ..    .        .
                                                            
                    .         .           . .        .             (6.43)
                                                             
                     .        .             .        .      
                                                             
                    an−1,1 an−1,2 . . . an−1,n−1 an−1,n 
                      an,1     an,2    ...     an,n−1 an,n
                                               (1)      (1)
                    (1)         (1)
                                                             
                      a1,1     a1,2    . . . a1,n−1   a1,n
                    (1)         (1)           (1)      (1)
                    a2,1      a2,2    . . . a2,n−1   a2,n
                                                             
                                                             
                    .         .             .        .
                                       ..
                                                             
               →  .
                    .         .
                               .             .
                                           . .        .
                                                      .
                                                             .
                                                                   (6.44)
                                                        (1)
                    (1)         (1)           (1)
                                                             
                    a
                        n−1,1  an−1,2        an−1,n−1 an−1,n 
                      0        0       ... 1          0

                           s                                                     a
S-a presupus an ,n−1 = 0 ¸i s-au eliminat celelalte elemente din linia a n-a. Dac˘
                                 a                                 a
an,n−1 = 0, se folosesc permut˘ri de coloane. Mai mult, permut˘rile de coloane
                                                a            ın          ın
sunt indicate pentru a avea elemente an,n−1 cˆt mai mari ˆ modul, ˆ vederea
                                                             a                ¸
reducerii erorilor de rotunjire. Prin urmare, se recomand˘ utilizarea pivotilor
(totali sau partiali), analog cu eliminarea gaussian˘. Pentru schema (6.43), s-au
               ¸                                     a
folosit multiplicatorii

   mn−1,j = −an,j /an,n−1 pentru j = n − 1,        mn−1,n−1 = 1/an,n−1 .      (6.45)

          a a
Se observ˘ c˘ indicii multiplicatorilor se aleg dintre indicii elementelor cu care
                    s                       ¸                                    a
se construiesc ace¸ti multiplicatori, diferiti de indicele liniei care se modific˘.
           a    s        ¸                           ıns˘
    Elimin˘rile ¸i aparitia elementului 1 nu sunt ˆ a suficiente; mai trebuie ca
matricea obtinut˘ s˘ fie similar˘ cu A. ˆ acest scop, vom observa c˘ etapa
             ¸     a a           a           In                              a
                 ınmultirea lui A la dreapta cu matricea M1 ,
(6.43) revine la ˆ     ¸
                                                                  
                   1        0         ... 0               0
                0          1         ... 0               0        
                                                                  
                .          .         ..    .             .
         M1 =  .           .            . .              .        ,          (6.46)
                                                                   
                  .        .               .             .        
                mn−1,1 mn−1,2 . . . mn−1,n−1 mn−1,n 
                   0        0         ... 0               1

   ¸   a
obtinut˘ din matricea unitate, prin introducerea multiplicatorilor. Prin urmare,
matricea obtinut˘ ˆ dreapta, ˆ schema (6.43), este matricea AM1 . Faptul
             ¸     a ın         ın
 a              a
c˘ M1 se aplic˘ la dreapta este legat de operarea cu coloane (multiplicatorii
                 a                         a
mn−1,j se aplic˘ unor coloane); pe de alt˘ parte, la ˆ       ¸
                                                       ınmultire, matricea din
                                                  a −1            a
dreapta se introduce prin coloane. Matricea invers˘ M1 , necesar˘ pentru a face
                        a      ¸     a
transformarea similar˘, este obtinut˘ din matricea unitate prin introducerea ˆın
160                                                 6. Vectori ¸i valori proprii
                                                               s


matricea unitate, ˆ linia n − 1,
                  ın                                               ın
                                    a liniei elementelor modificate ˆ matricea A
                                                              
                            1        0       ... 0        0
                          0         1       ... 0        0    
                                                              
                M1 =  .
                    −1               .       ..   .       .
                          .         .            .       .    .           (6.47)
                                                               
                          .         .          . .       .    
                          an,1      an,2 . . . an,n−1 an,n    
                            0        0       ... 0        1
                           −1
                     at                           s          a      a ın
   Verificarea egalit˘¸ii M1 M1 = I se face u¸or, observˆnd c˘ ˆ matricea
produs r˘mˆn nemodificate toate liniile cu exceptia liniei n − 1, singura care
         a a                                        ¸
trebuie verificat˘ ca apartinˆnd matricei unitate I. ˆ aceast˘ verificare, ca ¸i
                a        ¸ a                           In       a               s
ın                 a         a     a
ˆ cele care urmeaz˘ este util˘ urm˘toarea regul˘ simpl˘: dac˘, la ˆ
                                                  a       a     a         ¸
                                                                     ınmultirea a
    a                        a
dou˘ matrice, matricea din stˆnga are o linie de indice i din matricea unitate I,
       ın                                                                       a
atunci ˆ matricea produs linia i coincide cu linia i a matricei din dreapta; dac˘
                                  a
matricea din dreapta are o coloan˘ j din matricea unitate I, atunci coloana j
                             a                     a
din matricea produs este dat˘ de matricea din stˆnga.
                     a        a     a      ¸
   Prin urmare, dup˘ o prim˘ etap˘ se obtine matricea similar˘    a
                                  −1
                            A2 = M1 A1 M1 ,       A1 ≡ A .                       (6.48)

           a a                      ¸   a                               a
Se observ˘ c˘ linia n deja obtinut˘, din matricea Frobenius, se p˘streaz˘ la   a
                  −1
ınmultirea cu M1 . Procedeul se repet˘ pentru liniile n − 1, n − 2, . . . , 2 din
ˆ     ¸                                     a
                                           a a
matricele similare A2 , A3 , . . . , An−1 pˆn˘ se ajunge la forma Frobenius. Odat˘a
determinate valorile proprii, vectorii proprii y ai matricei Frobenius se deduc din
                                                               a              a
(6.42) iar, vectorii proprii x ai matricei A se deduc acumulˆnd postmultiplic˘rile
(vezi 6.33)

                               x = M1 M2 . . . Mn−1 y .                          (6.49)

    Dac˘ ˆ             a                     a                          a
          a ıntr-o etap˘ se folosesc permut˘ri de linii, este necesar s˘ permut˘m   a
s                      s                                     s                ıncˆ a
¸i coloanele de acela¸i indice cu al liniilor de permutare ¸i invers astfel ˆ at s˘
     a                                                      a             a
se p˘streze similitudinea cu matricea A. Aceste permut˘ri trebuie s˘ fie f˘cute   a
        ıncˆ a             a
astfel ˆ at s˘ nu afect˘m elementele de tip Frobenius deja produse. Aceasta
                                        (k)
revine ˆ etapa k (cˆnd pivotul este an−k+1,n−k ) s˘ nu permut˘m linii ¸i coloane
         ın           a                              a             a        s
de indice mai mare ca n − k. Rezult˘ c˘ pivotul poate fi realizat numai cu
                                           a a
          a
permut˘ri de coloane.
    Dac˘ ˆ             a                    a ¸
          a ıntr-o etap˘ k nu este posibil s˘ obtinem un element diferit de zero ˆ    ın
                                                                           (k)
     ¸                    a ınseamn˘ c˘ toate elementele din stˆnga lui an−k+1,n−k
pozitia de sub diagonal˘, ˆ          a a                         a
                     a a
sunt nule. Rezult˘ c˘ procedeul de aducere la forma Frobenius nu mai poate fi
             ın             ¸ a
continuat ˆ maniera initial˘. Se poate proceda prin subdivizarea matricei A ˆ         ın
                             ın
blocuri dar nu vom intra ˆ detalii aici.
    Metoda Danilevschi permite determinarea valorilor proprii distincte. De ase-
                                                       a                          ¸
menea se pot valorile proprii multiple, dar numai dac˘ vectorii proprii asociati nu
                         ¸                               s
sunt liniar independenti. Deoarece metoda construie¸te polinomul caracteristic
(nu valorile proprii), pot apare erori mari ˆ calculul numeric. ˆ
                                              ın                              a
                                                                   Intr-adev˘r, erori
      ın           ¸                                           ın           a a
mici ˆ coeficientii unui polinom pot produce abateri mari ˆ valorile r˘d˘cinilor
6.4. Metoda Danilevschi                                                             161


                            ¸                       ın
polinomului (inclusiv aparitia unor valori complexe ˆ locul celor reale). Analiza
                          t a            a           a               a
erorilor se poate efectua ¸inˆnd seama c˘ transform˘rile se fac dup˘ schema

                                  Ai+1 = Mi−1 Ai Mi .                             (6.50)

      a a                         a
Rezult˘ c˘ erorile se transmit dup˘ regula

                  δAi+1                δAi   δMi   δMi−1
                        ≤ µ(Mi )           +     +                       .        (6.51)
                  Ai+1                 Ai    Mi    Mi−1

                               a           ¸                        a
Prin urmare, este util ca num˘rul de conditionare al matricelor Mi s˘ fie egal
cu unitatea (µ(Mi ) = 1, ˆ             a                  a      ¸
                           ıntr-o norm˘ oarecare). Aceast˘ conditie nu este,
ın                   a s               a                              a
ˆ general, realizabil˘, a¸a cum rezult˘ din forma matricelor Mi . Dac˘, spre
                                      ıncˆ
exemplu, an−i+1,n−i este pivot astfel ˆ at

                              an−i+1,j
       Mi   1   = 1 + max               ,      Mi   1   = |an−i+1,n−i | > 1 ,     (6.52)
                     j=n−i   an−i+1,n−i

      a
rezult˘ (folosind norma      1   ın   a            ¸
                                 ˆ num˘rul de conditionare)

                   µ1 (Mi ) = |an−i+1,n−i | + max |an−i+1,j | > 1 .               (6.53)
                                              j=n−i

ˆ consecint˘, metoda se recomand˘ la determinarea valorilor ¸i vectorilor pro-
In         ¸a                     a                         s
prii de mici dimensiuni (n ≤ 10), prezentˆnd avataje din punct de vedere al
                                         a
     a             ¸
num˘rului de operatii.
                                                        a
    Exemplu. Pentru matricea de la exemplul anterior s˘ se determine toate valorile
proprii folosind metoda Danilevschi.
                                                                          a
    Rezolvare. Se aduce matricea A la forma Frobenius, folosind transform˘ri elemen-
tare. ˆ prealabil se aduce pivotul 3 ˆ pozitia (3,2) prin permutarea coloanelor 1,2.
      In                             ın    ¸
                                     a
Matricea de permutare este P12 . Notˆnd
                                                                     
                             1 2 2                    1      0     0
           A1 = P12 AP12 =  2 1 3  , M1 =  −2/3 1/3 −1/3  ,
                             2 3 1                    0      0     0

       ¸         a               a                 a              s
am obtinut o nou˘ matrice similar˘ cu A. Se elimin˘ elementele a31¸i a33 de pe ultima
linie, operˆnd cu coloana a doua. ˆ locul elementului a32 = 3 se obtine valoarea 1,
           a                       In                                 ¸
ımp˘ ¸              a                              ¸
ˆ artind cu 3 toat˘ coloana a doua. Toate operatiile revin la ˆ      ¸
                                                               ınmultirea la dreapta
                        a                        ¸
cu matricea M1 , format˘ cu multiplicatori. Se obtine
                                                      
                                      −1/3 2/3 4/3
                          A1 M1 =  4/3      1/3 8/3  .
                                       0       1     0

ˆ acest fel, s-au obtinut pe pozitia ultimei linii elemente corespunz˘toare din matricea
In                  ¸            ¸                                    a
                                        a            a
Frobenius. Pentru ca transformarea s˘ fie similar˘ se va ˆ        ¸       a
                                                            ınmulti la stˆnga cu matricea
                                                      
                                            1 0 0
                                   −1
                                M1 =  2 3 1  ,
                                            0 0 1
162                                                      6. Vectori ¸i valori proprii
                                                                    s


     ¸
se obtine
                                                                       
                                      −1/3              2/3        4/3
                          −1
                    A2 = M1 A1 M1 =  10/3              10/3       32/3  .
                                        0                 1          0
ˆ etapa urm˘toare se elimin˘ elementele 10/3 ¸i 32/3 de pe linia a doua din matricea
In           a                a                 s
A, operˆnd cu coloana ˆ aia. ˆ pozitia (2,1) se obtine elementul 1. Totul revine la a
       a               ıntˆ     In    ¸             ¸
                                                                  −1
ınmulti la dreapta cu matricea M2 , iar la stˆnga cu inversa ei M2
ˆ    ¸                                       a
                                                                      
                  −3/10 −1 −16/5                       10/3 10/3 32/2
                                               −1
         M2 =      0       1      0     , M2 =  0            1    0 ,
                    0       0      1                     0      0    1
       ıncˆ
astfel ˆ at
                                                               
                                         3             14     8
                             −1
                       A3 = M2 A2 M2 =  1              0     0  = F,
                                         0              1     0
                                                       ¸         ¸
A3 fiind o matrice Frobenius. Valorile proprii sunt solutiile ecuatiei caracteristice
                                λ3 − 3λ2 − 14λ − 8 = 0 .
     ¸
Se obtin valorile proprii
                                √                       √
                    λ1 = (5 +    41), λ2 = −2, λ3 = (5 − 41)/2 .


   Vectorii proprii ai matricei Frobenius F sunt
                              yi = (λ2 , λ1 , 1)T , i = 1, 2, 3.
                                     i

            ¸                                      ¸                    a
Pentru a obtine vectorii proprii xi ai matricei initiale A, se utilizeaz˘ matricele de
postmultiplicare
                             xi = P12 M1 M2 yi , i = 1, 2, 3.


       s                  ¸     ¸                                               ¸
   De¸i s-a lucrat cu fractii rationale, s-a utilizat pivot pentru a atrage atentia aupra
                                         s a
tehnicii uzuale de lucru cu numere ma¸in˘ afectate de erori de rotunjire.


6.5                     s
            Metodele QR ¸i LR
               s                              ın                     a
Metodele QR ¸i LR, pe care le vom prezenta ˆ continuare, determin˘ valorile ¸is
                                   a
vectorii proprii ale unei matrice p˘trate A, prin aducerea acesteia la o matrice
                      a                a
superior triunghiular˘ prin transform˘ri de similitudine. Valorile proprii ale
                                                                      a
unei matrice triunghiulare T sunt chiar elementele de pe diagonal˘ deoarece
calculul polinomului caracteristic conduce la
                                    t1,1 − λ       t1,2        ...    t1,n
                                    0              t2,2 − λ    ...    t2,n
       P (λ) = det(T − λI) =        .              .           ..     .           (6.54)
                                    .
                                    .              .
                                                   .              .   .
                                                                      .
                                    0              0           0      tn,n − λ
                 s
6.5. Metodele QR ¸i LR                                                            163


s         a      a          ¸
¸i dezvoltˆnd dup˘ minori obtinem

                  det(T − λI) = (t1,1 − λ)(t2,2 − λ) . . . (tn,n − λ) ,         (6.55)

                 a a
un polinom cu r˘d˘cinile t1,1 , t2,2 , . . . , tn,n .
                             a                                    a
    Algoritmul QR reprezint˘ culminarea unui lung proces de c˘utare a unor
               s                                                              s
algoritmi robu¸ti de determinare a tuturor valorilor proprii ale unei matrice ¸i
are o important˘ deosebit˘ ˆ aplicatii. ˆ aplicarea practic˘ a algoritmului QR
               ¸a         a ın          ¸ In               a
                                                          a
apar o serie de etape intermediare ce pot crea impresia c˘ metoda este destul
             a       a                         ıns˘   ¸
de complicat˘. Dup˘ cum vom vedea ˆ a, esenta algoritmului este aplicarea
                                                        ¸
metodei puterii simultan asupra mai multor vectori initiali.

6.5.1    Rezultate teoretice preliminarii
                            a
Pentru prezentarea complet˘ a acestor metode vom avea nevoie de o serie de
                                   s           ¸
rezultate teoretice. Vom include ¸i demonstratiile acestor rezultate deoarece
          a        ¸                 ın
furnizeaz˘ indicatii asupra modului ˆ care se pot construi algoritmi numerici.
          a     ın                            a
    Am v˘zut, ˆ cadrul metodei Danilevschi, c˘ nu orice matrice poate fi adus˘  a
                                a                                  a
la forma Frobenius. Acum urm˘rim aducerea la forma triunghiular˘ deci, apare
imediat ˆ               a     a
         ıntrebarea dac˘ exist˘ o transformare de similitudine ˆıntre o matrice
              s                      a                                ¸
oarecare A ¸i o matrice triunghiular˘. Scopul principal al acestei sectiuni este
 a          a
s˘ investig˘m acest aspect.

         a
Transform˘ri unitare.
ˆ plus, analiza de eroare de la metoda Danilevschi a ar˘tat importanta obtinerii
In                                                      a            ¸   ¸
               a                        a             ¸        a
unor transform˘ri similare la care num˘rul de conditionare s˘ fie egal cu uni-
tatea. Dac˘ matricele de transformare M sunt unitare, adic˘ dac˘ M ∗ M = I
           a                                                  a    a
                 ın                           a                        a
atunci vom avea ˆ mod evident µ(M ) = 1 dac˘ folosim norma spectral˘ (5.150)

µ(M ) = M     2   M −1   2
                             = M   2   M∗   2   =   ρ(M ∗ M ) ρ(M M ∗ ) =   ρ(I)ρ(I) = 1 .

Prin M ∗ s-a notat adjuncta matricei M (vezi (5.151)).
                            ¸
    Vom folosi una din notatiile Q, U, R pentru matrice unitare. Valorile proprii
ale unei matrice unitare au modulul egal cu unitatea. ˆ        a      a       a
                                                      Intr-adev˘r, dac˘ efectu˘m
                                     a                              ¸
produsul scalar al vectorilor coloan˘ din fiecare membru a relatiei de valori
proprii

                                        Qx = λx ,                               (6.56)

cu vectorul linie x∗ Q∗ rezult˘
                              a

                                 x∗ Q∗ Qx = x∗ Q∗ λx .                          (6.57)

                                                                            a
Prin operatiile de transpunere ¸i complex conjugare a relatiei (6.56) rezult˘
          ¸                    s                          ¸
                                               ¯
                                       x∗ Q∗ = λx∗ ,                            (6.58)
164                                                    6. Vectori ¸i valori proprii
                                                                  s


   ınlocuit ˆ partea din dreapta a (6.57) conduce la
ce ˆ        ın
                                     ¯         ¯
                          x∗ Q∗ Qx = λx∗ λx = λλx∗ x.                        (6.59)

Dar Q este unitar˘ Q∗ Q = I, a¸a c˘ rezult˘
                 a            s a         a
                                          ¯
                                 x∗ x = (λλ)x∗ x ,                           (6.60)
         ¯
de unde λλ = 1, deci modulul unei valori proprii a lui Q este egal cu unitatea.
Cum valorile proprii ale inversei Q−1 = Q∗ sunt 1/λ rezult˘ c˘ ¸i acestea au
                                                            a a s
modulul egal cu unitatea.

Reflectori elementari.
 a          a                 at         ¸                               a
S˘ consider˘m acum modalit˘¸ile de obtinere a unei matrice unitare. Exist˘
    a
dou˘ procedee mai utilizate. Primul, denumit procedeul Householder, con-
      s                   a                               a
struie¸te o matrice unitar˘ pornind de la un vector coloan˘ v prin

                                   U = I − vv ∗ .                            (6.61)

Vectorul v ∗ este un vector linie astfel ˆ at produsul vv ∗ este o matrice. S˘ ve-
                                         ıncˆ                                a
              ¸                                                      a
dem ce conditii trebuie impuse vectorului v pentru ca matricea U s˘ fie unitar˘. a
Adjuncta lui U este
                                  T
  U ∗ = (I − vv ∗ )∗ = I ∗ − (v¯T ) = I − (¯v T )T = I − v¯T = I − vv ∗ ,
                               v           v              v                  (6.62)

    a                   a                            a
adic˘ tot U . Se spune c˘ matricea U este autoadjunct˘. Avem

               U ∗ U = (I − vv ∗ )(I − vv ∗ ) = I − 2vv ∗ + vv ∗ vv ∗ .      (6.63)

Cum v este vector coloan˘ ¸i v ∗ este un vector linie, v ∗ v este un produs scalar
                          as
               a
ce este chiar p˘tratul normei euclidiene a lui v
                                      n
                                                        2
                             v∗ v =         ¯
                                            vi vi = v   2   .                (6.64)
                                      i=1

     ¸
Se obtine
                                               2
                           U ∗U = I + ( v      2   − 2)vv ∗ ,                (6.65)

deci matricea U este unitar˘ dac˘ matricea vv ∗ este nul˘ sau dac˘
                           a    a                       a        a
                                        √
                                  v 2 = 2.                                   (6.66)

                         a        s            a                      ¸
Prima posibilitate implic˘ v = 0 ¸i nu prezint˘ interes pentru aplicatii. O
matrice unitar˘ de forma (6.61) cu v ce satisface (6.66) se nume¸te reflector
              a                                                 s
elementar. Denumirea provine de la modul de transformare a coordonatelor
                 s
6.5. Metodele QR ¸i LR                                                    165

                                                              √
unui punct. Spre exemplu, ˆ dou˘ dimensiuni (n = 2) dac˘ v = [ 2, 0]T se
                          ın   a                       a
  ¸
obtine
             √
               2    √           1 0        2 0        −1 0
  U =I−               2 0 =           −           =           . (6.67)
             0                  0 1        0 0        0    1
                  T
                                               a
Coordonatele [x, y] ale unui punct se transform˘ conform

                                    x             −x
                               U            =            ,              (6.68)
                                    y             y

    a                          ¸a
adic˘ s-a efectuat o reflexie fat˘ de axa Oy pe care vectorul v este ortogonal.
ˆ cazul general, vectorul v define¸te normala unui plan fat˘ de care se reflect˘
In                                s                       ¸a                 a
coordonatele unui punct.
   ˆ aplicatii vom avea de evaluat produsul U ∗ A sau AU . S-ar p˘rea c˘ sunt
   In        ¸                                                    a     a
necesare O(n3 ) operatii aritmetice pentru aplicarea unui reflector elementar.
                      ¸
                    s s             ¸
Lucrurile nu stau a¸a ¸i este esential pentru economicitatea metodei QR s˘   a
      a     a                                          ın
observ˘m c˘ reflectorul elementar U nu trebuie calculat ˆ mod explicit. Putem
evalua rezultatul AU prin

                  AU = A(I − vv ∗ ) = A − Avv ∗ = A − wv ∗              (6.69)

cu w = Av. Evaluarea lui w cost˘ O(n2 ) operatii ¸i efectuarea produsului ex-
                                 a              ¸ s
terior wv ∗ ˆ a O(n2 ) pentru un total de O(2n2 ), mult mai mic decˆt O(n3 ).
            ınc˘                                                     a
                                                                       a
Dat fiind vectorul v, algoritmul de aplicare la dreapta a unei transform˘ri Ho-
useholder asupra matricei A este

      j=1:n
                                           j=1:n
         wj ← 0
        k=1:n                                k=1:n                     (6.70)
                                                [ajk ← ajk − vj wk .
           [wj ← wj + ajk vk

Analog evalu˘m U ∗ A prin
            a

                 U ∗ A = (I − vv ∗ )A = A − vv ∗ A = A − vwT            (6.71)

cu wT = v ∗ A. Algoritmul este o modificare simpl˘ a celui de mai sus.
                                                a

    ¸
Rotatii elementare.
                        ¸
Al doilea procedeu de obtinere a unei matrice unitare este cunoscut sub numele
                                          ¸
de procedeu Givens sau procedeu Jacobi. Si acest procedeu are o semnificatie¸
          a                  a        ¸                            ın
geometric˘, matricea R efectuˆnd rotatia coordonatelor unui punct ˆ jurul unei
axe oarecare. ˆ acest caz matricea unitar˘ Rjk se obtine din matricea unitate
              In                          a           ¸
I prin modificarea a patru elemente conform

                        rj,j = eiα cos θ,       rj,k = eiβ sin θ,       (6.72)
                      rk,j = −e−iβ sin θ,       rk,k = e−iα cos θ .
166                                               6. Vectori ¸i valori proprii
                                                             s


Se poate verifica u¸or prin calculul produsului R∗ R c˘ matricea R este unitar˘.
                   s                                     a                      a
                                       ¸           a                       ¸
Parametrii reali α, β, θ definesc rotatia efectuat˘, fiind vorba de o rotatie de
               a                        a          a          ¸
unghi θ. Dac˘ matricea A asupra c˘reia aplic˘m o rotatie Givens are toate
                                                     ¸              a
elementele reale atunci α = β = 0. Axa de rotatie este definit˘ de produsul
                                   ¸                       ¸
vectorial al versorului de pe directia j cu cel de pe directia k.
     a          a                                      ¸        a
   S˘ consider˘m cazul unei matrice A reale. Situatia tipic˘ de aplicare a unei
    ¸                   a                 a     a
rotatii Givens este urm˘toarea: dorim s˘ anul˘m un singur element subdiagonal
                                                         a
din A, fie acesta ajk = 0 cu j > k. Vom presupune c˘ elementele subdiagonale
de pe coloanele de indice i < k au fost deja anulate. La premultiplicarea matricei
        ∗      T
                                           a               s
A cu Rjk = Rjk se vor produce modific˘ri ale liniilor j ¸i k ale matricei. Spre
exemplu, pentru j = 4, k = 2
                                                             
                      1 0 0 0             a11 a12 a13 a14
                    0 c 0 −s   0            a22 a23 a24 
                                                             
                    0 0 1 0  0              a32 a33 a34 
                      0 s 0 c             0    a42 a43 a44
                                                                   
                      a11      a12            a13           a14
                    0 ca22 − sa42 ca23 − sa43 ca24 − sa44 
               =                                                   ,
                    0         a32            a33           a34     
                       0 sa22 + ca42 sa23 + ca43 sa24 + ca44
                              ¸                    a a
cu c = cos θ, s = sin θ. Conditia ce trebuie satisf˘cut˘ de θ este sa22 + ca42 = 0
ın
ˆ exemplul de mai sus, sau
                                 sakk + cajk = 0                             (6.73)
                                                           a
ˆ cazul general. Ecuatia trigonometric˘ (6.73) nu se rezolv˘ direct. Este mai
ın                   ¸                a
          a       a
economic s˘ calcul˘m pe s, c prin
              dac˘ |ajk | > |akk |
                 a                            √
                atunci t ← −akk /ajk ; s ← 1/ 1 + t2 ; c ← s t
                                             √                               (6.74)
                altfel t ← −ajk /akk ; c ← 1/ 1 + t2 ; s ← c t
             a                     s           ımp˘ ¸                a
cu o singur˘ extragere de radical ¸i evitarea ˆ artirii la un num˘r foarte mic.
        s ın                  a
    Ca ¸i ˆ cazul transform˘rii Householder, matricea Rjk nu se calculeaz˘         a
                                             ∗
                   a
explicit ca apoi s˘ se efectueze produsul Rjk A, deoarece aplicarea algoritmului
general de ˆınmultire a dou˘ matrice ar costa O(n3 ) operatii. Se calculeaz˘ efectul
                  ¸         a                             ¸                a
                     ∗
     a         ¸
aplic˘rii rotatiei Rjk A prin

                    i=k:n
                                                                             (6.75)
                     [aki ← caki − saji ;    aji ← saki + caji

cu un cost de doar O(4(n − k)). ˆ cazul postmultiplic˘rii ARjk se procedeaz˘
                                In                   a                     a
ın          a a
ˆ mod asem˘n˘tor.

       ın                              a
Un pas ˆ aducerea la forma triunghiular˘.
       a               ¸                        ¸
Acum c˘ avem la dispozitie procedee de constructie a unei matrice unitare,
 a             ın
s˘ vedem modul ˆ care acestea pot fi folosite pentru a aduce pe A la forma
                 s
6.5. Metodele QR ¸i LR                                                        167


            a
triunghiular˘. Prin analogie cu procesul de eliminare Gauss, ne propunem s˘   a
      a       ıntˆ                                       a
elimin˘m mai ˆ ai elementele de sub diagonala principal˘, de pe prima coloan˘ a
                       a a                      a              a
a matricei A. Trebuie s˘ g˘sim o matrice unitar˘ U ce realizeaz˘ transformarea
                                                      
                                 α w1     . . . wn−1
                               0 a(1) . . . a(1) 
                                     2,2           2,3
                     U ∗ AU =  . .
                                                      
                                          ..     .     .                (6.76)
                               . .           . ..
                               . .
                                                       
                                                       
                                     (1)           (1)
                                 0 a2,n . . . an,n

                          ¸               a
Elementul α de pe pozitia 1, 1 trebuie s˘ fie chiar o valoare proprie a lui A deo-
arece U ∗ AU are acelea¸i valori proprii ca ¸i A, iar calculul polinomului caracte-
                         s                   s
ristic al matricei U ∗ AU conduce la aparitia factorului (λ − α). Este convenabil
                                            ¸
 a                          ın    ¸
s˘ introducem o diviziune ˆ portiuni a matricei din dreapta sub forma

                                           λ          wT
                           U ∗ AU =                                         (6.77)
                                           0n−1       An−1

unde λ este o valoare proprie a lui A, w un vector coloan˘ de dimensiune n − 1,
                                                         a
0n−1 vectorul nul de dimensiune n − 1, iar An−1 o matrice p˘trat˘ de ordinul
                                                              a    a
n − 1.
                 a                      ¸
   Prima coloan˘ a unei matrice se obtine prin ˆ       ¸
                                                 ınmultirea acesteia la dreapta
cu vectorul e(1) = [1, 0, . . . , 0]T

                                            λ
                         U ∗ AU e(1) =                  = λe(1) .           (6.78)
                                            0n−1

Dar U ∗ = U −1 ¸i ˆ   ¸         a              ¸
               s ınmultind la stˆnga cu U se obtine

                                  AU e(1) = λU e(1) ,                       (6.79)

           ¸         a         a
deci conditia ca U s˘ conduc˘ la eliminarea elementelor subdiagonale de pe
prima coloan˘ a matricei A este ca U e(1) s˘ fie proportional cu vectorul propriu
             a                             a          ¸
                                            a
al matricei A asociat valorii proprii λ. Not˘m prin x acest vector propriu. De-
                            a a               a             a
oarece x este determinat pˆn˘ la o constant˘ multiplicativ˘ putem presupune
          s
 x 2 = 1 ¸i

                         U e(1) = βx,       β = 0,       β ∈ C.             (6.80)

   Relatia (6.80) ne spune c˘ trebuie s˘ g˘sim o transformare a vectorului e(1)
       ¸                    a          a a
ın                                  a           a
ˆ vectorul x printr-o matrice unitar˘. Interpret˘rile geometrice ale procedeelor
             s                    a                                   ¸
Householder ¸i Givens ne furnizeaz˘ imediat modalitatea de constructie a lui U .
                         ¸
Cum o reflexie sau o rotatie nu vor modifica modulul unui vector va trebui s˘    a
avem

                           e(1)       = |β| · x   2   = |β| = 1.            (6.81)
                                  2

   Dac˘ adopt˘m procedeul Householder, matricea U este dat˘ de U = I − vv ∗
       a       a                                               a
cu v vectorul normalei la planul fat˘ de care reflexia lui y = β −1 e(1) este chiar
                                   ¸a
168                                                       6. Vectori ¸i valori proprii
                                                                     s




                                          a
       Figura 6.1: Interpretarea geometric˘ a procedeului Householder.


x. Prin analogie cu cazul bidimensional (fig. 6.1) unde x − y este normala la
                    a      a
planul de reflexie, b˘nuim c˘

                                       v = a(x − y) ,                                  (6.82)

               a                   a          ¸         a          a
cu a o constant˘ ce este determinat˘ din conditia ca U s˘ fie unitar˘
                              2                                −2
                          v   2    = 2 ⇒ a2 = 2 x − y          2    .                  (6.83)

     ¸                                        a
Intuitia din cazul bidimensional este verificat˘ pe cazul general prin calcul,

  Ux − y   = (I − vv ∗ )x − y = x − vv ∗ x − y = x − a2 (x − y)(x∗ − y ∗ )x − y
           = (x − y)[1 − a2 (x∗ x − y ∗ x)] .

Trebuie ca U x − y = 0 pentru x arbitrar, deci impunem

                                  1 − a2 (x∗ x − y ∗ x) = 0.                           (6.84)

ˆ
Inlocuind a2 din (6.83) se obtine
                             ¸
                                      2
                          x−y         2   − 2(x∗ x − y ∗ x) = 0,                       (6.85)
                              2
sau, ¸inˆnd cont c˘ x − y
     t a           a          2   =       (x − y, x − y) = (x − y) · (x∗ − y ∗ ) (vezi relatia
                                                                                           ¸
5.153) ¸i c˘ x∗ x = y ∗ y,
        s a

                                          y ∗ x = x∗ y.                                (6.86)

    ¸
Relatia (6.86) determin˘ parametrul β,
                       a

                    (β −1 e(1) )∗ x = x∗ β −1 e(1) ⇒ βx1 = βx1 ,                       (6.87)

                                 a                ¸               a
unde x1 este prima component˘ a lui x. Conditia de mai sus spune c˘ βx1
trebuie s˘ fie o cantitate real˘. Cum |β| = 1 rezult˘
         a                    a                     a

                                       β = x1 / |x1 |
                                           ¯                                           (6.88)

dac˘ |x1 | = 0. Dac˘ x1 = 0 atunci lu˘m β = 1. Matricea U este complet
   a               a                 a
           a
determinat˘.
                 s
6.5. Metodele QR ¸i LR                                                     169


                    a a                                          s
   Un calcul asem˘n˘tor se poate efectua pentru a determina ¸i matricea de
    ¸               a
rotatie ce realizeaz˘ eliminarea elementelor subdiagonale de pe prima coloan˘.a
                ın                                             a
Nu vom intra ˆ detalii deoarece acest procedeu este de regul˘ mai costisitor
                               ¸                      a        at
din punct de vedere al operatiilor aritmetice, datorit˘ necesit˘¸ii de a evalua
                 ¸               a     a        a
radicali. Exceptia de la aceast˘ regul˘ general˘ este pentru o matrice cu un
mare num˘r de zerouri deja existente sub diagonala principal˘. ˆ acest caz se
           a                                                 a In
                    a                      ın                      a
poate proceda dup˘ cum s-a exemplificat ˆ prezentarea transform˘rii Givens.

Teorema Schur.
     a        ¸                                            a
Odat˘ eliminati termenii subdiagonali de pe prima coloan˘ calculul se poate
                           a               s s                 a a
repeta pentru prima coloan˘ a matricei A1 ¸i a¸a mai departe, pˆn˘ la aducerea
        a                                            a
complet˘ a matricei originale A la forma triunghiular˘. Metoda de mai sus este
    ¸ a          ın    a               a
enuntat˘ formal ˆ urm˘toarea teorem˘ important˘.  a

Teorem˘. (Schur) Orice matrice p˘trat˘ A de dimensiuni n × n este unitar
       a                          a     a
           a                          a
    similar˘ cu o matrice triunghiular˘ T .

               ¸                          ¸
    Demonstratie. Vom proceda prin inductie. Orice matrice de ordinul n = 1
                  a a          a                    a a
este triunghiular˘. S˘ consider˘m acum teorema adev˘rat˘ pentru orice matrice
de ordinul n − 1, spre exemplu pentru matricea An−1 din (6.77) pentru care
                 a                               a
matricea unitar˘ de aducere la forma triunghiular˘ este Un−1
                            ∗
                           Un−1 An−1 Un−1 = Tn−1 .                       (6.89)

Matricea
                                     1      0T
                                             n−1
                          Un = U                                         (6.90)
                                     0n−1   Un−1

                                   a                                         a
cu U construit ca mai sus realizeaz˘ aducerea matricei A la forma tringhiular˘.
ˆ        a
Intr-adev˘r, avem

 ∗              1      0T               1      0T
Un AUn     =            n−1
                         ∗     U ∗ AU           n−1
                0n−1   Un−1             0n−1   Un−1
                1      0T
                        n−1      λ      wn−1        1      0T
                                                            n−1
           =             ∗
                0n−1   Un−1      0n−1   An−1        0n−1   Un−1
                                              ∗                         ∗
                1      0T
                        n−1      λ      wn−1 Un−1          λ      wn−1 Un−1
           =             ∗                            =
                0n−1   Un−1      0n−1   An−1 Un−1          0n−1   Tn−1

                                a             a
unde ultima matrice este de form˘ triunghiular˘. 2

6.5.2      Algoritmi auxiliari
              s                     a                                   a
Metodele LR ¸i QR cuprind un num˘r de algoritmi subsidiari ce le fac s˘ fie
         a         a      ıntˆ         a¸                ıntregului algoritm
eficace. S˘ consider˘m mai ˆ ai aceste p˘rti componente a ˆ
LR sau QR.
170                                               6. Vectori ¸i valori proprii
                                                             s


    ¸
Deflatie.
                           a a                        a      a
Teorema Schur ne asigur˘ c˘ o transformare unitar˘, similar˘ de la matricea A
la o form˘ triunghiular˘ exist˘. ˆ a suntem ˆ situatia nepl˘cut˘ c˘ trebuie s˘
         a               a     a Ins˘          ın       ¸    a a a             a
       s                   s
cunoa¸tem deja vectorii ¸i valorile proprii pentru a determina efectiv matricea
                                  ın              a
de transformare. Modul efectiv ˆ care se aplic˘ rezultatele de mai sus este ˆ ın
                                                  a ın          a
reducerea ordinului matricei cu care se lucreaz˘ ˆ momentul cˆnd una dintre
                             a                                   ¸ s
valori proprii a fost izolat˘. Acest proces este cunoscut ca deflatie ¸i cuprinde
     a
urm˘toarele etape:

                  a
   1. se calculeaz˘ vectorul propriu x asociat valorii proprii λ;
   2. se ia β = x1 / |x1 | pentru x1 = 0 sau β = 1 pentru x1 = 0;
                √
   3. se ia a = 2/ x − βe(1) , v = a(x − βe(1) ) ¸i U = I − vv ∗ ;
                                                    s
   4. se calculeaz˘ U ∗ AU ¸i se izoleaz˘ submatricea An−1 (6.77).
                  a        s            a

         as                        ¸        ¸                     a         a
    La sfˆr¸itul unei etape de deflatie se obtine o matrice mai mic˘ asupra c˘reia
                 ın                                   ¸               ¸a
se poate opera ˆ continuare cu o economie de operatii aritmetice fat˘ de cazul
ın
ˆ care s-ar ˆ                                 a
             ıncerca determinarea transform˘rii globale ce aduce pe A la forma
             a
triunghiular˘.

Factorizarea QR.
Am v˘zut ˆ 5.1.9 cum o matrice A se poate descompune ˆ
     a     ın                                                 ıntr-un produs de
   a                                   as                             a       a
dou˘ matrice, una inferior triunghiular˘ ¸i alta superior triunghiular˘. Exist˘
multe alte tipuri de factorizare

                                     A = BC                                (6.91)

                           a           a                       a
a unei matrice A. O clas˘ important˘ o constituie factoriz˘rile ortogonale, la
                                                                          a
care vectorii coloan˘ ai matricei B sunt ortogonali (vezi 1.4.2) doi cˆte doi.
                     a
                a                             a
Printre factoriz˘rile ortogonale, cea mai util˘ este factorizarea QR a lui House-
holder

                                     A = QR                                (6.92)

ın                            as                                    a     a
ˆ care Q este o matrice unitar˘ ¸i R o matrice superior triunghiular˘. Dup˘
            a                                                         ¸ a
cum sugereaz˘ aproprierea de nume, factorizarea QR este o parte esential˘ a
metodei QR de determinare a valorilor proprii.
                                           ¸
   Deoarece Q este unitar˘ din (6.92) se obtine
                         a

                                    Q∗ A = R .                             (6.93)

            a
Ideea de baz˘ a algoritmului de factorizare este construirea pas cu pas a matricei
Q∗ prin eliminarea succesiv˘ a elementelor subdiagonale de pe coloanele matricei
                           a
A

                             Un−1 · . . . · U2 U1 A = R                    (6.94)
                 s
6.5. Metodele QR ¸i LR                                                       171


              a
unde U1 elimin˘ elementele subdiagonale de pe coloana 1, U2 cele de pe coloana
  s s                      a                 a        a
2 ¸i a¸a mai departe. Dac˘ A este de form˘ general˘, cea mai eficient˘ me-a
tod˘ de construire a matricelor Uj j ∈ 1, n − 1 este prin aplicarea reflectorilor
    a
elementari. Matricea Q este

                             Q = U1 U2 · . . . · Un−1 ,                    (6.95)
                                ∗
         t            a
unde am ¸inut cont c˘ Uj = Uj pentru un reflector elementar.
                                       s ın
   Algoritmul de factorizare construie¸te ˆ mod explicit matricea R. Nu este
                              a                                  a
nevoie de construirea explicit˘ a matricei Q. Aceasta se memoreaz˘ prin succe-
siunea de vectori vj din definirea reflectorilor Uj
                                               ∗
                                  Uj = I − vj vj .                         (6.96)

                                      ıncˆ              a     a    ¸ ın     ¸
Tot calculul poate fi organizat astfel ˆ at vectorii vj s˘ fie p˘strati ˆ locatiile
                ın                                                    a
din matricea A ˆ care s-au creat elemente nule. Costul unei factoriz˘ri este de
O(n3 ) operatii pentru o matrice A oarecare.
            ¸

6.5.3                            s
         Formularea metodelor QR ¸i LR
                     a ¸                                   s
Suntem acum preg˘titi pentru prezentarea metodelor QR ¸i LR de calcul a va-
lorilor proprii. ˆ                             a     a     a         a
                 Incepem cu metoda QR. Am v˘zut c˘ odat˘ cunoscut˘ o valoare
                                                                         ¸
proprie putem reduce ordinul problemei prin aplicarea tehnicii de deflatie. O
             a
idee imediat˘ este folosirea metodei puterii pentru a determina valoarea proprie
                ın
cea mai mare ˆ modul. Am putea reduce ordinul problemei, aplica din nou me-
                                 s s                   a
toda puterii asupra noi matrice ¸i a¸a mai departe. S˘ rescriem metoda puterii
              ¸              a
folosind notatii ce sugereaz˘ generalizarea procedeului
                                z (s) = Aq (s−1)
                                q (s) = z (s) / z (s) 2                    (6.97)
                                             ∗
                                λ = q (s) Aq (s) ,
                                          s                     ¸           a
pentru s = 1, 2, . . . . Algoritmul porne¸te cu un vector initial de norm˘ egal˘ a
cu unitatea q (0) , ¸i efectueaz˘ normalizarea vectorului z (s) (aducerea la norma
                    s           a
                                  ¸                                 a
egal cu unitatea) la fiecare iteratie. Valoarea proprie este estimat˘ prin raportul
Rayleigh (6.11), ¸inˆndu-se cont c˘ q (s) este normalizat.
                   t a               a
      a ıncerc˘m acum s˘ aplic˘m metoda puterii asupra mai multor vectori
    S˘ ˆ      a             a      a
   ¸
initiali
                                    (0)    (0)             (0)
                       Q(0) =     q1      q2     ...      qn               (6.98)

ˆ speranta obtinerii mai multor valori proprii simultan. ˆ acest caz va trebui ca
ın        ¸   ¸                                          In
matricea Q(0) s˘ fie ortogonal˘ pentru a asigura liniar independenta vectorilor
                a            a                                      ¸
de start. Algoritmul devine
                             Z (s) = AQ(s−1)
                             Q(s) R(s) = Z (s)     .                       (6.99)
                               (s)     (s) ∗   (s)
                             T = Q           AQ .
172                                                       6. Vectori ¸i valori proprii
                                                                     s


                   ¸ a
Modificarea esential˘ este ˆ                    ¸
                              ınlocuirea operatiei de normalizare din (6.97) cu o
                          a                           a
descompunere ortogonal˘ de tip QR. Se asigur˘ astfel independenta liniar˘¸       a
                       a            ¸                   ın     ¸      a
a vectorilor asupra c˘rora va actiona matricea A ˆ iteratia urm˘toare, ceea
        a                            ¸
ce ajut˘ la accelerarea convergentei. Valorile proprii apar acum pe diagonala
matricei T (s) ce nu este altceva decˆt generalizarea raportului Rayleigh.
                                        a
                    ın                                           ¸
    Nu vom intra ˆ toate detaliile tehnice asupra convergentei procedeului de
mai sus. Putem ˆ a afirma c˘ ¸irul de matrice T (s) tinde c˘tre o matrice cvasi-
                  ıns˘          as                             a
             a              s                    s                               a
triunghiular˘ ce are acelea¸i valori proprii ca ¸i A. O matrice cvasitriunghiular˘
     a                     a
difer˘ de una triunghiular˘ doar prin blocuri izolate de dimensiune 2×2 grupate
ın                                                              a
ˆ jurul diagonalei principale. Aceste blocuri sunt de regul˘ asociate valorilor
proprii complexe.
    S˘ vedem leg˘tura dintre T (s) ¸i T (s−1) . ˆ
     a            a                   s          Incepem cu T (s−1)
                        ∗                       ∗                       ∗
  T (s−1) = Q(s−1)          AQ(s−1) = Q(s−1)        Z (s) = Q(s−1)          Q(s) R(s) . (6.100)

                                                          a       ¸
Cum un produs de matrice unitare este tot o matrice unitar˘, am obtinut
                                                      ∗
             (s−1)     (s−1)       (s−1)                            (s−1)
  T (s−1) = QT       RT        cu QT       ≡ Q(s−1)       Q(s) ,   RT        ≡ R(s) . (6.101)

                                                                                      ∗
Pe de alt˘ parte din Q(s) R(s) = Z (s) = AQ(s−1) rezult˘ R(s) = Q(s)
         a                                             a                                  AQ(s−1)
                 (s)
s
¸i putem scrie T     ca
                   ∗                   ∗              ∗
                                                                              (s−1)    (s−1)
   T (s) = Q(s)        AQ(s) = Q(s)        A Q(s−1)       Q(s−1) Q(s) = RT            QT       .
                                                                                           (6.102)

Rezult˘ urm˘toarea regul˘ de evaluare a matricei T (s) : se calculeaz˘ factorizarea
      a    a             a                                           a
QR a matricei T (s−1)¸i se inverseaz˘ factorii
                     s              a

                  Q(s−1) R(s−1) = T (s−1) ⇒ T (s) = R(s−1) Q(s−1) .                        (6.103)

   ˆ metoda LR calculele se desf˘¸oar˘ asem˘n˘tor
   In                           as a       a a

                  L(s−1) R(s−1) = T (s−1) ⇒ T (s) = L(s−1) R(s−1) .                        (6.104)

                               a ın                  a             ¸
Dezavantajul metodei LR const˘ ˆ necesitatea efectu˘rii de operatii de pivo-
                      ımp˘ ¸                                    ın      s
tare pentru a preveni ˆ artirile la zero sau numere foarte mici ˆ modul ¸i o
          ¸a        a
convergent˘ mai lent˘ comparativ cu metoda QR.

6.5.4                  a              ¸
          Reducerea num˘rului de operatii la factorizare
Elementele ¸irului T (s) din (6.103) pot doar converge c˘tre o matrice cvasitri-
             s                                            a
           a                        ¸               a
unghiular˘, dar pe parcursul iteratiilor au o form˘ oarecare. Aceasta face ca
      ¸                        a
operatia de factorizare QR s˘ fie excesiv de costisitoare. Este convenabil ca
     ¸         a                                               s
iteratiile QR s˘ se efectueze asupra unei matrice ce are acelea¸i valori proprii ca
                 s
6.5. Metodele QR ¸i LR                                                                         173


s          a                  a            s
¸i A, dar s˘ prezinte o form˘ ce economise¸te                    ¸
                                                        din operatiile aritmetice necesare
        a                       a
factoriz˘rii. O astfel de form˘ este
                                                                             
                          h1,1 h1,2 h1,3 . . .             h1,n−1   h1,n
                        h2,1 h2,2 h2,3 . . .              h2,n−1   h2,n      
                                                                             
                        0       h3,2 h3,3 . . .           h3,n−1   h3,n      
                 H= 0
                                                                             
                                0    h4,3 . . .           h4,n−1   h4,n      
                                                                              
                        .       .    .    ..              .        .
                        .       .    .                    .        .         
                          .      .    .        .           .        .         
                           0     0       0       ...       hn,n−1   hn,n
         a     a                      a                           a
denumit˘ form˘ Hessenberg superioar˘. Analog matricea transpus˘ se spune
 a             a                      a          a              aa
c˘ este de form˘ Hessenberg inferioar˘. Prin form˘ Hessenberg, f˘r˘ vreun alt
                ınt                     a
calificativ, vom ˆ ¸elege forma superioar˘.
                           ın
    Algoritmul QR devine ˆ acest caz

                   Q(s−1) R(s−1) = H (s−1) ⇒ H (s) = R(s−1) Q(s−1) .                        (6.105)

Forma Hessenberg se p˘streaz˘ la inversarea factorilor deoarece Q(s−1) se poate
                       a       a
                ıncˆ a                                     a
construi astfel ˆ at s˘ fie o matrice Hessenberg. Odat˘ determinat˘ formaa
Hessenberg initial˘, fiecare iteratie QR va necesita O(n2 ) operatii aritmetice.
               ¸ a               ¸                              ¸

Aducerea la forma Hessenberg prin matrice cu multiplicatori.
ˆ cadrul algoritmului LR, aducerea la forma Hessenberg se efectueaz˘ prin
In                                                                        a
                                      a
matrice cu multiplicatori, care elimin˘ elementele ajk cu j > k + 1 de pe fiecare
      a ıncepˆnd cu prima. Spre exemplu, pentru eliminarea elementelor de
coloan˘, ˆ    a
pe coloana 1, matricea de multiplicatori este
                                          
                 1 0           0 ... 0
                0 1           0 ... 0 
                                          
                0 −m3,2 1 . . . 0 
         M1 =                              , mi,2 = ai,1 /a2,1 ,       (6.106)
                . .           . ..     . 
                . .
                 . .           .
                               .     . . 
                                        .
                 0 −mn,2 0 . . . 1

pentru i ∈ 3, n. Se poate remarca similitudinea cu matriciele de la eliminarea
        a
gaussian˘. Matricea se poate scrie ca

                                     M1 = I − m2 eT ,
                                                  2                                         (6.107)
                                         T                                            T
  m2 =     0   0    m3,2   ...   mn,2        ,   e2 =       0   1   0   ...       0       . (6.108)

Inversa este
                                                          
                               1 0        0 ...        0
                          
                              0 1        0 ...        0   
                                                           
                    −1
                   M1    =
                              0 m3,2     1 ...        0    = I + m2 eT ,
                                                           
                                                                                            (6.109)
                                                                       2
                              . .
                               . .        . ..
                                          .            .
                                                       .   
                              . .        .    .       .   
                               0 mn,2     0 ...        1
174                                                  6. Vectori ¸i valori proprii
                                                                s


ceea ce se poate verifica prin calcul direct
                  −1
              M1 M1      = (I − m2 eT )(I + m2 eT )
                                    2           2                                 (6.110)
                         = I − m2 eT + m2 eT − m2 eT m2 eT = I .
                                   2        2       2    2                        (6.111)
             −1
Matricea M1 va ˆ           ¸
                    ınmulti, la dreapta, matricea A, pentru ca transformarea s˘     a
           as                    a                          a a              ¸
fie similar˘ ¸i valorile proprii s˘ nu se modifice. Se observ˘ c˘ zerourile obtinute
                                                                                  −1
ın                                         ¸ s ın
ˆ coloana i de matricea M1 A se mentin ¸i ˆ matricea similar˘ M1 AM1 ,  a
                                            −1
                         a                                a
deoarece prima coloan˘ din matricea M1 este identic˘ cu prima coloan˘ din      a
                                                                    a
matricea unitate. Acest lucru a fost posibil tocmai pentru c˘ matricea M1
                                         a
are coloana multiplicatorilor deplasat˘ cu un indice mai spre dreapta fat˘ de  ¸a
                                   a        a a
matricea de eliminare gaussian˘. Rezult˘ c˘ orice matrice A poate fi adus˘ la     a
                                     a
forma Hessenberg prin transform˘ri similare (eventual folosind permut˘ri) ˆ  a     ın
     a
num˘r finit.
    Dac˘ elementul a2,1 este nul, un alt element ai,2 i ∈ 3, n poate fi adus ˆ
        a                                                                          ın
     ¸                        a                        a ¸               ¸
pozitia (1, 2), prin permut˘ri de linii. Evident, dac˘ toti coeficientii ai,1 = 0,
i ∈ 2, n, rezult˘ c˘ a1,1 este valoare proprie ¸i procedeul se va aplica matricei
                a a                             s
r˘mase, de dimensiuni (n − 1) × (n − 1). Permut˘rile de linii sau coloane sunt
 a                                                  a
                         a                      ¸                     ¸
recomandate chiar dac˘ a2,1 = 0, pentru obtinerea de pivot partial sau total.
                                                                               −1
                                                          s
Inversa matricei de permutare a liniilor sau coloanelor k ¸i 1 este tot Pk1 (Pk1 =
                           a            a                        s
Pk1 ). Regula este urm˘toarea: dac˘ am permuta liniile k ¸i 1, este necesar
                              a           a a         a s
pentru ca transformarea s˘ fie similar˘, s˘ permut˘m ¸i coloanele de aceea¸i         s
             a              ¸                                         aa
indici. Num˘rul de operatii pentru aducerea la forma Hessenberg f˘r˘ permut˘ri    a
este aproximativ 2n3 /3 − 5n2 /2.

                                           a
Aducerea la forma Hessenberg prin transform˘ri similare unitare.
Matricea A se poate aduce la forma Hessenberg prin transform˘ri similare ce  a
                                  ¸
folosesc reflectori sau rotatii elementare. Aceste metode au avantajul unei
        ¸ a                 s        a               ¸
condition˘ri optime, de¸i num˘rul de operatii este mai mare decˆt ˆ cazul fo- a ın
losirii multiplicatorilor. ˆ cazul general este mai eficient˘ folosirea reflectorilor
                              In                                    a
s                         a
¸i nu vom descrie decˆt acest procedeu.
                     a             s
     Ideea de baz˘ este aceea¸i ca la folosirea multiplicatorilor: se aduc rˆnd pe a
rˆnd coloanele matricei A la forma Hessenberg. Dup˘ etapa s − 1 coloanele 1,
 a                                                             a
2, . . . , s − 1 sunt ˆ form˘ Hessenberg iar matricea are forma
                       ın       a
                                                         (s−1)          (s−1)
                  (s−1)       (s−1)           (s−1)
                                                                               
                   a11      a12        . . . a1,s−1 a1,s       . . . a1,n
                  (s−1)       (s−1)           (s−1)     (s−1)          (s−1) 
                  a21      a22        . . . a2,s−1 a2,s       . . . a2,n      
                  .        .          ..    .         .       ..     .
                                                                              
                  .        .              . .         .           . .
                                                                               
                   .        .                .         .              .        
                                               (s−1)     (s−1)          (s−1) 
    A(s−1) =  0
                                                                              
                           0          . . . as,s−1 as,s       . . . as,n       . (6.112)
                                                         (s−1)          (s−1) 
                  0        0          ... 0           as+1,s . . . as+1,n 
                 
                  .        .          ..    .         .       ..     .
                                                                              
                  .        .              . .         .           . .
                                                                               
                   .        .                .         .              .        
                                                         (s−1)          (s−1)
                   0        0          ... 0           an,s    . . . an,n
                 s
6.5. Metodele QR ¸i LR                                                                        175


    a         a         ın
   S˘ determin˘m modul ˆ care aducem coloana s la forma Hessenberg. Este
       a
comod s˘ introducem o transcriere pe blocuri a matricei,

                                                B       C
                                A(s−1) =                        ,                          (6.113)
                                                D       E

unde B, C, D, E sunt submatrice din A(s−1) . Submatricea B este de dimensiuni
s × s ¸i este de form˘ Hessenberg. Submatricea C este de dimensiuni (n − s) ×
      s              a
(n − s). Submatricea D este de dimensiuni (n − s) × s ¸i are elemente nenule
                                                       s
                       a            a        a
doar pe ultima coloan˘. Fie d aceast˘ coloan˘,
                                                                          T
                             (s−1)        (s−1)                 (s−1)
                     d=     as+1,s       as+2,s     ...       an,s            .            (6.114)

Submatricea E este de dimensiuni (n − s) × (n − s). Transformarea unitar˘a
         a               a                 a
trebuie s˘ lase neafectat˘ partea deja adus˘ la forma Hessenberg, B. Forma
matricei de transformare din etapa s este

                                               I    0
                                  Us =                                                     (6.115)
                                               0    U
                              ∗
deoarece calculul produsului Us A(s−1) Us conduce la

           I   0       B    C        I    0                     I    0            B   CU
                                                    =                                      (6.116)
           0   U∗      D    E        0    U                     0    U∗           D   EU
                                                                B         CU
                                                    =                                 .    (6.117)
                                                                U ∗D      U ∗ EU

Pentru un reflector elementar U ∗ = U. Deducem conditia de obtinere a formei
                                                   ¸        ¸
           ın
Hessenberg ˆ etapa s

                                     U d = βe(1) ,                                         (6.118)

cu e(1) = (1, 0, . . . , 0)T , un vector unitar cu n − s componente. Aceasta este si-
milar˘ problemei (6.80), iar interpretarea geometric˘ a reflectorului Householder
     a                                                    a
             a
ne furnizeaz˘ solutia ¸

                        U = I − vv ∗ ,        v = a(d − βe(1) ) ,                          (6.119)
                                 √                                   (s−1)
cu β = −(d1 / |d1 |) d 2 , a =    2 d − βe(1)           2
                                                            , d1 = as+1,s .

6.5.5                              s
          Accelerarea metodelor QR ¸i LR
                  a
Aplicarea factoriz˘rii QR sau LR asupra formei Hessenberg a unei matrice re-
          a             ¸
duce num˘rul de operatii aritmetice efectuate ˆ            ¸
                                               ıntr-o iteratie. O a doua cale de
                                                 a              ¸        ¸
reducere a timpului de calcul este reducerea num˘rului de iteratii. Iteratiile QR
s            a     a                             a                    a
¸i LR tind s˘ aduc˘ forma Hessenberg la o form˘ cvasi-triunghiular˘. Pentru a
            a             ¸
reduce num˘rul de iteratii necesare atingerii acestei forme se pot folosi tehnici
176                                                    6. Vectori ¸i valori proprii
                                                                  s


                                  a
de accelerare sugerate de modific˘rile efectuate asupra metodei puterii pentru
     ¸                                           a
a obtine metoda puterii inverse sau cea a deplas˘rii.
                    a       a                  a                     a s
    Cea mai utilizat˘ tehnic˘ este cea a deplas˘rii originii. Se urm˘re¸te ameli-
orarea convergentei atunci cˆnd apare un bloc 2 × 2 pe diagonal˘. Relatiile de
                 ¸           a                                     a      ¸
iterare QR devin

                             H (s) − ks I      = Q(s) R(s)                   (6.120)
                           H (s+1) − ks I      = R(s) Q(s)                   (6.121)

unde ks este deplasarea. Deplasarea se poate alege ca fiind ultimul element de
               (s)                                              (s)
           a            a a                      a ın                     ¸
pe diagonal˘, hn,n sau r˘d˘cina cea mai apropriat˘ ˆ modul de hn,n a ecuatiei
                            (s)                 (s)
                           hn−1,n−1 − k       hn−1,n
                            (s)                (s)          = 0.             (6.122)
                           hn,n−1             hn,n − k

    a         a                                              ¸
Odat˘ asigurat˘ izolarea unei valori proprii se trece la deflatia matricei.

6.5.6    Calculul vectorilor proprii
                                                                       a
Calculul vectorilor proprii pentru o matrice cvasisuperior triunghiular˘ se face
 s                                                                          a
u¸or, valorile proprii fiind cunoscute. Fie matricea superior triunghiular˘ de
dimensiuni 5 × 5
                                                     
                                λ1 a1 b1 c1 d1
                               0    λ2 b2 c2 d2 
                                                     
                        Hs =  0    0   λ3 c3 d3                       (6.123)
                                                      
                               0    0   0    λ4 d 4 
                                0    0   0    0    λ5

    a                      a              a         a            ¸       a
form˘ la care presupunem c˘ s-a ajuns dup˘ un num˘r s de iteratii. Not˘m mai
                                                                       ¸
departe cu y un vector propriu oarecare al matricei care satisface relatia

                  Hs y = λi y, i ∈ 1, 5, y = (y1 , y2 , y3 , y4 , y5 )T .    (6.124)

                              ¸
Pentru componentele yi , se obtine sistemul

                  y5 (λi − λ5 )    =    0
                  y4 (λi − λ4 )    =    d4 y5
                  y3 (λi − λ3 )    =    d3 y5 + c3 y4                        (6.125)
                  y2 (λi − λ2 )    =    d2 y5 + c2 y4 + b2 y3
                  y1 (λi − λ1 )    =    d1 y5 + c1 y4 + b1 y3 + a1 y2

Sistemul (6.125) poate determina componentele yi , cel mult pˆn˘ la o constant˘
                                                              a a               a
             a                                                               a
multiplicativ˘. Acest sistem este simplu, principala dificultate nu este legat˘ de
 a                                   a                     ¸
g˘sirea necunoscutelor ci mai degrab˘ de discernarea solutiilor care apar.
                 s
6.5. Metodele QR ¸i LR                                                              177


Cazul valorilor proprii distincte.
                  ¸                              ¸
In acest caz se obtin 5 vectori liniar independenti. Spre exemplu, pentru i = 1,
din primele 4 ecuatii (6.125) rezult˘
                   ¸                 a

                                y2 = y3 = y4 = y5 = 0 ,                          (6.126)

ın                       ¸                        a
ˆ timp ce ultima ecuatie este identic verificat˘. Concluzia este: y1 poate lua
                     a                                          ¸              a
orice valoare diferit˘ de zero (vectorii proprii sunt prin definitie nenuli). Luˆnd
                                                    a
y1 = 1 se poate scrie vectorul propriu corespunz˘tor valorii λ1

                                  y (1) = (1, 0, 0, 0, 0)T                       (6.127)

                                             ¸
   Pentru i = 2 (λi = λ2 ), din (6.125) se obtine

                  y3 = y4 = y5 = 0, y1 (λ2 − λ1 ) = a1 y2 , y2 = 0,              (6.128)

                          a
vectorul propriu corespunz˘tor fiind

                      y (2) = (y1 , 1, 0, 0, 0)T , y1 = a1 /(λ2 − λ1 )           (6.129)

s s
¸i a¸a mai departe.

Cazul valorilor proprii multiple.
                                               ¸                ¸
Fie λ1 = λ2 = λ3 = λ4 = λ5 . Din primele 3 ecuatii (6.125) se obtine

                                    y3 = y4 = y5 = 0                             (6.130)

                    a
iar din ultimele dou˘

                                0 · y2 = 0, 0 · y1 = a1 y2 .                     (6.131)

          a     at                                        ın    ¸
Cele dou˘ egalit˘¸i (6.131) conduc la concluzii diferite, ˆ functie de coeficientul
     s
a1 , ¸i anume

                       a1 = 0 ⇒ y1 , y2 arbitrari, nu toti nuli.
                                                        ¸                        (6.132)

                        s                              ¸                                 ¸
   Cu y1 , y2 arbitrari ¸i y3 , y4 , y5 nuli, se pot obtine doi vectori liniar independenti,
          a
corespunz˘tor valorilor proprii egale, λ1 , λ2

                y (1) = (1, 0, 0, 0, 0)T , y (2) = (0, 1, 0, 0, 0)T , a1 = 0 .   (6.133)

                               ¸
Pentru a1 = 0 din (6.131) se obtine

                           y2 = 0, y1 = 0 (altfel arbitrar).                     (6.134)

                     a                      ¸
   Prin urmare, dac˘ a1 = 0 nu se pot obtine doi vectori liniar independenti   ¸
          a                                              a a
corespunz˘tor valorilor proprii egale λ1 , λ2 . Rezult˘ c˘ sistemul de vectori
                        s                           ¸               a
proprii ai matricei Hs (¸i deci nici ai matricei initiale A, similar˘ Hs ) nu pot
            a               a                         a             s
forma o baz˘. Se spune c˘ matricea este defectiv˘. Este de a¸teptat c˘, ˆ    a ın
178                                                6. Vectori ¸i valori proprii
                                                              s


                                                              a aa
urma erorilor de calcul numeric, natura vectorilor proprii s˘ ap˘r˘ modificat˘,    a
             a
mai ales cˆnd valorile proprii sunt multiple sau foarte apropriate. Din acest
                                   a
punct de vedere, trebuie spus c˘ procedeul QR este cel mai stabil, furnizˆnd    a
                                           ¸     a             a a
rezultatele cele mai apropriate de situatia real˘. Se observ˘ c˘, determinarea
                                                                           a aa
vectorilor proprii se poate face suficient de comod din forma triunghiular˘, f˘r˘ a
           a                            a
fi necesar˘ reducerea la forma canonic˘ Jordan (care este o matrice triunghiular˘   a
                a                                a
mai particular˘). Aducerea la forma canonic˘ Jordan nu este recomandat˘,          a
       a       ¸       a                                 a           at
aceast˘ operatie putˆnd introduce erori mari datorit˘ instabilit˘¸ii numerice.
           ın
De fapt, ˆ general, aducerea unei matrice (superior) triunghiulare la forma
         a                         a                                     a
canonic˘ Jordan prin transform˘ri unitare sau chiar prin transform˘ri simple
stabilizate (cu pivot) nu este garantat˘.a
          a           ¸
    Odat˘ determinati vectorii proprii y ai matricei triunghiulare, vectorii proprii
                 ¸                      a
x ai matricei initiale A se deduc utilizˆnd matricele de postmultiplicare aplicate
lui A.
             a        a                                             a
   Exemplu. S˘ se aduc˘ la forma superior Hessenberg, prin transform˘ri similare
matricea
                                               
                                12 −20     41
                         A =  9 −15 −63  .
                                20   50    35

  a                                                               ¸
S˘ se calculeze apoi factorizarea LR a matricei Hessenberg obtinute.
                                         a
     Rezolvare. Vom folosi transform˘ri de eliminare. Avem de eliminat un singur
element a31 = 20. Deoarece elementul a21 = 9 nu este pivot vom schimba ˆıntre ele
          s s                 s               ¸                     a
liniile 2 ¸i 3 ¸i coloanele 2 ¸i 3 pentru a obtine o matrice similar˘
                                                               
                                                12   41    −20
                           A1 = P23 AP23 =  20      35     50 
                                                9 −63 −15

Pentru a elimina elementul a31 = 9 vom folosi pivotul a21 =         s
                                                                 20 ¸i multiplicatorul
m32 = a31 /a21 = 9/20, ceea ce duce la matricele
                                                               
                        1     0      0             1   0        0
                                             −1
               M1 =  0       1      0  , M1 =  0    1        0  .
                        0 −9/20 1                  0 9/20       1

     ¸
Se obtine
                                                           
                                        12      32     −20
                               −1
                 A2 =   M1 A1 M1    =  20    115/2     50  = H
                                        0    −765/8   −75/2

       a
de form˘ Hessenberg.
    Pentru descompunerea LR a matricei H, trebuie eliminate elementele h21 = 20 ¸i   s
h32 = −765/8. Deoarece h11 = 12 nu este pivot, se permut˘ liniile 1 ¸i 2 ¸i se obtine
                                                         a          s s          ¸
                                                          
                                    20    115/2       50
                    H1 = P12 H =  12       32       −20  .
                                    0 −765/8 −75/2
                 s
6.5. Metodele QR ¸i LR                                                                179


Rezult˘ multiplicatorul l21
      a                       = −h21 /h11 = −3/5 ¸i matricea de multiplicare la stˆnga
                                                 s                                a
L1
                                                                          
                     1        0     0               20        115/2     50
          L1 =  −3/5         1     0  , L1 H1 =  0         −5/2      −50  .
                     0        0     1                0       −765/8    −75/2

                                          ¸               a            s
    Pentru eliminarea elementului din pozitia (3,2) permut˘m liniile 2 ¸i 3 pentru a
  ¸                ¸
obtine un pivot. Obtinem
                                                          
                                     20    115/2      50
                       P23 L1 H1 =  0 −765/8 −75/2 
                                      0    −5/2      −50

                                                                            
                  1      0            0          20       25/2           50
           L2 =  0      1            0 , R =  0       −765/8        −75/2 
                  0    −4/153         1           0         0         −2500/51


                                     L2 P23 L1 P12 H = R .

             t a          a
Mai departe, ¸inˆnd cont c˘ P23 P23 = I se deduce

                                  L2 (P23 L1 P23 )P23 P12 H = R

                                a
unde matricea P23 L1 P23 similar˘ cu L1 , o vom nota cu L11
                                                                             
                       1    0 0                     1       0                 0
           L11 =  0        1 0  , L2 L11 =  0            1                 0  .
                     −3/5 0 1                     −3/5 −4/153                 1

      a a        ¸                                                 a
Rezult˘ c˘ s-a obtinut o descompunere LR pentru matricea H permutat˘
                                                               
                                                    1    0    0
               P23 P12 H = LR, L = (L2 L11 )−1 =  0     1    0 
                                                   3/5 4/153 1

ın
ˆ timp ce matricea H are descompunerea
                                                                       
                                             3/5             4/153    1
                  H = L R, L = P12 P23 L =  1                 0      0  .
                                              0                1      0
180   6. Vectori ¸i valori proprii
                 s
                                                                               181




Capitolul 7

Metode de optimizare




                                    ın                          s
    Metodele de optimizare sunt ˆ general metode de descre¸tere, ce determin˘      a
                    ¸                                         s        ¸
minimul unei functii U de n variabile reale care se nume¸te functie scop sau
     ¸                    s                                                 ¸
functie obiectiv. De aici ¸i denumirea lor de metode de minimizare a functiilor de
                                             a
mai multe variabile. Evident, problema g˘sirii maximului revine la minimizarea
     ¸                                               s                   ¸a
functiei cu semn schimbat. Metodele de descre¸tere au convergent˘ global˘,        a
     a          a           ¸              a
adic˘ permit g˘sirea solutiei chiar dac˘ punctul de plecare este ˆ          a
                                                                     ındep˘rtat de
     ¸
solutie.
    Metodele de optimizare au un domeniu de aplicabilitate foarte larg. Pe de o
                                                                   a
parte, majoritatea fenomenelor naturii sau economice reprezint˘ compromisuri
ıntre cauze contradictorii, ¸i ca atare multe din problemele ingineriei, economiei,
ˆ                            s
                                                      a
matematicii, statisticii, medicinei, dar mai cu seam˘ procesele decizionale se pot
                                                   a
formula ca probleme de optimizare. Pe de alt˘ parte, majoritatea metodelor
numerice pot fi reformulate ca probleme de optimizare. Aceste reformul˘ri duc  a
             ¸
uneori la obtinerea unor metode performante, cum ar fi cele pentru rezolvarea
                                                                      s
sistemelor de ecuatii liniare, pe care le prezent˘m ˆ sectiunea 7.6.1 ¸i cele pentru
                   ¸                             a ın ¸
                                ¸                                       ın
rezolvarea sistemelor de ecuatii neliniare pe care le vom prezenta ˆ capitolul
8.1.
182                                                          7. Metode de optimizare




             Figura 7.1: Minime pentru o functie de o singur˘ variabil˘.
                                             ¸              a         a


   Un punct de extrem (minim sau maxim) poate fi global (valoarea extrem˘          a
                                                a
din tot domeniul), sau local, (valoarea extrem˘ dintr-un subdomeniu), poate fi
simplu sau multiplu (fig. 7.1). ˆ general, intereseaz˘ minimul global, care se
                                  In                    a
          ¸             a                                                s
poate obtine: (a) repetˆnd calculul pentru puncte de start diferite ¸i alegˆnd a
              ın                     ¸                        a         a ¸
apoi punctul ˆ care valoarea functiei U este cea mai mic˘; (b) dup˘ obtinerea
                      a              ¸ ıntr-o directie oarecare; dac˘ algoritmul
minimului local, se d˘ o perturbatie ˆ              ¸                 a
        ın      s
revine ˆ acela¸i punct, atunci acesta este un candidat serios pentru minim
global.
   Pentru ca un punct x∗ s˘ fie un minim local unic ˆ cazul unei probleme
                              a                            ın
                aa        ¸            ındeplinite conditiile de optimalitate, care
de optimizare f˘r˘ restrictii, trebuie ˆ                ¸
            ¸
sunt conditii suficiente

                          U (x∗ ) = 0, G(x∗ ) ≡      2
                                                         U (x∗ ) > 0 ,                 (7.1)

    a ın                                      ¸                 a
adic˘ ˆ punctul de minim gradientul functiei scop trebuie s˘ fie nul iar matricea
                 ¸                                 a
derivatelor partiale de ordinul al doilea, numit˘ matrice hessian, trebuie s˘ fie a
pozitiv definit˘1 .
               a
                                                      a a        a
   Clasificarea metodelor de optimizare poate fi f˘cut˘ dup˘ mai multe criterii.
                                 ¸
Din punct de vedere al restrictiilor impuse variabilelor, avem probleme de opti-
         a a       ¸ s              ¸        a          ¸
mizare f˘r˘ restrictii ¸i cu restrictii. Dup˘ felul functiei scop, avem probleme de
                    ın         a        ¸   a s        ¸                 s
optimizare liniare, ˆ care atˆt functia cˆt ¸i restrictiile sunt liniare ¸i probleme
                                  a
de optimizare neliniare. Dup˘ efortul de calcul al derivatelor, avem metode
                                        a                             ¸
de tip Newton la care se calculeaz˘ matricea hessian (care contine derivatele
   ¸                             s                                             ıntˆ
partiale de ordinul al doilea) ¸i vectorul gradient (derivatele de ordinul ˆ ai),
                         s                      ¸          ¸
metode cvasi-Newton ¸i metode de gradienti conjugati, la care se calculeaz˘         a
                       ¸                  ıntˆ s
numai derivatele partiale de ordinul ˆ ai, ¸i metode la care nu se calculeaz˘       a
             ¸
derivate partiale.
   1 O matrice G se nume¸te pozitiv definit˘, dac˘ oricare ar fi vectorul nenul y, are loc
                            s                a       a
inegalitatea y T Gy > 0. ˆ cazul unidimensional (n = 1 ) ˆ locul matricei G avem derivata a
                         In                                ın
                 a            a                    ¸     ¸      a           ¸
doua, care, dac˘ este pozitiv˘, atunci graficul functiei “tine ap˘”, iar functia are un minim.
                 ın                 ¸
7.1. Minimizarea ˆ lungul unei directii                                            183


                                                                         a
   Metodele de optimizare sunt metode iterative. Valoarea aproximativ˘ punc-
               ¸                   a                     a
tului unde functia U ia cea mai mic˘ valoare se calculeaz˘ iterativ cu formula

                          xk+1 = xk + αk pk , k = 1, 2, . . . ,                    (7.2)

unde pk este o directie de descre¸tere, iar αk un num˘r real pozitiv care se
                       ¸          s                       a
determin˘ astfel ˆ at U (xk+1 ) < U (xk ). Pentru start este necesar un punct de
         a        ıncˆ
plecare x0 ∈ Rn .


7.1                  ın                 ¸
         Minimizarea ˆ lungul unei directii
             ın                  ¸          a       a
Minimizarea ˆ lungul unei directii reprezint˘ o etap˘ a calculului minimului unei
functii de mai multe variabile. Spre exemplu, scalarul αk din relatia (7.2) poate
    ¸                                                              ¸
fi determinat ca o solutie a problemei de optimizare αk = min{U (xk + αpk )},
                       ¸
                                                                               α
unde vectorii xk ¸i pk sunt cunoscuti, iar functia U r˘mˆne de o sigur˘ variabil˘,
                   s                  ¸           ¸      a a              a        a
U = f (α).
    Fie f : R → R functia real˘ de o variabil˘ real˘ al c˘rei minim dorim s˘-l
                         ¸        a                a     a      a                 a
determin˘m. ˆ cazul ˆ care derivata f este u¸or de determinat analitic, pro-
          a   In        ın                           s
                  a                    ¸                      a
blema determin˘rii extremului functiei f este echivalent˘ cu rezolvarea ecuatiei ¸
                      a                       ¸
f (x) = 0. Se verific˘ apoi care din solutiile astfel determinate corespund unui
               ¸            a                  ın                 a
minim al functiei f , calculˆnd o valoare ˆ imediata vecin˘tate a extremului ¸i    s
        a                         ¸ ın                                  a
comparˆnd-o cu valoarea functiei ˆ punctul de extrem. Atunci cˆnd minimi-
               ¸     a            a         a                                 ¸
zarea unidirectional˘ reprezint˘ o etap˘ a calculului minimului unei functii de
                                         ın
mai multe variabile, derivata f este ˆ general imposibil de determinat analitic.
                                    ¸                     a
    Determinarea minimului functiei f cuprinde dou˘ etape: (a) localizarea mi-
              a ın             ¸                                    ¸
nimului, etap˘ ˆ care se obtine un interval (a, b) care contine minimul ¸i (b)s
                                            ¸               a a a
reducerea lungimii intervalului care contine minimul, pˆn˘ cˆnd lungimea aces-
tuia devine suficient de mic˘, adic˘ |b − a| < e, cu e impus. Se poate folosi ¸i
                              a       a                                            s
o conditie de lungime relativ˘ a intervalului de forma |b − a| < ε|a|, avˆnd ˆ
        ¸                       a                                            a ın
                       √
vedere faptul c˘ ε ≥ εm , unde εm reprezint˘ distanta relativ˘ minim˘ ˆ
                 a                                  a       ¸         a      a ıntre
    a                           s                      s                    s a
dou˘ numere reprezentabile, ¸i care este de acela¸i ordin cu epsilon ma¸in˘ εM
(vezi capitolul 4).
                                       ¸                       a    ¸
    Exemplu. Pentru a verifica afirmatia de mai sus, aproxim˘m functia f folosind
             ın                           a
seria Taylor ˆ jurul punctului a din vecin˘tatea punctului de minim

                            f (b) ∼ f (a) + f (a)(b − a)2 /2 .
                                  =                                                (7.3)

                                       s           s      t           a ın     a
S-au neglijat termenii de ordinul trei ¸i mai mare ¸i s-a ¸inut cont c˘ ˆ vecin˘tatea
minimului f ≈ 0. Valorile a ¸i b nu pot fi luate oricˆt de apropiate decˆt dac˘ este
                              s                       a                    a   a
ındeplinit˘ conditia
ˆ         a      ¸

                                 |f (b) − f (a)| > εm |f (a)| ,                    (7.4)

       ıncˆ          a                     s         a                    a
astfel ˆ at reprezent˘rile numerelor f (a) ¸i f (b) s˘ fie diferite. Rezult˘

                                        |f (a)|      √             |f (a)|
                     |b − a| ∼
                             =    2εm           = |a| εm     2             .       (7.5)
                                        f (a)                     a2 f (a)
184                                                     7. Metode de optimizare




         Figura 7.2: Localizarea minimului pentru o functie de o variabil˘.
                                                        ¸                a

                                                  √
Dac˘ 2|f (a)|/(a2 f (a)) ∼ 1, atunci |b − a| ∼ |a| εm , iar conditia pe care o impunem
    a                                                            ¸
                                   √
|b −a| < ε|a| duce la limitarea ε > εm . Spre exemplu, dac˘ εm = 10−8 , determinarea
                                                             a
                                   a a a                                   ¸
minimului o putem face cel mult pˆn˘ cˆnd lungimea intervalului ce contine minimul
                        √
devine mai mic˘decˆt 10−8 = 10−4 .
                a a



Localizarea minimului.
                                                        ¸
Pentru localizarea minimului este nevoie de cel putin trei puncte (fig. 7.2),
                                  ¸             ¸
spre deosebire de localizarea solutiei unei ecuatii f (x) = 0, unde sunt necesare
numai dou˘ puncte care ˆ
           a             ındeplinesc conditia f (a) · f (b) < 0. Avˆnd trei puncte
                                           ¸                       a
                               ¸                              a
a < b < c, minimul xm este continut de intervalul (a, c) dac˘ f (a) > f (b) < f (c).
               a
Fiind date dou˘ valori a < b pentru care f (a) > f (b), localizarea minimului se
               a     a
poate face dup˘ urm˘torul algoritm:

               Date: a < b, f (a) > f (b)
               fa ← f (a); fb ← f (b)
                  a
               Repet˘
                   c ← b + k(b − a), fc ← f (c)
                        a
                  dac˘ fc > fb
                 
                         atunci xm ∈ (a, c), stop
                          altfel a = b, b = c, fa = fb , fb = fc .

            a                         a                             a
Pasul de c˘utare nu trebuie s˘ fie constant, ba dimpotriv˘, este avantajos ca el
 a        a                  a                 ıncˆ                          a
s˘ creasc˘ de la o etap˘ la alta astfel ˆ at localizarea minimului s˘ fie f˘cut˘    a a
cˆt mai repede: hk+1 = k · hk , cu k > 1.
 a
    Algoritmul prezentat se poate ˆ               a at                                 a
                                           ımbun˘t˘¸i folosind o interpolare parabolic˘.
                        s                             as              a
Prin (a, fa ), (b, fb ) ¸i (c, fc ) se duce o parabol˘ ¸i se calculeaz˘ punctul de minim
u al acesteia. Dac˘ u > c, se recomand˘ ca lungimea u − c s˘ nu fie prea mare,
                       a                        a                     a
spre exemplu u − c < 50(c − b). Dac˘ u ∈ (b, c) ¸i f (b) > f (u) < f (c), atunci
                                              a            s
                 ın                 ¸
7.1. Minimizarea ˆ lungul unei directii                                            185


minimul functiei f este ˆ
              ¸          ıntre b ¸i c. ˆ caz contrar, avem de a face cu un e¸ec al
                                 s     In                                   s
        a
extrapol˘rii parabolice.

Determinarea minimului.
                              a
Etapa de determinare efectiv˘ a minimului xm , se poate face fie prin reducerea
                                 ¸                      a          ¸
lungimii intervalului care-l contine, fie aproximˆnd functia f (x) cu o functie         ¸
           a
mai simpl˘ g(x) pentru care minimul se poate determina pe cale analitic˘; spre    a
exemplu, prin cele trei puncte (a, fa ), (b, fb ), (c, fc ), se poate duce un polinom de
                                     a                              a     s    ¸a
interpolare de gradul al doilea, al c˘rui minim se calculeaz˘ cu u¸urint˘. Prima
        a          a                                                ¸
variant˘ este sigur˘, dar are dezavantajul unei convergente slabe (liniare). A
             a            ın                                            as
doua variant˘ converge ˆ general mult mai repede, dar exist˘ ¸i posibilitatea
                                                    a      a
ca punctul calculat ca minim al parabolei s˘ ias˘ din intervalul care contine        ¸
minimul. Un algoritm din prima categorie, de reducere a lungimii intervalului,
cunoscut sub denumirea de algoritmul sectiunii de aur, este dat de (7.6) ¸i este
                                              ¸                                    s
        ın
descris ˆ continuare.


                         ¸
       Algoritmul sectiunii de aur.
                                              √
  Date: a < b < c; f (a) > f (b) < f (c); ε > εM ; w = 0.38197; w1 = 1 − w
  x0 ← a; x3 ← c; f0 ← f (a); f3 ← f (c)
  dac˘ |c − b| > |b − a|
     a
       atunci x1 ← b; x2 ← b + w(c − b)
       altfel    x2 ← b; x1 ← b − w(b − a)
  f1 ← f (x1 ); f2 ← f (x2 )
  cˆt timp |x3 − x0 | > ε|x1 + x2 |
   a
          a
       dac˘ f2 < f1
    
             atunci x0 ← x1 ; x1 ← x2 ; x2 ← w1 x1 + w x3
    
    
          
                     f0 ← f1 ; f1 ← f2 ; f2 ← f (x2 )
          altfel    x3 ← x2 ; x2 ← x1 ; x1 ← w1 x2 + w x0
                      f3 ← f2 ; f2 ← f1 ; f1 ← f (x1 )
     a
  dac˘ f1 < f2
       atunci xmin ← x1 ; fmin ← f1
       altfel    xmin ← x2 ; fmin ← f2 .
                                                                        (7.6)

                                               a                        a
    Fie a < b < c cu fa > fb < fc , nu neap˘rat b = (a + c)/2. Dac˘ not˘m     a
w = (b − a)/(c − a), atunci 1 − w = (c − b)/(c − a). Se pune problema s˘ alegem
                                                                        a
punctul x ∈ (a, c) astfel ˆ at s˘ mic¸or˘m intervalul care contine punctul de
                           ıncˆ a       s a                      ¸
          a
minim. S˘ presupunem (b, c) acest intervalul de lungime mai mare unde vom
alege pe x ¸i s˘ not˘m z = (x − b)/(c − a). Tripletul care contine minimul
            s a       a                                            ¸
xm va fi a < b < x, sau b < x < c, de lungimi raportate (x − a)/(c − a) =
w + z, respectiv (c − b)/(c − a) = 1 − w. Strategia este de a minimiza cea
                    a                                   a       a
mai dezavantajoas˘ posibilitate, lucru care se realizeaz˘ impunˆnd ca cele dou˘ a
lungimi s˘ fie egale: 1 − w = w + z, rezultˆnd z = 1 − 2w. Cum aceast˘
          a                                     a                               a
                        as                                                      a
strategie a fost folosit˘ ¸i la determinarea punctului b la pasul anterior, adic˘
(x − b)/(c − b) = (b − a)/(c − a) = w, rezult˘ x − b = w(c − b) = z(c − a), sau
                                              a
186                                                        7. Metode de optimizare


1 − w = (c − b)/(c − a) = z/w. Rezult˘ ˆ final ecuatia w2 − 3w + 1 = 0, cu
                       √                         a ın         ¸
solutia w = (3 − 5)/2 ∼ 0.38197. Pozitia punctului x este acum determinat˘,
     ¸                         =                 ¸                                   a
x = b + w(c − b) = c − (1 − w)(c − b), adic˘ la distanta 0.38197(c − b) de b ¸i
                                                     a        ¸                      s
la 0.61803(c − b) de punctul c. Lungimea intervalului care contine minimul se
                                                                       ¸
                                               ¸                         a
reduce cu factorul 0.61803 de la o iteratie la alta, valoare apropiat˘ de 0.5 de la
metoda bisectiei.¸
                    ¸                         a                       a
    Metoda sectiunii de aur se bazeaz˘ pe strategia “pesimist˘” a consider˘rii     a
                                       ¸                    a     a
celei mai dezavantajoase situatii posibile, presupunˆnd c˘ minimul se afl˘ de      a
             a ın                                      ıncˆ
fiecare dat˘ ˆ intervalul cel mai mare, astfel ˆ at se impune ca lungimile celor
     a               a                   a
dou˘ intervale s˘ fie egale rezultˆnd un algoritm lent dar sigur. Pentru m˘rirea a
                            a                                       a
vitezei de deplasare c˘tre minim, se poate construi o parabol˘ printre punctele
                   s           s              a                                   a
(a, fa ), (b, fb ) ¸i (c, fc ) ¸i se calculeaz˘ minimul acesteia (dar care poate s˘ fie
                  s
la fel de bine ¸i un maxim!)

                      1 (b − a)2 [f (b) − f (c)] − (b − c)2 [f (b) − f (a)]
             x=b−                                                           .   (7.7)
                      2 (b − a)[f (b) − f (c)] − (b − c)[f (b) − f (a)]

                                                             a      a    ın
De asemenea, se poate folosi o interpolare cu o parabol˘ cubic˘, caz ˆ care se
       s s                   ¸
folose¸te ¸i derivata functiei f .
                                               a          ¸            ¸
    Un algoritm foarte utilizat, care combin˘ robustetea metoda sectiunii de aur
                   a                                                             s
cu viteza interpol˘rii parabolice, este algoritmul lui Brent. Algoritmul folose¸te
s                         s             a                         a             a
¸ase puncte a, b, u, v, t ¸i x, nu neap˘rat distincte, definite dup˘ cum urmeaz˘: a
s              a                      ¸                             ın        ¸
¸i b delimiteaz˘ intervalul care contine minimul, x este punctul ˆ care functia f
                  a                    a a a
are cea mai mic˘ valoare calculat˘ pˆn˘ la un moment dat, t este valoarea
          a                                        a
anterioar˘ a lui x, v este valoarea anterioar˘ a lui t, iar u este punctul ˆ       ın
           a                              ¸                               a
care s-a f˘cut ultima evaluare a functiei f . Interpolarea parabolic˘ se face
                          s                                    a
folosind punctele x, t ¸i v. Pentru ca rezultatul interpol˘rii parabolice s˘ fiea
                               a       a                 ¸a
acceptat, trebuie impuse cˆteva m˘suri de sigurant˘: (a) minimul calculat s˘        a
    ın                                      ¸a
fie ˆ intervalul (a, b); (b) deplasarea fat˘ de ultima valoare care aproximeaz˘      a
                 a               a    a      a              a
minimul lui f s˘ fie mai mic˘ dacˆt jum˘tatea deplas˘rii anterioare, pentru a
                    a                                a
avea certitudinea c˘ avem un proces convergent c˘tre punctul minim; (c) punctul
                        a
de minim calculat u s˘ nu fie foarte apropiat de o valoare anterior calculat˘ p, a
adic˘ |u − p| > ε p, cu ε > 0. Pentru oprirea iteratiilor se folose¸te conditia
     a                                                 ¸             s      ¸

                              |b − a| ≤ e = 2|x|ε + εs ,                        (7.8)

    a                                ¸                         a            a
adic˘ lungimea itervalului care contine punctul de minim s˘ fie mai mic˘ decˆt    a
o lungime impus˘ e, iar εs este un num˘r mic (spre exemplu εs = ε ) introdus
                  a                       a
                                                          ın
pentru a evita nedeterminarea care apare pentru cazul ˆ care punctul de minim
                                       a                 a
este chiar x = 0. Conditia (7.8) asigur˘ precizia relativ˘ de calcul pentru punctul
                       ¸
              a       ¸
de minim dat˘ de relatia

                           |x − xmin   exact |   ≤ ε| x| + εs ,                 (7.9)

                  a                      a           a    a a a        a    a
unde reamintim c˘ valoarea ε nu trebuie s˘ fie mai mic˘ decˆt r˘d˘cina p˘trat˘
                               √
a lui epsilon ma¸in˘, adic˘ ε ≥ εM .
                s a       a
                           a a
7.2. Metode de minimizare f˘r˘ calculul derivatelor                           187


                 ¸          a               a ¸        a
   Algoritmul contine o prim˘ parte destinat˘ initializ˘rii variabilelor

      b ← c; fb ← fc ; u ← b; fu ← fb ; w = 0.381966; ma xiter = 100
          a
      dac˘ fb < fa
            atunci t ← b; ft ← fb ; v ← a; fv ← fa
                                                                            (7.10)
            altfel t ← a; ft ← fa ; v ← b; fv ← fb
      iter ← 1; ud ← 0; δx = b − a;
      x ← 0.5(b + a); fx ← f (x); e ← ε(2 |x| + 1)

     a                  a          a
urmat˘ de bucla iterativ˘ principal˘

 cˆt timp (b − a) > e¸i iter ≤ maxiter
  a                 s
      xm ← 0.5(b + a)
    dac˘ |δx| > 0.5ud sau u − a < e sau b − u < e
       a
   
          atunci
        dac˘ x > xm atunci δx ← w(a − x) altfel δx ← w(b − x)
                 a
       
        ud ← max(|b − x), |a − x|)
       
        altfel
       
        r ← (x − t)(fx − fv ); q ← (x − v)(fx − ft ); p ← (x − v)q − (x − t)r
   
   
            δx ← −0.5p/(q − r); ud ← |δx|
    fu ← f (u); u ← x + δx
   
    dac˘ fu ≤ fx
       a
   
           atunci
   
   
        
             dac˘ u ≥ x atunci a ← x altfel b ← x
                  a
   
   
        
             v ← t; t ← x; x ← u; fv ← ft ; ft ← fx ; fx ← fu
        altfel
       
            dac˘ u < x atunci a ← u altfel b ← u
                  a

        
         dac˘ fu ≤ ft sau t = x
                a
        
   
   
         
             atunci
   
   
         
                v ← t; t ← u; fv ← ft ; ft ← fu
   
   
             altfel
                dac˘ fu ≤ fv sau v = x sau v = t
                     a                                atunci v ← u; fv ← fu
       e ← ε(2 |x| + 1); iter ← iter + 1

7.2                            a a
         Metode de minimizare f˘r˘ calculul deriva-
         telor
               a                                                   ¸
Cea mai simpl˘ modalitate de determinare a minimului unei functii reale de mai
multe variabile reale, U : Rn → R , const˘ ˆ minimizarea functiei U de-a lungul
                                           a ın                 ¸
directiilor definite de versorii ei ¸i este dat˘ de algoritmul (7.11). Algoritmul
     ¸                             s           a
               a a a a           ¸                ¸                             ¸
(7.11) se repet˘ pˆn˘ cˆnd se obtine minimul functiei U (se poate folosi o conditie
                          a        a        as           a a
de forma (7.18)). Aceast˘ metod˘, numit˘ ¸i metoda c˘ut˘rii unidimensionale,
           s            a          a                     a a       a
se dovede¸te ineficient˘ pentru c˘, fie nu este capabil˘ s˘ ating˘ minimul, fie
                                    s
apropierea de acesta se face cu pa¸i mici.
188                                                              7. Metode de optimizare


                  a             ¸            a              a
    Devine clar c˘ pentru a obtine o metod˘ mai eficient˘ este necesar a g˘si    a
     ¸                                             ¸             ¸
directii de deplasare mai eficiente. Astfel de directii sunt directiile conjugate.

                              Date: x0 , U (x)
                              i=1:n
                                                                                             (7.11)
                                 xi = min{U (xi−1 + αei )} .
                                         α∈R


     ¸
Directii conjugate.
             a      a       a
Fie Φ forma p˘tratic˘ definit˘ de

                    n                                     n
                                         ∂U            1                    ∂2U
Φ (x) = U (xk ) +         (xj − xk )T
                                 j                 +           (xj − xk )T
                                                                      j                  (xp − xk ) .
                                                                                                p
                    j=1
                                         ∂xj   k       2 j,p=1             ∂xj ∂xp   k
                                                                                             (7.12)

                                                                ın
Forma (7.12) coincide cu primii trei termeni din dezvoltarea ˆ serie Taylor a
functiei U (x) ˆ vecin˘tatea punctului xk . Notˆnd cu g k gradientul functiei U ˆ
     ¸         ın     a                        a                         ¸      ın
punctul xk ¸i cu Gk matricea hessian ˆ acela¸i punct, expresia (7.12) se poate
             s                         ın      s
scrie vectorial
                                          1
              Φ(x) = Uk + (x − xk )T g k + (x − xk )T Gk (x − xk ) ,                         (7.13)
                                          2
                   ¸
iar gradientul functiei Φ este

                                   Φ = g k + Gk (x − xk ) .                                  (7.14)

    Punctul xk s-a obtinut pentru valoarea α care asigur˘ un minim pentru
                         ¸                                     a
functia Φ(xk−1 + αpk−1 ), deci vectorul g k va fi perpendicular pe directia pk−1 ,
     ¸                                                                   ¸
adic˘ (pk−1 )T · g k = 0 (vezi 7.3). Deplasarea spre aproximatia urm˘toare xk+1 a
    a                                                         ¸      a
                 ¸                 a a        ıncˆ a             a as         ¸
minimului functiei Φ va trebui f˘cut˘ astfel ˆ at s˘ nu se piard˘ cˆ¸tigul obtinut
pe directia pk−1 . Pentru aceasta trebuie ca gradientul functiei ˆ punctul xk+1
         ¸                                                     ¸ ın
s˘ r˘mˆn˘ perpendicular pe directia pk−1 , adic˘ (g k+1 )T · pk−1 = 0. Tinˆnd
 a a a a                              ¸             a                      ¸ a
cont de (7.14), putem scrie Φ = g k+1 + Gk (x − xk+1 ). Sc˘zˆnd cele dou˘
                                                                  a a            a
relatii ¸i ¸inˆnd cont c˘ deplasarea din xk ˆ xk+1 s-a f˘cut dup˘ directia pk ,
    ¸ s t a               a                    ın           a        a      ¸
rezult˘a

                     g k+1 = g k + G(xk+1 − xk ) = g k + αk Gpk ,                            (7.15)

unde αk ∈ R. ˆ
             Inmultind relatia (7.15) cu (pk−1 )T , se obtine
                  ¸        ¸                             ¸

                    (pk−1 )T g k+1 = (pk−1 )T g k + αk (pk−1 )T Gpk                          (7.16)

¸i cum (pk−1 )T g k+1 = (pk−1 )T g k = 0, rezult˘ conditia care trebuie ˆ
s                                               a      ¸                          a
                                                                        ındeplinit˘
        ¸
de directiile de deplasare

                                        (pk−1 )T Gpk = 0 .                                   (7.17)
                           a a
7.2. Metode de minimizare f˘r˘ calculul derivatelor                                   189


        a      ¸       ındeplinesc conditia (7.17) se numesc directii G-conjugate.
    Dou˘ directii care ˆ                  ¸                       ¸
               a a        a                    a          ¸
Pentru o form˘ p˘tratic˘ Φ, folosind deplas˘ri pe directii conjugate definite de
                     ¸                    a              a
(7.17), minimul functiei este atins dup˘ exact n deplas˘ri. Pentru aceasta, mai
        ındeplinit˘ o conditie necesar˘: la fiecare etap˘, minimizarea functiei Φ
trebuie ˆ         a         ¸           a               a                   ¸
dup˘ directia pk trebuie f˘cut˘ exact pentru a asigura conditia (pk )T · g k = 0.
    a      ¸                a a                                ¸
            ¸                               a a      a
Pentru functii care sunt diferite de o form˘ p˘tratic˘, minimul nu se atinge dup˘a
         a                                    ¸a
n deplas˘ri, dar algoritmul are o convergent˘ bun˘. a
      a a                        a                ¸ aa
    R˘mˆne problema determin˘rii acestor directii f˘r˘ a folosi matricea hessian
                                  a                        ¸                   ¸
G. Powell a fost primul care a g˘sit o modalitate de a obtine un set de n directii
                         a
conjugate folosind urm˘torul algoritm:

 Date: x0 , U (x), ε, n, maxiter
 l = 1 : maxiter
   i
    u = ei       Se initializeaz˘ directiile de c˘utare dup˘ fiecare n + 1 iteratii.
                       ¸        a      ¸          a           a                   ¸
   U0 ← U (x0 )
  
   k = 1 : (n + 1)
   
        i=1:n
    xi ← min{U (xi−1 + α ui )} Se minimizeaz˘ U ˆ lungul directiilor ui .
  
                                                            a   ın             ¸
              α∈R
    i = 1 : (n − 1)
   
    ui ← ui+1
   
                                                ınlocuie¸te ultima directie a setului cu
                                             Se ˆ        s              ¸
   
    u ← xn − x0
    n
                                           directia care trece prin punctele xn ¸i x0 .
                                                  ¸                               s
          x0 ← min{U (xn + α un )}                   ¸        a
                                             Se reinitializeaz˘ punctul de start.
  
  
                 α∈R
     dac˘ |U − U0 | < ε(1 + |U |) atunci minim determinat stop.
        a

     ¸                    a
Conditia de oprire folosit˘ este de forma

                            |Uk+1 − Uk | < ε(1 + |Uk+1 |) ,                         (7.18)
                                   √
unde am v˘zut la 7.1 c˘ ε ≥ εM , εM fiind epsilon ma¸in˘. Conditia (7.18)
              a            a                                   s a           ¸
asigur˘ precizia relativ˘ ε pentru valoarea minimului U (x∗ ), dac˘ acesta ia valori
        a                a                                           a
    a                      a                  a
dep˘rtate de zero. Dac˘ valoarea minim˘ este chiar zero sau foarte apropiat˘          a
                                      a                 a
de zero, atunci testul (7.18) asigur˘ precizia absolut˘ ε.
                           ınc˘             a                a a         a
    Powell a demostrat ˆ a din 1964 c˘, pentru o form˘ p˘tratic˘ Φ (7.13), k
iteratii din algoritmul prezentat mai sus produc un set de directii ui dintre care
     ¸                                                              ¸
ultimele k sunt G-conjugate, cu conditia ca minimiz˘rile ˆ lungul directiilor ui
                                          ¸             a     ın               ¸
 a       a                     ¸
s˘ fie f˘cute exact. O iteratie se obtine dup˘ n + 1 minimiz˘ri dup˘ directiile
                                        ¸         a               a        a        ¸
date de vectorii ui , i = 1, n, ¸i xn − x0 . Exist˘ tendinta ca directiile construite
                                 s                  a     ¸            ¸
 a          a                                                                  ¸
s˘ devin˘ liniar dependente. Acest lucru poate fi evitat (a) printr-o initializare
a directiilor ui = ei la fiecare n + 1 iteratii (a¸a cum s-a ¸i procedat mai sus),
         ¸                                    ¸      s         s
           ın                ¸ aa            a a                   ¸
sau (b) ˆ loc de a renunta f˘r˘ discern˘mˆnt la ultima directie, se renunt˘ la     ¸a
      ¸
directia care a produs cea mai mare descre¸tere.s
                                   a        a     a                        a a
    Revenind la relatia (7.13), s˘ observ˘m c˘ pentru a defini o form˘ p˘tratic˘
                      ¸                                                               a
este nevoie de un num˘r de parametrii de ordinul n2 . Mai exact, matricea G fiind
                        a
           a
simetric˘, suma elementelor distincte este 1+2+. . .+n = n(n+1)/2. Dac˘ ¸inem   at
      s                                                    a
cont ¸i de cele n componente ale gradientului, rezult˘ n(n + 3)/2 parametrii
190                                                            7. Metode de optimizare


ce definesc o form˘ p˘tratic˘. ˆ timp ce matricea hessian G este constant˘,
                    a a       a In                                               a
gradientul se modific˘, dar este nul ˆ punctul de minim. ˆ concluzie, indiferent
                      a             ın                       In
                                             aa                            ¸
de metoda pe care o vom folosi, cu sau f˘r˘ calculul derivatelor functiei scop,
                      a a        a
chiar pentru o form˘ p˘tratic˘, determinarea minimului ˆ                     ¸
                                                               ınainte de obtinerea
celor O(n2 ) parametrii este cel mult ˆ ampl˘toare.
                                       ıntˆ     a
            ¸      ¸ a ıntre metodele de optimizare const˘ ˆ modul ˆ care se
    Diferenta esential˘ ˆ                                     a ın        ın
          a    s                                 ın                     a
calculeaz˘ ace¸ti parametrii. Spre exemplu, ˆ cazul unei forme p˘tratice, fo-
losind matricea hessian, determinarea minimului revine la rezolvarea sistemului
de ecuatii liniare G · (x − x0 ) = −g 0 (vezi relatia 7.14). Evaluarea derivatelor,
        ¸                                          ¸
 a                               aa         at
cˆnd acest lucru este posibil f˘r˘ dificult˘¸i suplimentare, va constitui cea mai
        a                  ¸                 ¸                       a
eficient˘ modalitate de obtinere a informatiei necesare determin˘rii minimului.


7.3       Metoda gradientului
                  a        a          s              s                  ¸
Este cea mai simpl˘ metod˘ de descre¸tere care folose¸te derivatele functiei U .
Se bazeaz˘ pe observatia c˘ suprafetele cu n − 1 dimensiuni de forma
         a           ¸    a        ¸

                        U (x) = Ki = constant, i = 1, 2, 3, . . . ,                 (7.19)

          s         ¸                      ¸                             ıncˆ
denumite ¸i suprafete de nivel pentru functia U (x), sunt astfel dispuse ˆ at
                               a       a            a            ¸         a
constantele Ki iau valori cresc˘toare cˆnd ne deplas˘m pe directia pozitiv˘ a
vectorului gradient
                                                                        T
                                                  ∂U ∂U          ∂U
                    g ≡ grad U ≡           U≡        ,    , ...,            .       (7.20)
                                                  ∂x1 ∂x2        ∂xn

                     ¸
Din cele trei notatii uzuale din (7.20), o vom prefera pe prima, adic˘ ˆ mod
                                                                         a ın
curent vom nota gradientul cu g.
                                                   a                      a
    Deoarece g este variabil, deplasarea trebuie s˘ fie suficient de mic˘ pentru
        a                               a ıntˆ            ¸
ca plecˆnd dintr-un punct oarecare, s˘ ˆ alnim suprafete de nivel superioare.
    a              a           a ın                           ıntˆ
Dac˘, dimpotriv˘, ne deplas˘m ˆ sens opus (−g ), vom ˆ alni constante de
                             a
nivel Ki cu valori descresc˘toare.
    Exemplu. Fie functia U = x2 + y 2 . Suprafetele de nivel sunt cilindri coaxiali
                √       ¸                       ¸
                               a                           ¸
cu axa Oz iar Ki reprezint˘ razele cercurilor de intersectie cu planul xOy. Pe
de alt˘ parte, gradientul este g ≡ U = 2(ix + jy), i ¸i j fiind versorii axelor Ox
      a                                               s
s                  a a ın                                        ın
¸i Oy. Se observ˘ c˘ ˆ orice punct gradientul este orientat ˆ sensul cre¸teriis
razei, deci a cre¸terii constantelor Ki (fig. 7.3).
                 s
                                          ¸                 s
    Pentru determinarea minimului functiei U, construim ¸irul de iteratii¸

                        xk+1 = xk − αk g k , U (xk+1 ) < U (xk ) ,                  (7.21)

unde xk = (xk , xk , ..., xk )T , iar
            1    2         n

                                                                                T
                                   T       ∂U (xk ) ∂U (xk )        ∂U (xk )
                k k
         g k = g1 , g2 , ..., gn
                               k
                                       =           ,         , ...,                 (7.22)
                                            ∂x1      ∂x2             ∂xn
7.3. Metoda gradientului                                                     191




                   Figura 7.3: Gradientul functiei U = x2 + y 2 .
                                              ¸


este vectorul gradient ˆ xk ¸i αk un scalar pozitiv. Directia pk = −g k este
                        ın    s                           ¸
o directie de descre¸tere pentru functia U ˆ punctul xk (este chiar directia
       ¸             s                 ¸       ın                        ¸
de maxim˘ descre¸tere ˆ xk ). Determinarea scalarului αk se face cu una
          a        s      ın
din metodele prezentate ˆ 7.1. Dac˘ minimul αk se determin˘ exact, atunci
                           ın         a                       a
gradientul g k+1 este perpendicular pe g k , adic˘
                                                 a
                                  ∗
                     xk+1 = xk − αk g k , (g k )T · g k+1 = 0 .            (7.23)

                                      a         a        ın
    Ultima egalitate (7.23) exprim˘ faptul c˘ punctul ˆ care produsul scalar
           ¸       s                         a                              ¸
al gradientilor gk ¸i gk+1 este nul reprezint˘ un punct de minim unidirectional.
ˆ
Intr-adev˘r, dac˘ vectorul g k ar avea o component˘ diferit˘ de zero dup˘ directia
          a      a                                 a       a              a     ¸
−g k+1 , atunci functia U ar sc˘dea ˆ continuare, ceea ce contrazice definitia
                      ¸          a      ın                                      ¸
minimului.
                                   a                  a
    Metoda gradientului utilizat˘ cu valoarea optim˘ pentru scalarul αk (caz
ın                 a
ˆ care spunem c˘ am folosit un pas optimal sau pas Cauchy), are o vitez˘ de   a
          ¸a        a      a        ¸
convergent˘ liniar˘, adic˘ distanta la punctul de minim tinde spre zero ca o
                                                                  ¸
progresie geometric˘ de ratie subunitar˘ (vezi 7.5). Convergenta devine lent˘,
                      a      ¸             a                                     a
         a a            a                      s s                  ın
de regul˘, cˆnd num˘rul de variabile n cre¸te ¸i de asemenea, ˆ vecin˘tatea a
              a                       a                       a
minimului cˆnd vectorul g tinde c˘tre zero. Metoda de c˘utare a minimului
dup˘ directia −g k , utilizˆnd un singur parametru αk , a fost descris˘ ˆ 7.1.
    a       ¸              a                                           a ın
    ˆ continuare, d˘m un algoritm general pentru metodele de optimizare care
    In                a
192                                                    7. Metode de optimizare


                        ¸
folosesc gradientul functiei scop:

                 Date: x0 , U (x), U (x), ε, maxiter
                 x ← x0 ; Uk ← U (x0 ); g k ← U (x0 )
                 p ← gk         ¸               ¸             s
                             Initializarea directiei de descre¸tere.
                 i = 1 : maxiter
                      x ← min{U (x + αp)}
                   
                            α∈R                                              (7.24)
                    k+1 ← U (x); g k+1 ← U (x)
                    U
                          a k+1 ≥ Uk atunci e¸ec stop.
                    dac˘ U
                                                  s
                    [test convergent˘]¸a
                   
                                           ¸              s
                    [actualizarea directiei de descre¸tere p]
                       Uk ← Uk+1 .

                                                       ¸
    Algoritmii care folosesc calculul gradientului functiei scop U se deosebesc
                              ¸             s         a            a
prin modul de calcul al directiei de descre¸tere p. Cˆteva preciz˘ri sunt nece-
     ın                  a         a          a
sare ˆ cele ce urmeaz˘. O prim˘ problem˘ o constituie alegerea metodei de
                       ¸   a                        a
minimizare unidirectional˘, pentru care recomand˘m algoritmul lui Brent. O
                  a                                               a
a doua problem˘ o constituie precizia cu care trebuie efectuat˘ minimizarea
         ¸      a
unidirectional˘. Unele metode (cum ar fi metoda gradientului) nu necesit˘ una
               ın                  ¸
calcul precis, ˆ timp ce convergenta altor metode impune un calcul exact al mi-
                  ¸
nimului unidirectional (metodele cvasi-Newton, metodele de gradient conjugat).
                                                  ¸    a             a
Un criteriu practic pentru o minimizare unidirectional˘ aproximativ˘ este legat
           ¸        ¸           s               ¸                            s
de proiectia directiei de descre¸tere pe directia gradientului (care se nume¸te
        a      ¸
derivat˘ directional˘)a

                |(pk )T U (xk + αk pk )| ≤ η|(pk )T g k |, 0 ≤ η < 1 .       (7.25)

Pentru η = 0 avem (pk )T g k+1 = 0, adic˘ minimizarea unidirectional˘ s-a f˘cut
                                        a                     ¸     a      a
                                                        ¸            s
exact. Pe lˆng˘ criteriul (7.25) se poate impune o conditie de descre¸tere sufi-
           a a
     a
cient˘ de forma

                            Uk+1 − Uk ≤ −µαk (g k )T pk .                    (7.26)

Valori uzuale: µ ∈ [10−5 , 10−1 ], η ∈ (µ, 1).
   O a treia problem˘ o constituie testul de convergent˘. ˆ general, trei criterii
                      a                               ¸a In
sunt mai des folosite:
                       1.    xk+1 − xk ≤ εx (1 + xk+1 )
                       2.    Uk+1 − Uk ≤ εU (1 + Uk+1 )                      (7.27)
                       3.           U (xk+1 ) ≤ εg .

                      a a                                            ¸
Primul criteriu arat˘ c˘ primele t cifre semnificative ale aproximatiilor punctul
de minim din dou˘ iteratii succesive sunt identice, dac˘ εx = 10−t , ˆ timp ce
                    a      ¸                              a             ın
                              a a                                               ¸
cel de-al doilea criteriu arat˘ c˘ primele t cifre semnificative ale valorii functiei
scop sunt identice, εU = 10−t . S-au luat m˘suri de precautie pentru cazul
                                                  a               ¸
ın                                                                  a
ˆ care punctul de minim este chiar x = 0 sau valoarea minim˘ este U = 0,
scriind spre exemplu xk+1 − xk ≤ εx xk+1 + εs ˆ loc de xk+1 − xk ≤ εx .
                                                      ın
7.4. Metoda Newton                                                            193


                                     ¸
Criteriului 3 trebuie folosit cu atentie, deoarece satisfacerea lui nu ˆ       a ın
                                                                        ınseamn˘ ˆ
                                                             s
mod obligatoriu atingerea unui punct de minim, ci poate fi ¸i un punct de maxim
           s                           ın
sau punct ¸a (un punct de inflexiune ˆ cazul unidimensional). Trebuie reamintit
             a                                          a
(vezi 7.1) c˘ valorile impuse pentru precizia relativ˘ trebuie s˘ ˆ               a
                                                                    a ındeplineasc˘
                 √             √                                    √
conditiile εx ≤ εM , εU ≤ εM , iar pentru criteriul 3, εg ≤ 3 εM , unde εM
      ¸
                s a
este epsilon ma¸in˘..


7.4      Metoda Newton
  s                                                    a           ¸a       a
A¸a cum s-a precizat, metoda gradientului are o vitez˘ de convergent˘ liniar˘,
    a                 ¸         ¸
adic˘ la fiecare iteratie distanta la punctul de minim scade ca termenii unei
                            ¸             a                              s ın
progresii geometrice de ratie subunitar˘. Acest lucru se mai poate scrie ¸i ˆ
    ¸                                       ¸      a a
functie de comportarea raportului distantelor pˆn˘ la punctul de minim, notat
cu x∗ , pentru dou˘ iteratii succesive, k ¸i k + 1
                  a      ¸                s
                                      xk+1 − x∗
                            lim sup              =c.                        (7.28)
                           k→∞         xk − x∗ r
Dac˘ r = 1 ¸i c ∈ (0, 1), atunci convergenta este liniar˘. Dac˘ c este apropiat
     a        s                           ¸               a    a
                       ¸            a    a          s
de unitate, convergenta este lent˘. Dac˘ r = 1 ¸i c = 0, avem convergent˘       ¸a
            a      a        s                           s
superliniar˘. Dac˘ r > 1 ¸i c este finit, r se nume¸te ordin de convergent˘.   ¸a
                         ¸        a    a
Pentru r = 2 convergenta este p˘tratic˘.
                              a                       ¸
    Metoda Newton se bazeaz˘ pe aproximarea functiei de minimizat U (x) , la
                                                                   ¸
iteratia k, cu o form˘ p˘tratic˘ Φk (x) definit˘ de (7.13). Functia Φk are un
      ¸               a a       a               a
minim x = x− dac˘ matricea Gk este pozitiv definit˘1 , adic˘ dac˘ pe orice
                     a                                   a      a     a
directie ne-am ˆ
      ¸         ındep˘rta de punctul x− exist˘ inegalitatea Φk (x) − Φk (x− ) > 0
                     a                       a
ıntr-o vecin˘tate suficient de mic˘. Punctul de minim x = x− , este un punct
ˆ            a                      a
   ¸            a               ¸                ıntˆ
stationar, adic˘ derivatele partiale de ordinul ˆ ai, deci gradientul Φk , se
        a ın                                                                   ¸
anuleaz˘ ˆ acest punct. Prin urmare, pentru valori suficient de mici ale distantei
pˆn˘ la minim x − x− < ε, putem scrie ¸inˆnd cont de (7.13)
  a a                                     t a

                Φk (x) − Φk (x− ) ∼ 1 (x − x− )T Gk (x − x− ) > 0 .
                                  =2                                        (7.29)

            a
   Pe de alt˘ parte, rezolvarea sistemului                                   a
                                                 Φk = 0, se poate face utilizˆnd
               a
metoda iterativ˘ Newton (vezi 8.2)

             Gk (xk+1 − xk ) = −g k ⇒ xk+1 = xk − G−1 g k = x− .
                                                   k                        (7.30)

    Pentru determinarea punctului de minim (x− reprezint˘ aproximatia xk+1
                                                             a          ¸
pentru minimul x∗ al functiei U ) este necesar˘ rezolvarea unui sistem de n
                            ¸                     a
ecuatii liniare cu n necunoscute, adic˘ circa n3 /3 + n2 operatii, ˆ cazul cˆnd
     ¸                                 a                       ¸ ın          a
folosim metoda de eliminare a lui Gauss (vezi capitolul 5). Din a doua egalitate
(7.30), se observ˘ c˘ directia de deplasare x− − xk spre punctul de minim nu
                  a a      ¸
este directia −g k a metodei gradientului, aceasta fiind modificat˘ prin ˆ
          ¸                                                      a           ¸
                                                                       ınmultire
cu inversa matricei hessiene, G−1 . Directia de descre¸tere pk dat˘ de relatia
                                k         ¸            s           a       ¸

                          pk = −G−1 g k , (g k )T pk < 0 ,
                                 k                                          (7.31)
194                                                     7. Metode de optimizare




                        Figura 7.4: Deplasarea c˘tre minim.
                                                a


                   ¸              s       ¸                  ¸        ¸
pentru fiecare iteratie k, se nume¸te directie Newton. Proiectia directiei New-
ton dup˘ directia gradientului este negativ˘ deoarece matricele Gk ¸i G−1 sunt
        a      ¸                           a                       s k
pozitiv definite

                          (g k )T pk = −(g k )T G−1 g k < 0 ,
                                                 k                            (7.32)

inegalitatea (g k )T pk < 0 fiind definitorie pentru orice directie de descre¸tere pk .
                                                                 ¸         s
     Ca ¸i ˆ cazul metodei Newton pentru sisteme neliniare (vezi capitolul 5),
          s ın
                             a a       a                               a
aproximarea cu o form˘ p˘tratic˘ conduce la rezultate bune dac˘ aproximatia      ¸
    ¸ a                                a        ¸
initial˘ este suficient de apropiat˘ de solutie. Aceasta ˆ            a a     a
                                                            ınseamn˘ c˘, dac˘ hessi-
ana exist˘ ¸i este pozitiv definit˘, ˆ
            as                       a ıncepˆnd cu un anumit xk suficient de aproape
                                             a
                      ∗
                                                     s
de minimul x = x , metoda Newton de descre¸tere converge iar convergenta este ¸
  a
p˘tratic˘. a
     ˆ forma prezentat˘, metoda Newton are o serie de neajunsuri. Astfel, dac˘
     In                     a                                                      a
ıntr-un anumit punct xk , hessiana Gk nu este pozitiv definit˘, directia Newton
ˆ                                                                  a     ¸
                        ¸            s     s
nu mai este o directie de descre¸tere ¸i se poate ca Uk+1 > Uk (punctul A, figura
7.4). ˆ zonele ˆ care functia U are o variatie plat˘, putˆnd fi aproximat˘ local
       In          ın            ¸                ¸     a     a               a
             ¸                                                 a
cu o functie de gradul 1 (hiperplan), hessiana se anuleaz˘ (G = 0), iar ecuatia  ¸
                      ¸                                a ın
(7.30) nu are solutie (punctul L, figura 7.4). Dac˘ ˆ aceste cazuri introducem
o matrice pozitiv definit˘ ˆ locul hessianei, deplasarea spre minimul x∗ va
                                a ın
continua ¸i ˆ aceste situatii. ˆ cazul unidimensional, aceasta revine la a urma
             s ın               ¸ In
ın                s           ¸                              ¸
ˆ punctele A ¸i L directia parabolelor tangente la functia y de minimizat, dar
   a                             a        a      ¸                 ¸        a
avˆnd tot timpul o curbur˘ pozitiv˘, directiile modificate obtinute ducˆndu-ne
ın                  s
ˆ punctele mA ¸i mL respectiv.
        a             a
     Avˆnd la baz˘ metoda Newton, au fost dezvoltate o serie de metode care
  a        a              ¸
p˘streaz˘ convergenta local˘ bun˘ (p˘tratic˘), dar prezint˘ ¸i o convergent˘
                                   a     a a         a             a s            ¸a
        a         a
global˘, eliminˆnd neajunsurile prezentate anterior. Dintre acestea, prezent˘m   a
ın
ˆ continuare metoda regiunii de ˆ                 ın
                                       ıncredere ˆ model.
7.4. Metoda Newton                                                             195


    Algoritmul metodei regiunii de ˆ              ın                         a
                                       ıncredere ˆ model (7.35) se bazeaz˘ ca ¸i   s
                                         ¸                         a a
metoda Newton pe aproximarea functiei scop U (x) cu o form˘ p˘tratic˘ Φ(x)   a
dat˘ de (7.13). Fiind vorba de o aproximare valabil˘ local, se stabile¸te o zon˘
    a                                                   a                s         a
de ˆ          ın             a       ın                    a              a
    ıncredere ˆ model, adic˘ zona ˆ care se admite c˘ Φ aproximeaz˘ bine pe
U . ˆ aceast˘ zon˘ care este o sfer˘ cu centrul ˆ xk de raz˘ δk , se determin˘
     In       a    a                  a              ın          a                 a
                                      a                                   a ın
punctul de minim pentru Φ(x). Dac˘ minimul aproximantei Φ(x) se afl˘ ˆ afara
            ıncredere, acesta nu este luat ˆ considerare. R˘mˆn de rezolvat dou˘
regiunii de ˆ                              ın                 a a                  a
              a
probleme: m˘rimea razei δk a regiunii de ˆ              s                    ¸
                                              ıncredere ¸i determinarea directiei de
descre¸tere pk .
        s
       a
    M˘rimea razei regiunii de ˆ                                       ın      ¸
                                 ıncredere la pasul k + 1 se alege ˆ functie de
                   as                                            as
valoarea anterioar˘ ¸i de raportul rk dintre reducerea efectiv˘ ¸i cea prezis˘, a

                  rk = [U (xk+1 ) − U (xk )]/[Φ(xk+1 ) − Φ(xk )] .           (7.33)

                                                          a         a
Pentru valori mici ale raportului rk (evident rk > 0 dac˘ ne deplas˘m spre
                           ın                                  a
minim), se ia δk+1 < δk , ˆ timp ce pentru valori care tind c˘tre unitate se
poate lua δk+1 > δk .
   Directia de c˘utare pk se determin˘ plecˆnd de la directia Newton definit˘
         ¸        a                  a     a              ¸                a
                  a ın
de (7.31), rescris˘ ˆ forma

                              (Gk + λI)pk = −g k ,                           (7.34)

                        ıncˆ                      a                a     a
unde λ se alege astfel ˆ at matricea Gk + λI s˘ fie pozitiv definit˘, evitˆndu-se
                     ¸                       ın
astfel una din situatiile nedorite care apar ˆ aplicarea metodei Newton. Pentru
          a                           a               ¸
λ = 0 reg˘sim metoda Newton dac˘ noua aproximatie a punctului de minim nu
iese ˆ afara regiunii de ˆ
     ın                   ıncredere, adic˘ dac˘ pk 2 < δk . Pentru λ ≥ 0 se caut˘
                                          a   a                                 a
        ¸            s                                           a
o directie de descre¸tere pentru care minimul aproximantei Φ s˘ se afle chiar la
frontiera regiunii de ˆıncredere, adic˘ pk 2 = δk . Deoarece matricea Gk + λI
                                        a
este pozitiv definit˘, rezolvarea sistemului de ecuatii (7.34) se face mai eficient
                     a                               ¸
folosind descompunerea Cholesky Gk + λI = RT R (vezi capitolul 5). Num˘rul   a
                ¸            ın                 a         a
maxim de iteratii maxiter ˆ care apreciem c˘ trebuie g˘sit minimul se alege cu
  a                  a       a                          ¸
atˆt mai mare cu cˆt num˘rul n de variabile ale functiei scop U este mai mare.
      a            ¸                            ¸           s                a
Num˘rul de iteratii np pentru calculul directiei de descre¸tere nu trebuie s˘ fie
              a                                                       ¸ a
mai mare decˆt 3, pentru ca efortul de calcul depus pentru o iteratie s˘ nu fie
exagerat de mare.
196                                                7. Metode de optimizare




      Algoritmul regiunii de ˆ                  ın
                                 ıncredere ˆ model.
  Date: x0 , U (x), U (x), G(x), µ, η, γ1 , γ2 , δ0 , λ0 , ε, εp , maxiter, np
    [Valori uzuale pentru constante: µ = 0.25, η = 0.75, γ1 = 0.5, γ2 = 2]
  x ← x0 ; δ ← δ0 ; λ ← λ0; Uk ← U (x0 ); g k ← U (x0 ); Gk ← G(x0 ); Φk ← Uk
  k = 1 : maxiter

     Calculul directiei de descre¸tere pk
 
                  ¸             s
        d ← 1; ip ← 1
        cˆt timp |d| > εp |λ| + 10−5¸i ip < np
 
        a                            s
 
 
 
 
       
              factorizare Cholesky Gk + λI = RT R
           rezolv˘ sistemul RT Rpk = −g k
                      a
          
           rezolv˘ sistemul RT q = −pk
                      a
          
           d ← ( pk / q )2 ( pk /δ − 1)
          
           λ←λ+d
 
              ip ← ip + 1
                                                                          (7.35)

 
 
    xk+1 ← xk + pk ; Uk+1 ← U (xk+1 ); g k+1 ← U (xk+1 ); Gk+1 ← G(xk+1 )
 
    Φk+1 ← Uk + (pk )T g k+1 + 1 (pk )T Gk+1 (pk )
                                 2
 
    d ← Uk+1 − Uk
 
    dac˘ |d| < ε|Uk+1 | atunci minim calculat stop.
        a
 
    rk ← d/[Φ(xk+1 ) − Φ(xk )]
 
    dac˘ rk > µ atunci xk ← xk+1 ; g k ← g k+1 ; Gk ← Gk+1
        a
 
                                   ıncredere
     Actualizarea razei regiunii de ˆ
       
 
         dac˘ rk ≤ µ
              a
       atunci δ ← γ1 δ
      
                   a
        altfel dac˘ rk > η
                   atunci δ ← γ2 δ .

7.5      Metode cvasi-Newton
                                  ın
Metodele cvasi-Newton constau ˆ aproximarea matricei G cu o matrice B,
        a s                a                                at
simetric˘ ¸i pozitiv definit˘. Pentru a combina propriet˘¸ile de convergent˘    ¸a
      a                                              ¸a      a      a
global˘ ale metodei gradientului cu cele de convergent˘ local˘ rapid˘ ale metodei
Newton, ecuatia pentru directia Newton pk (7.30) se ˆ
              ¸              ¸                                 s           ¸
                                                       ınlocuie¸te cu ecuatia

                                 Bk pk = −g k ,                            (7.36)

iar deplasarea se ia cu ponderea αk

                           sk ≡ xk+1 − xk = αk pk ,                       (7.37)

                       ın            a      ¸                   ¸
αk fiind determinat ˆ fiecare etap˘ prin conditia de minim al functiei de o
variabil˘ f (αk ) ≡ U (xk + αk pk ).
        a
7.5. Metode cvasi-Newton                                                         197


                                                       a
   Pentru actualizarea matricei Bk la pasul k +1, adic˘ pentru calculul matricei
Bk+1 , se dezvolt˘ functia U ˆ serie Taylor ˆ jurul punctului xk+1 , p˘strˆndu-se
                 a     ¸     ın             ın                        a a
doar primii trei termeni

 U (x) = U (xk+1 ) + (x − xk+1 )T g k+1 + 2 (x − xk+1 )T Gk+1 (x − xk+1 ) , (7.38)
                                          1


pentru care

              g ∼ g k+1 + Gk+1 (x − xk+1 ) ∼ g k+1 + Bk+1 (x − xk+1 ) ,
                =                          =                                    (7.39)

Impunˆnd ca Bk+1 s˘ aproximeze matricea hessian Gk+1 pentru x = xk , se
      a               a
  ¸         ¸
obtine conditia cvasi-Newton

                            Bk+1 sk = g k+1 − g k ≡ y k .                       (7.40)

    Relatia (7.40) nu este suficient˘ pentru determinarea matricei Bk+1 , astfel
        ¸                          a
ıncˆ                        a           ¸             a
ˆ at ea trebuie completat˘ cu o conditie suplimentar˘. De exemplu, putem
impune ca matricea Bk+1 s˘ nu difere mult de Bk , adic˘ Bk+1 − Bk s˘ fie
                             a                          a                 a
                                            as          a
minim. Folosind norma Frobenius ponderat˘ ¸i determinˆnd matricea Bk+1 ca
      ¸
o solutie a problemei de minimizare

               min{ W −1/2 (Bk+1 − Bk )W −1/2         F   | Bk+1 sk = y k } ,   (7.41)

                 s                    s                                       ¸
unde matricele B ¸i W sunt simetrice ¸i pozitiv definite, iar W satisface conditia
cvasi-Newton W sk = y k , se obtine formula Davidon-Fletcher-Powell (DF P )
                               ¸

                          z k (y k )T + y k (z k )T     (z k )T sk k k T
         Bk+1 = Bk +                                −                y (y )
                                  (y k )T sk          [(y k )T sk ]2            (7.42)
                       z k ≡ y k − Bk sk = y k + αk g k .

   ˆ mod similar, rezolvarea problemei de optimizare
   In
                             −1     −1
                min{ W 1/2 (Bk+1 − Bk )W 1/2         F    | Bk+1 sk = y k } ,   (7.43)

conduce la formula Broyden-Fletcher-Goldfarb-Shanno (BF GS)

                                     y k (y k )T  Bk sk (sk )T Bk
                     Bk+1 = Bk +                 − k T            .             (7.44)
                                     (y k )T sk   (s ) (Bk sk )

Ambele formule (7.42) ¸i (7.44) se pot simplifica ¸inˆnd cont c˘ Bk sk = −αk g k
                          s                           t a     a
s         a                                 a      a                   a
¸i au urm˘toarea proprietate remarcabil˘: dac˘ Bk este pozitiv definit˘ atunci
Bk+1 este pozitiv definit˘.  a
        ¸            s                      s
    Relatiile (7.36) ¸i (7.37) se pot scrie ¸i sub forma
                                              −1
                              xk+1 = xk − αk Bk g k .                           (7.45)

              ¸                a ın                 a                      ¸
Avantajul relatiei (7.45) const˘ ˆ eliminarea rezolv˘rii sistemului de ecuatii
liniare. Notˆnd H = B −1 , pentru DFP se obtine
            a                              ¸
198                                                       7. Metode de optimizare




                                   sk (sk )T    Hk y k (y k )T Hk
                    Hk+1 = Hk +       k )T sk
                                              −                   ,            (7.46)
                                   (y           (y k )T (Hk y k )

iar pentru BFGS


                  sk (y k )T            y k (sk )T       sk (sk )T
  Hk+1 =     I−                Hk I −                +              =
                  (y k )T sk            (y k )T sk       (y k )T sk
                                                                               (7.47)
         Hk y k (sk )T + sk (y k )T Hk   sk (y k )T Hk y k (sk )T  sk (sk )T
  = Hk −                               +                          + k T k .
                   (y k )T sk                 [(y k )T sk ]2       (y ) s

                                                             a
    Formulele pentru inversa matricei hessiene prezint˘ avantajul principal al
      a                        ¸ ıns˘               ¸
num˘rului mai mic de operatii, ˆ a sunt mai putin stabile din punct de vedere
al p˘str˘rii pozitivit˘¸ii matricelor H. ˆ plus, matricele Bk , simetrice ¸i pozitiv
     a a              at                 In                                 s
definite, admit o descompunere Choleski de forma Bk = Rk Rk . ˆ acest caz,
                                                                 T
                                                                       In
rezolvarea sistemului (7.36) necesit˘ numai O(n2 ), operatii. ˆ plus, factorii
                                       a                       ¸    In
descompunerii Choleski se pot actualiza direct ˆ O(n2 ) operatii.
                                                  ın               ¸
    ˆ toate cazurile, ca matrice initial˘ se poate lua matricea unitate sau orice
     In                               ¸ a
                  as                  a           a a
matrice simetric˘ ¸i pozitiv definit˘. Se observ˘ c˘ formula BFGS pentru ma-
                          a ın                                             a
tricea B este mai simpl˘, ˆ timp ce pentru matricea H este preferabil˘ formula
DFP. La aplicarea formulelor de mai sus, se evit˘ ˆ            ¸
                                                       a ınmultirea matricelor, uti-
   a                                                       s
lizˆndu-se numai produse de vectori sau de vectori ¸i matrice. Convergenta        ¸
                             as
acestor metode este global˘ ¸i superliniar˘.a
           a                                  a
     Exist˘ pericolul ca, din cauza acumul˘rii erorilor de rotunjire, matricele
             a      a                  as       a
B sau H s˘ devin˘ singulare sau s˘-¸i piard˘ pozitivitatea. O modalitate de
       ¸       a ın      ¸
corectie const˘ ˆ reinitializarea matricelor B sau H cu matricea unitate dup˘      a
         ¸
n iteratii.
               ¸                                          ¸
    Convergenta metodelor cvasi-Newton depinde esential de exactitatea cu care
             a                   ¸                    a
se determin˘ minimul unidirectional la fiecare etap˘. Metoda BFGS se dovede¸te    s
         ¸          a                                                a    a
mai putin sensibil˘ din acest punct de vedere, fiind mai stabil˘ decˆt metoda
DFP. Aplicate unor functii p˘tratice (U = xT Ax, A matrice constant˘), meto-
                            ¸ a                                             a
                              ın                  ¸                 a
dele cvasi-Newton converg ˆ maximum n iteratii (n fiind num˘rul de variabile
                 a                        ¸
independente) cˆnd matricea B va contine elementele matricei hessiene.


7.6     Metode de gradient conjugat
                                                        ¸
Metodele de gradient conjugat nu se deosebesc esential de metodele cvasi-
                                            s            ¸
Newton din punct de vedere al scopului, ¸i anume obtinerea minimului unei
        a        ın       ¸                                 a
forme p˘tratice ˆ n iteratii. Ambele clase de metode necesit˘ calculul derivate-
       ¸                ıntˆ s          s           ¸a            a
lor partiale de ordinul ˆ ai ¸i au aceea¸i convergent˘ superliniar˘. Deosebirea
    ¸ a        a ın         a                                          a
esential˘ const˘ ˆ faptul c˘ metodele de gradient conjugat nu necesit˘ memo-
rarea unei matrice.
7.6. Metode de gradient conjugat                                                           199


   Fie gradientul formei p˘tratice Φ definit˘ de (7.13), evaluat ˆ punctul xk+1
                          a                a                    ın

           Φ(xk+1 ) ≡ g k+1 = g k + G(xk+1 − xk ) = g k + αk Gpk ,                        (7.48)

unde am consderat xk+1 = xk + αk pk , iar directiile de descre¸tere construite
                                               ¸              s
   a
dup˘ regula

                               pk+1 = −g k+1 + βk pk .                                    (7.49)

                                          s                a                as
Avem de determinat doi parametrii: αk ¸i βk . Pentru a p˘stra avantajul cˆ¸tigat
la iteratiile anterioare (vezi 7.2), vom impune ca directiile pk+1 ¸i pk s˘ fie G-
        ¸                                                ¸         s      a
conjugate, adic˘ (pk+1 )T Gpk = 0. ˆ
                 a                         ¸                            ¸
                                     Inmultind la dreapta transpusa relatiei (7.49)
cu Gpk , se obtine
               ¸

                           βk = (g k+1 )T Gpk /(pk )T Gpk .                               (7.50)

ˆ
Inmultind la dreapta aceea¸i relatie cu Gpk+1 , se obtine egalitatea
     ¸                    s      ¸                   ¸

                         (pk+1 )T Gpk+1 = −(g k+1 )T Gpk+1 ,                              (7.51)

Punˆnd conditia ca vectorii g k ¸i g k+1 s˘ fie perpendiculari ((g k+1 )T g k = 0),
     a         ¸                  s        a
folosind relatia (7.51) ¸i scotˆnd din (7.48) Gpk = (g k+1 − g k )/αk , din relatia
             ¸          s     ¸a                                                ¸
            ¸
(7.50) se obtine

         βk = −(g k+1 )T Gpk /(g k )T Gpk = (g k+1 )T g k+1 /(g k )T g k .                (7.52)

    Pentru determinarea lui αk vom folosi din nou conditia ca vectorii g k ¸i g k+1
                                                        ¸                  s
s˘ fie perpendiculari. ˆ
 a                    Inmultind relatia (7.48) cu (g k+1 )T , respectiv cu (g k )T ,
                            ¸       ¸
     ¸       ¸
se obtin relatiile

         αk = −(g k )T g k /(g k )T Gpk = (g k+1 )T g k+1 /(g k+1 )T Gpk ,                (7.53)

    ¸
relatii care nu sunt utile din punct de vedere practic deoarece nu avem la
dispozitie hessiana G. Vom ar˘ta ˆ a c˘ ponderea α k din relatia (7.48) este
        ¸                       a ıns˘ a                        ¸
chiar valoarea care rezult˘ din problema de optimizare αk = min{U (xk + αpk )}.
                          a
                                                                       α∈R
Pentru aceasta trebuie s˘ ar˘t˘m c˘ vectorii g k+1 ¸i pk sunt perpendiculari,
                           a aa        a                s
adic˘ (pk )T g k+1 = 0. ˆ
    a                   Inmultind la stˆnga relatia (7.48) cu (pk )T ¸i ¸inˆnd cont
                               ¸        a         ¸                  s t a
       ¸            s              ¸
de relatile (7.49) ¸i (7.51), se obtine succcesiv

      (pk )T g k+1   = (pk )T g k + αk (pk )T Gpk
                     = (−g k + βk−1 pk−1 )T g k − αk (g k )T Gpk
                     =   −(g k )T g k + βk−1 (pk−1 )T g k − (g k )T g k+1 + (g k )T g k
                     =   βk−1 (pk−1 )T g k .                                              (7.54)

    a                   a                 ¸     a      a               a
Dac˘ la pasul anterior c˘utarea unidirectional˘ s-a f˘cut exact, adic˘ ponderea
αk−1 a fost determinat˘ astfel ˆ at (pk−1 )T g k = 0, atunci avem (pk )T g k+1 = 0.
                      a        ıncˆ
   Am obtinut astfel setul de directii G-conjugate pk construite cu relatia (7.49),
          ¸                        ¸                                     ¸
cu valoarea βk dat˘ de relatia (7.52). Pentru construirea setului de directii pk
                  a         ¸                                                 ¸
200                                                           7. Metode de optimizare


nu este nevoie de matricea hessian G, dar este necesar ca ponderile αk s˘ fie                 a
calculate exact.
        s                    a             a             ¸
    De¸i teoretic am g˘sit o singur˘ cale de obtinere a unui set de directii G-            ¸
               ın          a ıntˆ                                  ın
conjugate, ˆ practic˘ se ˆ alnesc mai multe variante, ˆ functie de modul cum  ¸
                a
se calculeaz˘ parametrul β :
    Metoda Fletcher-Reeves                   βk = (g k+1 )T g k+1 /(g k )T g k ;
    Metoda Polak-Ribi`re    e                βk = (g k+1 )T y k /(g k )T g k , y k = g k+1 − g k ;
    Metoda Hestens-Stiefel                  βk = (g k+1 )T y k /(y k )T pk .
                       a a      a      ¸
    Pentru o form˘ p˘tratic˘ relatiile de mai sus sunt echivalente. Astfel, num˘-               a
r˘torul relatiei Polak-Ribi`re se mai scrie (g k+1 )T (g k+1 − g k ) = (g k+1 )T g k+1 ,
  a             ¸              e
deoarece (g k+1 )T g k = 0, iar numitorul relatiei Hestens-Stiefel se scrie (y k )T pk =
                                                   ¸
(g k+1 )T pk − (g k )T pk = 0 − (g k )T g k = −(g k )T g k .
                  a         ¸                         e               ¸
    Se observ˘ tendinta metodei Polak-Ribi`re de reinitializare a directiei de            ¸
c˘utare dup˘ directia gradientului simplu ˆ situatiile dificile, cˆnd xk+1 −xk este
  a             a       ¸                        ın        ¸                  a
foarte mic ¸i g k+1 ≈ g k . Din aceast˘ cauz˘, pentru functii obiectiv complicate
               s                            a      a                  ¸
                         e            s                      a
metoda Polak-Ribi`re se dovede¸te a fi mai robust˘. Metoda Hestens-Stiefel are
¸i la numitor termenul y k = g k+1 − g k , fapt care provoac˘ dificult˘¸i ˆ situatia
s                                                                     a            at ın       ¸
mai sus amintit˘.    a
                                                                  ∗
             a                   ¸
    Avansˆnd la fiecare iteratie cu pasul optim αk = αk , convergenta metodelor      ¸
                                             a
de gradient conjugat este superliniar˘. Pentru a evita efectele nedorite datorate
          a                                           a        ¸
acumul˘rii erorilor de rotunjire, se recomand˘ reinitializarea algoritmului dup˘                 a
            s        a                                          a s
n + 1 pa¸i, punˆndu-se βk+1 = 0. Ea este sugerat˘ ¸i de faptul c˘, pentru o           a
     ¸      a        a                                                  ın
functie p˘tratic˘, metodele de gradient conjugat converg ˆ cel mult n iteratii.               ¸
                                                  a                ¸
    Metodele de gradient conjugat necesit˘ O(n) operatii pe iteratie; de aseme-    ¸
                     at                ¸a        a
nea, au propriet˘¸i de convergent˘ global˘. Ca urmare, la rezolvarea probleme-
                   a                                    a
lor cu un num˘r mare de variabile se recomand˘ folosirea metodelor de gradient
            ın
conjugat ˆ locul metodelor cvasi-Newton.

7.6.1                                   ¸
           Rezolvarea sistemelor de ecuatii liniare folosind me-
           tode de optimizare
Metodele de optimizare pot fi aplicate cu succes pentru rezolvarea sistemelor de
                               ındeosebi pentru sisteme mari, atunci cˆnd metodele
ecuatii liniare (capitolul 5), ˆ
     ¸                                                                a
                                               a                           ın
directe nu mai sunt eficiente. Deoarece num˘rul de variabile este mare, ˆ astfel
         ¸
de situatii sunt preferate metodele de gradient conjugat.
                               a                              a     ¸
    Pentru a folosi o metod˘ de optimizare, trebuie definit˘ functia obiectiv U .
                      ¸
Fie sistemul de ecuatii liniare

                                           Ax = b ,                                       (7.55)

unde A este o matrice simetric˘ pozitiv definit˘, adic˘ avem AT = A ¸i xT Ax >
                              a               a      a             s
0 pentru orice x = 0. ˆ aceste conditii, problema rezolv˘rii sistemului (7.55)
                       In              ¸                  a
               a                      a           a
este echivalent˘ cu problema minimiz˘rii formei p˘tratice

                                U (x) = x, Ax − 2 x, b ,                                  (7.56)
7.6. Metode de gradient conjugat                                            201


                                             ¸
unde pentru produsul scalar s-a utilizat notatia
                                              n
                             x, b ≡ xT b =          xi bi .               (7.57)
                                              i=1

ˆ cazul ˆ care matricea A este simetric˘, gradientul functiei U este dat de
In      ın                             a                 ¸
    ¸
relatia

                           g(x) ≡   U (x) = −2(b − Ax) .                  (7.58)

Se observ˘ c˘ functia U are un extrem pentru solutia x a sistemului (7.55). ˆ
         a a       ¸                                 ¸                      In
                 ¸            s                ¸
lungul unei directii de descre¸tere p avem relatiile

U (x + αp) =      x + αp, A(x + αp) − 2 x + αp, b
           =      x, Ax + α x, Ap + α p, Ax + α2 p, Ap − 2 x, b − 2α p, b
             = U (x) + 2α p, Ax − 2α p, b + α2 p, Ap
             = U (x) + 2α p, Ax − b + α2 p, Ap .                           (7.59)

Am folosit egalitatea x, Ap = AT x, p = p, AT x , ¸i cum AT = A, rezult˘
                                                      s                    a
 x, Ap = p, Ax . Observ˘m cum coeficientul lui α2 este pozitiv, p, Ap > 0
                          a
                                       a           ¸
deoarece matricea A este pozitiv definit˘, deci functia U are un minim pentru
α = α∗ care poate fi determinat din conditia
                                         ¸
                   d
                     U (x + αp) = 2 p, Ax − b + 2α p, Ap ,                (7.60)
                  dα
      a
rezultˆnd

                            α∗ = p, b − Ax / p, Ap .                      (7.61)

Cu valoarea α∗ dat˘ de (7.61), obtinem minimul functiei U dup˘ directia p
                  a              ¸                 ¸         a      ¸

            U (x + α∗ p)   = U (x) + α∗ [2 p, Ax − b + α∗ p, Ap ]
                           = U (x) + α∗ [2 p, Ax − b + p, b − Ax ]
                           = U (x) − α∗ p, b − Ax
                                                    2
                           =   U (x) − p, b − Ax        / p, Ap .         (7.62)

  a ın                                                           ¸
D˘m ˆ continuare algoritmul de determinare a minimului functiei U dat˘ de   a
                                                     ¸            s
(7.56) folosind metoda gradientului pentru care directia de descre¸tere este p =
                                                             2
−g dat˘ de (7.58). Conditia de oprire folosit˘ este b − Ax 2 < ε.
        a                ¸                   a

                      Date: x0 , A, b, maxiter, ε
                      iter ← 1; norm ← 1; x ← x0
                      cˆt timp norm > ε ¸i iter ≤ maxiter
                       a                  s
                           p ← b − Ax; norm ← p, p
                          α ← norm/ p, Ap
                           x ← x + αp .
202                                                 7. Metode de optimizare


                                   ¸          a
    Determinarea minimului functiei U dat˘ de (7.56) se poate face folosind
         a       a
orice alt˘ metod˘ de optimizare. Spre exemplu, aplicarea metodei Fletcher-
Reeves duce la algoritmul (7.65). ˆ partea stˆng˘ am prezentat o variant˘ mai
                                   In           a a                        a
 s           a ın            ın              a              a           a
u¸or de urm˘rit ˆ timp ce ˆ partea dreapt˘ este o variant˘ optimizat˘ pentru
           ıntr-un limbaj de programare. Testul de oprire este rk+1 , rk+1 < ε,
codificarea ˆ
       k+1
unde r                                                                  ¸
           este reziduul la pasul k + 1 care coincide cu gradientul functiei scop
                         ¸              s ın         ın   ınaintarea spre minim
definit˘ de (7.56). Iteratiile se opresc ¸i ˆ cazul ˆ care ˆ
       a
devine lent˘, adic˘ pk , pk < δ.
           a      a
    Num˘rul de iteratii necesare obtinerii solutiei sistemului (7.56) depinde de
         a            ¸              ¸           ¸
     a             ¸                                                      a
num˘rul de conditionare al matricei A (vezi capitolul 5). Pentru a m˘ri vi-
                   ¸a
teza de convergent˘, se poate ˆ        a at        ¸
                                 ımbun˘t˘¸i conditionarea sistemului (7.56) prin
transformarea sa ˆıntr-un sistem echivalent

                                    Aˆ = ˆ ,
                                    ˆx b                                     (7.63)

unde

                       A = S T AS, x = S −1 x, ˆ = S T b .
                       ˆ           ˆ           b                             (7.64)

        a                       ¸
Spunem c˘ am efectuat o preconditionare a sistemului.


              Algoritmul Fletcher-Reeves       pentru sisteme liniare.
          Date: x0 , A, b, maxiter, ε, δ       Date: x0 , A, b, maxiter, ε, δ
          r0 ← b − Ax0                         x ← x0 ; r ← b − Ax; p ← r
          p0 ← r 0                             c ← r, r ; d ← c
          k = 0 : (maxiter − 1)                k= 1 : maxiter
                                                               1/2
                           1/2                       a
                                                  dac˘ p, p        < δstop
             dac˘ pk , pk
                a               < δstop          z ← Ap; α ← c/ p, z
           α ← rk , rk / pk , Apk                                           (7.65)
           k                                    x ← x + αp
           xk+1 ← xk + α pk                    
                             k                  r ← r − αz
           rk+1 ← rk − α Apk                   
                            k                   d ← r, r
           dac˘ rk+1 , rk+1 < εstop
                a                               
                                                     a
                                                 dac˘ d < εstop
           β ← rk+1 , rk+1 / rk , Ark          
              k                                  p ← r + (d/c)p
             pk+1 ← rk+1 + βk pk .
                                                  c←d.

         a
   Dac˘ matricea sistemului original are multe elemente nule (matrice rar˘),  a
      ¸               ¸
operatia de preconditionare poate duce la pierderea acestui avantaj. Din acest
                  ın                          ¸               a
punct de vedere, ˆ loc de a efectua o preconditionare explicit˘ a sistemului ori-
             a                           a                ¸
ginal urmat˘ apoi de rezolvarea numeric˘ a sistemului obtinut, este mai avan-
       a                                                                 ¸
tajoas˘ din punct de vedere numeric folosirea unei tehnici de preconditionare
         a              ¸
implicit˘ folosind relatiile

                          xk = S −1 xk ; pk = S −1 pk
                          ˆ              ˆ
                r = ˆ − Aˆk = S T b − (S T AS)(S −1 xk ) = S T rk
                ˆk
                    b ˆx                                                     (7.66)
                   r = S rk = Q−1 rk , unde Q−1 = S S T .
                   ˜     ˆ
7.6. Metode de gradient conjugat                                                     203

ˆ aceste conditii obtinem
In            ¸     ¸

       αk
       ˆ     =              ˆ ˆp
                  rk , rk / pk , Aˆk
                  ˆ ˆ
             =    S T rk , S T rk / S −1 pk , (S T AS)(S −1 pk )
             =    SS T rk , rk / SS −1 pk , Apk = Q−1 rk , rk / pk , Apk
             =    rk , rk / pk , Apk
                  ˜                     .                                           (7.67)

    ¸                 a                        a     ¸
Relatia de deplasare c˘tre minimul ce reprezint˘ solutia sistemului (7.63) este

                                 xk+1 = xk + αk pk ,
                                 ˆ      ˆ    ˆ ˆ                                    (7.68)

                                ¸
sau ¸inˆnd cont de (7.66), se obtine
    t a

                          S −1 xk+1 = S −1 xk + αk S −1 pk .
                                                ˆ                                   (7.69)

ˆ
Inmultind la stˆnga cu S relatia (7.69), obtinem
     ¸         a             ¸             ¸

                                 xk+1 = xk + αk pk .
                                             ˆ                                      (7.70)

            ¸       ¸
Analog se obtin relatiile

   rk+1 = rk − αk Apk , αk = rk+1 , rk+1 / rk , rk , pk+1 = rk+1 + αk pk .
               ˆ        ˆ    ˜             ˜                ˜      ˆ
                                                                       (7.71)

  a ın                                                              ¸
D˘m ˆ continuare algoritmul pentru rezolvarea sistemului de ecuatii liniare
                                                                ¸
folosind metoda de gradient conjugat Fletcher-Reeves cu preconditionare.

     Date: x0 , A, b, maxiter, ε, δ                Date: x0 , A, b, maxiter, ε, δ
     r0 ← b − Ax0                                  x ← x0 ; r ← b − Ax
     rezolv˘ sistemul Q˜0 = r0
           a             r                               a
                                                   rezolv˘ sistemul Qz = r
     p0 ← r 0                                      p ← r; c ← z, r
     k = 0 : (maxiter − 1)                         k = 1 : maxiter
                                                                   1/2
                                                    
                                                          a
                                                      dac˘ p, p        < δstop
                       1/2                          z ← Ap; α ← c/ p, z
          dac˘ pk , pk
              a            < δstop                  
                                                     x ← x + αp
      
         αk ← rk , rk / pk , Apk
          ˆ       ˜                                 
                                                     r ← r − αz
         xk+1 ← xk + αk pk
                        ˆ                           
                                                     rezolv˘ sistemul Qz = r
                                                             a
      
      
         rk+1 ← rk − αk Apk
                        ˆ                           
                                                     d ← z, r
         rezolv˘ sistemul Q˜k+1 = rk+1
                a            r                      
                                                      a
                                                    dac˘ d < ε
         dac˘ rk+1 , rk+1 < ε atunci
              a ˜
                                                          atunci
      
                               2
                                                    
             dac˘ rk+1 , rk+1 < εstop
      
               a                                   
                                                      e ← r, r
          ˆ
      
          β k ← rk+1 , rk+1 / rk , rk
                  ˜              ˜
                                                    
                                                                 a
                                                            dac˘ e < εstop
                                                   
          p k+1
                ←r ˜k+1   ˆ pk .
                        + βk
                                                    
                                                     p ← z + (d/c)p
                                                      c←d.

         ın         a a         a           a       s         a ın
Din nou, ˆ partea stˆng˘ prezent˘m o variant˘ mai u¸or de urm˘rit ˆ timp ce
ın             a          a                   ıntr-un limbaj de programare.
ˆ partea dreapt˘ optimizat˘ pentru codificarea ˆ
204                                                               7. Metode de optimizare


Deoarece la fiecare pas trebuie rezolvat un sistem de forma Qx = y, matricea Q
               a      ıncˆ            a    s                     a
trebuie aleas˘ astfel ˆ at sistemul s˘ fie u¸or de rezolvat. Dac˘ spre exemplu
                          a
matricea Q este diagonal˘, atunci efortul de calcul pentru rezolvarea sistemului
                           ın
este minim la fiecare pas, ˆ timp ce forme mai complicate ale matricei Q permit
   ¸                                  ¸     s              a                  ¸
obtinerea unui sistem mai bine conditionat ¸i deci un num˘r mai mic de iteratii
             ¸          ¸          a ın ¸
necesare obtinerii solutiei. Ne afl˘m ˆ fata unui exemplu tipic de compromis
ıntre un efort minim pe iteratie dar num˘r mare de iteratii ¸i un efort mai mare
ˆ                               ¸        a               ¸ s
        ¸                     s         a             ¸
pe iteratie care duce la mic¸orarea num˘rului de iteratii.


7.7      Metode specifice de optimizare
           a
Din aceast˘ categorie fac parte metodele care sunt special construite pentru
    ¸                                         ¸
functii scop ce au forme particulare. Fie functia scop de forma
                                          n
                         U (x) =     1
                                     2            Fj2 (x) =   1
                                                              2   F   2
                                                                      2   ,         (7.72)
                                          j=1

unde F : Rn → Rn . O problem˘ de optimizare cu functia scop de forma (7.72)
                             a                     ¸
       ıntˆ s                                              a
se mai ˆ alne¸te sub denumirea de problema celor mai mici p˘trate neliniare.
       a
Observ˘m c˘a
                                          n
                   gi = ∂U/∂xi =                  (∂Fj /∂xi )Fj , i ∈ 1, n ,        (7.73)
                                          j=1

sau vectorial
                                 U (x) ≡ g(x) = J T (x)F (x) ,                      (7.74)
unde J este matricea jacobian˘ a functiei F . Notˆnd cu [Gi ]j,p = (∂ 2 Fi )/(∂xj ∂xp ),
                             a       ¸           a
     ¸
se obtine
                             2
                                 U (x) = J T (x)J(x) + Q(x) ,                       (7.75)
unde cu Q s-a notat matricea
                                              n
                             Q(x) =                 Fi (x)Gi (x) .                  (7.76)
                                              i=1
    a               ¸                                    ın      a
Dac˘ minimul functiei U este zero sau foarte mic, atunci ˆ vecin˘tatea acestuia
                             ¸              ıncˆ
avem valori mici pentru functiile Fi astfel ˆ at se poate neglija termenul Q(x)
din relatia (7.75), aproximˆnd2 hessiana cu relatia
        ¸                  a                     ¸
                         G(x) =   2       ∼   T
                                    U (x) = J (x)J(x) ,                   (7.77)
   ¸ a                    a           ¸a          a
obtinˆnd deci o metod˘ cu eficient˘ comparabil˘ metodelor de tip Newton.
                             a                         a
Dintre metodele care rezolv˘ problema celor mai mici p˘trate neliniare, metoda
Levenberg-Marquardt face parte din categoria metodelor regiunii de ˆ  ıncredere
ˆ model prezentate la 33. Algoritmul prezentat pentru metoda regiunii de
ın
ıncredere poate fi aplicat direct pentru metoda Levenberg-Marquardt, dar ¸inˆnd
ˆ                                                                        t a
cont de aproximarea hessianei cu (7.77) pot fi aduse ˆ      a at
                                                      ımbun˘t˘¸iri modului de
               ¸             s
calcul al directiei de descre¸tere p.
   2 Aceast˘ ipotez˘ nu mai este justificat˘ dac˘
           a       a                      a    a U (x∗ ) este de acela¸i ordin de m˘rime cu
                                                                      s            a
valoarea proprie maxim˘ a matricei J T J, unde cu x∗ s-a notat punctul ˆ care U ia valoarea
                        a                                               ın
minim˘.a
                                      ¸
7.8. Probleme de optimizare cu restrictii                                      205




                     Figura 7.5: Exemplu de restrictie liniar˘.
                                                   ¸         a


7.8                                      ¸
        Probleme de optimizare cu restrictii
                                                 a
Majoritatea problemelor practice se formuleaz˘ ca probleme de optimizare la
                     ¸                                     ¸                   ¸
care variabilele functiei obiectiv sunt supuse unor restrictii. Este bine de retinut
        a                                                              ¸
faptul c˘ deseori metodele de optimizare pentru probleme cu restrictii au la baz˘  a
                           aa        ¸                   a       ¸
metodele de optimizare f˘r˘ restrictii, cu mici modific˘ri. Spatiul nu ne permite
             ın                                               ¸       a        ¸
prezentarea ˆ detaliu a metodelor de optimizare cu restrictii, dar cˆteva notiuni
       a
de baz˘ sunt necesare.
           ¸                                           ¸
   Restrictiile pot fi liniare sau neliniare. Restrictiile liniare pot fi scrise ˆ  ın
forma general˘ a

                                     Ax = b ,                                (7.78)

 a                            ¸         at
cˆnd avem de a face cu restrictii egalit˘¸i liniare, sau

                                     Ax ≥ b ,                                (7.79)

 a                                ¸          at
cˆnd avem de a face cu restrictii inegalit˘¸i liniare. Matricea A are m linii,
                     a             ¸                                      ¸
unde m este num˘rul de restrictii impuse celor n variabile ale functiei scop.
Un punct x ∈ Rn este admisibil dac˘ ˆ   a ındepline¸te conditiile (7.78) sau (7.79)
                                                   s        ¸
    a                                    ın                         ¸
dup˘ cum este cazul. Spre exemplu, ˆ cazul n = 2, o restrictie egalitate de
forma x1 − x2 = 1 impune ca minimul s˘ fie c˘utat pe o dreapta (fig. 7.5),
                                             a     a
iar o restrictie inegalitate de forma x1 − x2 ≤ 1 face ca punctele admisibile
               ¸
s˘ fie plasate ˆ semiplanul de deasupra dreptei x2 = 1 − x1 . Se observ˘ c˘
 a               ın                                                             a a
       ¸                                                                    ¸
restrictiile egalitate reduc dimensiunea problemei: minimizarea unei functii scop
                                     ¸                              ¸
de n variabile supuse la m restrictii independente, se poate obtine aplicˆnd oa
metod˘ de optimizare f˘r˘ restrictii pentru o functie scop de n − m variabile.
       a                  aa        ¸                ¸
             a                                                  ¸
    O prim˘ posibilitate de rezolvare a problemelor cu restrictii liniare este de a
                 a               aa        ¸ ımpreun˘ cu o strategie de penalizare
folosi o metod˘ de optimizare f˘r˘ restrictii ˆ        a
        ¸             a
a functiei scop dac˘ algoritmul ˆ          a a    a
                                   ıncearc˘ s˘ ias˘ din domeniul D al punctelor
206                                                                  7. Metode de optimizare


                              s       ¸
admisibile. Practic se redefine¸te functia scop

                            ˆ              U (x),     pentru x ∈ D
                            U (x) =                                                      (7.80)
                                           µ,         pentru x ∈ D
                                                               /

unde µ ≥ U (x0 ). Aceast˘ strategie are dezavantajul mic¸or˘rii vitezei de con-
                           a                               s a
       ¸a ın             a               ın
vergent˘, ˆ special dac˘ minimul este ˆ apropierea frontierei lui D.
         a                                                                    ın
    O alt˘ posibilitate o constituie tehnicile de transformare. Spre exemplu, ˆ
cazul particular al unor restrictii tip margini simple de forma αi ≤ xi ≤ βi ,
                                 ¸
i ∈ 1, m , xi ≤ γi , i ∈ m + 1, m se poate utiliza urm˘toarea transformare de
                                                         a
tip Valentine:

                     xi = 1 [(βi − αi ) cos zi + (βi + αi )], i ∈ 1, m
                          2
                                          2                                              (7.81)
                              xi = γi − zi , i ∈ m + 1, m .

                                 a          a                   s
Tehnicile bazate pe transform˘ri prezint˘ dezavantajul cre¸terii neliniarit˘¸ii at
                             ˆ In         ˆ
functiei scop transformate U . ˆ plus, U poate deveni nem˘rginit˘ sau poate
    ¸                                                           a      a
                                                   a              a
avea derivate discontinue ori hessiana nedefinit˘ sau singular˘. Metode mai
                        a
performante se bazeaz˘ pe combinatii ˆ                                   s
                                      ¸ ıntre tehnicile algebrei liniare ¸i cele ale
        a    aa         ¸
optimiz˘rii f˘r˘ restrictii.
           ¸                        a
   Restrictiile neliniare pot fi la rˆndul lor de tip egalitate sau inegalitate

                            fi (x) = 0, sau fi (x) ≥ 0, i ∈ 1, n ,                       (7.82)

unde fi : Rn → R iar m este num˘rul de restrictii. Pentru rezolvarea pro-
                                       a             ¸
                                   ¸
blemelor de optimizare cu restrictii neliniare se pot folosi tehnici de penalizare,
                                                             ¸
extensii ale metodelor de rezolvare a problemelor cu restrictii liniare sau metode
                ¸
specifice restrictiilor neliniare cum ar fi metoda de lagrangean proiectat.

Algoritmul Simplex.
                              a                              a             ¸
Numeroase probleme din practic˘ conduc la necesitatea optimiz˘rii unei functii
scop liniare3 de forma
                                                             n
                               U (x1 , x2 , . . . , xn ) =         αj xj ,               (7.83)
                                                             j=1

           ¸                                         ¸
unde cel putin un coeficient αj este nenul, cu restrictii de forma

                                 xj    ≥     0, j ∈ 1, n ,
                        n
                              aij xj   ≥     bi , i ∈ 1, m1 , bi ≥ 0 ,
                       j=1
                       n
                              akj xj   ≤     bk , k ∈ m1 + 1, m2 , bk ≥ 0 ,              (7.84)
                       k=1
                        n
                              alj xj   =     bl , l ∈ m2 + 1, m, bl ≥ 0 .
                        l=1
   3 O functie U : Rn → R este liniar˘ dac˘ ˆ
           ¸                         a                s       a             a       ¸
                                          a ındepline¸te urm˘toarele dou˘ conditii: U (λx) =
λU (x) ¸i U (αx + βy) = αU (x) + βU (y), oricare ar fi vectorii x, y ∈ Rn ¸i scalarii α, β, λ ∈ R.
       s                                                                 s
                                      ¸
7.8. Probleme de optimizare cu restrictii                                         207




                  Figura 7.6: Un exemplu simplu de programare liniar˘.
                                                                    a


              a ın              ¸
Vom urm˘ri ˆ continuare obtinerea unei valori maxime (pe care o vom numi
ın                            a        ¸                               a
ˆ continuare valoare optim˘) a functiei U . Problema determin˘rii unei valori
minime pentru U se reduce la determinarea unei valori maxime pentru −U .
Restrictiile de forma xj ≥ 0 sunt impuse de semnificatia fizic˘ a variabilelor.
          ¸                                                 ¸        a
Frontiera domeniului admisibil, care contine toti vectorii x ∈ Rn care ˆ
                                         ¸        ¸                         ındeplinesc
                            s
simultan conditiile (7.84) ¸i care se numesc vectorii admisibili, este definit˘ de
                  ¸                                                                 a
       ¸              ¸                                 at      ın        at
ecuatiile liniare obtinute prin transformarea inegalit˘¸ilor ˆ egalit˘¸i. Vectorul
                         a                  a       ¸
admisibil care realizeaz˘ valoarea maxim˘ a functiei scop U se nume¸te vector s
optimal. Conditiile bi ≥ 0 pot fi ˆ
                  ¸               ıntotdeauna ˆ               ın        ın
                                                ındeplinite (ˆ cazul ˆ care bp < 0,
se ˆınmulte¸te cu −1 inegalitatea respectiv˘). Deoarece gradientul unei functii
            ¸ s                               a                                       ¸
                                    ın                      a a
liniare de forma (7.83) este nenul ˆ orice punct, rezult˘ c˘ valoarea optim˘ se     a
    a                                            a                 a
afl˘ pe frontiera domeniului admisibil. Aceast˘ valoare maxim˘ este finit˘ numai  a
dac˘ restrictiile (7.84) definesc un poliedru convex. Mai mult, dac˘ valoarea
     a          ¸                                                            a
         a          a                 a ıntr-unul din vˆrfurile poliedrului.
optim˘ este unic˘, atunci ea se va g˘si ˆ                 a
                         a                          ¸
     Problema determin˘rii valorii optime a functiei U se reduce principial la
  a
c˘utarea acesteia pe frontiera domeniului valorilor admisibile. Vectorul optimal
             a        a                    ¸
trebuie s˘ satisfac˘ sistemul de m ecuatii liniare ce definesc frontiera ¸i care   s
contin n necunoscute, xj , j ∈ 1, n, n 7 m.
     ¸
    Exemplu. ˆ figura (7.6) este exemplificat cazul
             In
                                  U (x1 , x2 ) = x1 + x2 ,                       (7.85)
          ¸
cu restrictiile
         x1 + x2 ≤ 10, −2x1 + x2 ≤ 3, −x1 + x2 ≥ −3, x1 ≥ 0, x2 ≥ 0 .            (7.86)

       a           a                           s
Pe figur˘ se observ˘ domeniul admisibil, precum ¸i vectorul optimal unic x = (1.75, 6.50)
                a
aflat pe frontier˘.
   ˆ cazul ˆ care n este mare, parcurgerea la ˆ amplare a frontierei poate
   In       ın                                 ıntˆ
                 a                        a                  a
fi total ineficient˘. Algorimul simplex ofer˘ o modalitate de c˘utare a valorii
208                                                          7. Metode de optimizare


               a   ın     s           a                            ¸
optime asigurˆnd ˆ acela¸i timp dou˘ lucruri: (a) valoarea functiei scop U
   s                                             a        ¸    a ın
cre¸te de la un pas la altul; (b) valoarea optim˘ este obtinut˘ ˆ maximum
       s                                           a s
M pa¸i, unde M = max(n, m). Este interesant c˘ de¸i algoritmul simplex a
              ınc˘
fost elaborat ˆ a din 1948 de G.B. Dantzig iar proprietatea (b) de mai sus era
          a                                a              ın
confirmat˘ practic, aceasta a fost demostrat˘ riguros abia ˆ 1982 de S. Smale.
                                                          a
Pentru prezentarea algoritmului simplex, vom apela la dou˘ exemple simple.
                         a     a     a               a       ¸
    Exemplul I. Se cere s˘ se g˘seasc˘ valoarea maxim˘ a functiei

                                         U = x2 − 3x3 ,                            (7.87)

          ¸
cu restrictiile

                  x1 + 2x2 − 3x3 = 3, x2 − x3 − x4 = −1, x1 , x2 , x3 , x4 ≥ 0 ,   (7.88)

¸i bineˆ ¸eles xi ≥ 0. Se observ˘ valoarea functiei U este cu atˆt mai mare cu cˆt x2 este
s      ınt                      a              ¸                a               a
mai mare ¸i x3 mai mic. Rescriem prima relatie (7.88) ˆ forma x1 = 3−2x2 +3x3 ≥ 0.
           s                                  ¸          ın
Ultima inegalitate este impus˘ de conditia x1 ≥ 0; rezult˘ x2 ≤ 3 (1 + x3 ). Pentru
                               a          ¸                 a       2
                                      ¸
7.8. Probleme de optimizare cu restrictii                                                        209


                  Tabelul 7.1: Exemplu de calcul pentru algoritmul simplex

               x2      x3                          x1        x3                        x1      x4
    U     0     1      −1           U     3/2     −1/2       1/2            U     4    −1      −1
    x1    3    −2      3      →     x2    3/2     −1/2      3/2       →     x2    9    −2      −3
    x4    1    1       −2           x4    5/2     −1/2      −1/2            x3    5    −1      −2



                                                                   a
valoarea x3 = 0 care convine din punctul de vedere al unei valori cˆt mai mari pentru
U , se obtine x2 ≤ 3. Luˆnd x3 = 0, x2 = 3/2, rezult˘ x1 = 0, x4 = 5/2 ¸i U = 3/2.
         ¸              a                           a                  s
                           a       ¸
     Exemplul II. Consider˘m functia scop

                                           U = x2 − x3 ,                                       (7.89)

          ¸
cu restrictiile

               x1 + 2x2 − 3x3 = 3, −x2 + 2x3 + x4 = 1, x1 , x2 , x3 , x4 ≥ 0 .                 (7.90)

Procedˆnd la fel ca ˆ exemplul precedent, obtinem x1 = 3 − 2x2 + 3x3 ≥ 0 rezultˆnd
           a             ın                         ¸                                              a
x2 ≤ 3 (1 + x3 ) ¸i x4 = 1 + x2 − 2x3 ≥ 0, rezultˆnd x3 ≤ 1 (1 + x2 ). Suntem tentati
         2
                     s                                  a             2
                                                                                                      ¸
                                               ¸              a      s       ¸a
de valorile x3 = 0, x2 = 3 cu care am obtinut cu atˆta u¸urint˘ U = 3 ˆ exemplul         ın
                    a             ıns˘                                ¸       a
precedent. Dac˘ introducem ˆ a inegalitatea pentru x2 obtinut˘ mai sus ˆ expresia         ın
functiei scop, obtinem U ≤ 3 + 1 x3 , rezultat care sugereaz˘ c˘ valoarea minim˘ nu
      ¸               ¸          2    2
                                                                        a a                       a
se obtine pentru x3 = 0. ˆ
       ¸                    Intr-adev˘r, putem scrie x2 ≤ 3 (1 + x3 ) ≤ 3 [1 + 1 (1 + x2 )],
                                        a                        2                 2      2
rezultˆnd x2 = 9, x3 = 5, x1 = 0, x4 = 0, U = 4. ˆ
        a                                                                     a      ¸
                                                               Incepem s˘ simtim nevoia unei
                                a a                       a
metodologii mai riguroase, f˘r˘ de care este clar c˘ nu vom putea rezolva problemele
cu mai multe variabile.
                a                                                          s
     Prezent˘m algoritmul simplex folosindu-ne de exemplul 2 ¸i cu ajutorul tabelului
                a ın                                                    a
7.1. Observ˘m ˆ prima parte a tabelului (primele 4 coloane) c˘ variabilele x1 ¸i x4 apar    s
                            s                          ın                         ¸
distinct de variabilele x2 ¸i x3 , de care depinde ˆ mod explicit functia U . Variabilele
    s                                   a                                    a
x1 ¸i x4 care apar pe prima coloan˘ se numesc variabile de baz˘. Variabilele de baz˘                  a
sunt acele variabile care apar ˆ              a      ¸           ¸ s
                                 ıntr-o singur˘ relatie-restrictie (¸i numai ˆ                     a
                                                                                    ıntr-una), avˆnd
coeficientul pozitiv ¸i care se pot exprima numai ˆ functie de celelalte variabile. ˆ
                         s                                ın       ¸                                 In
             ¸a     ¸                          ın s        ıncˆ a               ¸ a
consecint˘, functia scop se poate exprima ˆ a¸a fel ˆ at s˘ nu contin˘ nici o variabil˘               a
de baz˘. ˆ exemplul nostru avem variabile de baz˘ x1 ¸i x4 . Din tabel citim de pe
          a In                                              a     s
prima linie U = 0 + 1 · x2 − 1 · x3 , de pe linia a doua x1 = 3 − 2x2 + 3x3 s.a.m.d. De pe
              ¸         a a                         s a
linia functiei scop c˘ut˘m un coeficient pozitiv ¸i g˘sim 1 pe coloana variabilei x2 , adic˘           a
        s                   s s                   ¸
la cre¸terea valorii x2 cre¸te ¸i valoarea functiei scop U . Pe coloana lui x2 c˘ut˘m un    a a
coeficient negativ, ¸i g˘sim valoarea −2 pe linia lui x1 . ˆ
                        s a                                                   a a
                                                                 Inseamn˘ c˘ nu putem cre¸te        s
     a                                                                           ¸
oricˆt de mult valoarea x2 , deoarece acest lucru poate duce la obtinerea unei valori
                                     a                       a
negative pentru variabila de baz˘ pentru care am g˘sit coeficientul negativ, ˆ cazul           ın
                                                                                               αj
nostru x1 . De fapt, rata cre¸terii functiei U este dat˘ de multiplicatorul pij = |aij | · bi ,
                               s           ¸                a
unde αj = 1 este coeficientul lui x2 din expresia functiei U , aij = −2 este coeficientul
                                                              ¸
negativ de pe coloana lui x2 , iar bi = 3 este termenul liber din expresia variabilei de
    a                            a                         ¸              ¸
baz˘ x1 , (i = 1, j = 2). Dac˘ pe coloana lui x2 toti coeficientii ar fi fost pozitivi, ar
fiˆ                a           s        a                                 ¸
   ınsemnat c˘ puteam cre¸te oricˆt de mult pe x2 , iar functia scop ar fi crescut de
210                                                           7. Metode de optimizare


               a                 ın
asemenea oricˆt de mult, caz ˆ care problema este ˆ             a            a         a ın
                                                       ıncheiat˘. Pasul urm˘tor const˘ ˆ
                                    s       a          ¸           ¸
interschimbarea variabilelor x2 ¸i x1 , adic˘ din relatia de definitie a variabilei de baz˘a
                 a                     ¸    a             a            ¸       s
x1 se expliciteaz˘ x2 , iar expresia obtinut˘ este folosit˘ pentru a obtine U ¸i x4 numai
ˆ functie de x1 ¸i x3 . Se obtin relatiile x2 = 1 (3 − x1 + 3x3 ), U = 1 (3 − x1 + x3 )
ın      ¸         s              ¸      ¸          2                       2
¸i x4 = 1 (5 − x1 − x3 ), relatii prezente prin coeficienti ˆ partea a doua a tabelului
s         2
                                ¸                          ¸ ın
7.1. ˆ general, se procedez˘ la interschimbarea variabilelor xi ¸i xj corespunz˘toare
     In                        a                                     s              a
                             αj
unui multiplicator pij = |aij | · bi maxim. ˆ continuare, c˘ut˘m un coeficient pozitiv
                                             In               a a
pe linia functiei U , ¸i g˘sim valoarea 1 pe coloana x3 , adic˘ U ˆ a mai cre¸te cu x3 .
              ¸       s a               2
                                                              a    ınc˘        s
Repet˘m procedeul, c˘ut˘m un coeficient negativ pe coloana x3 , g˘sim valoarea − 1
       a                 a a                                            a              2
            s              a                s                             ¸
pe linia x4 ¸i interschimb˘m variabilele x3 ¸i x4 ca la pasul anterior. Obtinem ultimele
patru coloane din tabelul 7.1. Pe linia functiei U citim U = 4 − x1 − x4 . Calculul s-a
                                              ¸
ıncheiat, deoarece coeficientii variabilelor din expresia functiei U sunt toti negativi.
ˆ                             ¸                                ¸             ¸
     ¸                             ¸             a
Solutia o citim pe coloana functiei scop, adic˘ U = 4, x2 = 9, x3 = 5, iar pentru
                       ¸
celelalte variabile obtinem x1 = x4 = 0.
    ¸      ın                   a         a             a
    Stim ˆ acest moment s˘ rezolv˘m o problem˘ de programare liniar˘ ˆ          a ın
                       a a                                    a
forma standard restrˆns˘. Forma standard se caracterizeaz˘ prin faptul c˘ celea
m restrictii (m < n) sunt egalit˘¸i. ˆ plus, matricea A ce se formeaz˘ cu
           ¸                          at In                                    a
coeficientii aij , i ∈ 1, m, j ∈ 1, n, trebuie s˘ fie nedegenerat˘, adic˘ rang(A) =
          ¸                                     a              a      a
m. ˆ plus, dac˘ dispunem de un set de n−m variabile de baz˘, spunem c˘ avem
    In             a                                            a           a
            a ın                        a a        a                 ın
o problem˘ ˆ forma standard restrˆns˘. Dup˘ cum vom vedea ˆ continuare,
orice problem˘ de programare liniar˘ de forma (7.83) se poate transforma ˆ
                 a                      a                                     ıntr-o
      a                a a
form˘ standard restrˆns˘.
             ¸             at               a ın      ¸       at
    Restrictiile inegalit˘¸i se transform˘ ˆ restrictii egalit˘¸i cu ajutorul vari-
abilelor auxiliare. ˆ cazul ˆ care nu putem izola variabilele de baz˘ ca ˆ
                      In        ın                                         a      ın
exemplele precedente, adic˘ nu putem izola n − m variabile care s˘ apar˘ ˆ
                              a                                      a     a ıntr-o
        a      ¸         ¸                              a
singur˘ relatie-restrictie cu coeficient pozitiv, apel˘m la variabile fictive (sau
                                                          ın
artificiale). Spre exemplu, restrictiile (7.84) se rescriu ˆ forma
                                     ¸

            xj    ≥   0, j ∈ 1, n ,
                               n
             zi   =   bi −           aij xj + yi , i ∈ 1, m1 , bi ≥ 0 ,
                               j=1
                               n
            zk    =   bk −            akj xj − yk , k ∈ m1 + 1, m2 , bk ≥ 0 ,       (7.91)
                               k=1
                               n
             zl   =   bl −           alj xj , l ∈ m2 + 1, m, bl ≥ 0 ,
                               l=1

unde am introdus variabilele auxiliare yi ≥ 0, i ∈ 1, m2 ¸i variabilele artificiale
                                                          s
zi ≥ 0, i ∈ 1, n. Un set de variabile de baz˘ se obtine prin determinarea valorii
                                            a      ¸
                     ¸
maxime pentru functia scop auxiliar˘  a
                                                 n
                                     U =−              zi ,                         (7.92)
                                                 i=1

care va corespunde cu zi = 0, utilizˆnd acela¸i mod de calcul. ˆ continuare
                                      a         s                    In
        a                                                           ¸
se aplic˘ algoritmul simplex pentru aflarea valorii maxime a functiei U date de
            a               ¸                     a
(7.83). Dac˘ nu se poate obtine valoarea maxim˘ pentru U cu zi = 0, ˆ          a
                                                                        ınseamn˘
 a          a                                   ¸
c˘ nu exist˘ nici un vector admisibil cu restrictiile date de (7.84).
                                      ¸
7.8. Probleme de optimizare cu restrictii                                               211




                Figura 7.7: Domeniul de calcul pentru problema (7.93).


             a     a     a             ¸
   Exemplu. S˘ se g˘seasc˘ minimul functiei
                                         2                 2
                        U (x1 , x2 ) = F1 (x1 , x2 ) + F2 (x1 , x2 ) ,
                                                                                       (7.93)
      F1 (x1 , x2 ) ≡ x1 + 3 lg |x1 | − x2 , F2 (x1 , x2 ) ≡ 2x2 + 1 − x1 x2 − 5x1 ,
                                         2                     1

situat ˆ dreptunghiul 0 ≤ x1 ≤ 4, 0 ≤ x2 ≤ 3.
       ın
    Rezolvare . ˆ      a            ın            a     ¸
                Intrucˆt domeniul ˆ care se caut˘ solutiile este destul de mare, se pune
                                 ¸                                ımp˘ ¸
problema alegerii unei valori initiale. O modalitate o constituie ˆ artirea domeniul ˆ   ın
                            a        ın
mai multe subdomenii (12 p˘trate ˆ exemplul nostru) prin paralele la axele de coordo-
                  s                 ¸      ın                                    ¸ a
nate (figura 7.7) ¸i evaluarea functiei U ˆ centrele Ci (i = 1, 2, . . . , 12), obtinˆndu-se
valorile din tabelul 7.2.


             Tabelul 7.2: Valori ale functiei U ˆ domeniul de calcul
                                         ¸      ın
        P unct    C1      C2          C3         C4       C5         C6
          U     0.9945 5.3624 5.9612 31.4492 7.9348 4.8236
        P unct    C7      C8          C9         C10      C11        C12
          U     9.0558 5.0507 24.6631 25.4427 17.0483 0.9060


                                                                            ın
    Pe baza tabelului, se poate stabili o ordine pentru punctele de start ˆ vederea
 a                                    s
g˘sirii minimelor: C12 , C1 , C6 , C8 ¸.a.m.d.
    ˆ tabelul 7.3 sunt prezentate comparativ rezultatele obtinute cu metodele gra-
    In                                                         ¸
                                    e                 s
dient, Fletcher-Reeves, Polak-Rib`re, Hestens-Stiefel ¸i Davidon-Fletcher-Powell. Pen-
tru punctul de start x0 = (3.5, 2.5) toate metodele converg la solutia x1 = 3.48744,
                                                                     ¸
x2 = 2.26163. S-a folosit testul de convergent˘ g k ∞ < 10−5 . Metodele DFP ¸i
                                               ¸a                                   s
                                                        a        a
cele de gradient conjugat converg rapid, dar remarc˘m num˘rul mare de evalu˘ri     a
212                                                        7. Metode de optimizare


           Tabelul 7.3: Rezultatele obtinute la rezolvarea sistemului (7.93)
                                      ¸
          Metoda                  ¸
                        Nr. iteratii                    ¸
                                        Nr. eval. functie Nr. eval. gradient
      Gradient simplu        17                478                     18
      Hestens-Stiefel         6                155                      7
      Fletcher-Reeves         8                225                      9
                 e
       Polak-Rib`re           6                155                      7
           DFP                6                168                      7




          Figura 7.8: Drumul parcurs de metodele DFP ¸i gradient simplu.
                                                     s


          ¸                   a
ale functiei U , acesta datorˆndu-se exclusiv preciziei impuse la calculul scalarului α,
            ¸                          a
convergenta acestor metode depinzˆnd de precizia cu care se calculeaz˘ α optim.  a
Folosind ca punct de start punctul (0.5, 0.5), metodele de optimizare determin˘ mi-    a
nimul local al functiei U dat de x = (0.47980, −0.32323). Folosind aceea¸i conditie
                     ¸                                                             s      ¸
  gk ∞ <10−5 , metoda gradientului are nevoie pentru determinarea minimului de 7
     ¸                                            s             e
iteratii, Hestens-Stiefel 8, Fletcher-Reeves 9 ¸i Polak-Ribi`re 10 iteratii. ¸
    ˆ figura (7.8) este reprezentat drumul parcurs de metodele DFP ¸i gradient simplu
    In                                                                      s
pentru punctul de start x0 = (3.5, 2.5). curbele de nivel U = Ki sunt trasate pentru
valorile Ki ∈ {0.906, 0.7, 0.5, 0.3, 0.128, 0.1, 0.05, 0.026, 0.01, 0.0052, 0.00076}. Primul
                                                          a          ¸
pas este identic pentru ambele metode. Se observ˘ ineficienta metodei gradientului
               a ın               a          ¸     ¸a
care avanseaz˘ ˆ zig-zag. Cu cˆt distanta fat˘ de minim scade, metoda gradientului
        s                 a        ¸          a ın          a
devine ¸i mai ineficient˘. Explicatia const˘ ˆ faptul c˘ metoda gradientului se bazeaz˘      a
                  ¸           a                       ¸                         ın
doar pe informatia furnizat˘ de gradientul functiei scop, care este nul ˆ punctul de
         s             ın      a
minim ¸i foarte mic ˆ vecin˘tatea acestuia.
                                                                                       213




Capitolul 8

Rezolvarea sistemelor
neliniare




                                     ¸
    Vom considera n sisteme de n ecuatii cu n necunoscute, de forma

                            Fi (x1 , x2 , ..., xn ) = 0, i ∈ 1, n ,                   (8.1)

                  a      ¸
unde Fi reprezint˘ functii cunoscute de n variabile x1 , x2 , ..., xn , presupuse con-
       ımpreun˘ cu derivatele lor partiale pˆn˘ la un ordin convenabil (de obicei,
tinue, ˆ       a                      ¸     a a
  a a                                         ¸                 a
pˆn˘ la ordinul doi) pentru ca anumite relatii de calcul s˘ fie valabile. Se va
                                                     ıntr-un anumit domeniu de
urm˘ri g˘sirea solutiilor reale ale sistemului (8.1) ˆ
     a   a           ¸
                   ın                   a         s            at
interes, domeniu ˆ care se consider˘ valabile ¸i propriet˘¸ile de continuitate
            ¸          s
impuse functiilor Fi ¸i derivatelor lor.
    Sistemul (8.1) se scrie vectorial

                                        F (x) = 0 ,                                   (8.2)

unde x = (x1 , x2 , . . . , xn )T ¸i F = (F1 , F2 , . . . , Fn )T . Notatia mai apropiat˘ de
                                  s                                     ¸               a
scrierea initial˘ ar fi fost F (xT ), dar s-a renuntat la indicarea transpunerii, fapt
            ¸ a                                           ¸
neesential de altfel. Cu notatia (8.2), solutiile reale se caut˘ pe un domeniu
       ¸                             ¸                ¸                    a
D ⊂ Rn , iar F : D → Rn .
    Metodele de rezolvare pot fi sugerate de metodele utilizate la rezolvarea
     ¸     ıntr-o singur˘ variabil˘ (capitolul 3). Analogia dintre sistemul (8.2)
ecuatiilor ˆ                 a         a
s       ¸ ıntr-o singur˘ variabil˘ (3.1), de¸i formal˘, este util˘. Rezolvarea
¸i ecuatia ˆ                  a         a              s           a         a
                             ¸
unui sistem de n ecuatii neliniare cu n necunoscute este mult mai dificil˘ ˆ             a ın
214                                         8. Rezolvarea sistemelor neliniare


cazul general n ≥ 2 decˆt pentru n = 1, din mai dou˘ motive. ˆ primul
                              a                                     a            In
rˆnd, pentru n ≥ 2 nu mai este posibil˘ localizarea solutiei. Nu mai dispunem
 a                                           a                   ¸
              a         a
de o metod˘ analoag˘ metodei ˆ            a at
                                    ınjum˘t˘¸irii intervalelor pentru separarea unui
          ın           a s                 ¸       ın
interval ˆ care se g˘se¸te sigur o solutie, ca ˆ cazul unei singure variabile. De
fapt, multimea vectorilor x nu poate fi ordonat˘, ˆ
           ¸                                        a ıncepˆnd cu n ≥ 2. Localizarea
                                                              a
     ¸               a                as
solutiei reprezint˘ un avantaj covˆr¸itor al cazului unidimensional, pentru c˘ o        a
     ¸             a                   a a                  a        a          a
solutie localizat˘ nu mai poate fi sc˘pat˘. Din aceast˘ cauz˘, ori de cˆte ori este
                       a                                    ıncˆ
posibil, se recomand˘ retranscrierea sistemului astfel ˆ at rezolvarea acestuia s˘         a
se reduc˘ la rezolvarea unei probleme unidimensionale. ˆ cazul n−dimensional,
         a                                                      In
                s           a                    a    ¸
nu se poate ¸ti niciodat˘ cu certitudine c˘ solutia se afl˘ ˆ                        a
                                                                   a ıntr-o anumit˘ zon˘   a
pˆn˘ cˆnd solutia nu este calculat˘. ˆ al doilea rˆnd, un sistem de n ecuatii cu n
  a a a           ¸                   a In             a                            ¸
necunoscute poate avea una, niciuna sau mai multe solutii reale. ˆ cazul ˆ care
                                                                ¸          In       ın
                                 ¸             a a              ¸
sistemul are mai multe solutii, trebuie g˘sit˘ acea solutie care are semnificatie         ¸
     a ın                  a                  ¸            a
fizic˘ (ˆ general rezolv˘m numeric ecuatii pentru c˘ acestea fac parte dintr-un
                                         ın
model matematic care corespunde, ˆ limita unor ipoteze, unui fenomen fizic,
economic, etc.).
                                          ¸                       a
    Rezolvarea unor sisteme de ecuatii neliniare implic˘ utilizarea unui algo-
                                             ¸      ¸ a
ritm iterativ: pornind de la o aproximatie initial˘, algoritmul o va ˆ                a at
                                                                               ımbun˘t˘¸ii
                ¸            a a a
de la o iteratie la alta pˆn˘ cˆnd va fi ˆ                a             ¸
                                               ındeplinit˘ o conditie de convergent˘.   ¸a
             ¸                 ın
Convergenta algoritmului, ˆ special pentru problemele multi-dimensionale, poate
          ın            ¸         a     a                    ¸ a             a
depinde ˆ mod esential de cˆt bun˘ este valoarea initial˘. Aceast˘ valoare tre-
        ¸      a          a
buie obtinut˘, ori de cˆte ori este posibil, pe baza unui studiu analitic.


8.1           ¸        a
         Iteratia simpl˘
              ¸                 s                a s            a           a a
Metoda iteratiei simple este, a¸a cum sugereaz˘ ¸i numele, atˆt iterativ˘ cˆt
s        a       a     ıns˘
¸i simpl˘; din p˘cate ˆ a nu este ˆ general ¸i eficient˘. Prezenta ei ˆ acest
                                    ın         s        a          ¸     ın
                 a                     s             ¸
capitol reprezint˘ un punct de plecare ¸i de comparatie pentru celelalte metode.
                                                          a
    Sistemul (8.2) se mai poate scrie sub forma echivalent˘
                            Fi ≡ xi − fi (x) = 0, i ∈ 1, n ,                            (8.3)
                     ¸                        ¸        a            a      s
unde fi (x) sunt functii de n variabile. Iteratia simpl˘ este definit˘ prin ¸irul de
     ¸
iteratii
                      xk+1 = fi (xk ), i ∈ 1, n, k = 0, 1, 2, . . . ,
                       i                                                                (8.4)
unde indicele superior indic˘ iteratia. Startul se ia cu vectorul initial x0 din
                             a      ¸                                       ¸
             ın             a     ¸
domeniul D ˆ care se caut˘ solutia.
             a    a      a       ¸       a                                    ıncˆ
    Presupunˆnd c˘ exist˘ o solutie real˘ α = (α1 , α2 , . . . , αn ), astfel ˆ at α =
                                ¸
fi (α), vom putea calcula distantele la aceasta cu ajutorul diferentelor ¸
                                                      n
                                                                        ∂fi k
  xk+1 − αi = fi (xk ) − αi = fi (xk ) − fi (α) =
   i                                                       (xk − αj )
                                                             j              (ξ ), i ∈ 1, n .
                                                     j=1
                                                                        ∂xj

                                  ¸          a                s
Ultima egalitate de mai sus s-a obtinut aplicˆnd formula cre¸terilor finite pentru
o functie de n variabile. Derivatele partiale ∂fi /∂xj se evalueaz˘ ˆ punctul ξ k
      ¸                                 ¸                         a ın
          ¸        a
8.1. Iteratia simpl˘                                                                             215


apartinˆnd cubului n−dimensional (xk , α); ξ k depinde atˆt de iteratie cˆt ¸i de
    ¸ a                                                      a         ¸ a s
    ¸           a
functia fi . Notˆnd mai departe cu mi modulul maxim al derivatelor partiale ¸
mi = sup |∂fi (x)/∂xj | , x ∈ (xk , α), se obtin imediat inegalit˘¸ile
                                             ¸                   at
       j

                                             n
                       |xk+1
                         i     − αi | ≤ mi         |xk − αj |, i ∈ 1, n .
                                                     j                                           (8.5)
                                             j=1

Se observ˘ c˘ distanta dintre dou˘ componente |xk+1 − αi | are o margine care
            a a      ¸             a                i
depinde de distantele dintre toate componentele vectorilor xk ¸i α. Ajungem
                  ¸                                             s
        ın
astfel, ˆ mod firesc, la necesitatea de a introduce norme de vectori. Spre exem-
        a                             ¸
plu, luˆnd modulul maxim al diferentelor componentelor celor doi vectori x ¸i s
          ¸
α, se obtine
              xk+1 − α     ∞    ≤ n · m · xk − α           ∞,    unde m ≡ sup mi .               (8.6)
                                                                              i

                        a a         ¸           a           s             ¸
Din relatia (8.6) rezult˘ c˘ o conditie suficient˘ pentru ca ¸irul de iteratii (8.4)
        ¸
 a                 a        ¸
s˘ fie convergent c˘tre solutia α este
                n · m < 1, sau sup |∂fi /∂xj | < 1/n, i, j ∈ 1, n .                              (8.7)
                                      i,j

      ¸                          ¸           a              ¸a
Conditia (8.7) coincide cu conditia suficient˘ de convergent˘ (3.13) pentru n =
            a a         ¸             a           a      a      a
1. Se observ˘ c˘ restrictia este cu atˆt mai sever˘, cu cˆt num˘rul de variabile
independente este mai mare.
   O sumare a inegalit˘¸ilor (8.5) dup˘ indicele i conduce la norma
                       at               a                               1 (suma
modulelor componentelor vectorilor)
                                                 n
              xk+1 − α     1   ≤ xk − α      1         mi ≤ n · m · xk − α              1   .    (8.8)
                                                 i=1

         a a
Se observ˘ c˘ utilizarea normei                      s        ¸          a
                                   1 conduce la aceea¸i conditie suficient˘ de
         ¸a
convergent˘ (8.7).
           ¸           a             ¸a           ¸
   O conditie mai slab˘ de convergent˘ se poate obtine scriind succesiv
                                       n
                                            ∂fi (ξ k )
      |xk+1 − αi | ≤ xk − α
        i                         ∞                    , i ∈ 1, n, ξ k ∈ (xk , α) ,              (8.9)
                                      j=1
                                             ∂xj

sau pentru indicele imax care corespunde normei vectoriale maxime
                                                           n
                                                                  ∂fimax (ξ k )
                  xk+1 − α       ∞   ≤ xk − α          ∞                        .               (8.10)
                                                           j=1
                                                                     ∂xj

De¸i ξ k depinde ¸i de indicele i prin forma functiei fi (x), putem evalua suma
   s             s                                 ¸
din dreapta inegalit˘¸ilor (8.9) ¸i (8.10) ˆ functie de norma maxim˘ a matricei
                    at           s         ın    ¸                   a
                                   ¸
jacobiene J a sistemului de functii f
                  n                          n
                        ∂fi (ξ k )           ∂fi (ξ k )       k
                                   ≤ sup                ≤ J(¯ )
                                                            ξ                 ∞     ,           (8.11)
                j=1
                         ∂xj          i
                                         j=1
                                              ∂xj
216                                             8. Rezolvarea sistemelor neliniare

¯k fiind un punct independent de indicele i. Prin urmare, se obtine conditia
ξ                                                             ¸         ¸
        a             ¸a
suficient˘ de convergent˘
                                    k               k
                                J(¯ )
                                  ξ     ∞    < 1, ¯ ∈ (xk , α) .
                                                  ξ                                      (8.12)

Conditia (8.12) este ˆ general mai slab˘ decˆt (8.7).
      ¸              ın                a     a
                        a       ¸ ın                      a           ¸     ¸
   O formulare general˘ a conditiei ˆ care se realizeaz˘ convergenta iteratiei
             ıntr-un spatiu Banach) ca sistemul de functii f s˘ fie contractant,
simple este (ˆ          ¸                                 ¸     a
adic˘ pentru orice pereche de puncte x1 , x2 s˘ se realizeaze inegalitatea
    a                                         a

                 f (x2 ) − f (x1 ) ≤ q x2 − x1 , unde q ∈ [0, 1) ,                       (8.13)

       ¸                   ¸a              ın        ın           a    ¸
Conditiile de convergent˘ se pot testa ˆ domeniul ˆ care se afl˘ solutia. Aceste
    a                 ıns˘                           a         a
test˘ri pot implica ˆ a un volum mare de calcul, cˆnd num˘rul de variabile este
             s     ¸                   a
mare sau/¸i solutia este localizat˘ slab.
                                               s            ın
    Din existenta a dou˘ conditii (8.7) ¸i (8.12) care, ˆ general, nu coincid,
                 ¸          a        ¸
         ınt                  ın                     ¸
putem ˆ ¸elege mai bine ˆ ce sens aceste conditii sunt doar suficiente. Ele
               a                 ın          a                      ¸
nu sunt neap˘rat necesare, ˆ sensul c˘ ar putea exista o conditie mai putin  ¸
           a       a                  s          ¸     a a a ıncepˆnd, dac˘ nu
restrictiv˘ care s˘ asigure descre¸terea distantei la r˘d˘cin˘, ˆ    a     a
                       ¸           ¸
chiar cu prima iteratie, cel putin cu un anumit k > 1.
    Dac˘ suntem suficient de aproape de solutie, conditia (8.12) poate fi scris˘
         a                                       ¸        ¸                    a
                    a       a                                           ¸a
folosind orice alt˘ norm˘ a matricei jacobiene. Viteza de convergent˘ este cu
  a                   a                      a
atˆt mai mare cu cˆt norma (subunitar˘) este mai mic˘.    a
    ˆ cazul cˆnd (8.13) este satisf˘cut˘, distanta la r˘d˘cin˘ poate fi evaluat˘
    In         a                         a a       ¸     a a a                 a
        ¸
cu relatia

                                 qk
             xk+1 − α ≤             x1 − x0 , q ∈ [0, 1] , k = 1, 2, . . . .             (8.14)
                                1−q

8.2                    a
        Metoda iterativ˘ Newton
    s ın
Ca ¸i ˆ cazul unei singure variabile (de fapt, chiar ˆ          a a
                                                        ıntr-o m˘sur˘ mai mare),
      ¸                          ¸a           ¸
conditiile suficiente de convergent˘ ale iteratiei simple sunt destul de restrictive
                              a ın
pentru a o face impracticabil˘ ˆ majoritatea cazurilor. De aceea, vom c˘uta   a
alte metode iterative cu domeniu mai larg ¸i vitez˘ mai mare de convergent˘. ˆ
                                            s       a                        ¸a In
                                                           ¸
acest scop, vom aplica formula lui Taylor pentru o functie de n variabile Fi (x)
sub forma
                         n                             n
                                           ∂Fi   1                            ∂ 2 Fi (ξ k )
  Fi (x) = Fi (xk ) +         (xj − xk )
                                     j         +         (xj − xk )(xp − xk )
                                                                j         p                 .
                        j=1
                                           ∂xj   2 j,p=1                       ∂xj ∂xp

Dac˘ ˆ expresiile de mai sus neglij˘m ultimul termen ¸i facem x = xk+1 , atunci
   a ın                             a                    s
conditia de deplasare spre solutie, Fi (xk+1 ) = 0, ne conduce la sistemul
     ¸                         ¸
                   n
                                        ∂Fi (xk )
                        (xk+1 − xk )
                          j      j                = −Fi (xk ), i ∈ 1, n ,                (8.15)
                 j=1
                                          ∂xj
                    a
8.2. Metoda iterativ˘ Newton                                                                  217


              a                 a                       a            ın        ¸
care reprezint˘ metoda iterativ˘ Newton, ce ne furnizeaz˘ vectorul x ˆ aproximatia
       ın    ¸                            ¸
k + 1 ˆ functie de datele din aproximatia anterioar˘.a
                                             s                    ¸
    Matricea sistemului (8.15) se construie¸te cu derivatele partiale de ordinul
ˆ ai ale functiilor Fi (x), i ∈ 1, n, formˆnd matricea jacobian˘ a sistemului de
ıntˆ          ¸                           a                     a
     ¸                   a                                                   ¸
functii F care se noteaz˘ cu J(x), F (x) sau Fx (x). Vom adopta prima notatie.
    Matriceal, sistemul de ecuatii (8.15) se scrie
                                 ¸

                                  J(xk )(xk+1 − xk ) = −F (xk ) .                            (8.16)

                 ¸                                                              a
Sistemul de ecuatii liniare (8.15) sau (8.16) se poate rezolva cu metoda elimin˘rii
                                              a             a                 a
gaussiene (capitolul 5). Matricea jacobian˘ se calculeaz˘ analitic sau, dac˘ nu
                             a           ¸
este posibil, numeric, utilizˆnd diferente finite.
                                ¸                    a
    Pentru a studia convergenta metodei, consider˘m x = α (α fiind o solutie). ¸
   ¸
Obtinem
                                           n
                                                             ∂Fi
                       0 = Fi (xk ) +           (αj − xk )
                                                       j         + Vi , i ∈ 1, n ,           (8.17)
                                          j=1
                                                             ∂xj

unde s-a notat cu Vi cantitatea
                              n
                          1                  ∂ 2 Fi (ξ k )
                   Vi =           (αj − xk )
                                         j                 (αp − xk ), i ∈ 1, n .
                                                                  p                          (8.18)
                          2 j,p=1             ∂xj ∂xp

               ¸
Vectorial, relatia (8.17) se poate scrie

                               J(xk )(α − xk ) = −F (xk ) − V .                              (8.19)

     a a         at           s               ¸
   Sc˘zˆnd egalit˘¸ile (8.16) ¸i (8.19), se obtine

              J(xk ) · (xk+1 − α) = V, sau xk+1 − α = J −1 (xk ) · V .                       (8.20)

                           a               ¸                       ¸       a a a
Din (8.20), folosind o norm˘ oarecare se obtine o evaluare a distantei la r˘d˘cin˘
ın           ¸
ˆ aproximatia k + 1

                                  xk+1 − α ≤ J −1 (xk ) · V                    .             (8.21)

Dac˘ se ia norma maxim˘, din (8.18) rezult˘
   a                  a                   a
                                    n
    V   ∞   = sup |Vi | ≤ M               |xk − αj | · |xk − αp | ≤ n2 M xk − α
                                            j            p
                                                                                     2
                                                                                     ∞   ,   (8.22)
               i
                                  j,p=1



                                                   1        ∂ 2 Fi
                                  unde M =           sup               .                     (8.23)
                                                   2 i,j,p ∂xj ∂xp

     ¸
Se obtine deci

    xk+1 − α       ∞   ≤ C xk − α         2
                                          ∞,    unde C = M · n2 · sup J −1 (xk )     ∞   .   (8.24)
                                                                           k
218                                                  8. Rezolvarea sistemelor neliniare


Plecˆnd de la o aproximatie initial˘ x0 , se obtin succesiv
    a                   ¸      ¸ a             ¸
                                                                                    21
             x1 − α       ∞     ≤ C · x0 − α     2
                                                 ∞   = C −1 (C · x0 − α          ∞)
                                                                                   22
             x2 − α       ∞     ≤ C · x1 − α     2
                                                 ∞   = C −1 (C · x0 − α          ∞)
                                                                                                         (8.25)
                                             ...
                                                                         k
                          xk − α    ∞   ≤ C −1 (C · x0 − α         ∞)
                                                                     2
                                                                             .
                                a            a a
Prin urmare, metoda converge dac˘ este satisf˘cut˘ inegalitatea

                                        C · x0 − α       ∞   <1.                                         (8.26)

      a             a                          ¸
   Dac˘ se utilizeaz˘ norma 1, cu ajutorul relatiei (8.18) se obtine
                                                                ¸
                          n                            n
         V   1   =     |Vi | ≤ xk − α 2 i=1 Mi ≤ nM xk − α
                          i=1            1
                                                                                         2
                                                                                         1   ,
                             1      ∂ 2 Fi                                                               (8.27)
                 unde Mi = 2 sup           , iar M = sup Mi .
                               i,j ∂xj ∂xp            i

Introducˆnd apoi norma 1 ˆ relatia (8.21) ¸i folosind inegalitatea (8.27), rezult˘
        a                ın    ¸          s                                      a

      xk+1 − α       1   ≤ C1 xk − α 2 , unde C1 = M · n · sup J −1 (xk )
                                     1                                                           1   .   (8.28)
                                                                         k

Parcurcˆnd acelea¸i etape ca ˆ relatiile (8.21), rezult˘ c˘, dac˘ este ˆ
        a        s           ın    ¸                   a a      a                a
                                                                       ındeplinit˘
inegalitatea

                                         C1 x0 − α       1   <1,                                         (8.29)

                       ¸a a       a    s ın        a         a
metoda are o convergent˘ p˘tratic˘, ca ¸i ˆ cazul cˆnd utiliz˘m norma maxim˘. a
Conditia (8.29) poate fi mai avantajoas˘ decˆt (8.26), deoarece scalarul C1 este
     ¸                                 a     a
proportional cu n, ˆ comparatie cu scalarul C, care este proportional cu n2 . ˆ
      ¸            ın        ¸                                   ¸            In
                               ın              a               a         a a
schimb, norma 1 este mai mare, ˆ general, decˆt norma maxim˘ fiind satisf˘cut˘
ıns˘
ˆ a inegalitatea

                         n · x0 − α     ∞   ≥ x0 − α 1 , pentru n ≥ 1 .                                  (8.30)

                ¸
    Convergenta are loc ˆ                 a            a a            ¸
                          ıntotdeauna dac˘ este satisf˘cut˘ o conditie de forma
(8.26) sau (8.29), independent de norma utilizat˘. ˆ toate cazurile, pentru
                                                   a In
                  ¸                ¸a                      a
verificarea conditiilor de convergent˘, sunt necesare evalu˘ri ale inversei matricei
           s                     ¸                                     ¸
jacobiene ¸i ale derivatelor partiale de ordinul al doilea ale functiilor Fi (x),
distanta x0 − α fiind ˆ a necunoscut˘.
      ¸                ıns˘            a
             ¸               ¸a              a
    O conditie de convergent˘ care utilizeaz˘ rezultatele calculului ˆıntr-o prim˘a
aproximatie a fost dat˘ de Kantorivici. ˆ acest scop se evalueaz˘ derivatele de
         ¸              a                In                         a
ordinul 2 ˆ          a ınchis˘ U0 de centru x0 ¸i de raz˘ 2 x1 − x0 . Conditia
          ıntr-o sfer˘ ˆ     a                  s        a                      ¸
               ¸a
de convergent˘ este

                            h0 ≡ 2K J −1 (x0 )       ∞     x1 − x0   ∞   ≤1,                             (8.31)

                                                              ∂ 2 fi (x)
                                unde K = sup           sup               .                               (8.32)
                                             i
                                                 j,p x∈U0
                                                              ∂xj ∂xp
8.3. Metode cvasi-Newton                                                                       219


Notˆnd cu α ∈ U0 r˘d˘cina, eroarea este evaluat˘ prin relatia
   a              a a                          a          ¸
                                                          k
                                                              −1
                       xk − α    ∞   ≤ (1/2)k−1 (h2
                                                  0                ) x1 − x0   ∞   .         (8.33)
          a ın                    a    a                                a s
    Rezult˘ ˆ toate cazurile c˘, dac˘ jacobiana J(x) este nesingular˘ ¸i deri-
                            a                             a a        a
vatele de ordinul 2 sunt m˘rginite problema care mai r˘mˆne este g˘sirea unui
punct de plecare x0 “suficient de aproape” de solutie. Desigur, se poate proceda
                                                   ¸
   ımp˘ ¸                      ın                       ın      a a a
la ˆ artirea domeniului D ˆ subdomenii mai mici, ˆ care s˘ c˘ut˘m solutia    ¸
              a                                                   ¸
succesiv plecˆnd, spre exemplu, din centrul subdomeniului. Reinitializarea s-ar
face dac˘ dup˘ un num˘r fixat de iteratii ¸irul xk nu se stabilizeaz˘, sau iese
        a       a         a               ¸ s                         a
ın
ˆ afara subdomeniului considerat. Acest mod de lucru se poate dovedi ˆ a    ıns˘
           ın                  a
nepractic ˆ cazul unui num˘r mare de variabile. Spre exemplu, dac˘ fiecarea
     a                                        ın     a¸       a
latur˘ a unui cub n−dimensional se divide ˆ N p˘rti, num˘rul de subdomenii
care rezult˘ este N n , ceea ce duce la numere foarte mari pentru N , n ≥ 5. De
            a
                                    ¸            a                    ın      ¸
aceea, pentru apropierea de solutie se utilizeaz˘ metode care converg ˆ conditii
mai largi. Acestea sunt metodele de descre¸tere prezentate ˆ capitolul 7.
                                             s               ın


8.3       Metode cvasi-Newton
      a      a
Am v˘zut c˘ metoda Newton cere evaluarea matricei jacobiene J(x), adic˘        a
evaluarea a n2 functii la fiecare iteratie. Dac˘ nu este posibil˘ obtinerea pe
                     ¸                   ¸        a               a ¸
             a                              ¸            a ın        ¸
cale analitic˘ a expresiilor derivatelor partiale ce intr˘ ˆ componenta matricei
                                                  a                a          ¸
jacobiene, valoarea acestora poate fi aproximat˘ folosind o formul˘ cu diferente
finite de forma
 (∂Fi )/(∂xj ) ≈ [Fi (x1 , x2 , . . . , xj + h, . . . , xn ) − Fi (x1 , x2 , . . . , xn )]/h , (8.34)
                    ıns˘      a          ¸       a            ¸
fapt care nu reduce ˆ a num˘rul de operatii. Num˘rul de operatii poate fi redus
    a            a                            a                   ıncˆ ın
dac˘ se utilizeaz˘ o matrice B care aproximeaz˘ jacobiana, astfel ˆ at ˆ locul
sistemului (8.16) se va scrie
                                        Bk sk = −F k ,                                       (8.35)

unde sk ≡ xk+1 − xk ¸i F k = F (xk ). Aproximatia Bk a jacobienei trebuie actu-
                    s                          ¸
alizat˘ ˆ etapa urm˘toare, lucru se face scriind c˘ Bk+1 aproximeaz˘ J(xk+1 ),
       a ın        a                              a                 a
adic˘a
               F k ∼ F k+1 + J(xk+1 )(xk − xk+1 ) ∼ F k+1 − Bk+1 sk .
                   =                              =                                          (8.36)
      a     ¸
Rezult˘ relatia cvasi-Newton
                         Bk+1 sk = y k , unde y k ≡ F k+1 − F k .                            (8.37)
                                       a
   Relatia (8.35) nu este suficient˘ pentru determinarea elementelor matricei
        ¸
                          a           ¸                   s       a        a
Bk+1 . Ea se completeaz˘ cu conditia ca matricele Bk+1 ¸i Bk s˘ difere cˆt mai
  ¸                ¸                a                 a        ¸
putin de la o iteratie la alta, adic˘ Bk+1 se determin˘ ca solutie a problemei de
optimizare
                        Bk+1 = min{ B − Bk            2   | B · sk = y k } .                 (8.38)
220                                              8. Rezolvarea sistemelor neliniare


                                                                  a
   Vom rezolva problema de optimizare (8.38) indirect, impunˆnd ca Bk ¸i      s
Bk+1 s˘ nu difere pe directiile perpendiculare pe sk , adic˘ pentru orice vector
       a                    ¸                              a
z pentru care z T · sk = 0, s˘ avem
                             a

                                        Bk z = Bk+1 z .                                 (8.39)

Din (8.39) ¸i (8.37) se deduce c˘ (Bk+1 − Bk ) se poate alege de forma
           s                    a

                                    Bk+1 − Bk = c · (sk )T                              (8.40)

                                   ¸            s               a
c fiind un vector arbitrar. Din relatiile (8.35) ¸i (8.37) rezult˘ succesiv

      (Bk+1 − Bk )sk = F k+1 ⇒ c(sk )T sk = F k+1 ⇒ c = F k+1 /(sk )T sk                (8.41)

         a                 a
   Rezult˘ formula iterativ˘ Broyden

                                  F k+1 (sk )T        (y k − Bk sk )(sk )T
                  Bk+1 = Bk +                  = Bk +                      .            (8.42)
                                   (sk )T sk                (sk )T sk

          a          a
    Vom ar˘ta acum c˘, matricele Bk+1 furnizate de (8.42) sunt cele mai apro-
piate ˆ norm˘ euclidian˘ sau Frobenius de matricele Bk . ˆ
      ın     a         a                                          a
                                                         Intr-adev˘r, se poate
scrie
  Bk+1 − Bk        2   = (y k − Bk sk )(sk )T 2 /(sk )T sk = (B − Bk )sk (sk )T           k T k
                                                                                     2 /(s ) s
                       ≤ B − Bk 2 sk (sk )T 2 /(sk )T sk = B − Bk 2 .

Am ¸inut seama c˘ norma euclidian˘, a matricei sk (sk )T este egal˘ cu produsul
     t             a             a                                a
scalar (sk )T · sk
                           n     n               n        n
         s · sT    2
                   2   ≡   i=1
                                      2 2
                                 j=1 si sj   =        2
                                                 i=1 si
                                                               2
                                                          j=1 sj   = [(s)T · s]2 .      (8.43)

    ˆ acest fel, plecˆnd de la o aproximatie initial˘ B0 a jacobienei (care ar putea
    In               a                   ¸      ¸ a
fi chiar jacobiana ˆ x0 , B0 = J(x0 )), matricele B se construiesc cu numai n
                    ın
      a           ¸       ¸                    a ıl           a a
evalu˘ri de functii. Pretul acestei simplific˘ri ˆ repezint˘ sc˘derea vitezei de
          ¸a         a      a              a
convergent˘ de la p˘tratic˘ la superliniar˘.
    Rezolvarea sistemului de ecuatii (8.35), care necesit˘ circa n3 /3 operatii,
                                     ¸                       a                   ¸
               a                                      a −1
poate fi evitat˘ construind iterativ matricea invers˘ Bk . Un avantaj al formei
             a
(8.40) este c˘ se matricea Bk+1 se poate inversa direct. Mai general, oricare ar
               s                     a
fi matricea A ¸i vectorii u, v, exist˘ egalitatea

                                                      A−1 u v T A−1
                           (A + u · v)−1 = A−1 −                      .                 (8.44)
                                                    1 + v T · (A−1 u)

                                  ınmultind cu matricea (A + u · v T ). F˘cˆnd
Relatia (8.44) se verific˘ direct, ˆ
    ¸                   a               ¸                                a a
                     k
                                        ¸
A = Bk , u = c, v = s , din (8.44) se obtine

                                  (sk − Hk y k )(sk )T Hk              −1
                  Hk+1 = Hk +                             , unde Hk = Bk ,              (8.45)
                                      (sk )T (Hk y k )
8.4. Metoda gradientului                                                             221


cu conditia (sk )T · (Hk y k ) = 0. ˆ acest fel, rezult˘
        ¸                           In                 a
                                 xk+1 = xk − Hk F k .                               (8.46)
Aplicarea formulei (8.46) cere evaluarea a n functii (F k+1 ) ¸i O(n2 ) operatii
                                                      ¸          s               ¸
pentru determinarea pozitiei xk+1 . Prin urmare, num˘rul de operatii scade ˆ
                            ¸                             a             ¸         ın
                                              s           ¸         a
comparatie cu (8.37) dar metoda se dovede¸te mai putin stabil˘ din punct de
          ¸
vedere numeric.
    Evitarea rezolv˘rii sistemului de ecuatii liniare (8.35) se poate face folosind
                    a                       ¸
                                                      a s
o factorizare Bk = Qk Rk unde Qk este ortogonal˘ ¸i Rk este superior triun-
ghiular˘. Rezolvarea sistemului (8.35) se va face ˆ O(n2 ) operatii, iar matricea
        a                                          ın              ¸
Bk+1 se poate obtine tot ˆ O(n2 ).
                  ¸         ın
    ˆ concluzie, metodele cvasi-Newton reduc num˘rul de operatii pentru o
    In                                                  a             ¸
     ¸         ¸         a                          ¸
iteratie cu pretul realiz˘rii doar a unei convergente locale.


8.4      Metoda gradientului
Aplicarea metodei gradientului prezentat˘ ˆ capitolul 7 la rezolvarea sistemelor
                                          a ın
       ¸                      a           ¸ a
de ecuatii neliniare se bazeaz˘ pe observatia c˘ rezolvarea sistemului (8.1) poate
           a               a                             ¸       a
fi formulat˘ ca o problem˘ de minimizare pentru o functie ajut˘toare U (x), care
          a
va fi scris˘ sub forma
                                               n
                               U (x) =   1
                                         2           Fj2 (x) .                      (8.47)
                                               j=1

ˆ acest fel, vom avea avantajul convergentei globale a metodei gradientului,
In                                           ¸
ın                                                         ¸a     a
ˆ raport cu metodele de tip Newton care au convergent˘ local˘. Rezolvarea
                  ¸                             a     a
sistemului de ecuatii Fj (x) = 0 este echivalent˘ cu g˘sirea unui minim U = 0.
                          ¸       a                      ¸
Vectorul gradient al functiei ajut˘toare este dat de relatia
                              U (x) ≡ g(x) = J T (x)J(x) .                          (8.48)
                                                 ¸      s             ¸ s
    Tinˆnd seama de forma special˘ (8.47) a functiei U ¸i de convergenta ¸irului
    ¸ a                            a
U (xk ) la zero, putem da unele expresii simplificate pentru parametrul αk . Fo-
losind spre exemplu o aproximatie liniar˘ pentru U (xk − αk g k ) vom scrie,
                                  ¸         a
        a ın         ın
dezvoltˆnd ˆ serie ˆ jurul valorii αk = 0
                                                                   n
                 αk = U (xk )/(g k )T · g k , (g k )T g k =                k
                                                                         (gj )2 .   (8.49)
                                                                   j=1

      a          ¸                 ın        ¸
Rezult˘ noua pozitie a punctului x ˆ aproximatia k + 1
                                                           n
                       xk+1 = xk − g k · U (xk )/                  k
                                                                 (gj )2 ,           (8.50)
                                                           j=1

cu conditia ca functia scop s˘ descreasc˘, adic˘ U (xk+1 ) < U (xk ).
         ¸         ¸         a          a      a
    Putem ˆ a folosi o aproximatie liniar˘ pentru functiile Fj (xk − αk g k ), j ∈
            ıns˘                 ¸        a             ¸
1, n, de forma
                                                     n
              Fj (xk − αk g k ) ∼ Fj (xk ) − αk
                                =                                            k
                                                         (∂Fj (xk )/∂xp ) · gp .    (8.51)
                                                   p=1
222                                                 8. Rezolvarea sistemelor neliniare


Functia f (αk ) ≡ U (xk − αk g k ) ¸i derivata f (αk ) le putem aproxima cu relatiile
    ¸                              s                                            ¸
                         n                                          n
                   1                                  2                ∂Fj (xk ) k
         f (αk ) ∼
                 =                           k
                              Fj (xk ) − αk vj               k
                                                          , vj ≡                gp ,      (8.52)
                   2    j=1                                        p=1
                                                                         ∂xp

                                               n
                           f (αk ) ∼ −
                                   =                               k
                                                    Fj (xk ) − αk vj vj ,
                                                                      k
                                                                                          (8.53)
                                              j=1

unde am notat cu vj , j ∈ 1, n componentele vectorului v k = J(xk ) · g k obtinut
                     k
                                                                            ¸
     ınmultirea matricei jacobiene J cu vectorul gradient g. Folosind relatia
prin ˆ     ¸                                                                   ¸
                ¸                     a                      a
(8.53), din ecuatia f (αk ) = 0 rezult˘ o valoare aproximativ˘ pentru αk optim
               n                       n
        αk ∼
         ∗
           =                     k
                     Fj (xk ) · vj /           k
                                             (vj )2 = (v k )T · F (xk )/(v k )T · v k ,   (8.54)
               j=1                     j=1

                                                                          ∗
noua pozitie a punctului de minim aproximativ fiind xk+1 = xk − αk g k .
          ¸
                                     s                                       ¸
    Expresiile aproximative (8.49) ¸i (8.54) sunt utile deoarece convergenta me-
                                                                                  ∗
                                   ¸      a                          a
todei gradientului nu este conditionat˘ de determinarea precis˘ a valorii αk ;
                ¸                        ¸       a        a     a
singura conditie este ca valoarea functiei U s˘ scad˘, adic˘ Uk+1 < Uk . De-
terminarea unei valori mai exacte pentru αk optim se poate face cu una din
                                              a a
metodele prezentate la 7.1. Deoarece, pe m˘sur˘ ce ne apropiem de minim, com-
                                s      a ın
ponentele gradientului se mic¸oreaz˘ (ˆ punctul de minim avem, prin definitie     ¸
                                                      ¸                  a
g = 0), erorile introduse prin calcul fac ca directia spre minim s˘ fie din ce
ın             ¸                     a            a                a
ˆ ce mai putin precis determinat˘. Pe de alt˘ parte, deplas˘rile spre minim
devin din ce ˆ ce mai mici. ˆ consecint˘, metoda gradientului converge rapid
               ın              In          ¸a
ın            s               ın                           a
ˆ primii pa¸i, apoi din ce ˆ ce mai lent. Pe de alt˘ parte, metoda Newton
                          a                          ¸a      a           a a
are o comportare invers˘, viteza ei de convergent˘ crescˆnd pe m˘sur˘ ce ne
                   ¸                   ¸          a
apropiem de solutie. Aceste observatii sugereaz˘ o combinare a celor dou˘ me-  a
tode ˆ felul urm˘tor: plecˆnd dintr-un punct x0 , se aplic˘ metoda gradientului
      ın          a         a                                a
cˆteva iteratii k0 (k0 ≤ n), atˆta timp cˆt converge rapid, verificˆndu-se ¸i dac˘
 a           ¸                 a          a                          a       s     a
functia U → 0. Se aplic˘ apoi metoda Newton, plecˆnd din punctul xk0 , pentru
    ¸                    a                              a
     s                        ¸a s                            a        ¸
a cre¸te viteza de convergent˘ ¸i a realiza o precizie ridicat˘ a solutiei. Procesul
          a a                             s
este asem˘n˘tor etapelor de localizare ¸i rafinare de la rezolvarea unei singure
     ¸
ecuatii neliniare f (x) = 0 (3).

              Algoritmul metodei hibride.
          Date: x0 , U (x), J(x), δ0 , λ0 , ε, maxiter
          x ← x0 ; δ ← δ0 ; F k ← F (x0 ); Uk ← U (x0 )
          k = 1 : maxiter
               Calculul directiei de descre¸tere pk
            
                              ¸               s
             x ← x + p; F k+1 ← F (x); Jk ← J(x)                                         (8.55)
            
             [Actualizare δ] - ca la MRI (7.35).
            
                   a              s
             dac˘ Uk+1 > Uk e¸ec stop.
            
             dac˘ |Uk+1 − Uk | < ε|Uk+1 |minim calculat stop.
             ka
             F ← F k+1
                  a
8.5. Metoda hibrid˘                                                                             223




              Figura 8.1: Directia de descre¸tere pentru metoda hibrid˘.
                               ¸            s                         a

            
             Jk ← J(x)
            
             rezolv˘ sistemul Jk pN = −F k
                    a
            
             dac˘ pN ≤ δ
             a
            
                  atunci p ← pN
              altfel
             
             
             
                                      T           T
                       pG ← {−αJk F k |U (x − αJk F k ) = minim}
             
                     n G ← pG
             
                     dac˘ nG ≤ δ
                           a
                           atunci p ← {pG + γ(pN − pG ) | p = δ}
                             altfel p ← (δ/nG )pg

8.5                    a
          Metoda hibrid˘
       a        a
Aceast˘ metod˘ face parte din clasa metodelor regiunii de ˆ              ın
                                                              ıncredere ˆ model
prezentate la 33. ˆ principiu, metoda hibrid˘ urm˘re¸te combinarea avantaju-
                   In                         a     a s
                  ¸a     a a       a                                   ¸
lui de convergent˘ local˘ p˘tratic˘ a metodei Newton cu convergenta global˘   a
a metodei gradientului. Pentru functia scop U de forma (7.72) se folose¸te
                                       ¸                                    s
               a        a a       a    a
ca aproximant˘ o form˘ p˘tratic˘ dat˘ de (7.13). Pentru matricea hessian se
                      ¸       a                 a                 a
poate folosi aproximatia dat˘ de (7.77). Dac˘ evaluarea exact˘ a derivatelor
    ¸                  a                  a            a
partiale este imposibil˘ sau foarte dificil˘, putem fie s˘ folosim o matrice care
            a             ın                      a         a
aproximeaz˘ hessiana ca ˆ metoda Broyden, fie s˘ le evalu˘m numeric folosind
       ¸
diferente finite de forma

   ∂Fi /∂xj ∼ [F (x1 , . . . , xj + h, . . . , xn ) − F (x1 , . . . , xj , . . . , xn )]/h .
            =                                                                                  (8.56)

                                       a a
Algoritmul metodei hibride este asem˘n˘tor cu cel al metodei regiuni de ˆıncredere,
                                ¸             s           ıntˆ   ıncearc˘ avansul
cu o deosebire la calculul directiei de descre¸tere. Mai ˆ ai se ˆ      a
dup˘ directia Newton dat˘ de (7.31). Dac˘ pasul Newton pk iese din afara
    a      ¸                a                  a                 N
            ıncredere (fig.8.1), adic˘ pk 2 > δk , atunci se calculeaz˘ pasul op-
regiunii de ˆ                        a N                              a
                                                 ∗
timal pe directia gradientului negativ pk = −αk g k , iar dac˘ pk 2 < δk , atunci
              ¸                          G                    a G
224                                        8. Rezolvarea sistemelor neliniare




                 Figura 8.2: Curbele de nivel ale functiilor F1 ¸i F2 .
                                                      ¸         s


       a      a                       a ıntre cele dou˘ directii, folosind o medie
se caut˘ caut˘ o deplasare convenabil˘ ˆ              a      ¸
ponderat˘ pk = γpk + (1 − γ)pk . Observ˘m cum pentru γ = 1 reg˘sim directia
         a          N            G        a                           a        ¸
                                                        ¸
Newton, iar pentru γ = 0 deplasarea se face pe directia gradientului negativ
                                                   a
cu pas optimal. Algoritmul pentru metoda hibrid˘ de rezolvare a sistemelor de
     ¸
ecuatii neliniare este dat de (8.55).
               a     a     a     ¸                       ¸
   Exemplu 1. S˘ se g˘seasc˘ solutiile sistemului de ecuatii

                                 x1 + 3 lg |x1 | = x2
                                                    2
                                                                                 (8.57)
                                 2x2 + 1 = x1 x2 + 5x1 ,
                                   1

situate ˆ dreptunghiul 0 ≤ x1 ≤ 4, 0 ≤ x2 ≤ 3.
        ın
                                       ın
    Rezolvare. Sistemul (8.57) rescrie ˆ forma

                        F1 (x1 , x2 ) ≡ x1 + 3 lg |x1 | − x2 = 0
                                                           2
                                                                                 (8.58)
                        F2 (x1 , x2 ) ≡ 2x2 + 1 − x1 x2 − 5x1 = 0 .
                                          1

                                s                   s
Vom utiliza metodele Newton ¸i Broyden, precum ¸i metoda gradientului cu relatiile¸
                        s
aproximative (8.49) ¸i (8.54) pentru calculul scalarului α. Metodele de optimizare de
                            s                                           ın
gradient, gradient conjugat ¸i Davidon-Fletcher-Powell au fost aplicate ˆ exemplul din
                                          2     2
capitolul (7) pentru functia scop U = 1 (F1 + F2 ). Matricea jacobian˘ a sistemului de
                          ¸           2
                                                                      a
    ¸
functii (F1 , F2 ) este

                                  1 + 3(lg e)/x1    −2x2
                          J=                                  .                  (8.59)
                                  4x1 − x2 − 5      −x1


    Curbele de nivel1 F1 = 0 ¸i F2 = 0 sunt date ˆ figura (8.2). Solutia sistemului
                              s                     ın                 ¸
                a                                         ın
(8.58) reprezint˘ din punct de vedere geometric, punctele ˆ care curbele de nivel din
                          a      ¸                 a     a              s          a
planul z = 0 ale celor dou˘ functii se intersecteaz˘. Dup˘ cum se vede ¸i din figur˘,
   1 Curba de nivel reprezint˘ acea curb˘ din planul z = K pe care o functie de dou˘
                              a          a                                  ¸          a
                           s                                               ¸
variabile z(x, y) are aceea¸i valoare K. Pentru trei variabile avem suprafete de nivel.
                  a
8.5. Metoda hibrid˘                                                                     225


         Tabelul 8.1: Rezultatele obtinute la rezolvarea sistemului (8.57)
                                    ¸
        Metoda                 ¸
                      Nr. iteratii                    ¸
                                      Nr. eval. functie Nr. eval. gradient
        Newton             3                   4                     4
        Broyden           14                  15                     0
     Gradient (8.49)      34                 104                    35
     Gradient (8.54)      34                 104                    35



                      a     ¸                                ın
sistemul admite dou˘ solutii, dintre care numai una este ˆ domeniul de interes. Se
       a a           a      a        a
observ˘ c˘ mai exist˘ o zon˘, marcat˘ cu cercul A, unde curbele de nivel ale celor dou˘a
     ¸                                                         s                      ¸
functii se apropie destul de mult. Astfel de zone sunt dificile ¸i pot provoca divergenta
metodelor de rezolvare.
                               ¸a              a ıntr-o norm˘ de vectorial˘ oarecare
    Drept criterii de convergent˘ se recomand˘, ˆ              a            a

                       Fk   + 1
                                  < εF , xk   + 1
                                                    − xk < εx xk   + 1
                                                                         ,            (8.60)

unde valorile εF ¸i εx se aleg ˆ functie de precizia dorit˘, εx este de forma 10−t ,
                       s           ın       ¸                    a
cu t num˘rul de cifre semnificative exacte dorite pentru solutie. Pentru εF = 10−11 ,
           a                                                        ¸
cu metoda Newton folosind ca punct de plecare x1 = (3.5, 2.5), se determin˘ solutia a       ¸
x1 = 3.48744, x2 = 2.26163 ˆ 3 iteratii (tabelul 8.1). Cu metoda gradientului solutia
                                ın        ¸                                                 ¸
         ¸    a        a        ¸                              s
este obtinut˘ dup˘ 34 iteratii cu ambele formule (8.49) ¸i (8.54) pentru scalarul α.
   s                                    ¸       a
De¸i s-au efectuat mai multe iteratii decˆt cu metoda gradientului cu minimizare
                   a           a a                                          ¸
unidimensional˘ mai exact˘ (cˆnd au fost necesare numai 17 iteratii), num˘rul de      a
       a             ¸                                       ¸a
evalu˘ri ale functiei scop U este sensibil mai mic, 104 fat˘ de 478.
                         s    a     a          s                                  s
     Metoda Newton e¸ueaz˘ dac˘ se porne¸te din punctul x1 = (0.5, 0.5), de¸i valoarea
     ¸       ın                                a                         ıntˆ     as
functiei U ˆ acest punct este relativ mic˘, U = 0.9945. La fel se ˆ ampl˘ ¸i pentru
                                                                 ¸         a ın         a a
alte puncte de plecare cu valori x1 apropiate de zero. Explicatia const˘ ˆ faptul c˘ atˆt
                ¸         a s                                             ın
valoarea functiei F1 , cˆt ¸i valoarea derivatei ∂F1 /∂x1 sunt infinite ˆ x = 0. Plecˆnd    a
           s
din acela¸i punct, x1 = (0.5, 0.5), metoda gradientului cu scalarul α calculat cu relatia   ¸
(8.49) oscileaz˘ circa 50 iteratii ˆ jurul minimului local U (0.4798, −0.32323) ∼ 0.476,
                  a              ¸ ın                                               =
     a               a s                               ¸
dup˘ care “scap˘” ¸i “sare” la cea dea doua solutie a sistemului, x1 = 1.4589, x2 =
−1.39677. Folosind formula (8.49), metoda gradientului oscileaz˘ ˆ jurul minimul
                                                                         a ın
                ¸                           a                      ıns˘
local al functiei U . Practic determin˘ acest minim, care ˆ a nu este o solutie a        ¸
sistemului (8.58).
                           ¸                                       a ın       ¸
     Cea de-a doua solutie a sistemului (care nu este cerut˘ ˆ enuntul problemei),
x1 = 1.4589, x2 = −1.39677, poate fi obtinut˘ cu metoda Newton ˆ 5 iteratii pornind
                                             ¸    a                     ın        ¸
din punctul x0 = (2.5, −0.5).
                     ¸     a                    a                  a
     Trebuie mentionat c˘ problema propus˘ poate fi rezolvat˘ mai simplu, exprimˆnd         a
                    ¸         ın      ¸
pe x2 din ecuatia a doua ˆ functie de x1 ¸i ˆ                 ın                ¸
                                                  s ınlocuind ˆ prima ecuatie. Se obtin     ¸
    ¸
relatiile

       x2 = 2x1 − 5 + 1/x1 , F (x1 ) = x1 + 3 lg |x1 | − (2x1 − 5 + 1/x1 )2 = 0 .

Graficul functiei F (x1 ) este dat ˆ figura 8.3. Ecuatia obtinut˘ se poate rezolva cu
             ¸                    ın                    ¸     ¸    a
                                        a        a                          ¸
metoda Newton-Raphson, sau orice alt˘ metod˘ de rezolvare a unei ecuatii neliniare.
                          a ın                    a     a a                      a
Avantajul principal const˘ ˆ posibilitatea localiz˘rii r˘d˘cinilor. Reducerea num˘rului
226                                              8. Rezolvarea sistemelor neliniare




                                Figura 8.3: Graficul functiei F (x).
                                                        ¸


de ecuatii cuplate ˆ sistem prin substituiri, este ˆ general avantajoas˘. ˆ plus, ori
        ¸           ın                               ın                   a In
     a                                a ¸                       ¸              a
de cˆte ori este posibil, este benefic˘ obtinerea unei dependente de o singur˘ variabil˘a
                                  a       ¸
pentru a folosi avantajul localiz˘rii solutiei.
                   a           a              a    a                         ¸
     Exemplu 2. S˘ consider˘m o problem˘ real˘ din domeniul investigatiilor radar.
                         a         s      a                   a
Un impuls radar pleac˘ din E ¸i sufer˘ reflexii de pe dou˘ frontiere. Un receptor,
       ın      a     a              a               ¸
plasat ˆ R, m˘soar˘ timpul dup˘ care este receptionat semnalul, T2 . Un alt receptor
       ın       a    a                                   a               a
plasat ˆ E m˘soar˘ timpul de parcugere pe vertical˘, t2 . Intereseaz˘ determinarea
   a                                        s          ¸                      ¸
adˆncimii z1 . Necunoscutele sunt x1 , c1 ¸i z1 . Pozitia punctului de refractie depinde
            at                                                              ¸
de propriet˘¸ile dielectrice ale mediului. Timpul de parcurgere a distantei EABCR
este

                           T2 =     h2 + (d − x1 )2 /c +     2
                                                            z1 + x2 /c1 .
                                                                  1                   (8.61)

    ¸                      ¸              a
Pozitia punctului de refractie se determin˘ din aplicarea principiului lui Fermat
                                                        ˙
                                             ∂T2 /∂x1 = 0                             (8.62)

      a    a                    ¸
Rezult˘ urm˘torul sistem de ecuatii

           f1 (x1 , c1 , z1 )   =   t2 − 2(h/c + z1 /c1 )                             (8.63)

           f2 (x1 , c1 , z1 )   =   T2 − 2      h2 + (d − x1 )2 /c +    2
                                                                       z1 + x2 /c1
                                                                             1        (8.64)

           f3 (x1 , c1 , z1 )   =   x1 c   h2 + (d − x1 )2 − (d − x1 )c1     2
                                                                            z1 + x2
                                                                                  1   (8.65)


                                                         a   a        a      ¸
   Rezolvarea sistemului prin metoda Newton nu necesit˘ decˆt o singur˘ iteratie
pentru atingerea preciziei cerute. Exemplu de date numerice:

             t2 = 10.4 ns, T2 = 11.3 ns ⇒ z1 = 36.0 cm, c1 = 12.3 cm/ns.              (8.66)
                  a
8.5. Metoda hibrid˘                                                   227




             Figura 8.4: Drumul optic al unei unde prin dou˘ medii.
                                                           a
228   8. Rezolvarea sistemelor neliniare
                                                                                229




Capitolul 9

               ¸
Rezolvarea ecuatiilor
       ¸
diferentiale




9.1               ¸
         Consideratii generale
       ¸             ¸                      ¸            ¸              ¸
Ecuatiile diferentiale ordinare (sau ecuatiile diferentiale care contin ca necu-
              ¸                           a         a              a      ıntˆ
noscute functii care depind de o singur˘ variabil˘ independent˘) se ˆ alnesc ˆ     ın
              ın                                    a        ¸
mod curent ˆ descrierea fenomenelor din natur˘. Functiile necunoscute pot fi
                             at                                                  a
viteze, temperaturi, densit˘¸i, sarcini electrice, etc. Variabila independent˘ este
ın                          a
ˆ multe cazuri timpul, cˆnd se descriu fenomene evolutive, sau o coordonat˘         a
    ¸ a a
spatial˘, cˆnd se descriu fenomene unidimensionale.
    ˆ ecuatiile diferentiale apar derivatele de diverse ordine ale functiilor ne-
    In      ¸             ¸                                                  ¸
                                                         ¸
cunoscute. Ordinul cel mai mare al derivatei functiei necunoscute d˘ ordi-     a
         ¸              ¸          a                           ¸         ¸
nul ecuatiei diferentiale. Dac˘ avem un sistem de ecuatii diferentiale (adic˘       a
                   ¸         ¸                   ¸                 ın
mai multe ecuatii care contin mai multe functii necunoscute, ˆ num˘r egal cua
      a         ¸           ¸
num˘rul ecuatiilor diferentiale), ordinul sistemului este egal cu suma ordinelor
     ¸               ¸        ıl       a
ecuatiilor diferentiale care ˆ formeaz˘.
    ˆ general, ecuatia diferential˘ (sau sistemul de ecuatii diferentiale) nu deter-
    In                 ¸         ¸ a                       ¸          ¸
     a                 ¸            ¸               a
min˘ complet functia (sau functiile) necunoscut˘. Pentru a determina complet
     ¸                           a      ¸                     a          a
solutia, este necesar ca, odat˘ cu ecuatia (sau sistemul) s˘ se impun˘ un num˘r    a
         ¸                                      ¸            ¸
de conditii suplimentare egal cu ordinul ecuatiei diferentiale (sau sistemului de
     ¸           ¸
ecuatii diferentiale).
230                                  9. Rezolvarea ecuatiilor diferentiale
                                                       ¸             ¸


                              ¸
    Deoarece rezolvarea ecuatiilor de ordin mai mare ca unu se poate reduce
                                                         ¸          ¸
la rezolvarea unor sisteme formate numai din ecuatii diferentiale de ordinul
ıntˆ
ˆ ai, vom prezenta la ˆ                                          a
                       ınceput metodele de rezolvare numeric˘ a acestor ecuatii  ¸
                            a a a             ¸
mai simple. Trebuie spus c˘, pˆn˘ la aparitia calculatoarelor electronice, chiar
                            ¸          ¸                ıntˆ                     at
rezolvarea unei singure ecuatii diferentiale de ordinul ˆ ai putea ridica dificult˘¸i
               a        a                                      ¸
mari, de natur˘ practic˘ (volum mare de calcule pentru obtinerea unei precizii
acceptabile).
                a        ¸                        a s            a
    Se consider˘ o functie y = y(x), continu˘ ¸i derivabil˘ pe intervalul de
      ¸              ¸                                    a    ¸
definitie (sau cel putin pe intervalul pe care se caut˘ solutia); fie [a, b] inter-
                     a     ¸          ¸          ¸ a               ıntˆ
valul pe care se caut˘ solutia. Ecuatia diferential˘ de ordinul ˆ ai se scrie sub
forma implicit˘a

                        E(x, y, y ) = 0, unde y ≡ dy/dx ,                      (9.1)

x ∈ [a, b] fiind variabila independent˘. Se presupune c˘ expresia E(x, y, y ) se
                                     a                  a
                ın                              ıntˆ      ¸ a                 a
poate explicita ˆ raport cu derivata de ordinul ˆ ai y obtinˆnd forma explicit˘

                                   y = f (x, y) ,                             (9.2)

functia f (x, y) fiind definit˘ ¸i derivabil˘ pe un dreptunghi [a, b] × [c, d] ⊂ R2 .
     ¸                       as           a
      ¸                   s       ¸        a            ın
Functia f (x, y) se nume¸te functie pant˘, deoarece ˆ punctul de coordonate
                            a                       ıntˆ       ¸
(x, y) valoarea ei este egal˘ cu valoarea derivatei ˆ ai a functiei y(x), numeric
     a                               ın
egal˘ cu panta tangentei la grafic ˆ acest punct. Pentru a determina complet
     ¸      a       ¸
solutia se d˘ conditia suplimentar˘ a

                     x = x0 , y = y0 ; x0 ∈ [a, b], y0 ∈ [c, d] ,             (9.3)

unde de obicei x0 = a sau x0 = b.


9.2                  s        ¸
         Metode cu pa¸i separati
                                                           ¸
Pentru rezolvarea numeric˘ a ecuatiei (9.2) cu conditia (9.3) se ˆ
                               a         ¸                             ımparte in-
                  ın                    a             s
tervalul [a, b] ˆ n diviziuni. Punˆnd x0 = a ¸i xn = b, se noteaz˘ cu xm  a
(m = 0, 1, . . . , n) nodurile diviziunii, iar cu h = xm+1 − xm pasul de integrare.
                a       s         ¸               a
    O metod˘ cu pa¸i separati (sau metod˘ pas cu pas) este o metod˘ care     a
         a                 ¸
determin˘ valoarea functiei la pasul m + 1 folosind numai valori de la pasul m.

9.2.1     Formule Euler
Cea mai simpl˘ metod˘ pas cu pas este metoda Euler de ordinul ˆ ai. ˆ acest
              a        a                                          ıntˆ In
                                          a      ¸             ın
caz, deplasarea din punctul xm se face dup˘ directia tangentei ˆ acest punct la
curba y = y(x). Notˆnd cu K1 valoarea derivatei ym , conform cu (9.2) se poate
                     a
scrie

                             K1 = ym = f (xm , ym ) ,                          (9.4)
                 s        ¸
9.2. Metode cu pa¸i separati                                                   231


iar formula Euler de ordinul 1 este

                                   ¯      ¯
                                   ym+1 = ym + hK1 .                          (9.5)

Plecˆnd de la valoarea y0 pentru x = x0 , aplicˆnd formula (9.5) se obtin va-
     a                                               a                        ¸
       ¯                                ¸                     a        ¸    ¸
lorile ym , m = 1, 2, . . . , n ale functiei necunoscute, adic˘ o functie retea care
            a     ¸      a      a              a
aproximeaz˘ functia c˘utat˘ (barele indic˘ valori aproximative).
    Pentru a determina eroarea de trunchiere pentru formula (9.5), se admite c˘    a
     ¸                            a                a
functia y poate fi reprezentat˘ printr-o formul˘ Taylor astfel ˆ atıncˆ

          ym+1 = ym + hym + (h2 /2)y (ξm ), unde ξm ∈ (xm , xm+1 ) .          (9.6)

                                        s             a     a
Tinˆnd seama c˘ ambele formule (9.5) ¸i (9.6) se aplic˘ plecˆnd din x = xm ,
¸ a              a
      a
rezult˘ eroarea de trunchiere pentru un pas eT m

                     eT m = ym+1 − ym+1 = (h2 /2)y (ξm ) ,
                                   ¯                                          (9.7)

       ¸    a                                               ıntregul interval, ˆ
proportional˘ cu pasul diviziunii la puterea a doua. Pentru ˆ                  ın
                                          a
cazul cel mai defavorabil, erorile se adun˘
                     n
                                   h2           b−a
             eT =         eT m =      ny (ξ ) =     hy (ξ ), ξ ∈ (a, b)       (9.8)
                    m=1
                                   2             2

s                          ¸     a                     ıntˆ
¸i deci eroarea este proportional˘ cu pasul la puterea ˆ aia. De aceea, for-
                        a       a            ıntˆ      a     a
mula (9.5) este denumit˘ formul˘ de ordinul ˆ ai, indicˆnd m˘rimea erorii de
           ın
trunchiere ˆ raport cu pasul diviziunii.

Formule Euler de ordinul 2.
        a
O formul˘ de ordinul 2 este de forma

                          ¯      ¯
                          ym+1 = ym + h(w1 K1 + w2 K2 ) ,                     (9.9)

unde K1 este dat de (9.4), iar K2 este de forma

                            K2 = f (x + αh, y + βhK1 ) ,                     (9.10)

iar parametrii α, β, w1 ¸i w2 se determin˘ din conditia ca (9.9) s˘ coincid˘
                         s                a           ¸            a        a
                                       ın                   ¸         ın
cu primii trei termeni din dezvoltarea ˆ serie Taylor a functiei y(x) ˆ jurul
punctului xm

   ym+1 = ym + hym + (h2 /2)ym + (h3 /6)y (ξm ), ξm ∈ (xm , xm+1 ) ,         (9.11)

                                          a
unde derivata de ordinul 2, y se calculeaz˘ astfel

      y = (y ) = [f (x, y)] = fx + fy y , fx ≡ ∂f /∂x, fy ≡ ∂f /∂y .         (9.12)

                                                                      a
   Tinˆnd cont de faptul c˘ ym = f (xm , ym ) = K1 , din (9.11) rezult˘
   ¸ a                    a

      ym+1 = ym + hK1 + (h2 /2)(fxm + fym K1 ) + (h3 /6)y (ξm ) ,            (9.13)
232                                    9. Rezolvarea ecuatiilor diferentiale
                                                         ¸             ¸


unde fxm ≡ ∂f (xm , ym )/∂x . Pe de alt˘ parte, utilizˆnd o formul˘ Taylor
                                          a              a        a
                  ¸         a                             ¸
pentru K2 (ca functie de dou˘ variabile), din (9.10) se obtine

                     K2 = K1 + h(αfxm + βK1 fym ) + O(h2 ) .                        (9.14)

                           ıntˆ         ¸         a
Deoarece K2 este derivata ˆ ai a functiei y, vom p˘stra numai termenii de
ordinul h. Introducˆnd (9.14) ˆ (9.9), se obtine
                   a          ın            ¸

      ym+1 = ym + h(w1 + w2 )K1 + h2 w2 (αfxm + βK1 fym ) + O(h3 ) .
      ¯      ¯                                                                      (9.15)

        a       ¸                                                   a
Identificˆnd relatia (9.15) cu primii trei termeni din (9.13), rezult˘ sistemul

                       w1 + w2 = 1, w2 α = 1/2, w2 β = 1/2 .                        (9.16)

                                           s                 ¸                a
   Sistemul (9.16) are patru necunoscute ¸i numai trei ecuatii. Teoretic exist˘ o
                      at                       a                  a
infinitate de posibilit˘¸i de a construi o metod˘ de ordinul 2, dou˘ variante fiind
         ıntˆ                                   ¸        a
mai des ˆ alnite. Prima dintre acestea se obtine alegˆnd w2 = 1/2. Rezult˘      a
                          ¸ a
α = β = 1, w1 = 1/2, obtinˆndu-se formula Euler ˆ          a at a
                                                    ımbun˘t˘¸it˘

         ym+1 = ym + h (K1 + K2 ), K2 = f (xm + h, ym + hK1 ) .
         ¯      ¯    2                             ¯                                (9.17)

                    ¸       a                a
Cea dea doua se obtine alegˆnd w2 = 1. Rezult˘ α = β = 1/2, w1 = 0,
  ¸ a                              a
obtinˆndu-se formula Euler modificat˘

               ¯      ¯                            ¯
               ym+1 = ym + hK2 , K2 = f (xm + h/2, ym + K1 h/2) .                   (9.18)

Pentru ambele variante K1 se calculeaz˘ cu relatia (9.4). Eroarea de trunchiere
                                            a          ¸
la pasul m este eT m = ym+1 − ym+1 = O(h3 ). ˆ consecint˘, formulele (9.17) ¸i
                                   ¯                 In          ¸a                       s
(9.18) vor da o eroare de ordinul h2 relativ la ˆ    ıntregul interval.
                                                          a            a ın
     Formulele Euler admit o interpretare geometric˘, prezentat˘ ˆ figura (9.1).
ˆ punctul A(xm , ym ) se construie¸te tangenta la graficul functiei y(x) de pant˘
In                 ¯                 s                               ¸                    a
                           a           a           a           ¯
K1 . Punctul B se afl˘ pe aceast˘ tangent˘, yB = ym + hK1 reprezentˆnd                  a
                        a                        ¸     a
valoarea aproximativ˘ pentru y(xm+1 ) obtinut˘ cu metoda Euler de ordinul
ˆ ai. ˆ punctul B(xm+1 , yB ), se evalueaz˘ prima derivat˘ a functiei y, yB =
ıntˆ In                                          a                a         ¸        ¯
f (xm+1 , yB ) ≡ K2 . Bara de deasupra semnific˘ faptul c˘ este vorba de o valoare
                                                    a          a
              a                  a       ¸ ın                             ¯
aproximativ˘, valoarea exact˘ s-ar obtine ˆ punctul E. Valoarea ym+1 se obtine         ¸
cu metoda Euler ˆ           a at a          a           ¸
                   ımbun˘t˘¸it˘ aproximˆnd functia pe intervalul [xm , xm+1 ] cu
                                              a              s
bisectoarea unghiului format de cele dou˘ pante, K1 ¸i K2 . Pe figur˘, ym+1 =   a ¯
yC .
                                       a ın                    ¯
     Pentru metoda Euler modificat˘, ˆ punctul A(xm , ym ) se construie¸te tan-   s
                        ¸                 a
genta la graficul functiei y(x) de pant˘ K1 . Punctul D(xm+1 + h/2, yD ) se afl˘            a
pe aceast˘ tangent˘, yD = ym + (h/2)K1 . ˆ punctul D, se evalueaz˘ prima de-
           a        a          ¯                In                           a
rivat˘ a functiei y: yD = f (xm+1 + h/2, yD ) ≡ K2 . Bara de deasupra semnific˘
      a        ¸      ¯                                                                   a
         a                                           a                  a
faptul c˘ este vorba de o valoare aproximativ˘, valoarea exact˘ s-ar obtine ˆ      ¸     ın
                          ¯          ¸
punctul F . Valoarea ym+1 se obtine cu metoda Euler modificat˘ aproximˆnd  a            a
      ¸                                                   a               a ¯
functia pe intervalul [xm , xm+1 ] cu dreapta de pant˘ K2 . Pe figur˘, ym+1 = yC .
                 s        ¸
9.2. Metode cu pa¸i separati                                                       233




                                        a
     Figura 9.1: Interpretarea geometric˘ a metodelor Euler de ordinul 2.


9.2.2     Formule Runge-Kutta
                           a         a a a ın
Din prezentarea anterioar˘ se observ˘ c˘, luˆnd ˆ calcul mai multe puncte (deci
                         a          ¸        a                 ¸
folosind mai multe evalu˘ri ale functiei pant˘ f (x, y)), se obtin formule de ordin
                                                                               a
de precizie mai ridicat. De aici apare ideea de a utiliza o expresie general˘ de
forma
                                                 s
                           ym+1 = ym + h             wi Ki ,                     (9.19)
                                               i=1


                               i−1
   Ki = f (xm + αi h, ym + h         βij Kj ), i ∈ 1, s, j ∈ 1, i − 1, α1 = β10 = 0 ,
                               j=1
                                                                                 (9.20)

                                                                    a          ¸
unde s este ordinul formulei, iar scalarii wi , αi , βij se determin˘ din conditia
ca expresia (9.19) s˘ coincid˘ cu formula Taylor pˆn˘ la termenii ˆ hs inclusiv.
                     a         a                     a a            ın
          ¸
S-a renuntat a se mai pune bara pentru a indica valorile aproximative. Pentru
s = 4, relatiile (9.20) se scriu
           ¸

          K1 = f (xm , ym ), K2 = f (xm + α2 h, ym + β21 hK1 ) ,
              K3 = f [xm + α3 h, ym + h(β32 K2 + β31 K1 )] ,                     (9.21)
          K4 = f [xm + α4 h, ym + h(β43 K3 + β42 K2 + β41 K1 )] .

                       a                                        a
    Pentru s = 2 se reg˘sesc formulele Euler de ordinul 2. Num˘rul de parametri
                  a      a            ¸                s    a
este mai mare decˆt num˘rul de conditii pentru ca ace¸tia s˘ fie unic determinati¸
ıncepˆnd s ≥ 2. ˆ consecint˘, pentru acela¸i ordin s ≥ 2, se obtin diverse
ˆ    a             In          ¸a               s                      ¸
                                       s
formule, unii dintre parametri fiind ale¸i din motive de simplitate sau de simetrie
                                  ¸
a formulelor. Formulele astfel obtinute se numesc formule de tip Runge-Kutta.
Una dintre cele mai utilizate este formula Runge-Kutta standard de ordinul 4,
234                                      9. Rezolvarea ecuatiilor diferentiale
                                                           ¸             ¸


              a                              s        a
care utilizeaz˘ derivate calculate la capete ¸i la jum˘tatea pasului. Aceasta are
forma

                    ym+1 = ym + (h/6)(K1 + 2K2 + 2K3 + K4 ) ,                          (9.22)


             K1 = f (xm , ym ), K2 = f (xm + h , ym + h K1 )
                                               2       2                               (9.23)
        K3 = f (xm + h , ym + h K2 ), K4 = f (xm + h, ym + hK3 ) .
                     2         2


9.2.3      Formule Runge-Kutta-Gill
     a       a                                            a
O alt˘ formul˘ Runge-Kutta de ordin 4, ceva mai complicat˘, dar care prezint˘a
                                                   a                      a
interes din punctul de vedere al controlului propag˘rii erorilor, este dat˘ de
    a
urm˘torul algoritm:

      Date: x0 , xn , Y 0
      x = x0 , y = Y 0 , Q0 = 0, h = (xn − x0 )/n
      m = 0 : (n − 1),
            K1 ← f (xm , Y m ), Y1 ← Y m + h (K1 − 2Q0 ),
         
                                             2
          Q1 ← Q0 + 3[ 1 (K1 − 2Q0 )] − 1 K1 ,
                               2              2       √
          K2 ← f (xm + h , Y1 ), Y2 ← Y1 + h(1 − 1/ 2)(K2 − Q1 ),
         
                            2       √                     √                           (9.24)
          Q2 ← Q1 + 3[(1 − 1/ 2)(K2 − Q1 )] − (1 − 1/ 2)K2 ,
                                                    √
          K3 ← f [xm + h , Y2 ], Y3 ← Y2 + h(1 + 1/ 2)(K3 − Q2 )
          Q ← Q + 3[(1 + 1/√2)(K − Q )] − (1 + 1/√2)K ,
                           2
                3      2                  3     2             3
          K ← f (x + h, Y ), y
          4            m        3   m+1 ← Y3 + h (K4 − 2Q3 ),
          Q ← Q + 3[ 1 (K − 2Q )] − 1 K 6
                 4      3      6   4    3     2 4
            Q0 ← Q4 .

           ¸             ın
    Prezenta radicalilor ˆ expresiile (9.24) este util˘ deoarece ace¸tia introduc
                                                       a              s
ıntotdeauna o eroare de rotunjire a c˘rei evolutie se poate controla la fiecare pas.
ˆ                                     a         ¸
Aceast˘ observatie st˘ la baza metodelor de tip Runge-Kutta-Gill. ˆ metodele
       a         ¸    a                                                 In
                                                                 ın
Runge-Kutta-Gill de ordinul 4, erorile de rotunjire se iau ˆ consideratie la   ¸
                                                                     ¸ a         ¸
fiecare pas prin patru componente Q1 , Q2 , Q3 , Q4 . Se atrage atentia c˘ relatiile
                                                 a                          a      a
(9.24) nu trebuie modificate (nu se fac simplific˘ri, reduceri, etc.), ci se p˘streaz˘
ın       ın                                              a
ˆ forma ˆ care sunt scrise, tocmai pentru a putea urm˘ri propagarea erorilor de
                                                    ¸                  ¸
rotunjire. Valorile parametrului Q4 dau o indicatie asupra tendintei (cre¸tere,s
   ¸               s                                              a           as s
stationare, descre¸tere) a acestor erori de rotunjire. Astfel, dac˘ Q4 dep˘¸e¸te
o anumit˘ margine impus˘1 , se reduce pasul h. De asemenea, pasul h poate fi
         a                 a
m˘rit dac˘ se apreciaz˘ c˘ valoarea Q4 este prea mic˘2 .
  a       a             a a                                a
   1 Algoritmul este prezentat ˆ forma general˘ pentru rezolvarea sistemelor de ecuatii
                                  ın              a                                         ¸
diferentiale, care vor fi prezentate mai jos. ˆ acest caz, Q ¸i K sunt vectori.
       ¸                                     In             s
   2 Trebuie avut ˆ vedere faptul c˘ metoda Runge-Kutta-Gill este superioar˘ metodei Runge-
                   ın                a                                        a
                                                 a
Kutta standard din punct de vedere al propag˘rii erorilor de rotunjire numai dac˘ toatea
                      a         s       a                                           a
calculele se efectueaz˘ cu acela¸i num˘r de cifre semnificative. Spre exemplu, lucrˆnd cu un
                                             ¸
calculator personal, nu vom observa diferente semnificative ˆ                a
                                                              ıntre cele dou˘ metode, deoarece
                                      a          ¸                       a        ¸      ¸
calculele intermediare se efectueaz˘ pe 80 de biti, indiferent de num˘rul de biti folositi de
                                            a
compilator pentru reprezentarea unui num˘r real.
                 s        ¸
9.2. Metode cu pa¸i separati                                                    235


9.2.4                                        ¸           ¸
          Alegerea pasului la rezolvarea ecuatiei diferentiale
                                                               a
Estimarea erorii la formulele pas cu pas se poate face repetˆnd calculul cu
                                                    a
pas modificat. Spre exemplu, pentru a verifica dac˘ pasul h este suficient de
                                              a                  a       s
mic pentru asigurarea unei precizii corespunz˘toare, se avanseaz˘ doi pa¸i din
                                                                     a
punctul xm cu pasul h, apoi se reface calculul cu pasul dublu 2h, dup˘ schema

                              xm + h + h = xm + 2h .                           (9.25)

ˆ aceste conditii, neglijˆnd erorile de rotunjire pe distanta h, utilizˆnd o formul˘
In            ¸          a                                 ¸           a           a
Taylor, se poate scrie
                                                  (s+1)
                y(x + 2h) = y2h + (2h)s+1 y(ξ1 ) /(s + 1)! ,
                                              (s+1)       (s+1)
                y(x + 2h) = yh + hs+1 y(ξ21 ) + y(ξ22 )           /(s + 1)!    (9.26)
                                          (s+1)
                          = yh +   2hs+1 y(ξ2 ) /(s    + 1)! ,

unde ξ1 , ξ2 ∈ (x, x + 2h), ξ21 ∈ (x, x + h), ξ22 ∈ (x + h, x + 2h). Pentru s = 4
avem
                                    (2h)2      (2h)3        (2h)4 (4)
             y2h = y(x) + 2hy(x) +    2 y(x) +   6 y(x) + 24 y(x)
                                  2          3        4 (4)
             yh = y(x) + hy(x) + h y(x) + h y(x) + h y(x) +
                                 2          6        24
                               2           3            4 (4)
                 +hy(x+h) + h y(x+h) + h y(x+h) + h y(x+h) .
                              2           6           24

        a
Considerˆnd derivatele aproximativ egale

              y (s+1) (ξ1 ) ∼ y (s+1) (ξ2 ) ≡ y (s+1) (ξ), ξ ∈ (x, x + 2h) ,
                            =                                                  (9.27)

                ¸
din (9.26) se obtine

                        2s − 1 (s+1)        2hs+1 (s+1)      yh − y2h
   yh − y2h = 2hs+1             y    (ξ) ⇒          y   (ξ) = s       .        (9.28)
                       (s + 1)!            (s + 1)!           2 −1

                                                ¸      ın         ¸           s
Am notat yh , y2h valorile aproximative ale functiei y ˆ x + 2h obtinute cu pa¸ii
                                                                    a
de integrare h respectiv 2h. Putem corecta valoarea yh , presupus˘ mai exact˘   a
   a               ¸
decˆt y2h , cu relatia

                 y(x + 2h) ∼ yh + e, e ≡ (yh − y2h )/(2s − 1) .
                           =                                                   (9.29)

        ¸                                                          a
Am obtinut de asemenea o posibilitate de a evalua eroarea absolut˘ prin terme-
                               s       ın                          a     as s
nul e. Se poate deci impune mic¸orarea ˆ continuare a pasului, dac˘ e dep˘¸e¸te
          a                  a               a a                ın      ın
o anumit˘ margine superioar˘ sau, dimpotriv˘, m˘rirea pasului ˆ cazul ˆ care
                        a
e are o valoare prea mic˘.
      a               a                        a a         as    a
    S˘ presupunem c˘ dorim ca eroarea absolut˘ s˘ nu dep˘¸easc˘ valoarea im-
pus˘ e0 . ˆ general, eroarea unei metode de ordinul s este de forma
    a     In
                                          (s+1)
                              e = hs+1 y(ξ)       /(s + 1)! .                  (9.30)
236                                       9. Rezolvarea ecuatiilor diferentiale
                                                            ¸             ¸


     ¸
Se obtine
                                     (s+1)                             1
                     e0  hs+1 y(ξ0 )                            e0    s+1
                        = 0           ⇒ h0 = S · h ·                        ,   (9.31)
                     e   hs+1 y (s+1)                           |e|
                               (ξ)

             (s+1)     (s+1)   1
unde S = |y(ξ0 ) /y(ξ) | s+1 este, pentru h suficient de mic, de ordinul unit˘¸ii at
                    ın                                  ¸
(rezultate bune ˆ majoritatea cazurilor pot fi obtinute cu S = 0.9). Dac˘            a
            ¸     a                                  a          a
eroarea obtinut˘ cu pasul h este mai mare decˆt cea impus˘ (e > e0 ), atunci
                                                                        a
calculul trebuie reluat cu un pas mai mic, h0 fiind o estimare bun˘ a m˘rimii  a
                     a ın                    ¸     a
acestui pas. Dac˘ ˆ schimb eroarea obtinut˘ este mult mai mic˘ decˆt ceaa     a
       a
impus˘ (e            ınseamn˘ c˘ pasul de integrare este mai mic decˆt cel necesar,
               e0 ), ˆ      a a                                       a
                                   a                                a
iar relatia (9.31) poate fi folosit˘ pentru estimarea pasului urm˘tor.
        ¸
              a ın                                   s                 a
    De regul˘, ˆ locul erorii absolute se folose¸te eroarea relativ˘ definit˘ ca a
ε = |e/yref |, unde yref este o valoare de referint˘ a necunoscutei y (spre exemplu
                                                  ¸a
ultima valoare calculat˘, yref = ym+1 = yh ). ˆ acest caz se poate scrie
                          a                       In
                                                        1
                                   h0 = S · h · (ε0 /ε) s+1 .                   (9.32)

                       a            a                   s
    Metoda prezentat˘ este fiabil˘, dar conduce la cre¸terea timpului de calcul,
ceea ce nu se justific˘ ˆ                            ¸                  a
                        a ıntotdeauna. Pentru obtinerea unei estim˘ri a erorii
                              a                       a         ¸        a
absolute e cu pasul h, efectu˘m s + s + s = 3s evalu˘ri ale functiei pant˘ f (x, y),
                                         s                           s
dintre care K1 = f (xm , ym ) este aceea¸i pentru integrarea cu h ¸i 2h. Pentru
                                                      a         ¸        a
Runge-Kutta de ordinul 4, sunt necesare 11 evalu˘ri ale functiei pant˘ pentru
       s                a                         a
doi pa¸i, deci 5.5 evalu˘ri pentru un pas. Rezult˘ un efort de calcul suplimentar
             a           ¸        a            ¸
de 1.5 evalu˘ri ale functiei pant˘ pentru a obtine o estimare a erorii absolute ¸is
a pasului optim de integrare. ˆ cazul ˆ care pasul h este relativ mare, factorul
                                In      ın
de sigurant˘ S poate diferi mult de unitate. ˆ aceast˘ situatie, o estimare a
            ¸a                                   In       a      ¸
                      a              a       ¸
erorii se face comparˆnd cele dou˘ valori obtinute

                          e ∼ yh − y2h , ε ∼ (yh − y2h )/yh .
                            =              =                                    (9.33)

                         a                    a
   O modalitate mai simpl˘ pentru a verifica m˘rimea pasului de integrare la
metoda Runge-Kutta standard, este evaluarea raportului

                               r = |(K2 − K3 )/(K1 − K2 )| .                    (9.34)

         a    a                              a ın      s
Observˆnd c˘ pantele K2 , K3 se evalueaz˘ ˆ acela¸i punct x = xm + h/2 iar
                    a ın
K1 , K2 se evalueaz˘ ˆ puncte diferite, pe considerente empirice, se recomand˘      a
mentinerea pasului dac˘ raportul r este de ordinul 10−2 . ˆ cazul unor ordine
     ¸                    a                                    In
de m˘rime diferite de 10−2 , pasul se modific˘ (spre exemplu, se ˆ
      a                                         a                            a at s
                                                                      ınjum˘t˘¸e¸te
dac˘ r ∼ 10−1 ).
    a
           a            ¸          ¸                                     s
    O alt˘ cale de a obtine informatii privitoare la precizia calculelor ¸i a pasului
                              a                                      s
necesar este de a folosi dou˘ formule Runge-Kutta de ordine s ¸i p, de regul˘       a
p = s + 1. Aceasta ˆ          a                      a ın
                     ınseamn˘ s + p = 2s + 1 evalu˘ri ˆ total pentru a obtine o¸
valoare aproximativ˘ cu o eroare de ordinul hs precum ¸i o estimare a acestei
                      a                                     s
       s                                                        ¸     a
erori ¸i a pasului optim de integrare. La prima vedere, pretul pl˘tit pare prea
                 s        ¸
9.2. Metode cu pa¸i separati                                                  237


             Tabelul 9.1: Valorile coeficientilor pentru Kutta-Merson
                                           ¸
                i   ai    ai − bi αi      βi1 βi2       βi3   βi4
                1   1/6      1/15       0
                2    0        0        1/3   1/3
                3    0      −3/10      1/3   1/6       1/6
                4   2/3      4/15      1/2   1/8        0    3/8
                5   1/6     −1/30       1    1/2        0    −3/2       2



mare. ˆ realitate nu este a¸a deoarece ambele formule folosesc acelea¸i puncte
        In                   s                                         s
                       ¸        a    a                 a
pentru evaluarea functiei pant˘, adic˘ numai p evalu˘ri! Acest lucru este po-
                                   a            a           ¸        as
sibil, deoarece raportul dintre num˘rul de evalu˘ri ale functiei pant˘ ¸i ordinul
             s                         a
metodei cre¸te cu ordinul metodei dup˘ cum urmeaz˘:  a

              a         a
          Num˘r de evalu˘ri           1 2 3 4 5 6 7 8
          Ordinul metodei Runge-Kutta 1 2 3 4 4 5 6 6 .

                                                ın             a
Formulele din categoria de mai sus se pot scrie ˆ forma general˘
                                  p                                 p
        ym+1 ≡ yp = ym + h i=1 ai Ki , ys = ym + h i=1 bi Ki ,
                                          i−1                               (9.35)
                Ki = f (x + αi h, ym + h j=1 βij Kj ) .

                                                      ¸    a        ¸
O estimare a erorii de trunchiere pentru ys poate fi obtinut˘ cu relatia
                                              p
                          e = yp − ys = h          (ai − bi )Ki ,           (9.36)
                                             i=1

                                 ¸                                        a
iar pasul de integrare necesar obtinerii unei precizii impuse se calculeaz˘ cu
    ¸
relatia

                               h0 = S · h · (e0 /|e|)1/p .                  (9.37)

             a                      a                         s
Din aceast˘ categorie, prezent˘m metodele Kutta-Merson ¸i Runge-Kutta-Fehlberg.
                                      s      a
    Metoda Kutta-Merson folose¸te dou˘ formule Runge-Kutta de ordine 4, res-
                                                 s                 ¸ ın
pectiv 5. Coeficientii din formulele (9.35) ¸i (9.36) sunt dati ˆ tabelul (9.1).
                       ¸
            ¸            ¸                                      a         ¸        a
Pentru obtinerea relatiei (9.37) este nevoie de numai 5 evalu˘ri ale functiei pant˘,
  ¸a                     ın                  a
fat˘ de 5.5 necesare ˆ varianta integr˘rii cu pasul dublu cu eroarea absolut˘       a
dat˘ de (9.33). Varianta pasului dublu este ˆ a mai robust˘.
    a                                             ıns˘            a
                              a
    S-a construit o metod˘ de ordinul 4 ˆ            a
                                            ımpreun˘ cu o estimare a erorii cu numai
        a            ¸
5 evalu˘ri ale functiei pant˘.   a
                                              s           a
    Metoda Runge-Kutta-Fehlberg folose¸te o formul˘ de ordinul 4 cu 5 evalu˘ri    a
         ¸         as               a                       a
ale functiei pant˘ ¸i o formul˘ de ordinul 5 cu 6 evalu˘ri. Aceasta ˆ            a
                                                                         ınseamn˘ 6
      a ın                         ¸                        a
evalu˘ri ˆ total pentru a obtine o valoare aproximativ˘ cu o eroare de ordinul
h5 precum ¸i o estimare a acestei erori ¸i a pasului optim de integrare. Valorile
              s                              s
coeficientilor ai , bi , αi , βij sunt dati ˆ tabelul 9.2.
          ¸                             ¸ ın
238                                       9. Rezolvarea ecuatiilor diferentiale
                                                            ¸             ¸


          Tabelul 9.2: Valorile coeficientilor pentru Runge-Kutta-Fehlberg
                                        ¸

 i        ai         ai − b i      αi       βi1          βi2         βi3         βi4          βi5
 1      16/135         1/360       0         0

 2        0              0        1/4       1/4

 3    6656/12825    −128/4275     3/8       3/32         9/32

 4    28561/56430   −2197/75240   12/13   1932/2197   −7200/2197   7296/2197

 5      −9/50          1/50        1      439/216        −8        3680/513    −845/4104

 6       2/55          2/55       1/2      − 8/27         2        3544/2565   1859/4104     −11/40




9.3       Extrapolare Richardson. Metoda Bulirsch-
          Stoer
                  a                           a ın                     ¸
Tehnica extrapol˘rii de tip Richardson const˘ ˆ construirea unei functii ym+1 (h)
prin calcularea mai multor valori ym+1 folosind diferiti pa¸i h = xm+1 − xm ,
                                                       ¸     s
         a                       ¸             a                          s
aproxim˘rea acesteia cu o functie mai simpl˘ (spre exemplu polinom) ¸i calcu-
                                  ex
                                                  a
larea unei valori aproximative ym+1 corespunz˘toare unei valori h mai mici, ˆ  ın
particular pentru h = 0.
    Fie ym ≡ y(xm ) valori calculate pˆn˘ la un moment dat ¸i xm+1 = xm + H
                                       a a                    s
         ın               a        a                         a
punctul ˆ care dorim s˘ calcul˘m o valoarea aproximativ˘ ym+1 . Intervalul
(x, x + H) cu x ≡ xm se ˆ  ımparte ˆ n subintervale egale, xi+1 − xi ≡ h = H/n,
                                    ın
i ∈ 1, n. Pentru diferite valori n, deci pa¸i de integrare diferiti, se obtin mai
                                            s                     ¸        ¸
                                                 ın                      ¸
multe valori aproximative ale necunoscutei y ˆ punctul xm+1 . Se obtin astfel
                                                 a
perechi de valori (h, ym+1 (h)), cu ajutorul c˘rora se poate calcula o valoare
             a                            a
aproximativ˘ ym+1 (0). De asemenea, avˆnd mai multe valori ym+1 pentru pa¸i     s
de integrare diferiti, se poate estima eroarea e ≡ y − ym+1 . Dac˘ aceasta este
                    ¸                                               a
                              a
prea mare, calculul se repet˘ pentru un n mai mare (respectiv, un pas mai mic).
                             a                                   ¸           ¸
Extrapolarea Richardson d˘ rezultate foarte bune pentru ecuatii diferentiale a
  a        ¸            ¸                   aa      ¸
c˘ror solutii sunt functii monotone (sau f˘r˘ variatii mari ale primei derivate)
s                           ın
¸i nu au puncte singulare ˆ intervalul de interes.
               ¸                                                         a
    Pentru obtinerea unui algoritm performant, trebuie precizate urm˘toarele:
(a) metoda de integrare pe intervalul (x, x + H); (b) metoda de aproximare a
     ¸
functiei ym+1 (h).
                                   s      a                     a            a
    Metoda Bulirsch-Stoer, folose¸te urm˘toarea strategie de m˘rire a num˘rului
de intervale n:

                        nj = 2nj−2 ⇒ n = 2, 4, 6, 8, 12, 16, . . . ,                       (9.38)

         a a                  a                            ın
care evit˘ sc˘derea prea rapid˘ a pasului de integrare ˆ cazul uzual nj =
                                 a       ¸           ¸              s          a
2nj−1 . Pentru integrarea numeric˘ a ecuatiei diferentiale se folose¸te o metod˘
                 s      ¸
9.4. Metode cu pa¸i legati                                                    239


                    a       a
de ordinul 2, definit˘ de urm˘torul algoritm:

                     z0 ≡ y(xm ); z1 = z0 + h · f (xm , y0 )
                     i = 1 : (n − 1)
                                                                            (9.39)
                       [zi+1 = zi−1 + 2hf (xm + ih, yi )
                     ym+1 = 1 [zn + zn−1 + hf (x + H, zn )] .
                               2

                                             a ın       a
Unul din avantajele formulelor (9.39) const˘ ˆ faptul c˘ avem nevoie de nu-
                     ¸        a                   ¸ ıl           ıns˘        a
mai o evaluare a functiei pant˘. Avantajul esential ˆ constituie ˆ a faptul c˘
            ın                         ¸
dezvoltarea ˆ serie Taylor a erorii contine numai termenii cu puteri pare
                                                   ∞
                     e ≡ ym+1 − y(x + H) =               ai h2i .           (9.40)
                                                   i=1

           a         a           s         ¸
Astfel, dac˘ avem dou˘ valori yn ¸i yn/2 obtinute cu n respectiv n/2 subintervale,
  ¸
obtinem o valoare ˆ      a at a
                   ımbun˘t˘¸it˘

                         y(x + H) ≈ (1/3)(4yn − yn/2 )                      (9.41)

                 s                                              a
de ordinul patru ¸i nu trei cum ar fi fost normal pentru o formul˘ de ordinul doi.
                                                   s           a               a
   Pentru extrapolare la valoarea h = 0, Burlisch ¸i Stoer au g˘sit mai eficient˘
                     ¸     ¸      ın              a
aproximarea cu functii rationale ˆ locul interpol˘rii polinomiale.


9.4                 s      ¸
        Metode cu pa¸i legati
                     ¸                     s       ¸                             a
Principalele deficiente ale metodelor cu pa¸i separati sunt: (a) necesitatea evalu˘rii
                           a         ¸        ¸
la fiecare pas a unui num˘r de functii cel putin egal cu ordinul metodei; (b) eva-
              a
luarea dificil˘ a erorii de trunchiere.
             ¸                     ınl˘
    Deficientele semnalate pot fi ˆ aturate folosind metode care utilizeaz˘ maia
                                      ¸
bine valorile deja calculate ale functiei necunoscute. Aceste metode se numesc
               s     ¸                                       a          a
metode cu pa¸i legati sau metode multipas. Ideea este urm˘toarea: s˘ presupu-
                                  a         s      ¸                      ¸
nem, revenind la ecuatia (9.2), c˘ se cunoa¸te solutia y(x). Atunci functia pant˘
                       ¸                                                         a
f (x, y(x)) este o anumit˘ functie de x, notat˘ cu Φ(x) ≡ f (x, y(x)). Integrˆnd
                          a     ¸               a                              a
ecuatia (9.2) termen cu termen, pe un interval [xm−k , xm+1 ], m = 0, 1, 2, . . . ,
     ¸
      ¸
se obtine
                                            xm+1
                         ym+1 = ym−k +             Φ(x) dx                  (9.42)
                                           xm−k


(figura 9.2). ˆ relatia (9.42), functia Φ(x) este necunoscut˘, dar poate fi apro-
             In    ¸               ¸                       a
     a       a
ximat˘ utilizˆnd spre exemplu un polinom de interpolare.

9.4.1    Formule explicite
             ın           ¸                               ¸
Pentru a lua ˆ consideratie valori deja calculate ale functiei y(x), vom utiliza
                    ¸       a                      a                   ¸
polinomul cu diferente la stˆnga. Introducem num˘rul real α prin relatia

                              x = xm + αh, α ≤ 1 .                          (9.43)
240                                 9. Rezolvarea ecuatiilor diferentiale
                                                      ¸             ¸




                                             ¸
                             Figura 9.2: Functia Φ(x).


    ¸                         ın
Functia Φ(x) se va reprezenta ˆ forma
                                                 r
  Φ(x) ≡ Φ(xm + αh) = Φm + α Φm + . . . + (−1)r C−α           r
                                                                  Φ m + Rr ,    (9.44)

r fiind gradul polinomului de interpolare,                         ¸a      a
                                                operatorul diferent˘ la stˆnga, iar
Rr restul la interpolare
                                  r+1
               Rr = (−1)r+1 hr+1 C−α Φ(r+1) (ξ), ξ ∈ (xm−r , x) .               (9.45)

                               ¸
   Tinˆnd seama de (9.44), relatia (9.42) se scrie
   ¸ a
                         1
   ym+1 = ym−k + h                                      r
                             Φm + α Φm + . . . + (−1)r C−α        r
                                                                      Φm dα + δm ,
                       −k
                                                                                (9.46)

δm fiind eroarea la integrare la pasul m
                                          1
                                               r+1
                    δm = (−1)r+1 hr+2         C−α Φr+1 (ξ) dα .                 (9.47)
                                         −k

             a    a                                   ¸
     Constat˘m c˘ avem doi parametri la dispozitie: r, gradul polinomului de
                        a                                                  s
interpolare, grad care d˘ ordinul de precizie al formulei (egal cu r + 1) ¸i k, pa-
                 a                                  ¸
rametrul care d˘ intervalul de integrare. Existenta acestor doi parametri permit
obtinerea de formule diferite, la acela¸i ordin de precizie. ˆ cele ce urmeaz˘ d˘m
   ¸                                   s                     In              a a
                                   ¸
unele formule mai des folosite obtinute direct din aplicarea formulelor generale
       s
(9.46) ¸i (9.47).

                               ¸
  a) Pentru r = 3, k = 0, se obtine formula predictor a lui Adams
              (A)        h
            ym+1 = ym + 24 (55fm − 59fm−1 + 37fm−2 − 9fm−3 ) ,
                       251 5 (4)      251   (4)                                 (9.48)
                 δm = 720 h Φ (ξ) = 720 h5 Φm + O(h6 ) .
                 s      ¸
9.4. Metode cu pa¸i legati                                                    241


                                ¸
   b) Pentru r = 3, k = 3, se obtine formula predictor a lui Milne
                       (M )
                      ym+1 = ym−3 + 4h (2fm − fm−1 + 2fm−2 ) ,
                                        3
                            14               14     (4)                     (9.49)
                       δm = 45 h5 Φ(4) (ξ) = 45 h5 Φm + O(h6 ) .


                                ¸            a
   c) Pentru r = 5, k = 5, se obtine o formul˘ de ordinul 6

          ym+1 = ym + 3h (11fm − 14fm−1 + 26fm−2 − 14fm−3 + 11fm−4 ) ,
                      10
                           41               41     (6)
                    δm = 140 h7 Φ(6) (ξ) = 140 h7 Φm + O(h8 ) .
                                                                   (9.50)

       ¸
Observatii.
                           ın                                      a ¸
   1. Formulele prezentate ˆ acest paragraf sunt explicite pentru c˘ toti terme-
                                                ¸                             s
      nii din dreapta semnului egal sunt cunoscuti. Formulele explicite cu pa¸i
          ¸
      legati se mai numesc formule predictor.
                                           a                           ¸
   2. Formulele explicite multipas necesit˘ evaluarea unei singure functii fm la
      fiecare pas, indiferent de ordinul de pecizie al formulei.

                                                                               ın
   3. Erorile de trunchiere δm au expresii simple