Sunteți pe pagina 1din 37

Cursul 8

Aproximarea funciilor

Aproximarea functiilor

Fie o funcie real f:[a,b]R, cunoscut


numai ntr-un numr limitat de puncte
numite noduri, (ansamblul acestora
constituind suportul interpolrii): x1,x2,,xn
prin valorile y1=f(x1), y2=f(x2),,
yn=f(xn).
O multime F de functii reale este
interpolatoarea de ordin n daca pentru orice
sistem de n puncte distincte x1,x2,,xn din
X si oricare ar fi numerele reale y1,y2,,yn
exista in F o singura functie care in punctele
xi ia valorile yi.

Interpolare
Problema de interpolare: Dandu-se multimea
interpolatoare F de de ordin n in X si perechile
(xi,yi) XxR cu proprietatea ca ij xixj sa
se determine aceea functie jF care in
punctele xi ia valorile yi.
Se aproximeaza comportarea funciei n afara
acestor puncte printr-un polinom generalizat de
interpolare, de forma:
Pn(x)=a1u1(x)+a2u2(x)++anun(x)
n care funciile liniar independente
u1(x),u2(x),,un(x)
sunt cunoscute i constituie baza interpolrii.

Interpolare

Aceasta poate fi format din funcii simple:


polinoame, funcii trigonometrice,
exponeniale, etc.
Determinarea polinomului generalizat de
interpolare (a coeficienilor ai) se face,
impunnd ca pe suportul interpolrii
polinomul de interpolare s coincid cu
funcia f.
Pn(xi)=f(xi), i=1:n
numite condiii de interpolare.

Interpolare

Condiiile de interpolare conduc la sistemul


de ecuaii liniare
n

k1

u k x i fx i ,

scris matriceal
U.a=f

i 1: n

Interpolare
S-au folosit notatiile
u11 u12
u
u 22
21

u n1 u n 2

u1n
u 2n

u nn

cu uij=uj(xi), fi=f(xi)

a1
a
2
a


a n

f1
f
2
f


fn

Interpolare

Polinomul de interpolare este


Pn x

Pn x

l x fx

k1

T
T
1
T

x f
a
u
x

u
x

u
x

l
k k

k1

cu

lT x u T x U 1 u1 x u 2 x u n x U 1

l x
1

l2 x ln x

Introducand conditiile de interpolare se obtine


lk x i 0,

lk x k 1.

i k,

Interpolarea polinomiala

Pentru baza polinomial


u1(x)=1, u2(x)=x,,u(x)=xn-1
Funciile lk(x) sunt polinoame de grad n-1,
cu rdcinile xi, i=1:n, ik:
lk x Ck x x1 x xk 1 x xk 1 x xn
1
Ck
x k x1 x k xk 1 x k xk 1 x k xn

Deci polinoamele lk(x) pot fi scrise


lk x

i 1,i k

x xi
x k xi

Interpolare

Polinomul de interpolare poart n acest caz


numele de polinom de interpolare Lagrange i are
forma

Pn x

fx

k1

i 1,i k

x xi
x k xi

Sistemul determinat de condiiile de interpolare


este
n

k1

a k x ik fx i ,

i 1: n

Interpolare

x1
x2

xn

x 12 x 1n 1 a1
y1

y
2
n1
x 2 x 2 a 2
2




2
n1
x n x n a n
y n

Acesta are determinant Vandermonde, care este


nenul dac punctele xi sunt distincte, caz n care
sistemul este compatibil determinat, cu soluie
unic, ceea ce implic un polinom de interpolare
unic.

Interpolare
Alte forme ale polinomului de interpolare Lagrange
x

x
i1

xi

k 1 i 1,i k

x i x k

i 1,i k
n

lk x

i 1,i k

x xi
1

x k xi
x xk

P x

k 1

f x k lk x x

i1
n

i 1,i k

1
x
lk x

x x k x k
n

k1

xi

xi
k

xi

f x k
x x k x k

Interpolare

a
V

1
x2

xn

x
1
U

x1

1
x2

xn

a x1 a x1
1
a x2

a xn
1
x 2 x1 x n x1
1
xn x2

x2 xn
1

Se observ c multiplicatorii Lagrange


reprezint raportul produselor pe coloane ale
celor dou matrice:

L l1 l2 ln prod V / prodU

Interpolare
Valoarea polinomului Lagrange ntr-un punct de
abscis a
b

i1

x1
x
2
U

x n

x1
0
U

y i prod V / prodU * y

x1 x1
x1 x 2
x x
x2 x2
2
1

xn xn
x1 x 2

0 0
x2 0

0 xn

1
1

1 1 1
1 1 1



1 1 1

xn
xn
I
n

xn

1 1
1 1

1 1

x1
0

0 0
x2 0
I
n

0 xn

U=diag(x)*ones(n)-ones(n)*diag(x)+eye(n)

Interpolare

0
a
V

0
1
V a*

a a
0
x
0 a
2

a 0
x n

1 1 x1
0 1 0



1 0 0

x1 x1
0 x2
I
n

xn 0

0 0
x2 0

0 xn

0
1

V=(a-diag(x))*~eye(n)+eye(n)

1 1
0 1
I
n

1 0

Interpolare

function b = Lagrange(a, x, y)
% valoare polinom Lagrange in a
n = length(x);
V=(a-diag(x))*~eye(n)+eye(n);
U=diag(x)*ones(n)-ones(n)*diag(x)+eye(n);
b=prod(V)./prod(U)*y;
function a = coefLagr(x, y)
% Intrri:
% x = tabloul absciselor celor n puncte
% y = tabloul ordonatelor celor n puncte
% Ieiri:
% a = coeficienti polinom Lagrange

Interpolare

a=zeros(n,1);
z=zeros(n,1);
% calcul coeficieni c din (x-x(1))...(x-x(n))
c=poly(x);
for i = 1 : n
% calcul coeficieni b ai mpririi
% polinomului prin x-x(i)
[b,r]=deconv(c,[1 -x(i)]);
% calcul p=(x(i)-x(1))...(x(i)-x(i-1))(x(i)-x(i+1))(x(i)-x(n))
z=x(i)-x;
z(i)=1;
p=prod(z);
a(1:n)=a(1:n)+y(i)*b(1:n)/p;
end

Interpolarea Lagrange-Exemplu

Sa se calculeze polinomul de interpolare Lagrange


corespunzator datelor:

Interpolarea Lagrange-Exemplu

Solutie:
x 1 x x 1 x 2
x 2 x x 1 x 2

P ( x) 6
2

2 1 2 2 1 2 2 1 2 1 1 1 1 2
x 2 x 1 x x 1 1 4

1 4
3
2
2
x 2 x x 2 x x x3 4 x 2 4 x
3
2 2 2 1 2 2 1 4
1 4
x 2 x3 x 2 2 x x 2 x
12

Interpolare
Polinomul de interpolare de grad poate fi calculat
prin recuren, folosind polinoame de interpolare de
grad mai mic.
Dac se noteaz ={i1,i2,,ip} i
P - polinomul de interpolare ce trece prin punctele
(xi1,yi1),(xi2,yi2),,(xip,yip)
atunci polinomul de interpolare definit pe ansamblul
extins de puncte +j+k= {j,k}

P j k x

x x P
j

x x x k P j x
x k xj

Interpolare

Metoda Neville are forma:


x xi j Qi , j 1 x x xi Qi 1, j 1 x
Qij x
xi xi j

n care s-a notat Qij=Pi-j,,i polinomul de


interpolare prin punctele (xi-j,yi-j),,(xi,yi)
Se pornete cu polinoamele de interpolare de grad 0,
reprezentate prin y1,y2,,yn, formndu-se
polinoamele de interpolare de grad 1, 2, ..., .a.m.d.
conform tabloului
x1 y1 = Q11 Q12 Q13 Q1n
x2 y2 = Q21 Q22 Q23 Q2,n-1
x3 y3 = Q31 Q32 Q3,n-2

xn yn = Qn1

Interpolare

b = Neville (x, y, a)
% Intrri:
% a = abscisa n care se calculeaz polinomul
% x = tabloul absciselor celor n+1 puncte
% y = tabloul ordonatelor celor n+1 puncte
% Ieiri:
% b = valoare polinom de interpolare
n = length(x);
q = y
for i = 1 : n
for j = 1 : n
q(j)=((a-x(j+i))*q(j)-(a-x(j))*
q(j+i))/(x(j)-x(j+i));
end
end
b = q(n);

Metoda Neville-exemplu

Sa se calculeze polinomul de interpolare Lagrange


(folosind metoda Neville de recuren)
corespunzator datelor:

Interpolarea Lagrange-Exemplu
(folosind metoda Neville de recuren)
Solutie:

Q1,1

Q2,1

x x2 Q1,0 x x1 Q2,0 x 1 6 x 2 2

4 x 2
x1 x2

2 1

x x3 Q2,0 x x2 Q3,0 x 0 2 x 1 0

2 x
x2 x3

1 0

Interpolarea Lagrange-Exemplu
(folosind metoda Neville de recuren)
Solutie:

Q3,1

x x4 Q3,0 x x3 Q4,0 x 1 0 x 0 0

Q4,1

x3 x4

x x5 Q4,0 x x4 Q5,0 x 2 0 x 1 2

2x 2
x4 x5

Q1,2

Q2,2

0 1

1 2

x x3 Q1,1 x x1 Q2,1 x 0 4 x 2 x 2 2 x 2

x x
x1 x3

2 0

x x4 Q2,1 x x2 Q3,1 x 1 2 x x 1 0 2

x x
x2 x4

1 1

Interpolarea Lagrange-Exemplu
(folosind metoda Neville de recuren)
Solutie:

x x5 Q3,1 x x3 Q4,1 x 2 0 x 0 2 x 2 2

x x

Q3,2

Q1,3

x3 x5

x x4 Q1,2 x x1 Q2,2 x 1 x2 x x 2 x2 x

Q2,3

Q1,4

02

x1 x4

2 1

x x5 Q2,2 x x2 Q3,2 x 2 x2 x x 1 x2 x
x2 x5

x x5 Q1,3 x x1 Q2,3
x1 x5

1 2

x 2 x2 x x 2 x2 x
2 2

x2 x
x2 x

x2 x

Diferene divizate

Diferentele divizate ale unei functii f n raport cu xi


pot fi introduse prin recuren cu relaiile:
F1 x1 fx1
F2 x1,x 2

F1 x1 F1 x 2

x1 x 2

Fp x1, , x p

Fp 1 x1, , x p 1 Fp 1 x 2, , x p
x1 x p

Diferene divizate
Ele se pot calcula cu relatia:
F x , , x
p

k1

fx k

x k

fx k

k1

x k

i1

xi

Se introduce diferenta divizat de argument repetat:

F1 x1, x1 lim F1 x0, x1


x0 x1

fx0 fx1
lim
fx1 ,
x0 x1
x0 x1

pe baza creia se deduce:


Fp 1 x i, , x i f p 1 x i

Diferene divizate

function a = DifDiv(x, y)
% Intrri:
%
x = abscisele celor n puncte
%
y = ordonatele celor n puncte
% Ieiri:
%
y =diferene divizate de ordin
1:n
n = length(x);
for k = 1 : n-1
y(k+1:n)=(y(k+1:n)-y(k))./
(x(k+1:n)-x(k));
end

Identitatea lui Newton

Pornind de la relatia de recurenta a diferentelor


divizate se va stabili o alta forma a polinomului de
interpolare Lagrange care pune in evidenta expresia
erorii.

x0 F1 x, x0 fx fx0

x0 x x1 F2 x, x0, x1 F1 x, x0 F1 x0, x1

x x0 x x1 x x2 F3 x, x0, x1, x2 F2 x, x0, x1 F2x0, x1, x2


x0 x x n 1 x x n Fn 1 x, x0, , x n
Fn x, x0, , x n 1 Fn x0, x1, x n

Identitatea lui Newton


Prin adunarea lor se ajunge la:

fx fx0 x x0 F1 x0, x1 x x0 x x1 F2 x0, x1, x2

x x0 x x n 1 Fn x0, , x n x x0 x x n Fn 1 x, x0, , x n
relatie denumita Identitatea lui Newton.
Aceasta relatie contine atat polinomul de interpolare
Lagrange cat si restul interpolarii:

fx Pn x R n x

Identitatea lui Newton


R n x x x0 x x n Fn 1 x, x0, , x n

fx Pn x R n x

are n+1 rdcini

fx Pn x

are n rdcini
are o rdcin

fn x Pnn x

Prin derivarea de n ori a polinomului de


interpolare se obtine:

Pnn x n ! Fn x0, x1, , x n

Identitatea lui Newton


De unde:

fn x n!Fn x0, x1, , x n 0


Fn x0,x1, , x n

f(n)

n!

Fn x 0,x1, , x n

x0, x n

f(n)
n!

R n x x x0 x x n Fn 1 x, x0, x1, , x n
R n x
M n 1 f

x0 x x n

fn 1

M n 1 f

n 1!

Identitatea lui Newton


Dac funcia f este nedefinit derivabil fC atunci
Mn+1(f) crete foarte repede, deci majorarea este
grosier.
function b = Newton(a, x, y)
% Intrri:
% a = abscisa n care se calculeaz polinomul
% x = tabloul absciselor celor n puncte
% y = tabloul ordonatelor celor n puncte
% Ieire:
% valoarea polinomului de interpolare n a
n = length(x);
a = DifDiv(x, y);
b = a(n);
for i = n-1:-1:1
b = (a - x(i-1)).*b + a(i);
end

Diferente divizate-exemplu
Sa se calculeze polinomul de interpolare Lagrange
folosind identitatea lui Newton cu diferente divizate
corespunzatoare datelor:

Interpolarea Lagrange-Exemplu
(folosind identitatea lui Newton cu diferente divizate)
Solutie:

F1 ( x1 ) F1 ( x2 ) 6 2
F2 ( x1 , x2 )

4
x1 x2
2 1
F2 ( x2 , x3 )

F1 ( x2 ) F1 ( x3 ) 2 0

2
x2 x3
1 0

Interpolarea Lagrange-Exemplu
(folosind identitatea lui Newton cu diferente
divizate)
Solutie:
F2 ( x3 , x4 )

F1 ( x3 ) F1 ( x3 ) 0 0

0
x3 x4
0 1

F1 ( x4 ) F1 ( x5 ) 0 2
F2 ( x4 , x5 )

2
x4 x5
1 2
F3 ( x1 , x2 , x3 )

F2 ( x1 , x2 ) F2 ( x2 , x3 ) 4 2

1
x1 x3
2 0

F3 ( x2 , x3 , x4 )

F2 ( x2 , x3 ) F2 ( x3 , x4 ) 2 0

1
x2 x4
1 1

Interpolarea Lagrange-Exemplu
(folosind identitatea lui Newton cu diferente
divizate)
Solutie:
F3 ( x3 , x4 , x5 )

F2 ( x3 , x4 ) F2 ( x4 , x5 ) 0 2

1
x3 x5
02

F4 ( x1 , x2 , x3 , x4 )

F3 ( x1 , x2 , x3 ) F3 ( x2 , x3 , x4 ) 1 1

0
x1 x4
2 1

F4 ( x2 , x3 , x4 , x5 )

F3 ( x2 , x3 , x4 ) F3 ( x3 , x4 , x5 ) 1 1

0
x2 x5
1 2

F ( x) f (2) x 2 (4) x 2 ( x 1) 1
6 4 x 8 x 2 3x 2 x 2 x