Sunteți pe pagina 1din 18

Lucrarea 7

INTERPOLAREA
1. SCOPUL LUCRRII
Prezentarea unor algoritmi de interpolare, implementarea acestora n limbaje de nivel nalt (n particular, C) i folosirea lor n rezolvarea unor probleme din electronic.

2. PREZENTARE TEORETIC
Interpolarea este una dintre metodele de aproximare a funciilor. Considerm dat o funcie sub form de tabel. Cunoscnd valorile funciei n anumite puncte pentru care funcia este definit, se pune problema aflrii valorilor funciei n alte puncte ale domeniului de definiie.

2.1.

INTERPOLAREA POLINOMIAL
Tabelul 7.1. x y

Se consider funcia dat prin Tabelul 7.1:

x0 y0

x1 y1

. .

xk yk

. .

xn yn

Cunoatem valoarea funciei n n+1 puncte. Prin n+1 puncte se poate construi un polinom de gradul n, unic determinat. Pentru simplificarea calculului scriem polinomul sub forma urmtoare: (7.1) Pn ( x ) = x n + a n -1 x n -1 +...+ a1 x + a 0 Considerm urmtoarele polinoame:
P 0 ( x ) = ( x - x1 )( x - x 2 )...( x - x n ) P1 ( x ) = ( x - x 0 )( x - x 2 )...( x - x n ) ------------------P n ( x ) = ( x - x 0 )( x - x1 )...( x - x n -1 )

(7.2)

Formm polinomul Pn ( x ) sub forma:


Pn ( x ) = b0 P 0 ( x ) + b1P1 ( x )+...+ bk P k +...+ bn P n ( x )

(7.3)

Trebuie s determinm coeficienii b0 , b1 ,..., bn .

Lucrarea 7
b0 = Pn ( x 0 ) P (x ) P (x ) P (x ) , b1 = n 1 ,..., bk = n k ,..., bn = n n P 0 ( x0 ) P1 ( x1 ) P k ( xk ) Pn (xn )

105 (7.4)

Ca urmare,

P (x) n Pn ( x) = Pn (xi ) i = yi Pi (xi ) i=0 i =0


n

j =0, j i n

(x - x )
n j i j

j =0, j i

(x - x )
n

= yi
i =0

j =0, j i

x -x
i

x - xj
j

(7.5)

Polinomul de gradul n care trece prin n+1 puncte date, numit i polinomul de interpolare al lui Lagrange, are forma:

Pn ( x ) = y i
i =0

j =0 , j i

x- xj

xi - x j

(7.6)

Expresia polinomului lui Lagrange este funcie de coordonatele punctelor cunoscute i de variabila x . Cu ajutorul formulei determinate a polinomului, care aproximeaz o funcie, se poate calcula valoarea funciei n orice punct necunoscut cuprins ntre x0 i x n , presupunnd c punctele xi sunt aranjate n ordine cresctoare. Fiind un algoritm ce face parte din clasa metodelor cu pas variabil ntre abscise, precizia de calcul este la fel de bun pe ntreg intervalul acoperit prin perechi (xi, yi), indiferent unde se alege abscisa intermediar n care se calculeaz ordonata necunoscut. Cu alte cuvinte, aceast metod nu prezint zone de precizie prefereniale, aa cum se ntmpl n cazul metodelor cu pas constant ntre abscise.

2.1.1. Algoritmul 7.1. Polinomul lui Lagrange


real Lagrange ( ntreg n, // gradul polinomului de interpolare real x[ ], // vectorul absciselor punctelor cunoscute real y[ ], // vectorul ordonatelor punctelor cunoscute real x , // punctul n care se calculeaz interpolarea ) {// declararea variabilelor locale functiei ntreg i, j ; //contori pentru buclele for() i indexare. real sum ; // variabil ce reine sumele pariale real prod ; // variabil ce reine produsul // corpul de instruciuni al funciei sum=0; pentru i= 0 .. n { prod=1; pentru j= 0 .. n dac ( j i )

prod = prod *

x - x[ j ] ; x[i ] - x[ j ]

sum = sum + y[ i ] * prod ; } returneaz sum; //

valoarea n punctul cerut

106

ndrumar de laborator pentru Metode Numerice

2.2.

POLINOMUL DE INTERPOLARE DE SPEA NTI AL LUI NEWTON

Face parte din clasa metodelor cu pas constant ntre abscise. Aceasta se traduce prin a avea o anumit zon preferat, n care precizia este cea mai bun pentru un interval acoperit prin punctele x0, .. ,xn. Acest polinom de interpolare se exprim funcie de diferenele finite. Fie f :[ a, b] R i reeaua x 0 , x1 , x 2 ,..., x n cu pasul constant h. Definiia 7.1. Se numete diferen finit de ordinul nti expresia:
D f ( x ) = f ( x + h) - f ( x )

(7.7)

unde h este pasul constant. Diferena finit de ordinul n se poate defini recursiv, folosindu-se de diferena finit de ordin n-1, i are expresia de definiie: Dn f ( x ) = D Dn -1 f ( x ) (7.8)

Diferenele finite au urmtoarele proprieti: - Operatorul diferen finit este liniar: -

D (c1 f 1 + c 2 f 2 ) = c1 Df 1 + c 2 Df 2
k k f ( x + ( n - k ) h) ( - 1) Cn n

(7.9) (7.10)

Diferena finit de ordinul n se calculeaz cu formula:


Dn f ( x ) =
k =0

Diferenele finite mai pot fi obinute i cu ajutorul tabelului 7.2. Tabelul 7.2
xi x0 x1 x2 x3 x4 x5 x6 yi y0 y1 y2 y3 y4 y5 y6 Dyi Dy0 Dy1 Dy 2 Dy3 Dy 4 Dy5
D2 y 0 D2 y1 D2 y 2 D2 y3 D2 y 4 D3 y 0 D3 y1 D3 y 2 D3 y3 D4 y 0 D4 y1 D4 y 2 D5 y 0 D5 y1 D6 y 0 D2 yi D3 yi D4 yi D5 yi D6 y i

Definiia 7.2. Se numete putere generalizat de ordinul n a lui x expresia:


x [ n ] = x ( x - h )( x - 2h)... ( x - ( n - 1)h)

(7.11)

Pentru h=0 puterea generalizat coincide cu puterea obinuit.

Lucrarea 7 1. Diferena finit a puterii generalizate este:


n n -1 Dx [ ] = nhx [ ]

107

(7.12)

2. Diferena finit de ordinul k a puterii generalizate este:


D k x [ n ] = n( n - 1)( n - 2)... ( n - k + 1) x [ n - k ]

(7.13)

Fie funcia tabelat dat n Tabelul 6.1, unde reeaua x0 , x1, x2 , x3 ,..., xn este cu pasul constant h. Prin cele n+1 puncte trece un polinom de gradul n pe care l cutm de forma: (7.14) Pn ( x ) = C0 + C1( x - x0 )[1] + C2 ( x - x0 )[2 ] +...+ Cn ( x - x0 )[n ] unde ( x - x0 )[i ] = ( x - x0 )( x - x1 )...( x - x i -1 ) , i =1, 2, ...n iar coeficienii C0 , C1,..., Cn sunt necunoscute pe care le vom calcula. Se observ c: Pn ( x0 ) = y0 = C0 (7.15) Calculm diferena finit de ordinul nti: (7.16) DPn ( x ) = C1h + 2C2 h( x - x 0 )[1] +...+ nCn h( x - x0 )[ n -1] Fcnd substituia x = x0 rezult DPn ( x0 ) = C11!h Se poate calcula:
k D( ) Pn ( x 0 )

C1 =

DPn ( x 0 ) 1! h

..(7.17)

Se continu calculul diferenelor finite n punctul x0 i se observ c :


Ck = k !h k

D k Pn ( x 0 ) = Dk y 0 , k=0, 1, 2, ... n.

(7.18)

innd cont de formulele de calcul ale coeficienilor, polinomul lui Newton de interpolare de spea nti poate fi scris astfel:
Pn ( x 0 ) = y 0 +
n Dy 0 D2 y 0 1 [ 2] + + D y 0 x - x [ n ] x - x0 )[ ] + x x ( ( ) ( 0) 0 1! h 2!h 2 n !h n

(7.19)

n calculul coeficienilor s-au utilizat diferenele finite la dreapta perechii (x0, y0) (tabelul 7.2). Tot cu ajutorul acestui polinom (7.19) se poate face i o extrapolare, adic tot o interpolare, dar vzut n afara intervalului acoperit prin abscisele cunoscute, x0,,xn. Trebuie fcut o observaie legat de precizia de calcul: pentru polinomul Newton de spea nti, precizia cea mai bun se obine pentru abscise intermediare alese n apropierea perechii (x0, y0). Din acest motiv, extrapolarea amintit trebuie fcut plecnd de la principiul c cu ct distana punctului necunoscut dorit - fa de abscisa x0 - este mai mare, cu att precizia de calcul scade. Se respect, deci, un alt principiu general n problemele de interpolare, i anume numrul perechilor (xi, yi): cu ct acesta este mai mare, cu att puterea polinomului de interpolare crete.

108

ndrumar de laborator pentru Metode Numerice 2.2.1. Algoritmul 7.2. Newton 1


real Newton_1 ( ntreg n, // gradul polinomului de interpolare real x0, // abscisa primului punct cunoscut real h, // pasul constant ntre abscisele cunoscute real y[ ], // vectorul ordonatelor punctelor cunoscute real xp, // abscisa punctului n care se face interpolarea ) { // declararea i definirea variabilelor locale real sum ; // variabila ce reine sumele pariale real prod ; // variabila ce reine produsele integ i, j ; // contoare n buclele for() i indeci //pentru vectori. // corpul de instruciuni al funciei sum = y0; // pornesc cu suma de la y0 (vezi formula //(7.19)) prod = 1 ; pentru i= 1 n { //calculul diferenelor finite pentru j= 0 n-i y[j] = y[j+1] y[j]; 1 1 prod = prod * x p - ( x 0 + ( i - 1) * h) * * ; h i sum = sum + y0*prod ; } returneaz sum ; // valoarea interpolat }

2.3. POLINOMUL DE INTERPOLARE DE SPEA A DOUA AL LUI NEWTON


Pentru funcia dat n Tabelul 6.1 se caut un polinom de gradul n care trece prin cele n+1 puncte, sub forma: Pn ( x ) = C0 + C1( x - xn ) + C2 ( x - xn )( x - xn -1 )+...+ Cn ( x - xn )( x - xn -1 )...( x - x1 ) (7.20) Polinomul de gradul n poate fi scris sub forma:
Pn x

( )= y

n Dy n D2 y n -1 1 [ 2] + + D y1 x - x [ n ] x - xn )[ ] + x x ( ( ) ( 1) 1 n 1! h 2 !h 2 n !h n

(7.21)

Acest polinom este numit polinomul lui Newton de interpolare de spea a doua deoarece s-au utilizat diferenele finite la stnga perechii (xn, yn). Dac punctul de aproximare a funciei se gsete n apropierea lui xn , se recomand utilizarea metodei se spea a doua deoarece d erori mai mici.

Lucrarea 7

109

Trebuie fcut i aici o observaie legat de precizia de calcul: pentru polinomul Newton de spea a doua, precizia cea mai bun se obine pentru abscise intermediare alese n apropierea ultimei perechi, (xn, yn). Din acest motiv, o eventual extrapolare trebuie fcut, cu aceeai atenie, ca i n cazul polinomului Newton de spea nti, anume trebuie mai nainte s mrim suficiente de mult numrul de perechi, pentru a reui o extrapolare cu erori minime. 2.3.1. Algoritmul 7.3. Newton 2
real Newton_2 ( ntreg n, // gradul polinomului de interpolare real xn , // abscisa maxim a punctelor cunoscute real h, // pasul constant ntre abscisele cunoscute real y[ ], // vectorul ordonatelor punctelor cunoscute real xp // abscisa punctului de interpolare ) { // declararea i definirea variabilelor locale real sum ; // variabila ce reine sumele pariale real prod ; // variabila ce reine produsele ntreg i, j ; // contoare // corpul de instruciuni al funciei sum = yn ; // valoarea interpolat pornete de la yn //(vedei relaia (6.21)) prod = 1; pentru i= 1.. n { // calculul diferenelor finite pentru j= n.. i y[j] = y[j] - y[j-1] ; 1 1 prod = prod * x p - ( x n - ( i - 1) * h) * * ; h i sum = sum + yn*prod ; } returneaz sum; // valoarea polinomului de interpolare //n punctul cerut. }

2.4. POLINOMUL LUI NEWTON DIFERENE DIVIZATE

DE

INTERPOLARE

CU

Fie funcia f ( x ) dat sub forma celei prezentate n tabelul (7.1) unde reeaua x0 , x1, x2 ,..., xn din domeniul de definiie al funciei nu are pas constant. Fiind o metod cu pas variabil ntre abscise, precizia sa nu este preferenial. Definiia 7.3. Se numete diferen divizat de ordinul k+i a funciei f expresia :

110

ndrumar de laborator pentru Metode Numerice


f ( x i -1 , x i , x i +1 ,..., x i + k ) = f ( x i , x i +1 , ..., x i + k ) - f ( x i -1 , x i , ..., x i + k -1 ) x i + k - x i -1

(7.22)

Se determin polinomul de gradul n, de forma :


Pn ( x ) = C0 + C1 ( x - x0 ) + C2 ( x - x0 )( x - x1 )+...+ Cn ( x - x0 )( x - x1 )...( x - xn -1 ) (7.23)

cunoscnd n+1 puncte ( xi , yi ) , i=0, ...,n , care verific polinomul. Se observ c Pn ( x0 ) = y0 = C0 . Se calculeaz diferena divizat de ordinul nti pentru polinomul Pn ( x ) i se face x = x1 . Rezult: Pn ( x0 , x1 ) = C1 . Calculnd n continuare, se determin diferena divizat de ordinul k i lund pe x = xk se obine valoarea coeficientului Ck : Ck = Pn ( x0 , x1, x2 ,..., xk ) , k=0, 1, ...,n. (7.24) Polinomul se scrie acum sub forma:
Pn ( x ) = y0 + Pn ( x0 , x1 )( x - x0 ) + Pn ( x0 , x1, x2 )( x - x0 )( x - x1 )+... + Pn ( x0 ,..., x n )( x - x0 )( x - x1 )...( x - x n -1 )

(7.25)

unde fiecare diferen divizat se calculeaz cu ajutorul formulei (7.22). Polinomul obinut (7.25) poart numele de polinomul lui Newton de interpolare cu diferene divizate. 2.4.1. Algoritmul 7.4. Newton 3
real Newton_3 ( ntreg n, real x[ ], real y[ ], // numrul de puncte date ale funciei // vectorul absciselor punctelor date // vectorul ordonatelor punctelor date

real x , // punctul n care se interpoleaz funcia ) { // declararea i definirea variabilelor locale ntreg i, j ; // contoare real sum ; // variabil ce reine sumele pariale real prod ; // variabil ce reine produsele pariale // corpul de instruciuni al funciei sum = y[0] ; prod = 1 ; pentru i= 1.. n { // calculul diferenelor divizate y j +1 - y j pentru j= 0.. n-i yj = ; x j+i - x j prod = prod*( x - xi-1) ; sum = sum + y[0]*prod ; returneaz sum ;

} }

Lucrarea 7

111

2.5. METODA LUI AITKEN DE INTERPOLARE


Este tot o metod cu pas variabil ntre abscise. Metoda lui Aitken de interpolare d acelai rezultat ca i metoda lui Lagrange de interpolare. Aici se realizeaz mai multe interpolri liniare. Cu fiecare interpolare, numrul punctelor rmase se micoreaz cu o unitate, iar funcia ce trece prin dou puncte de la etapa curent crete n grad, astfel c n final, dac sunt date n+1 puncte, se obine o funcie de gradul n. Tehnica este urmtoarea: - la primul pas, se scrie ecuaia unei drepte folosind drept perechi de puncte pe prima (x0, y0), neschimbat, i pe fiecare pereche de sub ea, succesiv (xi, yi), i=1,..,n ; se obin ordonatele y0i ; - la pasul al doilea, perechile sunt (x1, y01) fix mpreun cu toate perechile de sub ea (i=2,..,n), folosindu-ne ns de ordonatele y0i calculate la pasul nti; se obin ordonatele y01i ; - la pasul al treilea perechea fix este (x2, y012) i sunt folosite perechile (xi, y01i), cu i=3,,n; se genereaz perechile y012i; Se continu n acelai mod, pn ce se ajunge la o interpolare n care sunt folosite doar dou perechi, (xn-1, y012,n-2,n-1) i (xn, y012,n-2,n). Se genereaz la acest ultim pas ordonata y012,3,4,,n-1,n, care este de fapt polinomul cutat. Gradul acesteia este n. Considerm funcia dat n Tabelul 6.3. Tabelul 7.3
x
x0 x1 x2 x3 x4
y

y0 y1 y2 y3 y4 y04 y 01 y02 y03 y 013 y 014 y0123 y 012

--y0124

------y0123...n

---xn

---

---y0 n y 01n

--y012 n

yn

Pentru dou puncte, ecuaia unei drepte ne ofer ordonata urmtoare:

112
y0 j =

ndrumar de laborator pentru Metode Numerice


xj - x x j - x0 y0 + x - x0 yj x j - x0

j=1, 2, 3, ..., n

Pentru pasul al doilea, urmnd exact acelai model, adic ecuaia unei drepte, avem:
y01 j = xj - x x j - x1 I01 + x - x1 I0 j x j - x1

j=2, 3, ..., n

(7.26)

-----------------------------Dup n-1 pai de interpolri liniare rezult:


y012...n = xn - x x - x n -1 I + I x n - x n -1 012...( n - 2)( n -1) x n - x n -1 012...( n - 2) n

(7.27)

Valoarea interpolat a funciei tabelate n punctul x este y012...n . 2.5.1. Algoritmul 7.5. Metoda lui Aitken
real Aitken ( ntreg n, real x[ ], real y[ ], real xp ) { // declararea ntreg i, j ;

// // // //

gradul polinomului de interpolare vectorul absciselor punctelor date ordonatele punctelor date punctul n care se interpoleaz funcia

i definirea variabilelor locale // contoare i indeci de vectori

// corpul de instruciuni al funciei pentru i= 1.. n pentru j= i.. n execut xp - x[i - 1] xp - x[ j ] + y[ j ] * ; y[ j ] = y[i - 1] * x[ j ] - x[i - 1] x[i - 1] - x[ j ] returneaz y[n] ; }

2.6. INTERPOLAREA CU FUNCII SPLINE


Cuvntul spline provine din englez i nseamn o rigl elastic de care dac se aga greuti poate fi fcut s treac prin diferite puncte dorite, cuprinse ntre capetele riglei. Considerm dat o funcie tabelat, reprezentat n tabelul 7.4. Tabelul 7.4 x1 x2 x3 xn ---x y y1 y2 y3 yn ----

Lucrarea 7

113

Considerm x1 = a i xn = b , [a, b] fiind intervalul de definiie a funciei f , iar abscisele x1,x2,...,xn o diviziune D a intervalului de definiie. Valorile funciei sunt yi = f ( xi ) , i = 1,2,..., n (7.28) Definiia 7.4. Se numete funcie spline de ordinul n relativ la diviziunea D a intervalului [a, b] o funcie S: [a, b] R de clas Cm-1 [a, b] ale crei restricii Si(x) pe fiecare interval [xi , xi +1 ] al diviziunii sunt polinoame de ordinul m, adic:
i (x) S i ( x ) = Pm

dac

x [xi , x i +1 ] , i =1,2,...,(n-1)

(7.29)

Funcia S(x) este neted pe poriuni deoarece are primele (m-1) derivate continue pe [a, b] , iar derivata de ordinul m este discontinu n xi , i =1,2,...,n. Gradul de netezire al funciei este m. Restriciile funciei sunt polinoamele: Si(x)=Aixm + Bixm-1 + Cixm-2 + Eixm-3 + ... +Ri (7.30) dac, x [xi , x i +1 ] , i =1,2,...,(n-1) Aceste funcii sunt derivabile pn la (m-1) i sunt continue mpreun cu derivatele. Derivata de ordinul (m-1) a lui Si(x) pe intervalul [xi , xi +1 ] este o funcie liniar i trece prin punctele ( xi , Di ) i ( xi +1, Di +1 ) unde, Rezult ecuaia liniar:
S i( m-1) ( x ) =

Di = Si( m-1) ( x ) i =1,2,...,n.

Di +1 ( x - x i ) + Di ( x i +1 - x ) hi

(7.31)

unde hi=xi+1-xi , i =1,2,...,(n-1) Integrnd de m-1 ori relaia (7.31) se obine:


S i( m-2 ) ( x ) = S ( m-3) ( x ) = Si(x) = Si ( x) = Di +1 ( x - x i )2 - Di ( x i+1 - x )2 + C1i 2 hi Di +1 ( x - x i )3 + Di ( x i +1 - x ) 3 + C1i x + C2i 6 hi

(7.32) (7.33)

Di+1(x - xi )m-1 + (-1)m-2 (xi+1 - x)m-1 Di C1i x m-3 C2i x m-4 + + +...+Cm-1,i (7.34) (n -1)!hi (m - 3)! (m - 4)!

Di+1 ( x - xi )m + (-1)m-1 ( x i+1 - x ) m-1 Di C1i x m-2 C2 i x m-3 + +..+ Cm-2,i x + Cm-1,i (7.35) + ( m - 2)! ( m - 3)! n!hi

Pentru ntreg intervalul [a, b] rezult un sistem liniar punnd condiia ca Si(xi)=yi , i=1,2,..,n i continuitatea celor (m-1) ecuaii n toate punctele xi . n extremele x1 i x2 se scrie polinomul lui Lagrange, l derivm pn la m-1 i aflm corespunztor valorile derivatelor n x1 i xn . Rezult necunoscutele: Di , Di+1 , C1i ,..., Cm-1,i

114

ndrumar de laborator pentru Metode Numerice

pentru fiecare interval. n acest caz sunt n+(m-1)+ (n-1) necunoscute i n+(m-1)+(n1) ecuaii. Sistemul fiind liniar se rezolv cu una din metodele din Lucrarea 3 - Metode pentru rezolvarea sistemelor de ecuaii. n lucrare se consider restriciile Si polinoame de gradul 3. Din acest motiv interpolarea este denumit spline cubic. n acest caz: Si(x)=Aix3 + Bix2 + Cix + Ei (7.36)
S i( x ) =
S ( x ) = Si (x) =

Di +1 ( x - x i ) + Di ( x i +1 - x ) hi

Di+1 ( x - x i ) 2 - Di ( x i +1 - x ) 2 + C1i 2hi Di +1 ( x - x i )3 - Di ( x i +1 - x )3 + C1i x + C2 i 6 hi

(7.37)

Din S ( x i ) = y i i S ( x i +1 ) = y i+1 rezult:


C1i = C2 i = y i+1 - y i Di+1 - Di hi 6 hi x i +1 y i - x i y i+1 Di x i+1 - Di +1 x i hi 6 hi Di +1 + Di 6 hi

Din identificarea relaiilor (7.36) i (7.37) rezult :


Ai =
Ci = Ei =

Bi =

Di x i +1 - Di +1 x i 2 hi

(7.38)

Di +1 x i2 - Di x i2+1 y i +1 - y i Di +1 - Di + hi 2 hi 6 hi x i3+1 Di - x i3 D i +1 y i x i +1 - y i +1 x i Di x i +1 - Di +1 x i + hi 6 hi 6 hi

(7.39)

Din continuitatea primei derivate n punctul xi , S i' -1 ( x i ) = Si' ( xi ) rezult: Considernd derivata de ordinul nti n punctul x1 i x n egal cu:
y - y i y i - y i-1 hi -1 Di -1 + 2( hi + hi -1 ) Di + hi Di +1 = 6 i +1 hi hi -1
= y1 y 2 - y1 y 3 - y 2 y 3 - y1 + x 2 - x1 x 3 - x 2 x 3 - x1 y n -1 - y n - 2 y n - y n -1 y n - y n -2 + + x n -1 - x n -2 x n - x n -1 x n - x n -2

(7.40) (7.41) (7.42)

=yn

respectiv rezult sistemul tridiagonal n Di i = 1,2,3,..., n

Lucrarea 7
y 2 - y1 - y1 2h1D1 + h1 D2 = 6 h1 y4 - y3 y3 - y 2 h1 D1 + 2 (h1 + h2 )D2 + h2 D3 = 6 h3 h3 ........................................................................................ yi+1 - y i yi - yi+1 hi-1Di-1 + 2 (hi-1 + hi )Di + hi Di+1 = 6 hi hi ......................................................................................... y n - yn-1 y n-1 - yn-2 hn-2 Dn-2 + 2 (hn-2 + hn-1 )Dn-1 + hn-1 Dn = 6 hn-1 hn-1 y n - y n-1 hn-1 Dn-1 + 2hn-1 Dn = 6 y n hi

115

(7.43)

unde y1 i yn sunt date de expresiile (7.41), respectiv (7.42) . Din sistemul (7.43) rezult valorile lui Di , i =1,2,...,n. Din (7.38) rezult coeficienii restriciilor pe fiecare interval, restricii care aproximeaz funcia dat. Dac se d x n care trebuie calculat funcia, se stabilete intervalul n care se gsete x i se calculeaz valoarea restriciei funciei pe acest interval n punctul x . 2.6.1. Algoritmul 7.6. Funcii spline
real Spline ( ntreg n, // gradul polinomului de interpolare real x[ ], // abscisele punctelor date real y[ ], // ordonatele punctelor date real xp, // punctul n care se interpoleaz funcia ) { // declararea i definirea variabilelor locale // vectorii elementelor diagonale ale sistemului tridiagonal real A[N-1], B[N], C[N-1] ; // vectorul termenilor liberi al sistemului tridiagonal; real TL[N]; // vectorul pailor punctelor pe abscis; real h[N]; // vectorul soluiilor sistemului tridiagonal; real D[N]; real derx1; // derivata n punctul x1, real; real derxn; // derivata n punctul xn, real; ntreg num; // variabila ce d numrul intervalului n //care se gaseste xp real valint; // variabil real ce reine valoarea //polinomului de gradul trei n punctul xp . ntreg i, j; // contoare i indeci de vectori. // corpul de instruciuni al funciei pentru i= 1.. n-1 h[i] = x[i + 1] - x[i] ;

116
derx1 =

ndrumar de laborator pentru Metode Numerice


y 2 - y1 y 3 - y 2 y 3 - y1 + ; x 2 - x1 x 3 - x 2 x 3 - x1

y n -1 - y n - 2 y n - y n -1 y n - y n - 2 + ; + x n -1 - x n - 2 x n - x n -1 x n - x n -2 // construiete sistemul tridiagonal derxn = -

y - y1 A1 = 0 ; B1 = 2h1 ; C1 = h1 ; TL1 = 6 2 - y1 h 1 Ai = hi -1 ; Bi = 2 ( hi -1 - hi ) ; C i = hi ; y i +1 - y i y i - y i -1 ; i = 2,3 ,...n -1 ; TL i = 6 hi hi -1 y - y n -1 An = hn -1 ; B n = 2 hn -1 ; C n = 0 ; TL n = 6 y n - n hn -1

Tridiagonal(A,B,C,TL,D) ; // aceast este funcia din L3. // calculeaz coeficienii polinomului de interpolare pentru i= 1.. n { D + Di Ai = i +1 ; 6 hi
Bi = Di x i +1 - Di +1 x i 2 hi

// Rezolv sistemul conform algoritmului (3.5) din Lucrarea 3.

Ci = Ei =

Di +1 x i2 - Di x i2+1 y i +1 - y i Di+1 - Di + hi ; 2hi 6 hi

x i3+1 Di - x i3 D i +1 y i x i +1 - y i +1 x i Di x i +1 - Di +1 x i + hi ; 6 hi 6 hi } // Se caut intervalul care conine punctul de interpolare i =1 ; execut { i = i + 1 ;!!!aici e ceva in neregula!!! } ct timp ( xp>=x[i]) ; val int = Ai . xp 3 + Bi . xp 2 + Ci . xp + E i ; returneaz valint ; }

Lucrarea 7 2.7. INTERPOLAREA FUNCIILOR PERIODICE

117

Se consider funcia periodic f :[a, b] R cu proprietatea c f ( a ) = f ( b) unde T = b - a este perioada funciei. Experimental s-au obinut n valori ale funciei pe perioada [a, b] prezentate n tabelul 7.5 i se cere o valoare a funciei f ntr-un punct x p [a, b] , dar x p xi ,
i = 1,2,..., n .

Tabelul 7.5
x y
x1 = a y1 x2 y2 x3 y3

-------

x 2n = b y3n

Pentru determinarea acestei valori se determin un polinom de interpolare a funciei periodice.

2.7.1. Algoritmul 7.7. Funcii periodice


real Inte_per ( ntreg n, // numrul de valori cunoscute ale funciei real x[ ], // vectorul absciselor punctelor cunoscute real y[ ], // vectorul ordonatelor punctelor cunoscute real T, // perioada real x // punctul de interpolare a funciei ) { // declararea i definirea variabilelor locale ntreg i, j ; // contoare real sum ; // variabil pentru a reine sumele real prod ; // variabil pentru a reine produsele // corpul de instruciuni al funciei sum = 0 ; pentru i= 0.. n { prod = 1; pentru j= 0.. n dac

p * ( x - x[ j ]) sin T ; (ji) prod = prod * p * ( x[i ] - x[ j ]) sin T

sum = sum + y[i]*prod; sum ;

returneaz }

118

ndrumar de laborator pentru Metode Numerice

2.8. INTERPOLAREA FUNCIILOR DE MAI MULTE VARIABILE


Vom considera o funcie de dou variabile: f : ER unde ER2 de forma f = g ( x , y ) . Se consider urmtoarele puncte cunoscute ( xi , yi , f ( xi , yi )) pentru i = 0,1,2,..., n i j = 0,1,..., n . Se pune problema determinrii unui polinom de gradul n care s satisfac condiiile Pn ( xi , yi ) = f ( xi , yi ) cu i, j = 0,1,2,..., n . Polinomul lui Lagrange pentru dou variabile are forma:
L( x, y ) =

f ( xi , y j ) x
i=0 j=0 k =0 k i

x - xk i - xk

y
k =0 k j

y - yk j - yk

(7.47)

2.8.1.

Algoritmul 7.8. Funcii de dou variabile

real Lagrange_2 ( ntreg n, // numrul de puncte pe Ox ntreg m, // numrul de puncte pe Oy real x[ ], // vectorul coordonatelor punctelor pe Ox real y[ ], // coordonatele punctelor pe Oy real z[ ][N], // matricea valorilor funciei real pcx, // coordonata pe Ox a punctului //interpolare, real real pcy // coordonata pe Oy a punctului //interpolare, real ) { // declararea i definirea variabilelor locale ntreg i, j, k ; // contoare real prodx, prody ; // produse pariale real sum ; // suma parial // corpul de instruciuni sum = 0 ; pentru i= 0 .. n pentru j= 0 .. m { prodx = 1 ; prody = 1 ; pentru k= 0 to n dac ( k i) prodx = pentru k= 0 to m dac ( k j) prody = sum = z[i][j]*prodx*prody } returneaz sum; } al funciei

de de

( pcx - x[k])/( x[i] - x[k]) ; ( pcy - y[k])/( y[j] - y[k]) ; ;

Lucrarea 7

119

3. DESFURAREA LUCRRII
3.1. NTREBRI

1. Avnd 7 valori (xi, yi), i=0..6, ce aparin unei funcii de tip exponenial, precizai care din metodele: a) Lagrange si Newton1 b) Newton1 si Newton2 c) Newton1 si Newton3 vor determina valoarea funciei in punctul ics din intervalul [x0, x6] cu o precizie mai bun? Explicai. 2. S se gseasc polinoamele de interpolare Newton 1 i Newton 3 pentru urmtoarele valori:
X y 0.1 0.11 0.15 0.1725 0.2 0.24 0.25 0.3125 0.3 0.39

3.2.

PROBLEME LABORATOR

1. S se implementeze algoritmii 7.1-7.8 n limbajul ANSI C. 2. Se consider datele experimentale obinute pentru caracteristica rezistenei termice jonciune termic R jt [ o C / W ] funcie de lungimea terminalului l [ inch ], pentru o diod Zener prezentate n tabelul urmtor:
Tabelul 6.6 l [inch] Rjt [oC/w]

0 70

0.1 140

0.2 175

0.3 200

0.4 225

0.5 250

0.6 265

0.7 280

0.8 290

0.9 300

Se cere s se determine puncte ntre valorile date pentru o reprezentare grafic ct mai precis. 3. Se consider datele experimentale:
x y 0 0 3.14 0 4.71 -1 6.28 0

120

ndrumar de laborator pentru Metode Numerice S se calculeze y(1.57) cu ajutorul metodei de interpolare a funciilor periodice. 3.2. TEME DE CAS 1. ntr-unul din terminalele unei diode de mic putere se injecteaz succesiv o serie de cureni i, rezultnd respectiv valorile tensiunii v, conform tabelului:

v (V) i (A)

.2 10-9

.28 10-8

.36 10-7

.44 10-6

.52 10-5

.6 10-4

Determinai curentul corespunztor urmtoarelor tensiuni v:


.253 V .395 V .559 V // stnga intervalului // ~ mijlocul intervalului // dreapta intervalului.

Se aplic dou dintre metodele de interpolare prezentate la laborator: cu pas constant ntre abscise; cu pas variabil ntre abscise.

Metode cu pas constant: Newton, variantele 1 i 2; Metode cu pas variabil: Lagrange, Newton-varianta 3 i Aitken. Indicaie: n situaia n care rezultatele metodelor de interpolare nu sunt concludente (poate chiar eronate, datorit ordinului de mrime), ncercai s logaritmai valorile curentului. 2. n figura de mai jos se prezint impedana termic tranzitorie jonciunecapsul ZthJ-C pentru o diod cu avalan controlat. Realizai minim 7 msurri ct mai precise de pe aceast caracteristic. Exemplu: ZthJ-C se msoar pentru:
t=10, 20, 50, 200, 500, 1000, 2000 ms

i apoi se verific valoarea obinut prin interpolare (s zicem pentru 1500ms) cu valoarea msurat corespunztor pe caracteristic.

Lucrarea 7

121

Caracteristica impedanei termice tranzitorii jonciune-capsul pentru dioda cu avalan controlat.

BIBLIOGRAFIE
1. 2. 3. 4. I. Rusu, Metode numerice n electronic. Aplicaii n limbaj C, Editura Tehnic, Bucureti, 1997 E.A. Volkov, Numerical Methods, Mir Publisher Moscow, 1986. George-Daniel Mateescu, Ileana-Carmen Mateescu, Analiz Numeric, manual pentru cls. XII, profil Informatic, Editura Petrion, Bucureti, 1995. B. Demidovici, I.A. Maron, Computational Mathematics, Mir Publisher Moscow, 1981.