35 0 64KB
APROXIMAREA FUNC ȚIILOR
5. Polinomul Newton de interpolare
Problema Se cunoa]te un set n + 1 perechi de valori ( x, y ) , deumite noduri de interpolare
x0
x1
x2
....
xn
y0
y1
y2
....
yn
Se determin` un polinomul de interpolare y n (x ) de gradul n ale cărui valori coincid cu valorile din nodurile de interpolare.
Polinomul Newton de interpolare este de forma: y n (x ) = y 0 + ( x − x0 ) ⋅ y ( x0 , x1 ) + ( x − x0 ) ⋅ (x − x1 ) ⋅ y ( x0 , x1 , x 2 ) +
+ L + ( x − x0 ) ⋅ ( x − x1 )L ( x − x n −1 ) ⋅ y ( x0 , x1 , x 2 , L , x n ) în care se definesc diferențele divizate de:
y1 − y 0 x1 − x 0
- ordinul 1:
y ( x0 , x1 ) =
- ordinul 2:
y ( x0 , x1 , x 2 ) =
y ( x1 , x 2 ) − y ( x0 , x1 ) x 2 − x0
....... - ordinul n:
y ( x0 , x1 , x 2 ,L x n ) =
y ( x1 , x 2 ,L x n ) − y ( x0 , x1 ,L x n −1 ) x n − x0
1
APROXIMAREA FUNC ȚIILOR
Principiul metodei Se calculează diferențele divizate. Se determin` polinomul de interpolare y n (x ) după formula polinomului Newton de interpolare de gradul dorit ( 1, 2,…, n). Cazuri particulare ale polinomului Newton de interpolare
-
n = 1 : Polinomul Newton de interpolare de gradul 1: y1 (x ) = y 0 + ( x − x0 ) ⋅ y ( x0 , x1 )
-
n = 2 : Polinomul Newton de interpolare de gradul 2: y 2 ( x ) = y 0 + ( x − x0 ) ⋅ y ( x0 , x1 ) + ( x − x0 ) ⋅ (x − x1 ) ⋅ y ( x0 , x1 , x 2 )
....... -
n = k : Polinomul Newton de interpolare de gradul k: y k ( x ) = y 0 + ( x − x0 ) ⋅ y ( x0 , x1 ) + ( x − x0 ) ⋅ ( x − x1 ) ⋅ y ( x0 , x1 , x 2 ) +
+ L + ( x − x0 ) ⋅ ( x − x1 )L ( x − x k −1 ) ⋅ y ( x0 , x1 , x 2 , L , x k )
Exemplu de calcul
Problemă:
Fie următoarea funcție dată sub formă tabelară:
i
0
1
2
xi
0
2
3
yi
1
1
5
Se determină polinomul Newton de interpolare de gradul 1 și 2.
2
APROXIMAREA FUNC ȚIILOR
Rezolvare: Calculul diferențelor divizate de:
- ordinul 1:
- ordinul 2:
y ( x0 , x1 ) =
y1 − y 0 1 − 1 = =0 x1 − x0 2 − 0
y ( x1 , x 2 ) =
y 2 − y1 5 − 1 = =4 x 2 − x1 3 − 2
y ( x0 , x1 , x 2 ) =
y ( x1 , x 2 ) − y ( x0 , x1 ) 4 − 0 4 = = x 2 − x0 3−0 3
1. Polinomul Newton de interpolare de gradul 1 între punctele ( x0 , y 0 ) și ( x1 , y1 ) :
y1( 0−1) ( x ) = y 0 + ( x − x0 ) ⋅ y ( x0 , x1 ) = 1 + ( x − 0 ) ⋅ 0 = 1
Verificare: x = 0 : y1( 0−1) (0 ) = 1 x = 2 : y1( 0−1) (1) = 1 2. Polinomul Newton de interpolare de gradul 1 între punctele ( x1 , y1 ) și ( x 2 , y 2 ) : y1(1− 2 ) ( x ) = y1 + ( x − x1 ) ⋅ y ( x1 , x 2 ) = 1 + ( x − 2 ) ⋅ 4 = 4 x − 7
Verificare: x = 2 : y1(1− 2) (2 ) = 1 x = 3 : y1(1− 2 ) (3) = 5 2. Polinomul Newton de interpolare de gradul 2 între ( x0 , y 0 ) , ( x1 , y1 ) și ( x 2 , y 2 ) :
y 2 ( x ) = y 0 + ( x − x0 ) ⋅ y ( x0 , x1 ) + ( x − x0 ) ⋅ (x − x1 ) ⋅ y ( x0 , x1 , x 2 ) = = 1 + (x − 0 ) ⋅ 0 + (x − 0) ⋅ (x − 2) ⋅
Verificare: x = 0 : y 2 (0 ) = 1 x = 2 : y 2 (2 ) = 1 x = 3 : y 2 (3) = 3
3
4 3 − 8x + 4 x 2 = 3 3