Documente Academic
Documente Profesional
Documente Cultură
Curs 6+7
Interpolarea i aproximarea funciilor
cu aplicaii n ingineria electric
f ( x ) g ( x; a 0 , a1 ,..., a n )
- model matematic.
g ( x, a 0 ,..., a n ) = a 0 g 0 ( x) + a1 g1 ( x) + ... + a n g n ( x)
g ( x; a 0 , a1 ,..., a n ) = a 0 + a1 x + a 2 x 2 + ... + a n x n
- interpolare liniar
- interpolare polinomial
a 0 + a1 x + ... + a n x n
g ( x; a 0 ,..., a n , b0 ,..., bm ) =
b0 + b1 x + ... + bm x m
- interpolare raional
x [a , b]
f (x ) p n ( x ) <
Interpolarea polinomial
n aplicaiile electrotehnice alegerea funciei de aproximare se
bazeaz i pe cunoaterea formei funciei care trebuie aproximat innd
cont de informaiile asupra aplicaiei practice care a generat modelul
matematic.
Problema care se pune este determinarea polinomului pn(x) care
satisface relaia de mai sus.
p n (x i ) = f (x i ), i = 0, n
Condiia p n (x i ) = f (x i ), i = 0, n devine:
a 0 + a1x 0 + a 2 x 02 + ... + a n x 0n = f (x 0 )
2
n
a 0 + a1x1 + a 2 x1 + ... + a n x1 = f (x1 )
.....................................................
a + a x + a x 2 + ... + a x n = f (x )
1 n
2 n
n n
n
0
x 0 ... x 0n
n
1 x1 ... x1n
ds =
= (x i x j ) 0
... ... ... ... i , j= 0
a 0 , a1 ,..., a n - necunoscute
xn
... x
n
n
i j
xi x j
a0 =
f (x 0 )
f (x 1 )
...
f (x n )
x0
x1
...
xn
ds
... x 0n
... x1n
... ...
... x nn
1 f (x 0 )
1 f (x1 )
...
...
1 f (x n )
, a1 =
ds
... x 0n
... x1n
... ...
... x nn
, ...a n =
1 x0
1 x1
... ...
1 xn
... f (x 0 )
... f (x1 )
...
...
... f (x n )
ds
Exist un singur polinom care interpoleaz funcia n nodurile x0, x1,...,xn pentru care:
p n (x i ) = f (x i ), i = 0, n
Interpolarea Lagrange
Fie o funcie f(x) definit pe intervalul [a,b], ale crei valori yi sunt
cunoscute numai n nodurile
xi , y i = f ( xi ) i [0, n] - interpolare liniar
xi - noduri de interpolare
p( x i ) = y i
are loc formula aproximativ:
f ( x ) p ( x ) x [ a , b ]
f ( x i ) = p( x i ) = yi , i [0, n ]
unde p(x) este unic pentru un tabel dat iar f i p au aceleai valori n nodurile fixate.
Observaie: Polinomul p(x) permite calculul valorilor sale i n punctele x xi
deci ntre noduri, ceea ce justific denumirea de interpolare.
Pentru orice k, 0 k p ,se noteaz cu li (i [0, n ]) polinomul ce verific condiiile
li (x i ) = 1
li (x k ) = 0, k i
0, k i
li ( x k ) = ki =
1, k = i
x 0 , x1 ,..., x i 1 , x i +1 ,..., x n
ci =
}
Pn ( x ) = f (x i ) li ( x ) = yi li ( x ) = L n ( x )
Ln (x)
i=0
i=0
not
L n ( x ) = yi
i=0
( x x 0 )...( x x i 1 )( x x i +1 )...( x x n )
( x i x 0 )...( x i x i 1 )( x i x i +1 )...( x i x n )
i =0
i =0
L n (x i ) = yi li (x k ) = yi ki = yi
L n (x i ) = yi = f (x i )
x 0 , x1 f (x 0 ), f (x1 )
x x1
x x0
, l1 (x ) =
x 0 x1
x1 x 0
L1 (x ) = f (x 0 ) l 0 (x ) + f (x 1 ) l1 (x ) = f (x 0 )
= f (x 0 ) +
f (x 1 ) f (x 0 )
(x x 0 )
x1 x 0
x x0
x x1
+ f (x 1 )
=
x 0 x1
x1 x 0
l0 (x 0 ) = 1, l0 (x1 ) = 0, l1 (x1 ) = 1, l1 (x 0 ) = 0
L1 (x 0 ) = f (x 0 ) l0 (x 0 ) + f (x1 ) l1 (x 0 ) = f (x 0 ) 1 + f (x1 ) 0 = f (x 0 ) = y 0
L1 (x1 ) = f (x 0 ) l0 (x1 ) + f (x1 ) l1 (x1 ) = f (x 0 ) 0 + f (x1 ) 1 = f (x1 ) = y1
Astfel L1(x) este polinomul unic care trece prin punctele (x0,y0) i (x1,y1) i aproximeaz
funcia f(x) pe intervalul [x0, x1].
f (x 1 ) f (x 0 )
L 1 ( x ) = f (x 0 ) +
(x x 0 )
x1 x 0
Fig. 3 Interpolarea Lagrange de ordinul I
f (x ) L1 (x )
f ( x ) = L1 ( x ) + R1 ( x )
()
()
f x L1 x
avem:
()
L1 x = f (x 0 ) + h
h
x x0
f (x1 ) f (x 0 )
=
h=
x x0
f (x 1 ) f ( x 0 ) x 1 x 0
x1 x 0
f (x1 ) f (x 0 )
L1 x = f x = f (x 0 ) + h = f (x 0 ) +
x x0
x1 x 0
() ()
f ( x ) = Ln ( x ) + R n ( x )
f ( n +1) ()
R n (x) =
( x x 0 )( x x1 )...(x x n ) - restul Lagrange de ordin n
(n + 1)!
- este un punct din cel mai mic interval care conine nodurile x0, x1,...xn si variabila x.
Demonstraie pe tabla!
Exemplu:
f (x) = ex
1 1
1
,
, 0, ,1 - noduri
2 2
x
x
0
x
(
)
(x + 1) (x 0) x 1 (x 1)
+
(x 1)
2
2
2
1
L n (x ) =
e 2 +
e +
1
1
1 1 1
1 1
+ 1 0 1
1 + ( 1 0) 1 ( 1 1)
2
2
2 2 2
2 2
(x + 1) x + 1 x 1 (x 1)
(x + 1) x + 1 (x 0) (x 1) 1
2
2
2
e2 +
e0 +
+
1
1 1 1 1
(0 + 1) 0 + 1 0 1 (0 1)
+ 1 + 0 1
2
2
2
2 2 2 2
(x + 1) x + 1 (x 0) x 1
+
2
2 1
e
1
1
(1 + 1) 1 + (1 + 0) 1
2
2
Exemplu
1
f (x) =
x
{x 0 = 0, x1 = 2.5, x 2 = 4}
Se interpoleaz pe intervalul [1,5] funcia dat prin polinomul Lagrange de ordinul II:
(x 2.5) (x 4) = (x 6.5)x + 10
f (x 0 ) = f (2 ) = 0.5; f (x 1 ) = f (2.5) = 0.4;
(2 2.5) (2 4)
f (x 2 ) = f (4 ) = 0.25
(
(
4x + 24)x 32
x 2) (x 4 )
=
l1 (x ) =
(2.5 2) (2.5 4)
3
(
x 2 ) (x 2.5) (x 4.5)x + 5 P(x ) = L (x ) = 2 l (x ) f (x ) = (0.05x 0.42) x + 1.15
i
=
2
i
l 2 (x ) =
=
i
0
(4 2) (4 2.5)
3
l 0 (x ) =
1
= 0.333
3
Alte exemple:
1. S se determine o aproximare polinomial pentru caracteristica unei diode semiconductoare:
uv
i(u ) = Is e 1, Is = 10 6 (A ), v = 0.027(V )
H
, 0 = 4107 , Bs = 1.7(T ), = 104 0
B = 0 H + Bs th
Bs
i analiza erorii introdus prin interpolare.
x = x 0 a 0 = N n (x 0 ) = f (x 0 )
x = x1 f (x 0 ) + a1 (x1 x 0 ) = N n (x1 ) = f (x1 ) a1 =
.
f (x1 ) f (x 0 )
x1 x 0
f ( x i ) f ( x i 1 )
i = 1,..., n
x i x i 1
- diferene divizate de ordinul I ale lui f pe nodurile xi
- se noteaz
f [x i 1 , x i ] sau [ x i 1 , x i ; f ]
f [x i , x i +1 ,..., x i + k ] f [x i 1 , x i ,..., x i + k 1 ]
f [x i 1 , x i ,..., x i + k ] =
x i + k x i 1
Diferenele divizate de ordinul 0 pe un nod
f [x 0 ] = f (x 0 )
f [x1 ] f [x 0 ]
x1 x 0
f [x 0 , x1 ] =
f [x 0 , x1 , x 2 ] =
f [x1 , x 2 ] f [x 0 , x1 ]
x2 x0
f [x 0 , x1 , x 2 ,...x n ] =
Se noteaz astfel:
.
a1 =
f (x1 ) f (x 0 )
= f [x 0 , x1 ]
x1 x 0
a k = f [x 0 , x1 ,..., x k ]
Proprieti:
f [x 0 , x1 ] = f [x1 , x 0 ]
f [x 0 , x1 ,..., x n ] = f x 0 , x 1 ,..., x n
f [x1 ]
f [x 0 ]
f [x 0 , x1 ] =
+
x1 x 0 x 0 x1
f [x 0 , x1 , x 2 ] =
f [x 2 ]
f [x1 ]
f [x 0 ]
+
+
(x 2 x 0 )(x 2 x1 ) (x1 x 0 )(x1 x 2 ) (x 0 x1 )(x 0 x 2 )
f [xi ]
f [x0 , x1 ,..., xn ] =
i = 0 ( xi x0 )( xi x1 )...( xi xn )
n
f [x 0 , x ] =
f [x ] f [x 0 ]
f [x ] = f [x 0 ] + f [x 0 , x ] (x x 0 ) - funcia i polinomul coincid
x x0
f [x ] = f [x 0 ] + f [x 0 , x1 ] (x x 0 ) + R 1 (x )
f [x ] f [x 0 ]
f [x 0 , x 1 ]
R 1 (x ) = f [x ] f [x 0 ] f [x 0 , x 1 ] (x x 0 ) R 1 (x ) = (x x 0 )
(x x 0 )
R 1 (x ) = (x x 0 ) (f [x 0 , x ] f [x 0 , x1 ]) = (x x 0 )(x x1 )
R 1 (x ) = (x x 0 )(x x1 ) f [x , x 0 , x1 ]
(f [x 0 , x ] f [x 0 , x1 ])
x x1
144424
44
3
f [x , x 0 , x1 ]
Polinomul construit este polinomul de gradul 2 de interpolare sub forma Newton cu diferene
divizate considernd nodul x2 nod intermediar:
N 2 (x ) = f [x 0 ] + (x x 0 )f [x 0 , x1 ] + (x x 0 )(x x1 )f [x 2 , x 0 , x1 ]
1444
424444
3 14444244443
N1 ( x )= f ( x ) R 0 ( x )= f ( x )
R1 ( x )
R n (x ) = (x x 0 )...(x x n )f [x , x 0 , x1 ,..., x n ]
Observaii:
S-a artat c n cazul n care se adaug un nod de interpolare, fa
de cazul interpolrii Lagrange, interpolarea Newton nu necesit
ntreaga recalculare.
Metoda de interpolare Newton realizeaz un compromis ntre
evaluare i construcia algoritmului care este stabil din punct de
vedere al erorilor numerice.
Permite mrirea gradului polinomului de interpolare prin
adugarea unui nod nou n reeaua de interpolare cu reutilizarea
coeficienilor de la gradul anterior care nu se modific.
Coeficienii polinomului Newton reprezint diferenele divizate ale
funciei de interpolat ceea ce uureaz calculul numeric al
derivatelor polinomului de interpolare.
Timpul de calcul este dependent de eroarea impus avnd valori
mari doar n cazurile n care se dorete o precizie ridicat.
N1 (x ) = f [x 0 ] + (x x 0 ) f [x 0 , x1 ]
R 1 (x ) = (x x 0 )(x x1 ) f [x , x 0 , x1 ]
N1 (0.5) = 5 + (0.5 0) 6 = 2
R1 (0.5) = (0.5 0)(0.5 1) 2 = 0.5
Exemplu:
S se scrie polinomul de interpolare Newton cu diferene divizate de gradul II pentru funcia
1
1
f (x ) = sin(x ) i nodurile x 0 = 0, x1 = , x 2 =
6
2
Aplicaia 1
\\ coeficientul de influenta;
k a := ( 1 1.4
1.8
2.35
log ( x)
2
x
F ( x) :=
x
f ( x) := F ( x) S
2.5
3 3.4
4 4.5
5.1
5.8
6 6.35
6.9
7.2
0.565
4.201
10
T
T
S := linfit n , k a , F S =
0.222
0.216
x := 3 , 3.01 .. 40
8 8.5
10
f ( x)
ka
10
20
x, n
30
40
9.2 )
( )
T
i := 0.. last n
Abatere :=
f ( nT) k T
a
i i
Abatere = 0.385
(verificare)
T)
T
(
dispersie := max f n ka 1.1
dispersie = 0.415
10
20
30
40
x :=
3
4
5
10
25
51
y :=
66
97
118
n
F( m, b ) :=
k =0
d
F( m, b )
dm
y m x + b
m x + b
f ( x)
d
F( m, b )
db
Given
n
n
2
m
x ) + b
x
(
k
k
k = 0
k = 0
m
:= MinErr( m, b )
b
\\ initializarea solutiilor
n
n
x + b
m
k
k = 0
k = 0
b := 1
x y
k k
k =0
\\ sistemul de ecuatii
k =0
m = 22.029
b = 6.095
\\ rezultate numerice
f ( x) := m x + b \\ forma analitica si grafica (mai jos) a functiei de aproximare
f ( x)
22.029x
+ 6.095
150
f ( x)
yk
100
50
3
x, xk
0
1
2
x :=
3
4
5
0
4
9
y :=
12
25
33
t2
t
f ( t) :=
1
0
coef := linfit ( x , y , f )
0.929
1.957
coef =
0.429
0
g ( t ) := coef f ( t )
40
30
20
g( t )
10
x, t
Aplicaia 2
1. Se cunoaste un sir de valori ale sarcinii electrice de pe un fir intr-un plan cu sistem de coordonate adoptat, in puncte de
abscise cunoscute. Care este, in aceasta situatie, functia numerica de distributie de sarcina electrica pe fir in planul
considerat?
Datele problemei:
1
1.2
2
2.5
3.4
mm
x :=
6
7.6
8
9
10
-- lungimea firului:
m := 10
0.5
0.6
0.8
1.4
2.4 6
Q( x) :=
10 m Coulomb
3.5
5.7
6
8
20
L := 15 mm
In aceasta problema se urmareste exprimarea functiei numerice dupa care variaza sarcina unui corp bidimensional,
cand sunt determinate, posibil experimental, valori ale sarcinii in puncte diferite de pe corp (fir). Astfel, se ajunge la
densitatea lineica de sarcina pentru corpul considerat, pe baza careia se pot calcula intensitatea campului electric,
potentialul electric in orice punct din plan.
Functie ( x)
L( x) dx
dQ
L( x)
Functie1 ( x)
L := 0 .. 15
-- intervalul ales:
mm
n := 10
i := 0 .. n 1
j := 0 .. n 1
-- valorile absciselor dispuse orizontal (se apeleaza din meniul Vector and
Matrix Palette, obiect Matrix Transpose, ori Ctrl+1):
T
x =
1 1.2
2 2.5 3.4
0
0
6 7.6
10
y ( x) := Q( x)
7
6
8
8
9
20
if(i
j
( i j)
j) , 1 , x x
(z xj)
j
l( i, z) := if z x , 1 ,
i
z
x
coef
( i) i
L( z) :=
l(i, z)y(x)i
i
10
10
z,x
D.
z := 0, 0.001.. 10
20
B( z )
y ( x)
10
10
z, x
1.5
3
X :=
7
9.5
k := 0 .. 3
( k) =
LX
( k) =
B X
0.591
0.675
2.051
1.956
5.044
4.875
11.776
14
metoda numerica
functia predefinita
Aplicaia 3
Intre doi electrozi cilindrici coaxiali de lungime egala, perfect conductori, este dispus un material
de conductivitate data. Pentru lungimea cilindrilor si pentru raza cilindrului exterior se dau cate
un set de valori in functie de raza cilindrului interior. Se cere determinarea valorii rezistentei
dispozitivului coaxial pentru orice valoare a razei cilindrului interior pe baza variatiei seturilor
de date furnizate.
:= 5.7 10
1
m
(conductivitatea materialului)
0.1
0.2
a := 0.35 m
0.65
10.05
9.40
L := 8.98 m
9.96
14.04
2.20
3.42
b := 5.26 m
9.06
13.72
A-B.
Rezistenta electrica a dispozitivului poate fi privita ca o suma de rezistente infinitezimale
de forma cilindrica cu peretii de grosime dr, unde r este raza unui contur cerc situat intre cei doi
cilindri supraconductori. Astfel, redarea analitica a dependentei de marimile geometrice
a rezistentei totale rezulta prin integrarea rezistentelor infinitezimale considerate a fi in serie:
1
S
dr
1
2 r L
dr
1
2 L
ln
C.
Deoarece parametrii L si b sunt determinati de parametrul a, variatia rezistentei se va
face dupa o functie compusa din combinatia dependentelor celor doi parametrii de raza cilindrului
mic, deci va avea o forma analitica necunoscuta. Corespondenta rezistenta electrica - raza cilindru
interior se va exprima prin interpolare, pe baza datelor din cele 3 seturi: a, L si b.
L
f ( a)
g ( a)
=>
1
2 f ( a)
ln
g ( a)
--> setul de valori ale rezistentei dupa parametrul geometric a, in conditiile in care s-au inglobat
si ceilalti parametri in formula arata in modul urmator:
i := 0 .. last ( b )
bi
R :=
ln
i
ai
2 L
i
1
0.04895
0.04807
R = 0.04803
0.0421
0.02969
--> in acest stadiu se aplica metoda lui Newton cu diferente divizate de interpolare a functiei data
in puncte .
--> algoritmul de scriere a metodei face apel la paleta de programare din Mathcad, se prezinta
mai jos si este explicat pentru fiecare linie:
--> se incarca intr-un vector intern sirul
Matrice_dif_div
:= X a
valorilor lui a;
--> se incarca in alt vector sirul valorilor R
Y R
--> se stabileste numarul de linii si coloane
n last ( X )
ale matricei cu diferente divizate, n;
for j 0 .. n
A
for
j, 0
j 1 .. n
for k 0 .. n j
A
A
k, j
k + 1 , j 1
k+ j
A
X
k , j 1
k
for i 1 .. j
A
n j+ i , j
A
A := Matrice_dif_div
8.588
8.433
A = 8.426
7.386
5.208
10
10
10
10
10
A
10
10
10
10
10
10
12
10
10
5.995 10
7.6 10
10
10
4.238 10
10
2.472 10
4.202 10
10
3.214 10
0
--> functia de interpolare Newton apeleaza elementele matricei, care constituie difere
divizate, construind astfel aproximarea:
j := 1.. last(a)
last(a) = 4
N(t) :=
j1
A
t (a) + A
i
0, 0
0, j
i =0
--> reprezentarea grafica a variatiei rezistentei dupa parametrul a se figureaza mai jos
domeniul limitat inferior si superior de minimul, respectiv maximul sirului dimensiunii a
0.05
N( t) 0.04
R
0.03
0.02
0.2
0.4
0.6
t,a
0.8
D.
Varianta oferita de Mathcad pentru identificarea numerica si grafica a variatiei rezistentei
electrice in functie de dimensiunea parametrului a, implica apelarea functiei de interpolare linterp
cu argumente: sirul valorilor lui a, sirul valorilor lui R inmultit cu si o variabila notata:
f ( z) := linterp( a , R , z)
R( dim_a) := N( dim_a)
R
f ( z)
0.04
10
a1 := 0.25 m
R( a1) = 8.429 10
a2 := 0.47 m
R( a2) = 8.249 10
10
N ( z )
0.03
0.02
0.2
0.4
0.6
0.8
a, z
E.
In grafic se compara caracteristica trasata de functia de interpolare Newton cu diferente
divizate si caracteristica trasata de functia
linterp de interpolare liniara; ultima functie uneste
punctele prin segmente de dreapta, ceea ce reduce precizia de calcul.
Avand exprimata functia de interpolare Newton cu diferente divizate este posibila
calcularea rezistentei electrice pentru orice valoare numerica a dimensiunii 'a'. Se dau cateva
exemple:
Aplicaia 4
1. Se dau urmatoarele rezultate ale unor masuratori, in functie de distanta, ale valorilor tensiunii electrice. Se cer
valorile polinomului de interpolare Lagrange, de un grad fixat in jurul unui punct z in m+1 puncte, acest polinom
aproximand functia. Sa se reprezinte grafic punctele masurate si polinomul de interpolare si sa se calculeze valoarea
lui in z=1100 cu un polinom de gradul doi.
1
5
x := 9
12
20
d :=
i
6
1
U( x) := 4
13
28
if( i j) , 1 , ( xi xj)
z := 0 .. 10
z=
( z) :=
n := 4
zx
i := 0 .. n
l( i, z) := if z
L( 10) = 6.277
L( z) =
-12.158
-6
-2.262
-0.243
0.668
1.19
1.591
2.468
10
6.277
j := 0 .. n
x , 1,
i
(z xi) di
( z)
L( z) :=
l(i, z)U(x)i
i
L( 8) = 2.468
z := 1 .. 20
40
U ( x) i 20
L( z )
0
20
10
15
xi , z
20
Aplicaia 5
( 1 , 1 , 1)
( 2 , 2 , 2)
( 3 , 3 , 3)
( 4 , 4 , 4)
( 5 , 5 , 5)
D.
0
1
2
t :=
3
4
5
0
0.5
0.7
w=
0.86
1
0.86
S := cspline ( t , w)
g ( r) := interp ( S , t , w , r)
1
g( r)
0.5
3
r
var := 0 , 0.5.. 5
f ( var ) =
g ( var) =
0
0.312
0.307
0.5
0.5
0.616
0.618
0.7
0.7
0.778
0.777
0.86
0.86
0.942
0.945
0.993
0.985
0.86
0.86
i, j
( i) ( j)
:= f x sin rot
i, j
( A , B , C)
( i) ( j)
:= f y cos rot
i, j
( i)
:= f z
Aplicaia 6
12
Mz :=
2
9
12
0
7
3.2
0.9
0.9 3
8.9
7.1
17
12 1
9.2
0.8 9.6
rows ( Mz) = 6
cols ( Mz) = 6
n := rows ( Mz)
n=6
X :=
3
4
5
0
1
2
Y :=
3
4
5
rows ( Mxy ) = 6
Suprafata originala
realizata doar prin
unirea cu segmente a punctelor matricei:
Mz
FIT