92
Universitatea “Dunărea de Jos” METODE NUMERICE Gabriel FRUMUŞANU Galaţi - 2008

METODE NUMERICE - University of Galațiing.ugal.ro/Resurse/MENUS/Facultate/IFR/Metode_numerice...METODE NUMERICE 2. Algoritmi de calcul. Stabilitatea şi condiţionarea algoritmilor

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

  • Universitatea “Dunărea de Jos”

    METODE NUMERICE Gabriel FRUMUŞANU

    Galaţi - 2008

  • Departamentul pentru Învăţământ la Distanţă şi cu Frecvenţă Redusă Facultatea de Mecanica Specializarea Inginerie economica si industriala Anul de studii / Forma de învăţământ II/IFR

  • REFERENŢI ŞTIINŢIFICI: Prof. dr. ing. Nicolae OANCEA, Prof. dr. ing. Cătălina MAIER,

    Universitatea „Dunărea de Jos” din Galaţi.

  • 3

    PREFAŢĂ

    Apariţia şi perfecţionarea continuă a calculatoarelor electronice a

    adus în prim-plan un domeniu al matematicii care exista de multă vreme şi care, iniţial, era prezentat ca o anexă a matematicii clasice: metodele numerice. În prezent acestea s-au constituit într-un domeniu de sine stătător, la graniţa cu programarea calculatoarelor şi cu ingineria.

    În condiţiile în care viteza de lucru a calculatoarelor a atins limite de neimaginat, chiar în urmă cu un deceniu, calculul numeric oferă soluţii pentru orice problemă matematică a cărei rezolvare e necesară în tehnică; mai mult, soluţiile „aproximative” obţinute cu ajutorul metodelor numerice tind să se transforme, pe zi ce trece, în soluţii a căror precizie o depăşeşte cu mult pe ce a sistemelor tehnice.

    Această carte se adresează studenţilor de la specializarea „Inginerie şi management”, forma de studiu cu frecvenţă redusă şi a fost, prin urmare, concepută modular, într-un număr de capitole egal cu numărul de cursuri din programă; fiecare capitol include noţiuni teoretice, de regulă şi câte un algoritm, exemple de aplicare şi chestiuni de verificare propuse.

    Autorul

  • CUPRINS

    5

    CUPRINS

    Prefaţă ......................................................................................................... 3 Cuprins ........................................................................................................ 5 CAPITOLUL 1 - Reprezentarea algoritmilor în pseudo-cod ……………. 7 CAPITOLUL 2 - Rezolvarea ecuaţiilor algebrice prin metoda generală … 17 CAPITOLUL 3 - Rezolvarea ecuaţiilor algebrice prin metoda bisecţiei … 23 CAPITOLUL 4 - Rezolvarea ecuaţiilor algebrice prin metoda

    Newton – Raphson ……….. 27 CAPITOLUL 5 - Rezolvarea ecuaţiilor algebrice prin metoda

    punctului fix ……………… 33 CAPITOLUL 6 - Rezolvarea sistemelor de ecuaţii liniare prin

    metoda Gauss …………….. 37 CAPITOLUL 7 - Rezolvarea sistemelor de ecuaţii liniare prin

    metoda Jacobi …………….. 43 CAPITOLUL 8 - Rezolvarea sistemelor de ecuaţii liniare prin

    metoda Gauss - Seidel ……. 49 CAPITOLUL 9 - Polinomul de interpolare a lui Lagrange ……………… 53 CAPITOLUL 10 - Polinomul de interpolare a lui Newton ………………. 59 CAPITOLUL 11 - Aproximarea cu abatere medie pătratică minimă ……. 67 CAPITOLUL 12 - Derivarea cu ajutorul polinomului de interpolare

    Lagrange …………………. 71 CAPITOLUL 13 - Metode numerice pentru calculul integralei definite … 75 CAPITOLUL 14 - Exemple de aplicare a metodelor numerice

    în ingineria tehnologică ….. 81 Bibliografie ................................................................................................. 90

  • CAPITOLUL 1 – Reprezentarea algoritmilor în pseudo-cod

    7

    Capitolul 1

    REPREZENTAREA ALGORITMILOR ÎN PSEUDO-COD.

    1. Caracterizarea lucrării

    Rezolvarea problemelor ştiinţifice şi tehnice cu ajutorul calculatorului

    presupune, mai întâi, găsirea unui algoritm specific şi, apoi, implementarea acestuia pe un sistem de calcul.

    În afara algoritmului de rezolvare propriu-zis, un rol important în găsirea eficientă a soluţiei îl joacă alegerea corectă a structurilor de date utilizate. În esenţă, programul de calcul se bazează pe algoritm (descrierea operaţiilor ce vor fi efectuate pentru găsirea soluţiei) şi pe structura de date (modul în care se reprezintă datele de intrare, variabilele intermediare şi datele de ieşire).

    Pentru descrierea structurilor de date şi a algoritmilor se poate utiliza un limbaj de programare (BASIC, PASCAL, FORTRAN, C++ etc.) sau un pseudo-limbaj cu o sintaxă mai permisivă (mai puţin rigidă). Pentru a evidenţia invarianţa algoritmilor la limbajul utilizat, de regulă se recurge la a doua soluţie.

    Scopul acestei lucrări este de a familiariza utilizatorii cu gândirea algoritmică structurată (prin utilizarea pseudo-codului), de a evidenţia metodele de implementare a pseudo-codului în diferitele limbaje de programare şi, nu în ultimul rând, de a evidenţia importanţa tipurilor abstracte de date, cu caracter matematic (vectori, matrice, numere complexe, etc.).

  • METODE NUMERICE

    2. Algoritmi de calcul. Stabilitatea şi condiţionarea algoritmilor.

    Rezolvarea unei probleme practice, pornind de la un anumit set de date iniţiale, presupune utilizarea unui algoritm de calcul, pentru obţinerea datelor de ieşire căutate, potrivit schemei

    8

    Algoritmul de calcul reprezintă un sistem de reguli care transformă datele de intrare în date de ieşire, cu ajutorul unor operaţii succesive, unic determinate. Un algoritm de calcul trebuie să îndeplinească următoarele cerinţe:

    Generalitate; se înţelege prin aceasta că nu este suficient ca un algoritm să permită rezolvarea doar a unei probleme oarecare, ci trebuie să permită rezolvarea tuturor problemelor din categoria respectivă.

    Finitudine; numărul de transformări intermediare (iteraţii) aplicate datelor de intrare pentru a obţine datele de ieşire trebuie să fie finit.

    Unicitate; transformările intermediare trebuie să fie unic determinate (să conducă de fiecare dată la obţinerea aceloraşi rezultate).

    Un algoritm de calcul este stabil dacă aplicat unei probleme cu date

    iniţiale „uşor perturbate” conduce la o soluţie apropiată, într-un anume sens, de soluţia problemei cu datele iniţiale.

    O altă noţiune, înrudită cu cea de stabilitate a unui algoritm, este cea de condiţionare a acestuia; un algoritm este bine condiţionat dacă mici erori relative în datele iniţiale se transmit în mici erori relative ale datelor de ieşire.

    Condiţionarea unui algoritm se poate ilustra simplu, spre exemplificare, pentru calculul unei funcţii z = f(x, y) într-un punct (x, y). Aplicând formula lui Taylor se poate scrie

    ( ) ( ) ...yfxfy,xfyy,xxff yx +Δ⋅+Δ⋅=−Δ+Δ+=Δ (1)

    În cazul în care y,x ΔΔ sunt suficient de mici, termenii de rang mai mare sau egal cu doi din (1.19) se pot neglija; rezultă

    yfxfyfxfdff yxyx Δ⋅+Δ⋅≤Δ⋅+Δ⋅=≅Δ . (2)

    Δf reprezintă, în această situaţie, eroarea absolută care afectează rezultatele ca efect al erorilor Δx şi Δy apărute în datele iniţiale; mai semnificativă este, însă, eroarea relativă a rezultatelor, care, pentru f 0 este ≠

    Date de intrare Algoritm de calcul Date de ieşire

  • CAPITOLUL 1 – Reprezentarea algoritmilor în pseudo-cod

    yf

    fx

    ff

    ff yx Δ⋅+Δ⋅≤

    Δ, (3)

    relaţie care, pentru x, y 0, se poate rescrie ca ≠

    yy

    f

    fy

    xx

    ffx

    ff yx Δ⋅

    ⋅+

    Δ⋅

    ⋅≤

    Δ. (4)

    Kx Ky

    Coeficienţii Kx şi Ky de mai sus sunt denumiţi indici de condiţionare a problemei; se poate observa că algoritmul poate să nu fie bine condiţionat, în cazul în care aceşti indici au valori mari, chiar atunci când Δx şi Δy au valori relativ mici. 3. Descrierea pseudo-limbajului

    Pseudo-codul este o metodă simplă şi eficientă pentru reprezentarea unui algoritm şi a structurilor de date asociate. Un algoritm redactat în pseudo-cod este, de fapt, un text alcătuit din linii (rânduri), fiecare dintre acestea conţinând, de regulă, o declaraţie (al cărui scop principal constă în descrierea datelor) sau o instrucţiune (care descrie o operaţie care urmează a fi efectuată).

    Fiecare linie dintr-un text în pseudo-cod este alcătuită din cuvinte şi simboluri (caractere speciale nealfanumerice). Anumite cuvinte, cu o semnificaţie bine determinată, independentă de aplicaţie, se numesc „cuvinte cheie” şi, pentru a fi distinse faţă de celelalte cuvinte (specifice aplicaţiei), sunt, de obicei, subliniate (îngroşate).

    Orice linie poate conţine precizări suplimentare, numite comentarii, care ajută la o mai bună înţelegere a algoritmului redactat în pseudo-cod, fără a face parte din descrierea propriu-zisă a acestuia sau din structura de date. Comentariile sunt amplasate la sfârşitul liniilor la care se referă şi încep cu caracterul „;”.

    3.1. Structuri de date

    Declaraţiile se referă la datele cu care se operează şi pot fi de tip simplu (fundamental) sau structurate (agregate).

    Se consideră următoarele tipuri de date fundamentale:

    logic - date cu două valori (0 = fals, 1 = adevărat);

    întreg - date care pot lua doar valori întregi;

    real - date ale căror valori aproximează numere reale;

    caracter - literă, cifră sau semn special (aritmetic sau de punctuaţie). 9

  • METODE NUMERICE

    10

    Exemple de declaraţii ale unor variabile de tip fundamental:

    logic l1, l2, l3 întreg i, j, s real a, m, x, j caracter c

    După cum se poate constata, o declaraţie conţine cuvântul-cheie care specifică tipul, urmat de lista numelor variabilelor de tipul respectiv, separate între ele prin virgule. Numele variabilelor pot să fie alcătuite din litere şi cifre, primul caracter fiind, obligatoriu, o literă şi au semnificaţie limitată doar la aplicaţia respectivă. Se recomandă ca, în limita posibilităţilor, numele variabilelor să fie alese cât mai sugestiv iar, pentru eliminarea ambiguităţilor, fiecare mărime cu care se operează într-o problemă să aibă propria declaraţie, eventual însoţită de un comentariu lămuritor:

    real m ; masa corpului real v ; viteza de aşchiere

    Pentru rezolvarea unor probleme mai complexe, tipurile fundamentale de date nu sunt suficiente, recurgându-se la tipuri de date structurate, apelate prin cuvintele-cheie:

    tablou - structură de date care conţine un număr cunoscut de elemente de acelaşi tip;

    înregistrare - structură de date ce poate conţine elemente de tipuri diferite.

    Exemple de declaraţii pentru tablouri:

    tablou real V(3) ; V este un vector cu trei elemente reale tablou întreg A(5, 5); A este o matrice 5 x 5 cu elemente

    întregi

    Cu toate că tabloul are o singură denumire pentru întreaga structură de date, elementele acestuia se identifică prin index (număr de ordine), ca de exemplu V(2); A(1, 2); A(5, 4) etc.

    3.2. Structuri de control

    Instrucţiunile unui algoritm redactat în pseudo-cod descriu operaţiile pe care trebuie să le efectueze sistemul de calcul cu datele anterior descrise prin declaraţii.

    Instrucţiunile sunt de două tipuri: simple şi structurate; cele simple sunt, la rândul lor, de trei feluri:

    de atribuire;

  • CAPITOLUL 1 – Reprezentarea algoritmilor în pseudo-cod

    de intrare;

    de ieşire.

    Instrucţiunea de atribuire are sintaxa:

    variabilă = expresie

    în care „variabilă” este numele unei variabile a cărei valoare urmează să fie modificată în urma instrucţiunii iar „expresie” este o construcţie sintactică alcătuită din constante, variabile, operatori şi paranteze, după regulile din algebră. Efectul execuţiei instrucţiunii de atribuire constă în evaluarea expresiei şi modificarea, în concordanţă, a variabilei al cărui nume se află în stânga semnului egal.

    Se consideră că operanzii care intervin în expresii au valori corespunzătoare unuia dintre tipurile fundamentale. Dacă operanzii sunt de tip logic, atunci se admit operatori logici precum sau, şi, nu, ca în exemplele:

    l1 = nu(l2) l3 = l1 sau l2 l4 = l1 şi l3

    Dacă operanzii sunt numerici (real sau întreg), se admit operatori aritmetici: +, -, *, / sau de relaţie ( ≥≤>≤=

    În primul caz rezultatul este de tip numeric iar, în al doilea, de tip logic.

    Instrucţiunile de intrare – ieşire au sintaxa:

    citeşte variabilă (listă variabile) scrie variabilă (listă variabile)

    Prima instrucţiune are ca efect transferul pe canalul de intrare a unei valori (de exemplu introducerea de la tastatură), care modifică valoarea variabilei specificate, iar a doua are ca urmare transferul valorii variabilei pe canalul de ieşire (de exemplu, afişarea pe ecran sau tipărirea la imprimantă).

    De exemplu, pseudo-codul:

    real x, y, s, p citeşte x, y

    s = x + y p = x * y

    scrie s, p

    11stop

  • METODE NUMERICE

    reprezintă algoritmul unui program care calculează suma şi produsul a două numere reale, ale căror valori se citesc de la tastatură.

    Programele se încheie printr-o altă instrucţiune simplă, cu sintaxa

    stop

    care are ca efect terminarea execuţiei programului respectiv. Pentru realizarea unor operaţii mai complicate se utilizează, în afara

    instrucţiunilor simple, instrucţiunile structurate, care sunt:

    secvenţa;

    decizia (cu sau fără alternativă);

    ciclul (cu test iniţial, cu test final sau cu contor);

    rutina (procedură sau funcţie).

    Secvenţa sau blocul de instrucţiuni reprezintă un şir de instrucţiuni simple sau structurate (redactate câte una pe linie, în linii succesive), care se execută una după alta, în ordinea în care au fost scrise; programul de mai sus este un exemplu de secvenţă.

    Decizia este o instrucţiune care permite controlul execuţiei şi are una dintre următoarele variante sintactice:

    decizia simplă:

    dacă condiţie atunci secvenţă

    decizia cu alternativă:

    dacă condiţie atunci secvenţa 1 altfel secvenţa 2

    în care „condiţie” este o expresie de tip logic, iar „secvenţa” este o secvenţă de una sau mai multe instrucţiuni. Pentru a uşura înţelegerea acestei instrucţiuni, se constată că secvenţele sunt redactate indentat – decalate faţă de cuvântul-cheie dacă. În urma execuţiei acestei instrucţiuni, se evaluează expresia logică „condiţie”; dacă valoarea rezultată este adevărată, atunci se execută „secvenţa” (respectiv „secvenţa 1”), altfel se continuă cu instrucţiunea următoare (respectiv se execută „secvenţa 2”).

    Exemple de instrucţiuni de decizie:

    ; calculul funcţiei modul, xy = dacă atunci 0x ≥ y = x

    12

  • CAPITOLUL 1 – Reprezentarea algoritmilor în pseudo-cod

    altfel y = -x

    ; calculul funcţiei ⎪⎩

    ⎪⎨

    >

    ≤≤−−<

    =

    1x,x

    1x1,x21x,0

    y2

    dacă x 0 repetă s = s + ak k = k + 1 scrie s

    poate fi utilizat pentru a aduna elementele unui tablou (de tip şir) până la întâlnirea primului element negativ.

    Ciclul cu test final are sintaxa:

    repetă secvenţa până când condiţie

    „secvenţa” fiind executată repetat până când „condiţia” devine adevărată. 13

  • METODE NUMERICE

    Deosebirea faţă de ciclul cu test iniţial constă în aceea că, în acest caz, corpul ciclului este executat cel puţin o dată. În exemplul următor, se calculează cu o eroare maximă impusă, suma seriei cu termenul general (-1)k/k!.

    t = 1 k = 0 s = 0 repetă t = -t / k s = s + t k = k + 1 până când t < eps

    Ciclul cu contor permite repetarea unei secvenţe de un număr determinat de ori. Sintaxa ciclului cu contor este:

    pentru contor = val_ini, val_fin, pas repetă secvenţă

    în care „contor” este numele unei variabile de tip întreg, „val_ini”, „val_fin” şi „pas” sunt constante sau expresii de tip întreg. Secvenţa de instrucţiuni din corpul ciclului este repetată pentru valori succesive ale contorului, pornind de la valoarea iniţială „val_ini”, incrementat cu pasul „pas”, până când acesta depăşeşte valoarea finală „val_fin”. Dacă în instrucţiune lipseşte valoarea „pas”, se presupune că aceasta are valoarea implicită 1.

    În exemplul următor:

    s = 0 pentru k = 1, n s = s + ak scrie s

    se calculează suma primelor n elemente ale unui tablou.

    Se întâlnesc, frecvent, situaţii în care o anumită secvenţă de instrucţiuni trebuie executată de mai multe ori, în momente diferite ale execuţiei unui program. Pentru a se evita rescrierea de mai multe ori a acestei secvenţe se recurge la conceptul de rutină.

    Rutina reprezintă o secvenţă de declaraţii şi instrucţiuni căreia i se atribuie un nume. Dacă într-un program se face apel la o rutină, controlul execuţiei se transferă rutinei, iar după încheierea acesteia se revine în programul apelant.

    14

    În consecinţă, o rutină presupune, pe de o parte, definiţia acesteia (prin specificarea declaraţiilor şi instrucţiunilor care o alcătuiesc) iar, pe de altă parte, apelarea ei. Utilizarea rutinelor este justificată chiar şi în cazul în care ele sunt apelate o singură dată într-un program, deoarece ele permit structurarea

  • CAPITOLUL 1 – Reprezentarea algoritmilor în pseudo-cod

    15

    modulară a unui algoritm. Pentru a realiza acest deziderat, o rutină trebuie să aibă o anumită consistenţă, să îndeplinească o funcţie bine definită, care să permită reutilizarea ei şi în cadrul altor programe.

    După modul de apelare, rutinele se împart în două categorii: proceduri şi funcţii.

    Procedura este definită printr-o construcţie sintactică de forma:

    procedură nume(listă de parametri formali) secvenţă retur

    în care „nume” este numele procedurii, alcătuit din caractere alfanumerice, iar lista parametrilor formali conţine nume de parametri, separate prin virgule. O parte din parametrii formali sunt parametri de intrare (ale căror valori provin din programul apelant şi se transferă procedurii) iar alţii sunt parametri de ieşire (ale căror valori se determină în procedură şi se transferă, apoi, programului apelant). Apelarea unei proceduri astfel definite se face prin invocarea numelui ei, urmat de lista parametrilor actuali:

    nume(listă de parametri actuali)

    Parametrii actuali trebuie să concorde, ca număr, tip şi ordine, cu cei formali (dar nu neapărat şi ca nume). În exemplul următor,

    citeşte a, b sumprod(a, b, s, p) scrie s, p sumprod(s, p, s1, p1) scrie s1, p1

    se face apel la procedura definită în continuare:

    procedură sumprod(x, y, sumă, prod) real x, y, sumă, prod sumă = x + y prod = x * y retur

    care are pe x şi y ca parametri formali de intrare şi sumă, prod – parametri formali de ieşire.

    În urma primului apel al acestei proceduri (cu parametri actuali de intrare a şi b) se calculează şi afişează s = a + b, p = a * b iar în urma celui de-al doilea apel se calculează şi se afişează s1 = s + p + a * b, şi p1 = (a + b) * a * b.

    În cazul unei proceduri, numărul parametrilor de intrare sau de ieşire este arbitrar (poate fi, inclusiv, nul).

    Funcţia este o variantă de rutină la care toţi parametrii formali sunt parametri de intrare, dar rutina întoarce o valoare. Definiţia funcţiei se realizează prin construcţia sintactică

  • METODE NUMERICE

    16

    funcţia nume(listă de parametri formali) secvenţă întoarce valoare

    Funcţia poate fi apelată ca operand într-o expresie, în particular în atribuirea

    valoare = nume(listă de parametri actuali)

    Funcţia se aseamănă cu o procedură cu un singur parametru de ieşire, dar, faţă de aceasta, are o flexibilitate suplimentară în apelare. Exemplul următor

    real a, b citeşte a, b x = min(a, b) / max(a, b) scrie a, b

    recurge la utilizarea a două funcţii, min şi max, definite prin

    funcţia max(x, y) ; valoarea maximă real x, y, m dacă x > y atunci m = x altfel m = y întoarce m

    funcţia min(x, y) ; valoarea minimă real x, y, m dacă x > y atunci m = y altfel m = x întoarce m

    Funcţiile elementare (modul, radical, putere, exponenţială, logaritm, sinus, cosinus etc.) se consideră predefinite în pseudo-cod, deoarece majoritatea limbajelor de programare de nivel înalt le au implementate.

    4. Chestiuni de verificare

    4.1. Să se scrie o procedură care să calculeze produsul scalar a doi vectori. 4.2. Să se scrie o procedură de înmulţire a matricelor dreptunghiulare. 4.3. Să se scrie algoritmul unui program care să calculeze

    ⎪⎩

    ⎪⎨

    >≤≤−−

    −<=

    3x,xln3x5,3x5

    5x,xsiny

  • CAPITOLUL 2 – Rezolvarea ecuaţiilor algebrice prin metoda generală

    Capitolul 2

    REZOLVAREA ECUAŢIILOR ALGEBRICE PRIN METODA GENERALĂ.

    1. Principiul metodei

    Fie funcţia şi ecuaţia f(x) = 0. Dacă f este un polinom

    sau poate fi adusă la formă polinomială, în urma unor transformări, ecuaţia se numeşte algebrică; în caz contrar este vorba de o ecuaţie transcendentă.

    RRD:f →⊂

    Algebra clasică oferă formule şi algoritmi care permit rezolvarea exactă doar pentru o mică parte din ecuaţiile care intervin în soluţionarea diverselor probleme practice din domeniul ingineriei; chiar şi atunci când astfel de posibilităţi există (dar aplicarea lor este complicată), ca şi în toate celelalte cazuri, rezolvarea numerică a ecuaţiilor este calea de urmat.

    Rezolvarea oricărei ecuaţii, pe cale numerică, presupune parcurgerea a două etape:

    Separarea rădăcinilor ecuaţiei, care presupune determinarea unui interval de existenţă pentru fiecare dintre rădăcinile reale ale ecuaţiei.

    Calculul aproximativ pentru fiecare rădăcină reală a ecuaţiei şi evaluarea erorii.

    În ceea ce priveşte separarea rădăcinilor, aceasta se poate realiza, spre exemplu prin metoda clasică a şirului lui Rolle; alte posibilităţi sunt analiza datelor problemei practice ce conduce la ecuaţia respectivă, sau aproximarea

    17

  • METODE NUMERICE

    funcţiei f printr-un polinom de interpolare, rădăcinile polinomului de interpolare servind ca valori aproximative iniţiale ale rădăcinilor ecuaţiei.

    Cu toate că metoda generală de rezolvare numerică a unei ecuaţii poate fi apreciată ca fiind mai rudimentară decât metodele „clasice”, aplicabilitatea metodei este extrem de largă, ea ilustrând foarte bine mecanismul general al algoritmilor de căutare a soluţiei unei ecuaţii.

    Fig. 1 - Metodă generală de rezolvare numerică a ecuaţiilor

    Fie , despre care se cunoaşte că [ ] Rb,a:f → ( ) ( )b,a∈ξ∃ , unic, astfel

    încât f(ξ) = 0; considerându-se, potrivit primului criteriu enunţat mai sus, o valoare maximă admisibilă a erorii er1 (renotată, pentru simplitate, cu er), se va considera soluţie a ecuaţiei orice număr xk pentru care ( ) erx kf ≤ .

    Metoda presupune, mai întâi, generarea unui şir de (n+1) puncte echidistante între a şi b, potrivit relaţiei

    ( ) ( )1n...2,1k,n

    ab1kax k −=−

    ⋅−+= , (1)

    după care se testează condiţia ( ) erxf k ≤ ; în cazul în care răspunsul este afirmativ, punctul în cauză este inclus în mulţimea soluţiilor.

    După cum se poate observa şi din figura 1, în general există mai multe puncte din şirul (1) care pot fi considerate soluţii (în cazul din figură - xk-2 , xk-1, xk ...). Numărul acestor puncte este egal cu numărul termenilor din şir cuprinşi în intervalul [α, β], unde α şi β sunt soluţiile din intervalul [a, b] ale ecuaţiei ( ) erxf = , α < β.

    Pentru a alege din mulţimea soluţiilor aproximative pe cea mai apropiată de soluţia exactă, ξ, se poate recurge la două strategii:

    18

  • CAPITOLUL 2 – Rezolvarea ecuaţiilor algebrice prin metoda generală

    1) se calculează eroarea εk = f(xk), pentru fiecare soluţie potenţială, xk şi se alege ca soluţie finală cea pentru care eroarea este minimă, în valoare absolută;

    2) se reduce valoarea erorii maxime admisibile, er, reducându-se astfel numărul de soluţii aproximative găsite; în cazul unui program de calcul construit pe baza acestei metode, prin rularea repetată a acestuia, pentru valori din ce în ce mai mici ale parametrului er, se poate ajunge, la un moment dat, la situaţia în care mulţimea soluţiilor potenţiale conţine un singur element, care poate fi declarat soluţie a ecuaţiei.

    2. Algoritmul metodei program Metoda_generală real a,b ; domeniul de definiţie al funcţiei f real er ; eroarea maximă admisibilă a soluţiei real eps ; eroarea curentă întreg n ; numărul de iteraţii de efectuat întreg k ; contorul iteraţiilor

    citeşte a, b, n, er pentru k = 1, n-1 repetă x = a + k * (b - a) / n dacă ( ) erxf < atunci eps = ( )xf scrie x ; soluţia aproximativă a ecuaţiei scrie eps ; eroarea între f(x) şi 0

    stop 3. Exemplu de aplicare

    Fie ecuaţia x = cos(x); dacă se consideră funcţia , f(x) = x - cos(x), se poate observa că f este continuă şi derivabilă că f(0) = -1, în

    timp ce

    RR:f →

    22f π=⎟

    ⎠⎞

    ⎜⎝⎛ π .

    Conform teoremei lui Rolle, rezultă că pe intervalul ⎟⎠⎞

    ⎜⎝⎛ π

    2,0 funcţia f

    se anulează cel puţin o dată; punctul ( )b,a∈ξ pentru care f(ξ) = 0 reprezintă soluţia exactă a ecuaţiei considerate.

    Dacă se utilizează un program de calcul bazat pe această metodă pentru rezolvarea ecuaţiei, cu diverse valori ale parametrului n (din relaţia (1)) şi pentru diverse valori ale erorii maxime admisibile, er, se obţin rezultatele din tabelul 1.

    19

  • METODE NUMERICE

    După cum s-a menţionat deja, sunt situaţii în care se obţine o mulţime de soluţii potenţiale, dintre care trebuie selectată cea mai bună; dacă se utilizează a doua strategie de selecţie, pentru n = 100, în cazul în care er = 0.1 se găsesc 7 soluţii potenţiale, dacă er = 0.05 - 3 soluţii, în timp ce pentru er = 0.01 - o singură soluţie.

    Evident, valoarea pentru er trebuie aleasă judicios, în corelaţie şi cu numărul de puncte, n; o reducere peste o anumită limită a erorii maxime admisibile conduce la a nu găsi nici o soluţie.

    Dacă se recurge la prima strategie de selecţie a celei mai bune soluţii, programul trebuie să furnizeze şi valorile funcţiei f în fiecare din punctele corespunzătoare soluţiilor potenţiale (coloana a patra din tabelul 1); pe această bază se poate determina, cu uşurinţă, soluţia aproximativă a ecuaţiei.

    Tab. 1

    n

    er

    xk

    f(xk)

    0.691 -0.079 0.707 -0.054 0.722 -0.028 0.738 -0.001 0.754 0.025 0.770 0.052

    0.1

    0.785 0.078 0.722 -0.028 0.738 -0.001

    0.05

    0.754 0.025

    100

    0.02 0.738 -0.001 0.737 -0.004 0.738 -0.001 0.740 0.001

    0.005

    0.741 0.004 0.738 -0.001

    1000

    0.002 0.740 0.001

    10000 0.0001 0.73906 -0.000043

    Trebuie observat că metoda poate rezolva, la nivelul actual al calculatoarelor, o varietate largă de ecuaţii, rapid şi cu o precizie mai mult decât satisfăcătoare.

    20

  • CAPITOLUL 2 – Rezolvarea ecuaţiilor algebrice prin metoda generală

    21

    4. Chestiuni de verificare

    Să se rezolve prin metoda generală următoarele ecuaţii de forma f(x) = 0, cu precizia specificată, ştiind că admit câte o soluţie pe intervalele indicate:

    4.1. f(x) = x2 – 5x + 4, er = 10-3, ( )3,0ξ∈ . 4.2. f(x) = x3 - 8x2 + 19x -12, er = 10-5, ( )2,1ξ −∈ . 4.3. f(x) = xlnxsin − , er = 10-6, ( )π,0ξ∈ .

  • CAPITOLUL 3 – Rezolvarea ecuaţiilor algebrice prin metoda bisecţiei

    Capitolul 3

    REZOLVAREA ECUAŢIILOR ALGEBRICE PRIN METODA BISECŢIEI.

    1. Principiul metodei

    Această metodă poate fi considerată o variantă mai evoluată a metodei

    generale, atât deoarece viteza cu care se determină soluţia aproximativă este mai mare, cât şi pentru că permite cunoaşterea, de la bun început a numărului de iteraţii care trebuie parcurse pentru rezolvarea ecuaţiei, cu o precizie impusă.

    Condiţia ca prin această metodă să se poată rezolva o ecuaţie de forma f(x) = 0 este ca f să existe un interval compact [a, b] astfel încât

    [ ] [ ]( ) ( ) ( ) 0bfaf,b,aCf,Rb,a:f 0

  • METODE NUMERICE

    Fig.1 - Metoda înjumătăţirii intervalului

    Algoritmul de aplicare a metodei este prezentat în cele ce urmează, în

    ipoteza în care f(a) > 0 şi f(b) < 0 (cealaltă variantă de aplicare a metodei şi anume când f(a) < 0 şi f(b) > 0 derulându-se analog).

    Se calculează 2

    bac0+

    = , după care se evaluează funcţia f în punctul c0;

    în cazul în care f(c0) = 0, înseamnă că, absolut întâmplător, s-a găsit soluţia exactă a ecuaţiei, ξ = c0 .

    Dacă f(c0) > 0, se renotează c0 cu a1 şi b cu b1 (cazul din fig.2.3) iar, în caz contrar, a devine a1 şi c0 - b1 .

    Se calculează 2

    bac 111

    += , după care se determină f(c1); dacă f(c1) = 0

    rezultă ξ = c1 .

    Se înjumătăţeşte intervalul [a1 , b1], rezultând [a2, b2], fie renotându-se c1 cu a2 şi b1 cu b2 (cazul figurat), fie c1 cu b2 şi a1 cu a2 , în aşa fel încât să avem f(a2) · f(b2) < 0.

    Se determină c2 , apoi a3 şi b3 , c3 , a4 şi b4 . . . şi aşa mai departe, până când, la un moment dat cn se constituie într-o aproximaţie suficient de bună a soluţiei exacte şi se adoptă ξ = cn .

    Lungimea lk a intervalului oarecare din şir, [ak ,bk], rezultat din

    intervalul [a, b] după k înjumătăţiri succesive este

    24

  • CAPITOLUL 3 – Rezolvarea ecuaţiilor algebrice prin metoda bisecţiei

    kk 2abl −= . (2)

    Prin procedeul enunţat mai sus, se generează în paralel două şiruri - şi - primul dintre ele monoton crescător iar celălalt, monoton

    descrescător, ambele având ca limită soluţia exactă a ecuaţiei: ( ) 0nna ≥ ( ) 0nnb ≥

    ξ==∞→∞→

    nnnnblimalim . (3)

    Această afirmaţie poate fi susţinută dacă se observă că eroarea εn făcută prin aproximarea lui ξ cu cn este mărginită superior de un şir cu limita 0:

    0lc nnn →≤−ξ=ε , atunci când . (4) ∞→n

    Mai mult, dacă se impune, apriori, o limită maximă a erorii admisibile, er, din impunerea condiţiei ercn ≤ξ− se poate determina numărul minim de iteraţii (înjumătăţiri) care trebuie efectuate pentru a găsi soluţia aproximativă a ecuaţiei, Nmin:

    12lner

    abln1

    erablogN 2min +

    ⎥⎥⎥⎥

    ⎢⎢⎢⎢

    ⎡ −

    =+⎥⎦⎤

    ⎢⎣⎡ −≥ , (5)

    unde cu paranteze drepte s-a notat funcţia parte întreagă.

    2. Algoritmul metodei program Metoda_bisecţiei real a,b ; domeniul de definiţie al funcţiei f real er ; eroarea maximă admisibilă întreg n ; numărul de iteraţii de efectuat întreg k ; contorul iteraţiilor

    citeşte a, b, er n = [ln((b - a) / er) / ln(2)] + 1 ; calculul numărului de iteraţii k = 0 ; iniţializarea contorului

    repetă k = k + 1 c = (a + b) / 2 dacă f(a) * f(c) > 0 atunci a = c altfel b = c

    25

  • METODE NUMERICE

    26

    până când k > n

    scrie x ; soluţia aproximativă a ecuaţiei top

    . Exemplu de aplicare

    x = c s 3

    os(x), se poate observa că f este continuă şi derivabilă că

    timp ce

    Fie ecuaţia x = cos(x); dacă se consideră funcţia RR:f → , f(x) = x - c f(0) = -1, în

    22⎟⎠

    Considerând această ecuaţie şi pornind, de asemenea, de la intervalul

    delimitat de a = 0 şi

    f π=⎞⎜⎝⎛ π .

    2b = , s-a utilizat un program deπ calcul bazat pe algoritmul

    meto

    10-3 trebuie efectuate Nmin = 11 iteraţii, soluţia aproximativă fiind

    -6 trebuie efectuate Nmin = 21 iteraţii, soluţia aproximativă fiind

    ebuie efectuate Nmin = 31 iteraţii, soluţia aproximativă fiind = 0

    fiind relativ ic, chiar în cazul unor erori maxime admisibile extrem de reduse.

    . Chestiuni de verificare

    dei da faţă. Rezultatele sunt următoarele:

    - pentru er =x = 0.7386;

    - pentru er = 10x = 0.7390859;

    - pentru er = 10-9 trx .7390851328.

    După cum se poate observa, soluţia ecuaţiei este găsită mult mai repede faţă de cazul metodei generale, numărul de iteraţii necesarem 4

    teraţii necesare cu cel de la rezolvarea aceloraşi ecuaţii prin metoda generală.

    .1. f(x) = x2 – 5x + 4, er = 10-3,

    Să se rezolve prin metoda bisecţiei ecuaţiile de mai jos, de forma f(x) = 0, cu precizia specificată, ştiind că admit câte o soluţie pe intervalele indicate. Să se compare numărul de i

    ( )3,0ξ∈ .

    .2. f(x) = x3 - 8x2 + 19x -12, er = 10-5,

    4

    ( )2,1ξ −∈4 .

    4.3. f(x) = , er = 10-6,

    xlnxsin − ( )π,0ξ∈ .

  • CAPITOLUL 4 – Rezolvarea ecuaţiilor algebrice prin metoda Newton - Raphson

    Capitolul 4

    REZOLVAREA ECUAŢIILOR ALGEBRICE PRIN METODA NEWTON - RAPHSON.

    1. Principiul metodei

    Funcţionarea acestei metode se bazează, ca principiu, pe generarea

    unui şir de aproximaţii succesive ale soluţiei exacte, ξ, pentru o ecuaţie de forma f(x) = 0. Şirul de aproximaţii succesive, ( ) Nnnx ∈ , se construieşte pornind de la o valoare de start, x0 , convenabil aleasă, utilizând o formulă de tip recurent

    ( )

    0n,hxf

    xxn

    nn1n ≥−=+ , (1)

    unde hn = h(xn) este o funcţie nenulă (eventual o constantă) aleasă, de asemenea, convenabil.

    Potrivit modului de definire a funcţiei hn , există mai multe metode, aşa-numite „clasice”: metoda Newton - Raphson (metoda tangentelor variabile), metoda tangentelor fixe, metoda secantelor variabile (regula Falsi) şi metoda secantelor fixe.

    În cazul metodei Newton - Raphson, funcţia hn din relaţia (1) se alege de forma hn = f ’(xn) (derivata funcţiei f). Rezultă o formulă de recurenţă de tipul

    ( )( ) 0n,xfxf

    xxn

    nn1n ≥′−=+ . (2)

    27

  • METODE NUMERICE

    Formula (2) mai poartă şi numele de formula iterativă a lui Newton. Pentru rezolvarea numerică a unei ecuaţii de forma f(x) = 0 prin acest

    procedeu, funcţia f trebuie să îndeplinească următoarele condiţii: , (adică f derivabilă de două ori pe [a, b], cu derivatele continui), iar

    şi f păstrează semnul constant pe tot intervalul; în plus, mai trebuie ca f să aibă o singură rădăcină în intervalul considerat. Punctul de start, x0 , trebuie ales astfel încât

    [ ] Rb,a:f →[ ]( b,aCf 2∈

    f ′ ′′)

    ( ) ( ) 0xfx 00 >′′⋅f . Metoda are o interpretare geometrică sugestivă (figura 1).

    A0

    A1

    A2

    Fig.1 - Metoda Newton-Raphson - interpretare geometrică

    Potrivit formulelor din Geometria analitică, ecuaţia tangentei dusă la curba y = f(x) într-un punct oarecare, de abscisă xk , este

    ( ) ( )( )kkk xxxfxfy −′=− . (3)

    Dacă se notează cu xk+1 abscisa punctului în care această tangentă

    intersectează axa Ox (obţinut pentru y = 0 în ecuaţia (3)) şi se exprimă xk+1 , se obţine formula lui Newton de mai sus.

    În aceste condiţii, se poate observa că fiecare valoare, xk+1, din şirul aproximaţiilor succesive ale soluţiei ecuaţiei rezultă ca abscisa punctului de intersecţie, cu axa Ox, a tangentei la graficul funcţiei duse în punctul precedent, Ak , de abscisă xk . Metoda se mai numeşte şi metoda tangentelor variabile, deoarece panta fiecărei tangente, pe baza căreia se generează punctele din şir, are, în general, panta diferită de a celorlalte tangente (precedente sau următoare).

    Funcţia φ, definită ca 28

  • CAPITOLUL 4 – Rezolvarea ecuaţiilor algebrice prin metoda Newton - Raphson

    ( ) ( )( )xfxfxx′

    −=ϕ (4)

    poartă numele de funcţie de iterare a metodei Newton - Raphson. Se poate verifica imediat că

    ( ) ξ=ξϕ , ( ) 0=ξϕ′ , ( ) 0≠ξϕ ′′ . (5)

    Cu această notaţie, şirul aproximaţiilor succesive ale soluţiei ecuaţiei date se poate genera după formula xk+1 = φ(xk), k = 0, 1, 2, . . . (6)

    Pentru estimarea modului în care se propagă eroarea în cazul metodei de faţă, precum şi pentru determinarea ordinului de convergenţă, se consideră dezvoltarea în serie Taylor, într-o vecinătate a punctului ξ,

    ( ) ( ) ( ) ( ) ( ) ( ) +ξϕ ′′⋅ξ−+ξϕ′⋅ξ−+ξϕ=ϕ!2

    x!1

    xx2

    . . . (7)

    Dacă în această dezvoltare se înlocuieşte x cu xn, se reţin doar termenii

    de rang 0, 1 şi 2 şi se au în vedere relaţiile (5), rezultă

    ( ) ( ) ( )ξϕ ′′⋅ξ−+ξ≅ϕ2

    xx

    2n

    n . (8)

    Ţinând cont şi de (6), se poate scrie egalitatea

    ( ) ( )2n1n x2x ξ−⋅δϕ ′′

    ≅ξ−+ , (9)

    ceea ce este echivalent cu

    ( ) 2n1n 2 εξϕ ′′

    ≅ε + . (10)

    Din relaţia (10) rezultă, pe de o parte că metoda Newton - Raphson

    este caracterizată de o convergenţă pătratică, fiind una dintre metodele cele mai rapide de rezolvare a unei ecuaţii de forma f(x) = 0; pe de altă parte, însă, metoda reclamă evaluarea funcţiei f şi a derivatei sale la fiecare iteraţie, ceea ce

    29

  • METODE NUMERICE

    poate fi, uneori, dificil (sau chiar imposibil, pentru funcţii care nu sunt cunoscute analitic, ci doar tabelar).

    2. Algoritmul metodei program Metoda Newton_Raphson

    real x0 ; punctul de pornire a căutării iteraţiilor real er ; eroarea maximă admisibilă real xvechi, xnou ; valoarea precedentă / curentă a soluţiei întreg n ; numărul de iteraţii efectuate întreg k ; contorul iteraţiilor

    funcţia f(x) ; funcţia care defineşte ecuaţia real x f = …………… ; expresia funcţiei f întoarce f

    funcţia df(x) ; derivata funcţiei f real x df = …………… ; expresia funcţiei df întoarce df

    citeşte x0, er k = 0 ; iniţializarea contorului xnou = x0 ; iniţializarea şirului aproximaţiilor succesive repetă xvechi = xnou k = k + 1 xnou = xvechi - f(xvechi) / df(xvechi) până când erxvechixnou

  • CAPITOLUL 4 – Rezolvarea ecuaţiilor algebrice prin metoda Newton - Raphson

    31

    pentru er2 = 10-3 sunt necesari n = 3 iteraţii şi soluţia aproximativă este x = 0.7391;

    pentru er2 = 10-6 sunt necesari n = 4 iteraţii şi soluţia aproximativă este x = 0.7390851;

    pentru er2 = 10-9 sunt necesari n = 5 iteraţii şi soluţia aproximativă este x = 0.7390851332.

    Rezultatele confirmă că metoda Newton - Raphson are o convergenţă mult mai bună decât a celorlalte prezentate până acum. 4. Chestiuni de verificare

    Să se rezolve prin metoda Newton - Raphson ecuaţiile de mai jos, de forma f(x) = 0, cu precizia specificată, ştiind că admit câte o soluţie pe intervalele indicate. Să se compare numărul de iteraţii necesare cu cel de la rezolvarea aceloraşi ecuaţii prin metoda generală şi metoda bisecţiei.

    4.1. f(x) = x2 – 5x + 4, er = 10-3, ( )3,0ξ∈ . 4.2. f(x) = x3 - 8x2 + 19x -12, er = 10-5, ( )2,1ξ −∈ . 4.3. f(x) = xlnxsin − , er = 10-6, ( )π,0ξ∈ .

  • CAPITOLUL 5 – Rezolvarea ecuaţiilor algebrice prin metoda punctului fix

    Capitolul 5

    REZOLVAREA ECUAŢIILOR ALGEBRICE PRIN METODA PUNCTULUI FIX.

    1. Principiul metodei

    Se spune că o funcţie are un punct fix , dacă g(ξ) = ξ

    (fig.1). Altfel spus, o funcţie are unul sau mai multe puncte fixe dacă graficul său intersectează odată - sau de mai multe ori - prima bisectoare.

    R:Dg → D∈ξ

    Fig.1 - Interpretarea geometrică a punctelor fixe ale unei funcţii

    33

  • METODE NUMERICE

    Fie o ecuaţie de forma f(x) = 0, unde [ ] R:b,af → şi să presupunem că ecuaţia considerată are o unică soluţie reală [ ]b,a∈ξ .

    Ecuaţia de mai sus poate fi scrisă, adunând x în ambii membri, în forma echivalentă g(x) = x (unde s-a notat f(x) + x = g(x)); după cum se va arăta într-un caz concret, această transformare a ecuaţiei iniţiale se poate realiza, în general, în mai multe moduri. Este uşor de observat că rădăcina ecuaţiei iniţiale satisface egalitatea g(ξ) = ξ, deci este un punct fix pentru funcţia g.

    Cu ajutorul funcţiei g astfel obţinute se poate genera, pornind de la un număr arbitrar, x0, un şir de numere reale, utilizându-se formula de recurenţă

    ( ) 1n,xgx n1n ≥=+ . (1)

    Dacă funcţia g este derivabilă pe intervalul [a, b], iar derivata acesteia

    îndeplineşte condiţia ( ) ( ) [ ]b,ax,1xg ∈∀

  • CAPITOLUL 5 – Rezolvarea ecuaţiilor algebrice prin metoda punctului fix

    2. Algoritmul metodei program Metoda punctului fix

    real x0 ; punctul de pornire a căutării iteraţiilor real er ; eroarea maximă admisibilă real xvechi, xnou ; valoarea precedentă / curentă a soluţiei întreg n ; numărul de iteraţii efectuate întreg k ; contorul iteraţiilor

    funcţia g(x) ; funcţia de punct fix real x g = …………… ; expresia funcţiei g întoarce g

    citeşte x0, er k = 0 ; iniţializarea contorului

    xnou = x0 ; iniţializarea şirului aproximaţiilor succesive

    repetă xvechi = xnou k = k + 1 xnou = g(xvechi) până când erxvechixnou

  • METODE NUMERICE

    36

    ◊ pentru er = 10-3 şi x0 = 2π ⇒x1 = 0.0008, x2 = 0.9999, x3 = 0.5403,

    x4 =0.8575, x5 = 0.6543, x6 = 0.7935, x7 = 0.7014 . . . x19 = 0.7388;

    ◊ pentru er = 10-6 şi x0 = 0 ⇒x35 = 0.7390855;

    ◊ pentru er = 10-9 şi x0 = 0 ⇒x53 = 0.7390851335.

    Se poate observa cum oscilează valorile şirului aproximaţiilor succesive, de o parte şi de alta a soluţiei exacte; de asemenea, se poate remarca şi convergenţa mai lentă a metodei, faţă de metoda Newton – Raphson.

    4. Chestiuni de verificare

    A. Fie ecuaţia f(x) = x2 - 2x - 3 = 0, având rădăcinile ξ1 = -1 şi ξ2 = 3. Să se studieze posibilitatea rezolvării acestei ecuaţii, prin metoda punctului fix, în următoarele trei cazuri:

    4.1. ( ) 3x2xg += , x0 = 4;

    4.2. ( )2x

    3xg−

    = , x0 = 0;

    4.3. ( )2

    3xxg

    2n −= , x0 = 4.

    B. Să se rezolve prin metoda Newton - Raphson ecuaţiile de mai jos,

    de forma f(x) = 0, cu precizia specificată, ştiind că admit câte o soluţie pe intervalele indicate. Să se compare numărul de iteraţii necesare cu cel de la rezolvarea aceloraşi ecuaţii prin metoda generală şi metoda bisecţiei.

    4.4. f(x) = x2 – 5x + 4, er = 10-3, ( )3,0ξ∈ . 4.5. f(x) = x3 - 8x2 + 19x -12, er = 10-5, ( )2,1ξ −∈ . 4.6. f(x) = , er = 10-6, xlnxsin − ( )π,0ξ∈ .

  • CAPITOLUL 6 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss

    Capitolul 6

    REZOLVAREA SISTEMELOR DE ECUAŢII LINIARE PRIN METODA GAUSS.

    1. Principiul metodei

    În primul rând, trebuie făcută precizarea că metodele numerice pentru

    rezolvarea sistemelor de ecuaţii, care urmează a fi prezentate în continuare, sunt destinate abordării sistemelor de n ecuaţii cu n necunoscute, cu coeficienţi reali, despre care se cunoaşte, apriori, faptul că sunt compatibile.

    Un sistem de forma

    , (1)

    ⎪⎪⎩

    ⎪⎪⎨

    =⋅++⋅+⋅

    =⋅++⋅+⋅=⋅++⋅+⋅

    nnnn22n11n

    2nn2222121

    1nn1212111

    bxa...xaxa.............................................................bxa...xaxabxa...xaxa

    în care pentru i = 1, 2, . . . n, j = 1, 2, . . . n, poartă numele de sistem de ecuaţii liniare.

    Rb,a iij ∈

    Detaliind, în continuare, trebuie arătat că metodele numerice utilizate pentru rezolvarea sistemelor de ecuaţii liniare se împart în două categorii: metode directe, care determină soluţia exactă a sistemului şi metode iterative, care - pornind de la o soluţie iniţială arbitrară - determină un şir de aproximaţii succesive ale vectorului - soluţie a sistemului. 37

  • METODE NUMERICE

    Cea mai veche, cea mai bine cunoscută şi, totodată, cea mai utilizată metodă de rezolvare numerică a sistemelor de ecuaţii algebrice liniare este metoda Gauss, care face parte din categoria metodelor directe; principiul metodei este prezentat în continuare.

    Pornindu-se de la un sistem de forma (1), se construieşte o matrice de forma

    ⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜

    =

    nnn2n1n

    2n22221

    1n11211

    ba...aa...............ba...aaba...aa

    A , (2)

    rezultată prin alipirea la matricea coeficienţilor sistemului, A, a vectorului coloană a termenului liber, B. În continuare, algoritmul metodei urmăreşte transformarea matricei A într-o matrice ale cărei elemente situate sub diagonala a11 - a22 - . . . -ann să fie nule; trebuie parcurşi următorii paşi:

    se calculează o serie de multiplicatori de forma 11

    1i1i a

    al = , după care din

    fiecare linie „i” se scade linia întâi înmulţită cu li1, i = 2, 3, . . . n; în cazul în care a11 = 0, se schimbă prima linie cu o alta, care să aibă primul element nenul, după care se procedează la cele de mai sus. Rezultă, astfel, după renotare, o matrice de forma

    ⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜

    =

    )1(n

    )1(nn

    )1(2n

    )1(2

    )1(n2

    )1(22

    )1(1

    )1(n1

    )1(12

    )1(11

    )1(

    ba...a0...............

    ba...a0ba...aa

    A ; (3)

    se calculează o nouă serie de multiplicatori, de forma )1(

    22

    )1(2i

    2ia

    al = , după

    care din fiecare linie „i” se scade linia întâi înmulţită cu li2, i = 3, 4, . . . n; în cazul în care a22(1) = 0, se schimbă a doua linie cu o alta, care să aibă al doilea element nenul, după care se procedează la cele de mai sus. Rezultă, astfel, după o nouă renotare, o altă matrice de forma

    ⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜

    =

    )2(n

    )2(nn

    )2(2

    )2(n2

    )2(22

    )2(1

    )2(n1

    )2(12

    )2(11

    )2(

    ba...00...............

    ba...a0ba...aa

    A ; (4)

    38

  • CAPITOLUL 6 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss

    se continuă aplicarea procedurii până când, după n-1 paşi, se obţine matricea

    ⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜

    =

    −−

    −−−

    −−−−

    )1n(n

    )1n(nn

    )1n(2

    )1n(n2

    )1n(22

    )1n(1

    )1n(n1

    )1n(12

    )1n(11

    )1n(

    ba...00...............

    ba...a0ba...aa

    A , (5)

    în care toate elementele de sub diagonala a11(n-1), a22(n-1), . . . ann(n-1) sunt nule. Dacă se renunţă, în notaţiile din această ultimă matrice, la exponenţii care indică numărul pasului şi se reface, pe baza ei, sistemul de ecuaţii, rezultă:

    (6)

    ⎪⎪⎪

    ⎪⎪⎪

    =⋅=⋅+⋅

    =⋅+⋅++⋅=⋅+⋅++⋅+⋅

    −−−−−

    −−

    −−

    nnnn

    1nnn1n1n1n1n

    2nn21n1n2222

    1nn11n1n1212111

    bxabxaxa

    ............................................................................bxaxa.........xabxaxa...........xaxa

    din ultima ecuaţie a sistemului (6) se determina xn, după care, înlocuind în

    penultima ecuaţie pe xn, se determină xn-1 şi aşa mai departe, până când, în final, se înlocuiesc în prima ecuaţie valorile, deja aflate, pentru x2, x3, . . . xn şi se calculează x1.

    Conform [11], numărul N de operaţii aritmetice simple necesar a fi

    efectuate pentru rezolvarea, prin metoda Gauss, a unui sistem de ecuaţii liniare de rang n este

    3

    nn4N3 −

    = (7)

    Metoda Gauss, fiind o metodă directă, conduce la găsirea soluţiei

    exacte a sistemului, în măsura în care acesta este compatibil. 2. Algoritmul metodei program Metoda Gauss

    real l ; valoarea curentă a multiplicatorului de linie real s ; sumă auxiliară întreg n ; dimensiunea sistemului

    39 întreg i, j, k ; contori

  • METODE NUMERICE

    tablou real A(n,n) ; matricea sistemului tablou real B(n) ; vectorul-coloană a termenului liber tablou real X(n) ; vectorul-soluţie curentă

    ; introducere date de intrare

    citeşte n pentru i = 1, n repetă citeşte b(i) pentru j = 1, n repetă citeşte a(i,j)

    ; eliminare

    pentru k = 1, n-1 repetă pentru i = k+1, n repetă l = a(i,k) / a(k,k) pentru j = k+1, n repetă a(i,j) = a(i,j) - l·a(k,j) b(i) = b(i) - l·b(k)

    ; retro-substituţie

    x(n) = b(n) / a(n,n) scrie x(n) pentru i = n-1, 1, -1 repetă s = b(i) pentru j = n, i+1, -1 repetă s = s - a(i,j)·x(j) x(i) = s / a(i,i) scrie x(i) stop 3. Exemplu de aplicare

    Să se rezolve sistemul ⎪⎩

    ⎪⎨

    =++=++

    =++

    31x17x4x228x10x3x4

    11xxx2

    321

    321

    321

    .

    Se construieşte matricea extinsă a sistemului, ⎟⎟⎟

    ⎜⎜⎜

    ⎛=

    31174228103411312

    A .

    Se calculează multiplicatorii 224

    aa

    l11

    2121 === , 12

    2aa

    l11

    3131 === şi se

    efectuează operaţiile L2 - l21 · L1 şi L3 - l31 · L1 (unde Li înseamnă linia „i”).

    40

  • CAPITOLUL 6 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss

    41

    Rezultă ⎟⎟⎟

    ⎜⎜⎜

    ⎛=

    2014306410

    11312A

    )1(; se calculează, apoi, multiplicatorul

    313

    a

    al

    )1(22

    )1(32

    32 === şi se efectuează L3 - l32 · L2, după care se obţine

    ⎟⎟⎟

    ⎜⎜⎜

    ⎛=

    22006410

    11312A

    )2(. Sistemul iniţial poate fi rescris, acum, sub forma

    . Urmează imediat, din ultima ecuaţie, x3 = 1, apoi, din a

    doua, x2 = 2 şi, în fine, din prima ecuaţie, x1 = 3.

    ⎪⎩

    ⎪⎨

    ==+=++

    2x26x4x

    11x3xx2

    3

    32

    321

    4. Chestiuni de verificare

    Să se rezolve, prin metoda Gauss, sistemele de ecuaţii:

    4.1. ⎪⎩

    ⎪⎨

    −=−+=++−−=+−

    .8z6yx2;3z2y4x;5z2y3x7

    4.2.

    ⎪⎪⎩

    ⎪⎪⎨

    −=−++−=+−+

    −=++−=−+−

    .1x4xxx;1x2x6x2x

    ;2xx3x7x;3x2xxx5

    4321

    4321

    4321

    4321

  • CAPITOLUL 7 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Jacobi

    Capitolul 7

    REZOLVAREA SISTEMELOR DE ECUAŢII LINIARE PRIN METODA JACOBI.

    1. Principiul metodei

    Metoda lui Jacobi este o metodă iterativă, utilizabilă pentru rezolvarea

    numerică a sistemelor de ecuaţii algebrice liniare. Fie sistemul

    , (1)

    ⎪⎪⎩

    ⎪⎪⎨

    =⋅++⋅+⋅

    =⋅++⋅+⋅=⋅++⋅+⋅

    nnnn22n11n

    2nn2222121

    1nn1212111

    bxa...xaxa.............................................................bxa...xaxabxa...xaxa

    în care pentru i = 1, 2, . . . n, j = 1, 2, . . . n. Rb,a iij ∈

    Algoritmul metodei Jacobi începe prin a pune în evidenţă, în partea stângă a semnului egal, în ecuaţia numărul k a variabilei xk, k = 1, 2, . . . n. Evident, pentru a putea rescrie astfel sistemul, trebuie ca toţi coeficienţii de forma akk să fie nenuli; în cazul în care această condiţie nu este satisfăcută, se schimbă ecuaţiile între ele, în aşa fel încât pe diagonala principală a matricei sistemului să nu existe nici un element nul şi se renumerotează necunoscutele în concordanţă cu schimbările efectuate.

    Rezultă astfel:

    43

  • METODE NUMERICE

    ( )

    ( )

    ( )⎪⎪⎪

    ⎪⎪⎪

    ⋅−−⋅−⋅−⋅=

    ⋅−−⋅−⋅−⋅=

    ⋅−−⋅−⋅−⋅=

    −− .xa...xaxaba1x

    .................................................................................

    ;xa...xaxaba1x

    ;xa...xaxaba1x

    1n1nn22n11nnnn

    n

    nn2323121222

    2

    nn1313212111

    1

    (2)

    Pentru uşurinţa scrierii, se trece la transcrierea sistemului sub forma

    unei ecuaţii matriceale x = A · x + u , (3)

    în care s-au făcut notaţiile

    ⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜

    =

    n

    2

    1

    x

    xx

    xM

    ,

    ⎟⎟⎟⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜⎜⎜⎜

    =

    nn

    n

    22

    2

    11

    1

    ab

    abab

    uM

    ,

    ⎟⎟⎟⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜⎜⎜⎜

    −=

    0aa

    aa

    aa

    0aa

    aa

    aa

    0

    A

    nn

    2n

    nn

    1n

    22

    n2

    22

    21

    11

    n1

    11

    12

    L

    MMMM

    L

    L

    . (4)

    Principiul metodei lui Jacobi se bazează pe relaţia (3), unde în

    membrul stâng se scrie vectorul soluţiilor la pasul k + 1, iar în membrul drept acelaşi vector, la pasul k. Rezultă, astfel

    uxAx )k()1k( +⋅=+ . (5)

    Evident, demararea calculelor impune adoptarea unui vector iniţial, x0,

    care poate fi ales arbitrar. Egalitatea (5) mai poate fi scrisă şi sub forma

    ⎟⎟⎟

    ⎜⎜⎜

    ⎛⋅−= ∑

    ≠=

    + n

    ij1j

    )k(jiji

    ii

    )1k(i xaba

    1x , i = 1, 2, . . . n. (6)

    Cu ajutorul relaţiei (5) se poate genera un şir de aproximaţii succesive

    ale vectorului-soluţie a sistemului, care - în anumite condiţii - converge către soluţia exactă.

    În această situaţie, se pot formula condiţiile de convergenţă ale metodei lui Jacobi; dacă 44

  • CAPITOLUL 7 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Jacobi

    1) ; 0Alim kk

    =∞→

    2) toate valorile proprii ale matricei A sunt, în modul, mai mici decât unitatea,

    atunci şirul de aproximaţii succesive ale vectorului-soluţie, generat cu relaţia (5), converge către soluţia exactă.

    Condiţia 2) de mai sus este echivalentă, [13], cu relaţia

    ,1aan

    ij1j ii

    ij

  • METODE NUMERICE

    tablou real X(n) ; vectorul-soluţie la iteraţia anterioară tablou real Xn(n) ; vectorul-soluţie curentă

    ; introducere date de intrare şi iniţializare a vectorului-soluţie

    citeşte n, er pentru i = 1, n repetă citeşte b(i) pentru j = 1, n repetă citeşte a(i,j) x(i) = 0

    ; iteraţii

    repetă err = 0 pentru i = 1, n repetă s = b(i) pentru j = 1, n repetă s = s - a(i, j)·x(j) s = s + a(i,i)·x(i) xn(i) = s / a(i,i) s = ( ) ( )ixixn − dacă err < s atunci err = s scrie err pentru i = 1, n repetă x(i) = xn(i) scrie x(i) k = k + 1 până când err < er stop 3. Exemplu de aplicare

    Să se rezolve, prin metoda iterativă a lui Jacobi, sistemul

    ⎪⎩

    ⎪⎨

    −=⋅−⋅+=−⋅+⋅−=⋅+−⋅

    .11x6x3x;4xx5x3;11x2xx7

    321

    321

    321

    Vom începe prin a constata că matricea sistemului îndeplineşte condiţia (7):

    - pentru prima linie, 173

    721

    aaa

    11

    1312

  • CAPITOLUL 7 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Jacobi

    - pentru a doua linie, 154

    513

    aaa

    22

    2321

  • METODE NUMERICE

    48

    Ţinând cont că soluţiile exacte ale sistemului sunt x1 = 1, x2 = 2 şi x3 = 3, se poate observa, din tabel, modul cum aproximaţiile succesive converg către valorile corecte.

    4. Chestiuni de verificare

    Să se rezolve, prin metoda Jacobi, sistemele de ecuaţii de mai jos, după ce se va fi verificat, în prealabil, îndeplinirea criteriului de convergenţă; să se compare rezultatele cu cele obţinute, la rezolvarea aceloraşi sisteme, la lucrarea 6.

    4.1. ⎪⎩

    ⎪⎨

    −=−+=++−−=+−

    .8z6yx2;3z2y4x;5z2y3x7

    4.2.

    ⎪⎪⎩

    ⎪⎪⎨

    −=−++−=+−+

    −=++−=−+−

    .1x4xxx;1x2x6x2x

    ;2xx3x7x;3x2xxx5

    4321

    4321

    4321

    4321

  • CAPITOLUL 8 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss - Seidel

    Capitolul 8

    REZOLVAREA SISTEMELOR DE ECUAŢII LINIARE PRIN METODA GAUSS - SEIDEL.

    1. Principiul metodei

    Metoda Gauss-Seidel este, ca şi metoda Jacobi, tot o metodă iterativă

    de rezolvare a sistemelor de ecuaţii liniare; mai mult, se poate afirma că metoda Gauss-Seidel este, în fapt, o variantă îmbunătăţită a metodei Jacobi.

    Spre deosebire de aceasta, care nu foloseşte în iteraţia curentă vectorul x(k), până când toate componentele sale vor fi fost determinate, metoda Gauss-Seidel foloseşte aceste componente, pe măsură ce ele sunt calculate. Astfel, la pasul (k+1) se folosesc în calculul necunoscutei xi(k+1) valorile necunoscutelor x1(k+1), x2(k+1), . . . xi-1(k+1), deja determinate în iteraţia curentă.; formula

    ⎟⎟⎟

    ⎜⎜⎜

    ⎛⋅−= ∑

    ≠=

    + n

    ij1j

    )k(jiji

    ii

    )1k(i xaba

    1x , i = 1, 2, . . . n. (1)

    devine, în acest caz

    ( ) ( ) ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛⋅−⋅−= ∑∑

    +=

    =

    ++ n

    1ij

    kjij

    1i

    1j

    1kjiji

    ii

    )1k(i xaxaba

    1x , i = 1, 2, . . . n. (2)

    49

  • METODE NUMERICE

    Condiţia de convergenţă

    ,1aan

    ij1j ii

    ij

  • CAPITOLUL 8 – Rezolvarea sistemelor de ecuaţii liniare prin metoda Gauss - Seidel

    s = (s + a(i,i)·x(i)) / a(i,i) dacă err < )i(xs − atunci err = )i(xs − x(i) = s scrie x(i) scrie err k = k+1 până când err < er stop 3. Exemplu de aplicare

    Să se rezolve, prin metoda iterativă Gauss - Seidel, sistemul

    ⎪⎩

    ⎪⎨

    −=⋅−⋅+=−⋅+⋅−=⋅+−⋅

    .11x6x3x;4xx5x3;11x2xx7

    321

    321

    321

    S-a considerat acelaşi sistem ca în cazul metodei lui Jacobi, pentru a

    putea evidenţia mai bine ceea ce metoda Gauss-Seidel are specific. Astfel, relaţiile utilizate, de această dată, pentru generarea şirului de vectori - aproximaţii succesive ale soluţiei, devin

    ( )( )( )

    ( ) ( ) ( )( )⎪⎪⎪

    ⎪⎪⎪

    ⋅−−−⋅−=

    +⋅+⋅=

    ⋅−+⋅=

    +++

    ++

    +

    .x3x1161x

    ;xx3451x

    ;x2x1171x

    1k2

    1k1

    1k3

    k3

    )1k(1

    )1k(2

    )k(3

    )k(2

    )1k(1

    Utilizând un program de calcul, bazat pe algoritmul metodei Gauss-

    Seidel, cu aceleaşi date iniţiale ca în exemplul prezentat la lucrarea 7, se obţin rezultatele din tabelul 1.

    Tab. 1 Nr.

    iteraţiei x1 x2 x3 err

    1 1.571 1.743 2.967 2.967 2 0.973 1.977 2.984 0.599 3 1.001 1.997 2.999 0.028 4 0.9999 1.9997 2.9999 0.0022 5 1.0000 1.9999 2.9999 0.0002

    51

  • METODE NUMERICE

    52

    Evident, şirul de aproximaţii succesive converge mult mai rapid către soluţia exactă - pentru aceeaşi eroare maximă admisibilă ca în cazul metodei lui Jacobi, sunt necesare doar 5 iteraţii, în loc de 13, pentru găsirea soluţiei aproximative a sistemului. 4. Chestiuni de verificare

    Să se rezolve, prin metoda Gauss - Seidel, sistemele de ecuaţii de mai jos; să se compare rezultatele cu cele obţinute, la rezolvarea aceloraşi sisteme, la lucrările 6 şi 7.

    4.1. ⎪⎩

    ⎪⎨

    −=−+=++−−=+−

    .8z6yx2;3z2y4x;5z2y3x7

    4.2.

    ⎪⎪⎩

    ⎪⎪⎨

    −=−++−=+−+

    −=++−=−+−

    .1x4xxx;1x2x6x2x

    ;2xx3x7x;3x2xxx5

    4321

    4321

    4321

    4321

  • CAPITOLUL 9 – Polinomul de interpolare al lui Lagrange

    Capitolul 9

    POLINOMUL DE INTERPOLARE AL LUI LAGRANGE.

    1. Noţiuni teoretice

    Fie funcţia , dată sub forma [ ] Rb,a:f →

    xk x0 x1 ............... xn f(xk) f(x0) f(x1) ............... f(xn)

    unde bxxxxa m210 =

  • METODE NUMERICE

    ( ) ( ) ( )( ) ( ) ( )

    ( ) ( ) ( )⎪⎪⎩

    ⎪⎪⎨

    =ϕ⋅++ϕ⋅+ϕ⋅

    =ϕ⋅++ϕ⋅+ϕ⋅=ϕ⋅++ϕ⋅+ϕ⋅

    .yxyxyxy

    ;yxyxyxy;yxyxyxy

    nnnnn11n00

    11nn111100

    00nn011000

    K

    M

    K

    K

    (3)

    O soluţie a sistemului este, în mod evident, cea pentru care

    ( ) ( ) ( ) ( )( ) ( ) ( ) ( )

    ( ) ( ) ( ) ( )

    ( ) ( ) ( ) ( )⎪⎪⎪

    ⎪⎪⎪

    =ϕ=ϕ=ϕ=ϕ

    =ϕ=ϕ=ϕ=ϕ

    =ϕ=ϕ=ϕ=ϕ=ϕ=ϕ=ϕ=ϕ

    .1x;0x;0x;0x

    ;0x;1x;0x;0x

    ;0x;0x;1x;0x;0x;0x;0x;1x

    nnnkn1n0

    knkkk1k0

    1n1k1110

    0n0k0100

    KK

    M

    KK

    M

    KK

    KK

    (4)

    Rezultă că polinomul φk, spre exemplu, se anulează în n puncte şi ia valoarea 1 într-un singur punct - xk. De aici, se poate adopta o formă simplă pentru φk şi anume

    ( ) ( )( ) ( )( ) ( )n1k1k10kk xxxxxxxxxxax −−−−−⋅=ϕ +− KK . (5)

    Constanta ak se determină impunând condiţia ca în punctul xk

    polinomul φk să ia valoarea 1; se obţine

    ( )( ) ( )( ) ( )nk1kk1kk1k0kk xxxxxxxxxx1a

    −−−−−=

    +− KK, (6)

    de unde, rezultă

    ( ) ( )( ) ( )( ) ( )( )( ) ( )( ) ( )nk1kk1kk1k0kn1k1k10

    k xxxxxxxxxxxxxxxxxxxx

    x−−−−−

    −−−−−=ϕ

    +−

    +−

    KK

    KK. (7)

    În fine, se obţine forma polinomului de interpolare Lagrange de gradul n:

    ( ) ( )( ) ( )( ) ( )( )( ) ( )( ) ( )∑= +−+−

    −−−−−−−−−−

    ⋅=n

    0k nk1kk1kk1k0k

    n1k1k10kn xxxxxxxxxx

    xxxxxxxxxxyxL

    KK

    KK (8)

    Dacă se face notaţia

    ( ) ( )( )∏≠= −

    −=

    n

    ki0i ik

    ik xx

    xxxa , k = 0, 1, 2, . . . n, (9)

    54

  • CAPITOLUL 9 – Polinomul de interpolare al lui Lagrange

    expresia polinomului Lagrange se poate scrie mai simplu sub forma

    ( ) ( )∑=

    ⋅=n

    0kkkn xayxL . (10)

    Polinomul de interpolare Lagrange coincide cu funcţia f în nodurile de interpolare, dar între nodurile de interpolare poate să se abată destul de mult de la valorile acesteia. Pentru a putea evalua ordinul de mărime al acestor abateri, se consideră funcţia abatere

    ( ) ( ) ( )xLxfx nn −=ε ; (11)

    pentru a determina forma analitică a acestei funcţii, se consideră, mai întâi, o funcţie auxiliară h, de forma

    ( ) ( ) ( ) ( )( ) ( )n10n xxxxxxKxLxfxh −−−⋅−−= K , (12)

    în care K este o constantă care urmează a fi determinată. Se observă că h(xk) = 0 pentru k = 0, 1, 2, . . . n, deci funcţia h are

    (n+1) zerouri, oricare ar fi valoarea lui K; această valoare se poate determina impunând ca funcţia h să se anuleze şi într-un punct ( ) kn,0 x,xx ≠α∈α ;se obţine, de aici

    ( ) ( )

    ( )( ) ( )n10n

    xxxLf

    K−α−α−α

    α−α=

    K. (13)

    Dacă se ţine cont şi de rădăcina α, se observă că funcţia h are (n+2) zerouri pe intervalul [x0, xn] şi, în plus, satisface condiţiile teoremei lui Rolle pe fiecare dintre cele (n+1) subintervale care se formează folosind nodurile interne x1, x2, . . . xn-1, α.

    Rezultă că prima derivată a funcţiei h, h’, are cel puţin (n+1) zerouri pe [x0, xn]; raţionând asemănător, se observă că a doua derivată, h”, are cel puţin n zerouri pe [x0, xn] ş.a.m.d. până la derivata de ordin n, care trebuie să aibă cel puţin un punct ( n0 x,x )∈ξ în care să se anuleze, ceea ce conduce la relaţia

    ( ) ( )( )!1n

    fK1n

    =+

    . (14)

    Egalând cele două valori obţinute pentru K, conform relaţiilor (13) şi (14), rezultă

    ( ) ( ) ( )( ) ( )( ) ( )( ) ( .xxx!1n

    fLf n101n

    nn −α−α−α⋅+ξ

    =α−α=αε )+

    L (15)

    Deoarece valoarea lui α este oarecare în intervalul [x0, xn], kx≠α , (dar pentru α = xk, evident, εn(α) = 0) pentru funcţia eroare rezultă expresia: 55

  • METODE NUMERICE

    ( )( ) ( )( ) ( )( ) ( n10

    1n

    n xxxxxx!1nfx −−−⋅

    =ε+

    K ), (16)

    unde ξ este un punct oarecare din intervalul (x0, xn). Dacă funcţia f are derivata de ordinul (n+1) mărginită, adică dacă

    există M > 0 astfel încât pentru orice ( )n0 x,xx∈ să fie satisfăcută relaţia ( ) ( ) Mxf 1n ≤+ , atunci, conform (16), eroarea de aproximare prin polinomul de

    interpolare al lui Lagrange este, la rândul său mărginită:

    ( ) ( ) n10n xxxxxx!1nMx −⋅⋅−⋅−⋅+

    ≤ε K . (17)

    2. Algoritmul metodei program Polinomul Lagrange

    întreg n ; gradul polinomului întreg j, k ; contori

    tablou real x(n), y(n) ; nodurile de interpolare real x0 ;abscisa punctului de interpolare real y0 ; valoarea interpolată a funcţiei real p ; variabilă auxiliară

    ; introducerea datelor de intrare

    citeşte n citeşte x0 pentru k = 0, n repetă citeşte x(k) citeşte y(k)

    ; construcţia polinomului Lagrange

    y0 = 0 pentru k = 0, n repetă pentru j = 0, n repetă dacă j≠ k atunci

    ( )( ) ( )jxkxjxxpp

    −−

    ⋅=0

    y0 = y0 + y(k)·p scrie y0

    stop

    56

  • CAPITOLUL 9 – Polinomul de interpolare al lui Lagrange

    3. Exemplu de aplicare

    Fie următoarea funcţie, dată tabelar:

    xk -2 0 2 4 6 8 10 12 f(xk) 0.25 1 4 16 64 256 1024 4096

    Să se calculeze, prin interpolare cu un polinom Lagrange, valoarea funcţiei f în punctul x = 5.

    Trebuie observat, mai întâi, că punctele din tabel au fost extrase din mulţimea de valori ale funcţiei f(x) = 2x; astfel, atunci când se va calcula valoarea aproximată prin interpolare, se va putea aprecia şi calitatea aproximării, valoarea exactă fiind cunoscută (25 = 32).

    Dacă se utilizează pentru interpolare doar cele două puncte din mijlocul tabelei de valori (x0 = 4 şi x1 = 6), polinomul de interpolare este de gradul întâi (interpolare liniară):

    ( ) 80x24464x64

    646x16xL1 −⋅=−

    −⋅+

    −−

    ⋅= ;

    rezultă, de aici, L1(5) = 40. Eroarea relativă de aproximare este, în acest

    caz ( ) %2510032

    324051 =⋅−

    =ε - evident, o valoare inacceptabil de mare.

    Dacă se utilizează patru noduri de interpolare (x0 = 2, x1 = 4, x2 = 6 şi x3 = 8) polinomul Lagrange de gradul trei rezultă

    ( ) ( )( )( )( )( )( )

    ( )( )( )( )( )( )

    ( )( )( )( )( )( )

    ( )( )(( )( )( )

    ) ,6848286x4x2x256

    8646268x4x2x64

    8464248x6x2x16

    8262428x6x4x4xL3

    −−−−−−

    ⋅+−−−−−−

    ⋅+

    +−−−−−−

    ⋅+−−−−−−

    ⋅=

    respectiv ( ) .80x78x245x

    49xL 233 −⋅+⋅−⋅= Se obţine, astfel,

    L3(5) =28.750, cu o eroare relativă de -10.156 % faţă de valoarea exactă.

    În cazul utilizării a şase noduri de interpolare (de la x0 = 0 la x6 = 10), cu ajutorul unui program de calcul special destinat pentru construcţia polinomului de interpolare Lagrange, se obţine L5(5) = 33.496 cu ε5(5) = 4.675 %.

    Dacă se utilizează ca noduri de interpolare a tuturor celor opt puncte din tabel, cu acelaşi program se obţine L7(5) = 31.271, respectiv ε7(5) = -2.278 %.

    57

  • METODE NUMERICE

    58

    Evident, în exemplul dat nodurile de interpolare au fost alese relativ rare, iar punctul în care s-a aproximat cu polinomul Lagrange valoarea funcţiei este amplasat cât mai defavorabil posibil (la mijlocul distanţei dintre două noduri succesive); cu toate acestea, se poate remarca, în cazul utilizării mai multor noduri de interpolare, o precizie relativ buna de aproximare. 4. Chestiuni de verificare 4.1. Fie următoarea funcţie, dată tabelar:

    xk -2 0 2 6 8 10 12 f(xk) 0.25 1 4 64 256 1024 4096

    Să se calculeze, prin interpolare cu un polinoame Lagrange, de grad 3, 4 şi 5, valoarea funcţiei f în punctele x0 = 1, 2, 3, 4, 5. 4.2. Fie următoarea funcţie, dată tabelar:

    xk -2 0 2 4 6 f(xk) 0.11 1 9 81 729

    Să se calculeze, prin interpolare cu un polinoame Lagrange, de grad 2, 3, şi 4, valoarea funcţiei f în punctele x0 = -1, 1, 3, 5.

  • CAPITOLUL 10 – Polinomul de interpolare al lui Newton

    Capitolul 10

    POLINOMUL DE INTERPOLARE AL LUI NEWTON.

    1. Noţiuni teoretice

    Fie funcţia f tabelata în puncte echidistante şi fie h pasul tabelei de

    valori (xk+1 - xk = h, pentru orice k = 0, 1, 2, . . . n-1). Se numeşte diferenţă finită la dreapta (progresive), de ordinul întâi, pentru funcţia f expresia

    ( ) ( ) ( )xfhxfxf −+=Δ . (1)

    Diferenţele finite de ordin superior se definesc în mod recurent:

    ( ) ( )( ) ( )( )xfxfxf 1n1nn ΔΔ=ΔΔ=Δ −− (2)

    k xk yk Δyk Δ2yk Δ3yk Δ4yk 0 x0 y0 Δy0 1 x1 y1 Δ2y0 Δy1 Δ3y0 2 x2 y2 Δ2y1 Δ4y0 Δy2 Δ3y1 3 x3 y3 Δ2y2 Δy3 4 x4 y4

    59

  • METODE NUMERICE

    În aplicaţii, calculul diferenţelor finite se face mai comod, prin simple operaţii de scădere, pornind de la tabela de valori a funcţiei f dispusă vertical; spre exemplu, pentru o tabelă în cinci puncte, reprezentarea este cea de mai sus.

    Diferenţele finite, de un anumit ordin, se calculează scăzând diferenţele finite de ordin inferior între care se găsesc, situate la stânga.

    În cazul în care se doreşte aproximarea unei funcţii prin interpolare, dacă nodurile de interpolare sunt echidistante se poate utiliza polinomul de interpolare al lui Newton, construit pe baza diferenţelor finite. În cele ce urmează se vor utiliza diferenţele finite la dreapta (regresive).

    Se pune deci problema determinării unui polinom algebric de grad mai mic sau egal cu n, care să satisfacă condiţiile de interpolare P(xk) = yk, k = 0, 1, 2, . . . n. Se construieşte un polinom de forma

    ( ) ( ) ( )( )( )( ) ( .xxxxxxc

    xxxxcxxccxN

    1n10n

    102010dn

    −−−−+++−−+−+=

    K

    K

    ) (3)

    Impunând condiţiile de interpolare polinomului de mai sus, rezultă sistemul

    ( )( ) ( )( )

    ( ) ( )( ) ( ) ( )⎪⎪⎪

    ⎪⎪⎪

    =−−+−−+−+

    =−−+−+=−+

    =

    − .yxxxxcxxxxcxxcc

    ;yxxxxcxxcc;yxxcc

    ;yc

    n1nn0nn1n0n20n10

    2120220210

    10110

    00

    K

    M

    (4) Dacă se ţine seama că nodurile de interpolare sunt echidistante, cu

    pasul h, sistemul (4) se poate scrie mai simplu ca

    ( )⎪⎪⎪

    ⎪⎪⎪

    =⋅⋅⋅⋅⋅++⋅⋅−+⋅⋅+

    =⋅⋅⋅+⋅⋅+

    =⋅+=

    .ychn21ch1nnchnc

    ;ych21ch2c

    ;ychc;yc

    nnn

    22

    10

    222

    10

    110

    00

    KK

    M

    (5)

    Sistemul (5) este un sistem de (n+1) ecuaţii cu (n+1) necunoscute - c0, c1, c2, . . . cn - compatibil determinat. Pentru rezolvare, se înlocuieşte valoarea lui c0 din prima ecuaţie în a doua şi se află c1, apoi se înlocuiesc valorile lui c0 şi c1 în a treia ecuaţie şi se determină c2 ş.a.m.d. Rezultă:

    c0 = y0; hy

    c 01Δ

    = ; n0

    n

    n20

    2

    2h!ny

    c;h!2y

    c⋅

    Δ=

    Δ= K . (6)

    60

  • CAPITOLUL 10 – Polinomul de interpolare al lui Newton

    Cu ajutorul acestor valori ale coeficienţilor se obţine formula explicită a polinomului de interpolare Newton de gradul n, construit cu diferenţe finite la dreapta:

    ( ) ( ) ( ) ( )

    ( )( ) ( ).xxxxxxh!ny

    xxxxh!2y

    xxh!1

    yyxN

    1n10n0

    n

    1020

    2

    00

    0dn

    −−−−⋅

    Δ+

    ++−⋅−⋅⋅

    Δ+−

    ⋅Δ

    +=

    K

    K

    (7)

    În mod cu totul analog se poate construi si polinomul de interpolare Newton de gradul n, pe baza diferenţelor finite la stânga,

    ( ) ( ) ( ) ( )

    ( )( ) ( ).xxxxxxh!ny

    xxxxh!2y

    xxh!1

    yyxN

    11nnnn

    n

    1nn2n

    2

    nn

    nsn

    −−−⋅

    ∇+

    ++−⋅−⋅⋅

    ∇+−

    ⋅∇

    +=

    K

    K

    (8)

    Polinomul lui Newton construit pe baza diferenţelor finite la dreapta

    se recomandă a fi utilizat când se doreşte estimarea valorilor funcţiei y = f(x) în puncte mai apropiate de x0 decât de xn (situate în prima jumătate a tabelei de valori), în timp ce varianta construită cu diferenţe finite la stânga va fi folosită pentru aproximarea valorilor funcţiei în puncte din vecinătatea lui xn (din a doua jumătate a tabelei de valori).

    Pentru a se pune în evidenţă eroarea aproximării prin cele două polinoame de interpolare Newton, se pot face aproximările

    ( ) ( )1n

    01n

    1n

    hy

    f+

    ++ Δ≅ξ , respectiv ( ) ( )

    1nn

    1n1n

    hy

    f+

    ++ ∇≅ξ . (9)

    Din cele de mai sus rezultă expresiile funcţiilor eroare pentru cele

    două polinoame Newton (cu diferenţe finite la dreapta, respectiv la stânga):

    ( )( )

    ( )( ) ( n101n0

    1ndn xxxxxx

    h!1ny

    x −−−⋅+

    Δ≅ε

    +

    +

    K ) , (10)

    respectiv

    ( )( )

    ( )( ) ( n101nn

    1nsn xxxxxx

    h!1ny

    x −−−⋅+

    ∇≅ε

    +

    +

    K ) . (11)

    61

  • METODE NUMERICE

    2. Algoritmul metodei program Polinomul Newton

    întreg np ; gradul polinomului întreg n ; ordinul ultimului nod de

    interpolare întreg i, k ; contori

    tablou real x(n), y(n) ; nodurile de interpolare tablou real D(n,n) ; tabloul diferenţelor finite real x0 ;abscisa punctului de interpolare real y0 ; valoarea interpolată a funcţiei real p ; variabilă auxiliară real h ; pasul reţelei de noduri

    ; introducerea datelor de intrare

    citeşte n; citeşte np; citeşte x0; pentru k = 0, n repetă citeşte x(k) citeşte y(k) D(0,k) = y(k)

    ; calculul diferenţelor finite

    pentru i = 1, n repetă pentru k = 0, n-i repetă D(i,k) = D(i-1,k+1) - D(i-1,k)

    ; construcţia polinomului Newton

    h = x(1) - x(0) y0 = D(0,0) pentru i = 1,np repetă p = 1 pentru k = 0, i-1 repetă

    ( )( ) hkkxxpp⋅+

    −⋅=

    10

    y0 = y0 + D(i,0)·p scrie y0 stop

    62

  • CAPITOLUL 10 – Polinomul de interpolare al lui Newton

    3. Exemplu de aplicare Fie următoarea funcţie, dată tabelar:

    xk -2 0 2 4 6 8 10 12 f(xk) 0.25 1 4 16 64 256 1024 4096

    Să se calculeze, prin interpolare cu polinoame Newton, bazate pe diferenţe finite progresive - respectiv regresive - de diferite grade valoarea funcţiei f în punctele x = 1, 5, 9.

    Se constată că şi de această dată punctele din tabelă sunt extrase din graficul funcţiei f(x) = 2x, cu scopul declarat de a putea evalua mărimea erorilor de aproximare; se ştie deci, apriori, că f(1) = 21 = 2, f(5) = 25 = 32 iar f(9) = 29 = 512.

    Se construieşte tabelul diferenţelor finite, pe baza valorilor funcţiei:

    k xk yk Δyk Δ2yk Δ3yk Δ4yk Δ5yk Δ6yk Δ7yk 0 -2 0.25 0.75 1 0 1 2.25 3 6.75 2 2 4 9 20.25 12 27 60.75 3 4 16 36 81 182.25 48 108 243 546.754 6 64 144 324 729 192 432 972 5 8 256 576 1296 768 1728 6 10 1024 2304 3072 7 12 4096

    Şirul de valori din căsuţele marcate situate în partea superioară a tabelului reprezintă diferenţele finite la dreaptă (progresive) - Δy0, Δ2y0 . . . Δ7y0 - pe baza cărora se poate construi cu relaţia (4.41) polinomul Newton de grad mai mic sau egal cu 7.

    Spre exemplu, polinomul de gradul 2 rezultă de forma

    ( ) ( ) ( ) 1x9375.0x28125.0x2x2225.22x

    275.025.0xN 2

    2d2 +⋅+⋅=⋅+

    ⋅+++= .

    63

  • METODE NUMERICE

    Şirul de valori din căsuţele marcate situate în partea inferioară a tabelului reprezintă diferenţele finite la stânga (regresive) - ∇yn, 2yn, . . .

    7yn = Δ7y0 - pe baza cărora se poate construi cu relaţia (4.42) polinomul Newton de grad mai mic sau egal cu 7. Astfel polinomul de gradul 3 rezultă de forma

    ∇∇

    ( ) ( ) ( )( )

    ( )( )( ) .14336x11904x792x368x10x12x86

    1728

    10x12x22

    230412x2

    30724096xN

    23

    2s3

    −⋅+⋅−⋅=−−−⋅

    +

    +−−⋅

    +−⋅+=

    Prin intermediul a două programe de calcul special concepute, se construiesc polinoamele Newton cu diferenţe finite progresive, respectiv regresive, cu gradul n modificabil, succesiv, între 2 şi 7 (maximum posibil) şi se calculează valorile aproximate ale funcţiei în punctele cerute. Rezultă valorile din tabelele 1, respectiv 2.

    Tab. 1

    n ( )1Ndn ( )1nε [%]

    ( )5Ndn ( )5nε [%]

    ( )9Ndn ( )9nε [%]

    2 2.219 10.95 12.719 -60.25 32.219 -93.71 3 1.719 -14.05 27.484 -14.11 129.672 -74.67 4 2.271 13.55 33.021 3.19 312.396 -38.98 5 1.560 -22.00 31.360 -2.00 476.849 -6.86 6 2.805 40.25 32.606 1.89 517.962 1.16 7 0.403 -79.85 31.271 -2.28 509.152 -0.56

    Tab .2

    n ( )1Nsn ( )5Nsn ( )9Nsn 2 15712 3424 352 3 -9236 -356 460 4 2456 -1.625 490.375 5 -172.859 24.953 501.766 6 -8.407 29.937 506.749 7 0.403 31.271 509.152

    După cum se poate observa din rezultatele obţinute, în anumite cazuri eroarea relativă este suficient de mică pentru a putea considera interpolarea rezonabil de precisă; sunt însă şi situaţii în care erorile sunt inacceptabile.

    64

  • CAPITOLUL 10 – Polinomul de interpolare al lui Newton

    65

    4. Chestiuni de verificare 4.1. Fie următoarea funcţie, dată tabelar:

    xk -2 0 2 4 6 f(xk) 0.11 1 9 81 729

    Să se calculeze, prin interpolare cu un polinoame Newton, de grad 2, 3, şi 4, valoarea funcţiei f în punctele x0 = -1, 1, 3, 5. 4.2. Fie următoarea funcţie, dată tabelar:

    xk 0 2 4 6 8 f(xk) 0 1.41 2 2.45 2.83

    Să se calculeze, prin interpolare cu un polinoame Newton, de grad 2, 3, şi 4, valoarea funcţiei f în punctele x0 = 1, 3, 5 şi 7.

  • CAPITOLUL 11 – Aproximarea cu abatere medie pătratică minimă

    Capitolul 11

    APROXIMAREA CU ABATERE MEDIE PĂTRATICĂ MINMĂ.

    1. Noţiuni teoretice

    Dacă funcţia de aproximat este cunoscută tabelar,

    xk x0 x1 ............... xm yk = f(xk) y0 y1 ............... ym

    atunci distanţa dintre aceasta şi polinomul de aproximare cu abatere medie pătratică minimă Pn se calculează ca

    ( ) ( )[ ]∑=

    −⋅+

    =m

    0i

    2iinn yxP1m

    1f,Pd . (1)

    Minimizarea abaterii medii pătratice este echivalentă cu determinarea

    valorii minime a sumei de sub radical; rezultă, că se caută minimul funcţiei , RR:S 1n →+

    . (2) ( ) ( )[ ]∑=

    −=m

    0i

    2iinn10 yxPa,a,aS K

    67

  • METODE NUMERICE

    Determinarea coeficienţilor polinomului Pn se face impunând condiţia ca derivatele parţiale ale funcţiei S să se anuleze. Cum

    (∑=

    =⋅−⋅++⋅+=∂∂ m

    0i

    kii

    nini10

    k0xyxaxaa2

    aS

    K ) , k = 0, 1, 2, . . . n, (3)

    rezultă sistemul de ecuaţii

    , k = 0, 1, 2, . . . n. (4) ( ) ∑∑==

    ⋅=⋅⋅++⋅+m

    0i

    kii

    m

    0i

    ki

    nini10 xyxxaxaa K

    Introducând notaţiile

    ∑=

    =m

    0i

    kik xu , respectiv , (5) ∑

    =⋅=

    m

    0i

    kiik xyv

    sistemul (4) poate fi scris matriceal sub forma

    . (6)

    ⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜

    =

    ⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜

    ⎟⎟⎟⎟⎟

    ⎜⎜⎜⎜⎜

    ++

    +

    n

    2

    1

    n

    1

    0

    nn1nn

    1n21

    n10

    v

    vv

    a

    aa

    uuu

    uuuuuu

    MM

    K

    M

    K

    K

    În cazul particular în care polinomul de aproximarea cu abatere medie

    pătratică minimă este de gradul întâi, p1(x) = a0 + a1·x, acesta poartă numele de „dreaptă de regresie”, coeficienţii acesteia calculându-se cu formulele simple

    2

    120

    11020

    uuu

    vuvua

    −⋅

    ⋅−⋅= , respectiv

    2120

    01101

    uuu

    vuvua

    −⋅

    ⋅−⋅= , (7)

    obţinute prin rezolvarea sistemului (6). 2. Algoritmul metodei program ampm întreg n ; numărul punctelor din tabel întreg k ; contor

    tablou real x(n), y(n) ; punctele din tabelul de valori real u0, u1, u2, u3, u4 ; sume de puteri ale absciselor

    68

  • CAPITOLUL 11 – Aproximarea cu abatere medie pătratică minimă

    real v0, v1, v2 ; sume mixte real a0, a1, a2 ; coeficienţii polinomului de aproximare

    ; introducerea datelor de intrare citeşte n citeşte x0 pentru k = 0, n repetă citeşte x(k) citeşte y(k)

    ; calculul sumelor de puteri şi determinarea funcţiei de aproximare

    u0 = n + 1; u1 = 0; u2 = 0; u3 = 0; u4 = 0; v0 = 0; v1 = 0; v2 = 0 pentru k = 0, n repetă u1 = u1 + x(k) u2 = u2 + x(k)2 u3 = u3 + x(k)3 u4 = u4 + x(k)4 v0 = v0 + y(k) v1 = v1 + x(k)·y(k) v2 = v2 + x(k)2·y(k)

    a0, a1, a2 = Metoda Gauss(u0, u1, u2, u3, u4, v0, v1, v2) scrie a0, a1, a2 stop 3. Exemplu de aplicare

    Să se găsească polinomul de gradul doi P2(x) = a0 + a1·x + a2·x2 care aproximează cu abatere medie pătratică minimă funcţia dată prin tabelul de mai jos:

    xk 0 1 2 3 4 yk = f(xk) 1 2 4 8 16

    Se calculează cu (4.99) sumele ; ;

    ∑=

    ==4

    0i

    0i0 5xu

    ∑=

    =4

    0

    4i 354xu ; 0

    ∑=

    ==4

    0i

    1i1 10xu

    ∑=

    =⋅=4

    0ii

    0i 31yxv ;∑

    ===

    4

    0i

    2i2 30xu ;

    ∑=

    =⋅=4

    0iii1 yx

    ∑=

    ==4

    0i

    3i3 ;100xu

    98v ; ∑=

    ⋅=4

    0ii

    2i2 yx

    =i

    4

    = 346v .

    69

  • METODE NUMERICE

    70

    Rezultă sistemul , care, rezolvat

    printr-un program de calcul bazat pe metoda Gauss, conduce la soluţiile: a0 = 1.2857; a1 = -0.9714; a2 = 1.1429. S-a obţinut, astfel,

    ⎟⎟⎟

    ⎜⎜⎜

    ⎛=

    ⎟⎟⎟

    ⎜⎜⎜

    ⎛⋅

    ⎟⎟⎟

    ⎜⎜⎜

    3469831

    aaa

    35410030100301030105

    2

    1

    0

    ( ) 22 x1429.1x9714.02857.1xP ⋅+⋅−= .

    Pentru a putea evalua precizia de aproximare, se calculează valorile lui P2 în abscisele punctelor din tabel şi erorile faţa de funcţia dată în aceste puncte; rezultă:

    P2(0) = 1.2857; ε2(0) = 0.2857;

    P2(1) = 1.4572; ε2(1) = -0.5428;

    P2(2) = 3.9145; ε2(2) = -0.0855;

    P2(3) = 8.6576; ε2(3) = -0.3424;

    P2(4) = 15.6865; ε2(4) = -0.3135.

    4. Chestiuni de verificare

    Să se determine funcţiile de gradul al doilea care aproximează cu abatere medie pătratică minimă următoarele funcţii date tabelar:

    4.1. xk -2 0 2 4 6

    f(xk) 0.11 1 9 81 729 4.2. xk 0 2 4 6 8

    f(xk) 0 1.41 2 2.45 2.83

  • CAPTOLUL 12 – Derivarea cu ajutorul polinomului de interpolare Lagrange

    Capitolul 12

    DERIVAREA CU AJUTORUL POLINOMULUI DE INTERPOLARE LAGRANGE.

    1. Noţiuni teoretice

    În cazul unei funcţii dată tabelar prin (n+1) puncte, se poate construi

    polinomul de interpolare Lagrange şi se poate scrie

    ( ) ( ) ( ) ( )( )( ) ( )[ ]xf

    !1nxxxx

    xayxf 1nn

    0k

    n0kk ξ⋅+

    −−+⋅= +

    =∑

    K. (1)

    Prin derivare în raport cu x în relaţia (1), în condiţiile în care

    x = xj, oricare ar fi j cuprins între 0 şi n rezultă

    ( ) ( )( ) ( )[ ]( ) (∏∑

    ≠=

    )+

    =−⋅

    +

    ξ+′⋅=′

    n

    jk0k

    kjj

    1nn

    0kjkkj xx!1n

    xfxa