Sunteți pe pagina 1din 10

 Sanda-Carmen Georgescu, Tudor Petrovici, Radu Popa

Metode numerice. Fişa de laborator nr. 2:


CRITERII DE APROXIMARE. CRITERIUL DE APROXIMARE
PRIN INTERPOLARE (polinomul Lagrange şi funcţii spline cubice)

2. CRITERII DE APROXIMARE

Funcţia f x  se aproximează printr-o altă funcţie F x  , relativ simplă, astfel încât pentru orice
x  a, b , valoarea lui F x  să fie suficient de apropiată de valoarea lui f x  . Aproximarea este necesară
atunci când:
 Nu se cunoaşte expresia analitică a lui f x  , dar se cunosc valorile sale în punctele xk sub forma unui
tabel de n  1 perechi de valori xk , f xk  , cu k  0; n :
xk x0 x1 ... xn

f  xk  f  x0  f x1  ... f  xn 
 Expresia analitică a lui f x  este cunoscută, dar prea complicată şi incomod de utilizat în calcule repetate.
Funcţia f x  poate fi aproximată prin polinomul generalizat Fm x  , definit printr-o combinaţie
liniară a unui număr finit de m  1 funcţii liniar independente, k x  :
m
f x   Fm x    c  x  .
k 0
k k (2.1)

Pentru k x   x k , unde k  0; m , polinomul de aproximare se numeşte polinom algebric şi are forma:


m
Fm x   c x
k 0
k
k
. (2.2)

Polinomul de aproximare trigonometric se scrie sub forma:


m


Fm x   0  ak cos kx  bk sin kx .
a
(2.3)
2 k 1
Fie o funcţie care măsoară distanţa dintre două funcţii oarecare. Coeficienţii polinomului generalizat
Fm x  se determină impunând condiţia ca distanţa dintre funcţia f x  şi polinomul generalizat să fie
minimă. După modul de definire a funcţiei distanţă se pun în evidenţă următoarele criterii de aproximare:
 Criteriul de aproximare prin interpolare;
 Criteriul de aproximare după rest (serie Taylor);
 Criteriul de aproximare cu abatere medie pătratică minimă;
 Criteriul de aproximare în sensul lui Cebîşev (de exemplu, polinomul de minimax).

2.1. CRITERIUL DE APROXIMARE PRIN INTERPOLARE

Dacă Fm x  este definit de (2.2) pentru cazul m  n , condiţia ca distanţa dintre funcţia f x  şi
polinomul de interpolare Fn x  să fie minimă impune sistemul de ecuaţii:
f xk   Fn xk , pentru k  0, 1, 2,, n , (2.4)
aceste ecuaţii constituind condiţiile de interpolare. Când f x  este dată printr-o tabelă de valori, sistemul
(2.4) impune coincidenţa dintre funcţie şi polinom în nodurile de interpolare xk . Aproximarea realizată în
acest caz se numeşte aproximare prin interpolare, iar polinomul generalizat
Fn x   c0  c1 x  c2 x 2    cn x n , (2.5)
care satisface condiţiile (2.4) se numeşte polinom de interpolare. Cei n  1 coeficienţi ck din (2.5) se
determină rezolvând sistemul de n  1 ecuaţii liniare cu n  1 necunoscute, generat de (2.4). În general,
prin mărirea gradului polinomului de interpolare n   , şirul de polinoame Fn x  nu converge către

1
f x  , însă pentru funcţii f relativ simple şi anumite alegeri ale nodurilor de interpolare, se poate obţine
convergenţa. Între două noduri de interpolare succesive, abaterea polinomului Fn x  de la funcţia dată,
anume f x   Fn x  , poate atinge valori apreciabile.

2.1.1. POLINOMUL DE INTERPOLARE LAGRANGE

Fie funcţia f x  : x0 , xn   R , dată sub forma unei tabele de valori:


xk x0 x1 ... xn

yk  f xk  f x0  f x1  ... f  xn 


cu nodurile de interpolare xk nu în mod necesar egal distanţate.
Din condiţia f xk   Fn xk , pentru k  0, 1, 2,, n , rezultă un sistem de n  1 ecuaţii cu n  1
necunoscute (coeficienţii polinomului de interpolare). Metoda Lagrange determină un polinom de
aproximare fără a rezolva sistemul (2.4) ataşat condiţiei de coincidenţă în noduri.

Formulare matematică: Polinomul de interpolare Lagrange de gradul n se scrie în funcţie de cele n  1


perechi de valori din tabelă, sub forma:
   
n
 n 
x  xj  n   n 
x  xj 
Ln x    
 yk
k 0  j 0 x k  x j  

k 0 

 f xk   .
j 0 x k  x j 
(2.6)
 j k   j k 

Pentru n  1 se obţine interpolarea liniară, polinomul Lagrange de gradul întâi având forma:
 
1 
1 
x  xj  x  x1   y x  x0    y   y1  y0  x    y1  y0  x .
L1 x     yk
k 0   
j 0 x k  x j 
 y0
x0  x1  1 x1  x0   0 x1  x0  0  x1  x0 
(2.7)
 j k 

Polinomul de interpolare Lagrange de gradul n definit prin relaţia (2.6) poate fi scris sub o formă
similară relaţiei (2.5), anume:
Ln x   a1 x n  a2 x n1  a3 x n2    an x  an1 . (2.8)
Cei n  1 coeficienţi a k cu k  1, 2, , n  1 ai polinomul Lagrange (2.8) pot fi determinaţi, de exemplu, cu
ajutorul unei funcţii denumite lagran.m, scrise în GNU Octave, astfel:
Funcţie GNU Octave pentru calculul coeficienţilor polinomului Lagrange:
octave#1> function [a,L]=lagran(x,y)
# Intrari: x este vectorul absciselor; y este vectorul ordonatelor
# Iesiri: a este vectorul coeficientilor polinomului Lagrange
# L este matricea calculelor intermediare aferente polinomului Lagrange
n=length(x)-1;
L=zeros(n+1,n+1);
# Determinarea coeficientilor polinomului Lagrange:
for k=1:n+1
v=1;
for j=1:n+1
if k~=j
v=conv(v,poly(x(j)))/(x(k)-x(j));
endif
endfor
L(k,:)=v;
endfor
a=y*L;
endfunction

Observaţie: Comanda polyout(a) returnează polinomul Lagrange sub forma (2.8).

2
Exemplul 1  Fie funcţia f x   x 2 1  ln x  definită pe intervalul x  1; 7 . Să se calculeze cu ajutorul
polinomului de interpolare Lagrange (2.6) valoarea funcţiei în x   5 , dacă se consideră nodurile de
interpolare: x0  1 , x1  3 şi x2  7 . Să se calculeze eroarea absolută  x (1.1) şi eroarea relativă  rx (1.2)
în procente, faţă de valoarea exactă f 5  52 1  ln 5  9.5806. Să se scrie o funcţie în GNU Octave
(denumită, de exemplu, lagr.m) pentru a determina valoarea polinomului Lagrange de gradul n pentru o
valoare x  dată, în cazul în care se cunosc vectorii x şi y cu câte n  1 componente.
Formulare matematică pentru n  2 : Polinomul de interpolare Lagrange (2.6) de gradul doi se scrie:
L2 x   f x0 
x  x1  x  x2   f x  x  x0  x  x2   f x  x  x0  x  x1  . (2.9)
x0  x1  x0  x2  1
x1  x0  x1  x2  2
x2  x0  x2  x1 
Algoritm:
1. Informaţia iniţială: Citeşte vectorii x, y şi valoarea xs în care se face interpolarea; length(x) = length(y) = n+1
2. Iniţializează suma Lagrange, notată cu L: L  0
3. Pentru k = 1:(n+1), iniţializează produsul din suma Lagrange, notat cu p: p  1 şi execută instrucţiunea 4
4. Pentru j = 1:(n+1), DACĂ k  j, execută p  p*(xs-x(j))/(x(k)-x(j))
5. Execută L  L+p*y(k)
6. Afişează valoarea calculată, cu 14 zecimale: val  L.
Funcţie GNU Octave:

octave#1>function L=lagr(x,y,n,xs)
L = 0;
for k = 1:n+1
p = 1;
for j=1:n+1
if k ~= j
p = p*(xs-x(j))/(x(k)-x(j));
endif
endfor
L = L + y(k).*p;
endfor
format long, val = L, format
endfunction

În GNU Octave, problema se rezolvă prin următoarea secvenţă de comenzi:


octave#1>x=[1 3 7]; y=x.^2./(1+log(x)); vexact=5^2/(1+log(5)); L=lagr(x,y,2,5)
# Se calculeaza eroarea absoluta ea si eroarea relativa er:
octave#2>ea=abs(vexact-L), er=(vexact-L)/vexact
Rezultate: Se obţin următoarele valori: y = [1.0000 4.2885 16.6332], vexact = 9.5806 şi L = 9.4996, adică
L2 5  9.4996 . Erorile au valorile  x  ea  0.080983 , respectiv  rx  er  0.84528 %. Valoarea L2 5
afişată cu 14 zecimale este: val = 9.49962476812106.

Pentru a ilustra acurateţea aproximării din Exemplul 1, se cere să se reprezinte pe acelaşi grafic, atât
funcţia exactă f x   x 2 1  ln x  , cât şi polinomul Lagrange L2 x   a1 x 2  a2 x  a3 .
Indicaţie: Se determină coeficienţii a k cu k  1, 2, 3 ai polinomului L2 x  , cu ajutorul funcţiei lagran.m. Se
discretizează intervalul x  1; 7 , de exemplu, cu pasul 0.1: se obţin astfel 7  1 0.1  60 de intervale
echidistanţate. Se calculează valorile exacte ale funcţiei f x  , respectiv valorile polinomului L2 x  , în cele
61 de puncte obţinute, apoi se reprezintă grafic.
Secvenţă de comenzi GNU Octave:
octave#3>[a,L]=lagran(x,y)
octave#3>x=1:0.1:7; f=x.^2./(1+log(x)); L2=polyval(a,x);
# Reprezentarea grafica a rezultatelor:
octave#4>xlabel('x'), ylabel('f(x) si L_2(x)'), grid('on')
octave#5>plot(x,f, '-ro;f(x) = x^2/(1+ln(x));', x,L2, '-b+;L_2(x) = a_1*x^2+a_2*x+a_3;’)

3
Rezultate: S-au obţinut următorii coeficienţi ai polinomului Lagrange: a = [0.240316 0.683010 0.076674],
deci, pentru Exemplul 1, polinomul Lagrange are forma: L2 x   0.240316x 2  0.683010x  0.076674.
Graficul trasat cu comanda plot (vezi figura 2.1) poate fi salvat, de exemplu ca fişier de tip encapsulated
postscript, cu denumirea fig21.eps, cu ajutorul comenzii print, astfel:
octave#6>print('fig21.eps','-depsc2')

Fig. 2.1  Aproximarea prin interpolare cu ajutorul polinomului Lagrange

2.1.2. POLINOMUL LAGRANGE PENTRU INTERPOLARE BIDIMENSIONALĂ

Formulare matematică: Fie un număr de m  1n  1 puncte distincte în care este precizată funcţia
 
f xi , y j , unde i  0, 1, , m , iar j  0, 1,, n . Se caută un polinom Lmn x, y  , de grad cel mult m în x şi
grad cel mult n în y, astfel încât
   
Lmn xi , y j  f xi , y j pentru i  0; m şi j  0; n . (2.10)
Se notează funcţiile:
m
 x  xk 
am,i x    x
k 0 i  xk 
pentru i  0, 1, , m (2.11)
k i
n
 y  yk 
respectiv bn, j  y    y
k 0 j  yk  pentru j  0, 1,, n (2.12)
k j

Cu (2.11) şi (2.12), polinomul Lagrange de interpolare bidimensională are forma:

  f x , y  a x b  y .
m n
Lmn x, y   i j m,i n, j (2.13)
i 0 j 0

4
 
Pentru a obţine valoarea Lmn x  , y  cu ajutorul polinomului Lagrange de interpolare
bidimensională (2.13), se poate aplica următorul algoritm de calcul.
Algoritm:
Pas 1: Se calculează pe rând vectorii linie, de componente a = [am,1 am,2 . . . am,m] pentru x = xs şi
b = [bn,1 bn,2 . . . bn,n] pentru y = ys, după formulele (2.11) şi respectiv (2.12), unde
f(xs,ys) este valoarea cautată prin interpolare;
Pas 2: Considerând F de componente f(xi,yj), pentru calculul valorii f(xs,ys) se poate utiliza produsul scalar:
f(xs,ys) = dot((F*aT)T,b).
1 Informaţia iniţială: Citeşte matricea F(xi,yj), cu i = 1:m+1, j = 1:n+1; vectorii linie x şi y; valorile xs şi ys în
care se face interpolarea şi length(x) = m+1, length(y) = n+1
2 Pentru k = 1:m+1, iniţializează produsul a1 (a1  1) şi execută instrucţiunea 3
3 Pentru j = 1:m+1, DACĂ k  j, execută a1  a1*(xs-x(j))/(x(k)-x(j)) şi stochează valorile în a
4 Pentru k = 1:n+1, iniţializează produsul b1 (b1  1) şi execută instrucţiunea 5
5 Pentru j = 1:n+1, DACĂ k  j, execută b1  b1*(ys-y(j))/(y(k)-y(j)) şi stochează valorile în b
6 Calculează valoarea cerută: val  dot(F*aT)T,b).
Funcţie GNU Octave:

octave#1>function val=lagr2(F,x,y,m,n,xs,ys)
>for k=1:m+1
> a1=1;
> for j=1:m+1
> if k~=j
> a1=a1*(xs-x(j))/(x(k)-x(j));
> endif
> endfor
> a(k)=a1
>endfor
>for k=1:n+1
> b1=1;
> for j=1:n+1
> if k~=j
> b1=b1*(ys-y(j))/(y(k)-y(j));
> endif
> endfor
> b(k)=b1
>endfor
>val=dot((F*a')',b)
>endfunction

Exemplul 2  Volumul specific al aburului supraîncălzit v [m3/kg] variază cu presiunea p [bar] şi



temperatura  [C], ca în tabelul de mai jos [Pop et al, 1987, §2.5.1], în care vij  v pi ,  j , cu indicii 
i  0;2 şi j  0;1 .

i=0 i=1 i=m=2


pi [bar] 10 15 20
 j [C]
j=0 250 v00 = 0.2327 v10 = 0.1520 v20 = 0.1115
j=n=1 270 v01 = 0.2429 v11 = 0.1592 v21 = 0.1172

Să se determine, cu polinomul Lagrange bidimensional Lmn  p,  , care este valoarea volumului specific la
presiunea p  13 bar şi temperatura   262 C, adică v  L2113, 262 .
Secvenţe de program GNU Octave:
octave#1>F=[0.2327 0.1520 0.1115;0.2429 0.1592 0.1172];
octave#2>x=[10 15 20];y=[250 270];m=length(x)-1; n=length(y)-1;
octave#3>xs=13; ys=262; val=lagr2(F,x,y,m,n,xs,ys)

5
Rezultate: Se obţin următoarele: a = [0.28000 0.84000 -0.12000], b = [ 0.40000 0.60000] şi val = 0.18439,
adică v  L2113, 262  0.18439 m3/kg.

2.1.3. INTERPOLAREA CU FUNCŢII SPLINE CUBICE

Formulare matematică:
În multe cazuri, se defineşte funcţia f x  printr-un tabel cu un număr mare de perechi de valori
xk , f xk , unde k  0; n . După cum s-a precizat la începutul paragrafului §2.1, alegerea unui polinom de
interpolare Fn x  cu grad ridicat n   , nu asigură obligatoriu convergenţa către f x  : între nodurile de
interpolare rezultatul aproximării poate fi eronat, polinomul putând admite minime sau maxime
semnificative între două noduri consecutive. O abordare practică constă în aproximarea funcţiei pe porţiuni
de interval (pe subşiruri de noduri de interpolare), cu ajutorul unor polinoame de ordin inferior, de exemplu
n  3 . Se caută ca aceste polinoame să fie continuu interconectate pe intervalul de variaţie a funcţiei f x  .
Între două noduri de interpolare consecutive xk 1 şi xk se recomandă aplicarea unor polinoame
f k x  de gradul 3, numite funcţii spline cubice, de forma:
f k x   ak  bk x  ck x 2  d k x3 , unde k  1; n (2.14)
definite astfel încât să asigure conectarea netedă cu funcţiile spline cubice adiacente. Pentru un tabel cu
n  1 noduri, rezultă n intervale pe care se construiesc n funcţii f k x  , deci rezultă 4n necunoscute, anume,
coeficienţii care apar în (2.14). Sunt deci necesare 4n ecuaţii pentru evaluarea acestor necunoscute, iar aceste
ecuaţii sunt definite prin condiţiile următoare:
 Valorile a două funcţii spline adiacente trebuie să fie egale în toate nodurile interioare xk , unde
k  1; n  1 . Rezultă astfel 2n  2 ecuaţii.
 Prima funcţie, f1 x  , definită între x0 şi x1 , respectiv ultima funcţie, f n x  , definită între xn1 şi xn ,
trebuie să treacă prin nodurile de capăt ale intervalului: x0 , respectiv xn . Rezultă astfel încă 2 ecuaţii.
 Derivatele de ordinul întâi trebuie să fie egale în toate nodurile interioare xk , unde k  1; n  1 . Rezultă
astfel n  1 ecuaţii.
 Derivatele de ordinul al doilea trebuie să fie egale în toate nodurile interioare xk , unde k  1; n  1 .
Rezultă încă n  1 ecuaţii.
 Derivatele de ordinul al doilea se impun nule în nodurile de capăt ale intervalului, adică:
 
f1 x0   0 şi f n xn   0 . (2.15)
Se obţin astfel ultimele 2 ecuaţii. Alegerea acestor ultime două condiţii corespunde aşa-numitelor funcţii
de tip spline natural (sau spline standard).
În continuare se prezintă o metodă [Chapra & Canale, 1988, §12.5.3] care reduce soluţionarea
sistemului de la 4n ecuaţii cu 4n necunoscute, la numai n  1 ecuaţii cu n  1 necunoscute. În cadrul
metodei, se scrie ecuaţia următoare în toate nodurile interioare:
xk  xk 1  f xk 1   2 xk 1  xk 1  f xk   xk 1  xk  f xk 1  
6  f xk 1   f xk  6  f xk 1   f xk 
  , unde k  1; n  1 . (2.16)
xk 1  xk  xk  xk 1 
Ţinând seama de condiţiile de spline natural, f x0   0 şi f xn   0 , din sistemul (2.16) de n  1
ecuaţii, se obţin cele n  1 derivate secunde f xk  , cu k  1; n  1 . Apoi, cunoscând derivatele secunde în
toate nodurile, se obţin funcţiile spline cubice f k x  pe fiecare interval [ xk 1 , xk ], cu relaţia:
f xk 1 
xk  x 3  f xk  x  xk 1 3 

f k x  
6 xk  xk 1  6 xk  xk 1 
 f xk 1  f xk 1 xk  xk 1 
    xk  x  
 xk  xk 1  6 

6
 f  xk  f xk xk  xk 1  
   x  xk 1  , unde k  1; n . (2.17)
 xk  xk 1  6 

Exemplul 3  Fie funcţia f x  dată sub forma unei tabele de valori:


xk x0  0 x1  1 x2  2

yk  f xk  f x0   1 f x1   2 f  x2   1


Să se găsească polinoamele de interpolare spline cubice P1 x  şi P2 x  , apoi, să se găsească cu ajutorul lor,
valorile interpolate în x  0.4 şi respectiv x  1.3 .
Formulare matematică: Fie P1 x   a x 3  b x 2  c x  d şi P2 x   s x 3  t x 2  u x  v polinoamele de
interpolare pe intervalele 0; 1, respectiv 0; 2 . Cele 8 ecuaţii pentru determinarea coeficienţilor necunoscuţi
a, b, c, d, s, t, u şi v sunt:
a  b  c  d  s  t  u  v  2 , deoarece P1 1  P2 1  2 ;
d  1 şi 8s  4t  2u  v  1 , deoarece P1 0  1 şi P2 2  1 ;
3a  2b  c  3s  2t  u , deoarece P11  P2 1 ;
6a  2b  6s  2t , deoarece P11  P21 ;
2b  0 şi 12s  2t  0 , deoarece P10  P22  0 din condiţia de spline natural.
Rezultate: Se obţin polinoamele de interpolare:
P1 x   0.5 x 3  1.5 x  1 şi P2 x   0.5 x 3  3 x 2  4.5 x ,
respectiv valorile interpolate: f 0.4  P1 0.4  1.5680 şi f 1.3  P2 1.3  1.8785 .

Observaţie:  Interpolarea cubic spline este folosită şi în probleme de reprezentare grafică a unor funcţii
(vezi Exemplul 4).
Funcţii GNU Octave care pot fi folosite: spline, csapi, csape, ppval, ...

Exemplul 4  Mediile de programare şi calcul ingineresc de nivel înalt (spre exemplu MATLAB, sau GNU
Octave) folosesc alte condiţii la capete pentru aproximarea cu funcţii spline. Condiţiile ca derivatele de

ordinul al doilea să fie egale cu zero în nodurile de capăt ale intervalului, adică (2.15): f1 x0   0 şi

f n xn   0 , sunt înlocuite cu condiţii pentru derivata a treia a funcţiilor. Astfel:
 dacă numărul nodurilor este n  3 , se consideră două polinoame de gradul 3, C1 x  şi C2 x  , care să
treacă respectiv prin primele 4 noduri şi prin ultimele 4 noduri şi de pun condiţiile la limită:
P13 x0   C13 x0  , respectiv Pn3 xn   C23 xn  . (2.18)
 dacă numărul nodurilor este n  3 , atunci trebuie specificată prima derivată la capete.
Astfel pentru datele din Exemplul 3, secvenţele de program GNU Octave aplică (2.18) şi furnizează
alte rezultate decât cele obţinute anterior cu spline natural, anume:
octave#1>x=[0 1 2];y=[1 2 1];pp=spline(x,y)
octave#2>valinterp1=ppval(pp,(0.4))
octave#3>valinterp2=ppval(pp,(1.3))
Rezultate: Secvenţele de program GNU Octave de mai sus returnează polinoamele de interpolare
P1 x   0.33333x 3  2 x 2  2.66667 x  1 şi P2 x   0.33333x 3  1 x 2  0.33333x  2 , respectiv valorile
interpolate f 0.4  P1 0.4  1.7680 şi f 1.3  P2 1.3  1.819 , fiind afişate următoarele:
pp =
{
P=
0.33333 -2.00000 2.66667 1.00000
0.33333 -1.00000 -0.33333 2.00000
d=1
k=4
n=2
x=

7
0
1
2
}
valinterp1 = 1.7680
valinterp2 = 1.8190

Exemplul 5  Se dă funcţia y  sin x definită pe intervalul x  0; 2 . Să se interpoleze cubic spline
funcţia y  sin x în punctele xi obţinute prin discretizarea intervalului 0; 2 cu pasul 0.1 şi să se
reprezinte grafic (figura 2.2) alături de funcţia exactă y  sin x .
Secvenţele de program GNU Octave:
octave#1>x=1:0.1:2*pi; y=sin(x); yi=spline(x,y,x);
octave#2>plot(x,y,”x1;y = sin(x);”,x,yi,”+3;sinus cu spline;”)
# Nota: ”x1;y = sin(x);” inseamna marcarea punctelor cu x de culoare rosie si eticheta y = sin(x)
# Nota: ”+3;sinus cu spline;” inseamna marcarea cu + de culoare albastra si eticheta sinus cu spline
octave#3>print('fig22.eps','-depsc2')

Fig. 2.2  Aproximarea prin interpolare cu ajutorul funcţiilor spline cubice

APLICAŢII DE LABORATOR

Problema 1  Fie funcţia f x   x . Se va considera o tabelă de valori exacte ale lui yk  f xk  pentru
xk  4; 9; 25 cu k  0; 1; 2. Să se găsească valoarea aproximativă a funcţiei la x   20 , utilizând:
   
(a) Interpolarea liniară. Să se calculeze eroarea relativă dintre L1 x   20 şi valoarea exactă f x   20
cu relaţia:

 rx 
 
f x   L1 x   
100 % .
f x  (2.19)

8
 
(b) Polinomul de interpolare Lagrange (2.6) de gradul doi. Să se compare L2 x   20 cu valoarea exactă
 

f x  20 şi să se calculeze eroarea relativă cu relaţia:
 
f x   L2 x 
 rx 
 
100 % .
f x   (2.20)

Indicaţie: Pentru punctul (a) se va folosi interpolarea Lagrange (2.7) cu două noduri: x1  9 şi x2  25 .

Problema 2  Vâscozitatea dinamică  [cP] a apei depinde de temperatura  [C] după legea următoare
[Kiselev, 1988, §1.12]:
1.78
 [cP]. (2.21)
1  0.0337   0.000221 2
Fie o tabelă de valori exacte  k  f k  , calculate cu (2.21) pentru  k {0; 20; 50} [C]. Să se găsească
valoarea aproximativă a vâscozităţii dinamice a apei la temperatura   30 C utilizând polinomul
Lagrange de gradul 2, adică L2 30 . Să se calculeze eroarea relativă în raport cu valoarea exactă 30
calculată cu (2.21). Să se ilustreze grafic rezultatele.

Problema 3  Într-o conductă circulară de rază R0  0.25 m, apa curge în regim turbulent mixt cu viteza
medie v  2.2 m/s. Coeficientul lui Darcy (al pierderilor de sarcină distribuite) este   0.0127. Viteza
maximă a apei (în axa conductei), determinată cu formula lui Altşul [Kiselev, 1988, §4.2] este:
 
vmax  v 1  1.35   2.535 m/s. Viteza instantanee v la distanţa y faţă de peretele conductei este descrisă
de legea lui Altşul: v vmax   y R0 0.9 
. Pentru valorile din problemă, legea teoretică a lui Altşul se scrie
sub următoarea formă compactă:
v  2.917 y 0.1014. (2.22)
Se va considera o tabelă de valori exacte ale vitezei vk  f  yk  , calculate cu (2.22), pentru distanţele
y k {0; 0.05; 0.1; 0.25} m, unde k  0;3 . Să se găsească valorile aproximative ale vitezei apei la distanţele
y   0.03; 0.2 m, utilizând polinomul Lagrange de gradul 3, adică L3  y  . Să se calculeze erorile relative
în raport cu valorile exacte v0.03 şi v0.2 calculate cu (2.22). Să se ilustreze grafic rezultatele.

Problema 4  Fie tabela de 4 valori exacte ale vitezei vk  f  yk  , calculate cu legea lui Altşul (2.22),
pentru distanţele y k {0; 0.05; 0.1; 0.25} m, unde k  0;3 . Între nodurile de interpolare consecutive yk 1 şi
yk , unde k  1;3 să se determine funcţiile spline cubice f k  y  (cu condiţii spline natural) şi să se
reprezinte grafic variaţia acestora. Să se găsească valorile aproximative ale vitezei apei la distanţele
y   0.03; 0.2 , utilizând funcţiile spline corespunzătoare, adică f1(0.03) şi f3(0.2). Să se calculeze erorile
relative  ry [%] în raport cu valorile exacte ale vitezei, v0.03 şi v0.2 , definite de (2.22).
Utilizând un program de calcul pentru funcţiile spline cubice cu condiţiile de tip spline (2.18), să se
aproximeze viteza apei în funcţie de distanţa la perete, considerând o discretizare foarte fină a intervalului
0; 0.25 , cu pasul h  0.0001. Comentaţi rezultatele.

Problema 5  Să se determine eroarea absolută care se comite în calculul lui 115 , folosind un polinom de
interpolare Lagrange de gradul 2 şi nodurile: x0  100 , x1  121 şi x2  144 , dacă se consideră valoarea
exactă: 115  10.72380.

Problema 6  Să se construiască polinomul de interpolare Lagrange notat L2 x  pentru funcţia


f x   cosx  şi nodurile x0  0 , x1  1 3 şi x2  1 2 . Să se calculeze eroarea relativă între L2 1 6 şi
valoarea exactă f 1 6  0.866025.

Problema 7  Considerăm funcţia definită cu ajutorul următorului tabel de valori:

9
x 0 0.5 0.75
f(x) 1 1.1276 1.2947

Să se calculeze (aproximativ) cu ajutorul polinomului de interpolare Lagrange valoarea f(0.7).

Problema 8  Fie funcţia de două variabile f x, y   x sin y şi tabelul de valori obţinut pentru nodurile
x0 = 1, x1 = 2, x2 = 3, x3 = 4, y0 = 1, y1 = 2, y2 = 3:

i=0 i=1 i=2 i=m=3


x 1 2 3 4
y
j=0 1 0.84147 1.68294 2.52441 3.36588
j=1 2 0.90930 1.81859 2.72789 3.63719
j=n=2 3 0.14112 0.28224 0.42336 0.56448

Să se determine, cu ajutorul polinomul Lagrange bidimensional Lmn x, y  din (2.13), care este valoarea
funcţiei L32 2.3,1.9 şi să se calculeze eroarea absolută faţă de valoarea exactă f 2.3,1.9  2.1765.
Program GNU Octave:
octave#1>[x,y]=meshdom(1:4,1:3); f=x.*sin(y);
octave#2>m=length(x)-1; n=length(y)-1; xs=2.3; ys=1.9;
octave#3>fexact=2.3*sin(1.9)
octave#4>ea=abs(fexact-lagr2(f,x,y,m,n,xs,ys))

10

S-ar putea să vă placă și