INDRUMATOR DE LABORATOR DE ANALIZA

NUMERICA
ALEXANDRU MIHAI BICA
1
Introducere
Acest indrumator de laborator urmeaza pentru capitolele 5-8 cursul de analiza numerica
[4] si este adresat studentilor din anul IV ai specializarii Matematica-Informatica si celor din
anul II ai specializarilor Matematica si Informatica, din cadrul Facultatii de Stiinte. Desigur,
acest indrumator poate … folosit si de catre studentii specializarilor ingineresti ce au in planul
de invatamint un curs de metode numerice.
Pentru capitolele 1-4 s-au folosit ca suport teoretic lucrarile [8], [10], [11], [12], [13], [14],
[19], si [21]. Deasemenea, prezentarea s-a actualizat folosind unele rezultate recente (a se
vedea [1], [2], [3], [5], [6], [9] si [20]). O parte dintre algoritmi (cei din paragrafele 1.1, 1.2,
1.3.2, 1.4.2, 7.1, 7.4, 7.5, 7.5 si din capitolele 3 si 6) sunt preluati din [7]. Ca o noutate fata de
alte lucrari similare sunt paragrafele 2.1, 2.2.2, 2.2.3, 4.1, 4.2 (dreapta si parabola de regresie
sunt folosite si la facultatile cu pro…l economic), 5.1 si 5.3. Unii dintre algoritmi sunt insotiti
si de catre varianta notepad a programului corespunzator implementat in limbajul C.
Capitolele 1 si 3 sunt dedicate interpolarii si aproximarii functiilor continue, iar capitolul
2 prezinta unele procedee de interpolare neteda a datelor experimentale. In capitolul 4 sunt
prezentate cele mai simple procedee de prelucrare a datelor experimentale, bazate pe prin-
cipiul celor mai mici patrate. Capitolele 5-8 sunt dedicate metodelor numerice, prezentandu-
se procedee de integrare numerica (continând estimari recente ale restului din formulele de
cuadratura; a se vedea [2], [3], [5] si [9]) si derivare numerica, metode din algebra liniara, pro-
cedee de aproximare a solutiilor ecuatiilor algebrice si transcendente si a sistemelor neliniare
pe spatii euclidiene, precum si cele mai cunoscute metode de rezolvare numerica a problemelor
Cauchy si la limita asociate ecuatiilor diferentiale.
2
1 Interpolarea polinomial¼ a a func¸tiilor
In acest capitol se prezinta cele mai folosite metode de interpolare polinomiala Lagrange si
Hermite, insotite de instrumentele lor auxiliare : diferentele …nite si divizate.
1.1 Diferen¸te …nite
Consideram intr-un interval 1 · R, multimea de noduri echidistante
/ = ¦c
k
: c
k
= c +//. / = 0. :. / ÷ R. / = 0¦ · 1
si …e functia 1 : / ÷R.
De…nitia 1: Se numeste diferenta …nita de ordinul intai cu pasul / pe nodul c
i
, i =
0. :÷1. relativa la functia 1. diferenta

h
1 (c
i
) = 1 (c
i+1
) ÷1 (c
i
) = 1 (c + (i + 1)/) ÷1 (c +i/) .
De…nitia 2: Se numeste diferenta …nita de ordinul / cu pasul / pe nodul c
i
, i = 0. :÷1.
/ = 1. :÷i. relativa la functia 1. diferenta data recurent,

k
h
1 (c
i
) =
h

k÷1
h
1 (c
i
)

=
k÷1
h
1 (c
i+1
) ÷
k÷1
h
1 (c
i
) .
Prin conventie, se considera ca
0
h
1 (c
i
) = 1 (c
i
) . \i = 0. :.
Sunt cunoscute proprietatile de liniaritate

k
h
(c1 +o) = c
k
h
1 +
k
h
o. \c. ÷ R.
si de comutativitate a compunerii

r
h
(
s
h
1) =
s
h
(
r
h
1) =
r+s
h
1
ale operatorului de diferenta …nita
k
h
.
In calcule, de mare utilitate este tabloul cu diferente …nite :
r 1
h
1
2
h
1
3
h
1 .......
m÷1
h
1
m
h
1
c
0
1
0

h
1
0

2
h
1
0

3
h
1
0
.......
m÷1
h
1
0

m
h
1
0
c
1
1
1

h
1
1

2
h
1
1

3
h
1
1
.......
m÷1
h
1
1
....... ....... .......... ........ ......... .......
c
m÷3
1
m÷3

h
1
m÷3

2
h
1
m÷3

3
h
1
m÷3
c
m÷2
1
m÷2

h
1
m÷2

2
h
1
m÷2
c
m÷1
1
m÷1

h
1
m÷1
c
m
1
m
unde s-au folosit notatiile 1
i
= 1 (c
i
) si formula de recurenta

k
h
1
i
=
k÷1
h
1
i+1
÷
k÷1
h
1
i
. / = 1. :. i = 0. :÷/.
Tabloul cu diferente …nite ofera o metoda simpla, algoritmica de calcul a tuturor difer-
entelor …nite ale unei functii, relative la o multime de noduri echidistante date. Datorita
3
formulei de recurenta de mai sus, elementele …ecarei coloane se obtin din elementele coloanei
precedente, ceea ce permite o programare simpla a algoritmului de generare a elementelor
tabloului de diferente …nite.
Se obtine astfel, urmatorul algoritm :
I. Date de intrare :
: ordinul maxim al diferentelor …nite,
/ pasul,
c punctul de plecare
1
i
. i = 0. :. valorile functiei 1 pe noduri ( sau expresia functiei 1 ).
II. Date de iesire : tabloul cu diferentele …nite pina la ordinul :, adica valorile
k
h
1 (c
i
) .
/ = 0. :. i = 0. :÷/. Uneori este solicitata numai valoarea
m
h
1 (c) .
III. Pasii algoritmului :
Pasul 1. Se calculeaza nodurile c
k
= c +//. / = 0. : si pentru / = 0. : se calculeaza

0
h
1
k
:= 1 (c +//)
Pasul 2. Pentru / = 1. : si pentru i = 0. :÷/ calculeaza

k
h
1
i
:=
k÷1
h
1
i+1
÷
k÷1
h
1
i
.
Pasul 3. Scrie
m
h
1 (c) :=
m
h
1
0
. A…seaza
k
h
1
i
. / = 1. :. i = 0. :÷/. sau a…seaza
numai
m
h
1
0
. STOP.
Probleme propuse :
1. Sa se construiasca un program de calcul al tabloului de diferente …nite in limbajul
Pascal si in limbajul C.
2. Se da functia functia 1 (r) =
1
x
pentru r = 0. Sa se construiasca tabloul de diferente
…nite pina la ordinul 6 cu pasul / = 0.2 si punctul de plecare c = 1.
1.2 Diferen¸te divizate
Consideram intr-un interval 1 · R, multimea de noduri
/ = ¦c
k
: c
k
÷ R. / = 0. :. ¦ · 1
si …e functia 1 : / ÷R.
De…nitia 1: Se numeste diferenta divizata de ordinul intai cu nodurile c
r
si c
r+1
relativa
la functia 1, expresia
11 (c
r
)
notatie
= [c
r
. c
r+1
; 1] =
1 (c
r+1
) ÷1 (c
r
)
c
r+1
÷c
r
. : = 0. :÷1.
De…nitia 2: Se numeste diferenta divizata de ordinul / cu nodurile c
r
. c
r+1
. .... c
r+k
.
relativa la functia 1. expresia
1
k
1 (c
r
)
notatie
= [c
r
. c
r+1
. .... c
r+k
; 1] =
1
k÷1
1 (c
r+1
) ÷1
k÷1
1 (c
r
)
c
r+k
÷c
r
. (1)
4
: = 0. :÷1. / = 1. :÷:.
Prin conventie, se noteaza 1
0
1 (c
r
) = 1 (c
r
) . : = 0. :. Deasemenea, este cunoscut
faptul ca operatorul 1
k
este liniar.
Cand nodurile din / sunt echidistante atunci intre diferentele divizate si diferentele …nite
exista relatia
1
m
1 (c) =

m
h
1 (c)
:!/
m
.
In general, pentru diferentele divizate exista exprimarea :
[c
r
. c
r+1
. .... c
r+k
; 1] =
k
¸
i=0
1 (c
r+i
)
n
t
(c
r+i
)
unde
n(r) = (r ÷c
r
) (r ÷c
r+1
) ... (r ÷c
r+k
) .
Observatie: Pentru : = 0 si / = :
[c
0
. c
1
. .... c
m
; 1] =
m
¸
k=0
1 (c
k
)
n
t
(c
k
)
=
m
¸
k=0
1 (c
k
)
n
k
(c
k
)
unde
n(r) = (r ÷c
0
) (r ÷c
1
) ... (r ÷c
m
)
si
n
k
(r) =
n(r)
r ÷c
k
. \/ = 0. :.
In calcule, in special la constructia formulei de interpolare a lui Newton pentru polinomul lui
Lagrange, este util tabloul de diferente divizate.
r 1 11 1
2
1 1
3
1 ....... 1
m÷1
1 1
m
1
c
0
1
0
11
0
1
2
1
0
1
3
1
0
....... 1
m÷1
1
0
1
m
1
0
c
1
1
1
11
1
1
2
1
1
1
3
1
1
....... 1
m÷1
1
1
c
2
1
2
11
2
1
2
1
2
1
3
1
2
.......
.... .... ...... ...... .....
c
m÷2
1
m÷2
11
m÷2
1
2
1
m÷2
c
m÷1
1
m÷1
11
m÷1
c
m
1
m
unde 1
i
= 1 (c
i
) . i = 0. :.
La constructia tabelului s-a folosit formula de recurenta
1
k
1 (c
i
) =
1
k÷1
1 (c
i+1
) ÷1
k÷1
1 (c
i
)
c
i+k
÷c
i
. / = 1. :. i = 0. :÷/.
Aceeasi formula de recurenta o foloseste algoritmul de mai jos :
I. Date de intrare :
: ordinul maxim al diferentei divizate
5
c
k
. / = 0. : nodurile diferentelor divizate
1 (c
k
) . / = 0. : valorile functiei pe noduri.
II. Date de iesire : Tabloul diferentelor divizate pina la ordinul :, adica 1
k
1 (c
i
) . / =
0. :. i = 0. :÷/. sau numai valoarea 1
m
1 (c
0
) .
III. Pasii algoritmului :
Pasul 1. Pentru i = 0. : ataseaza
1
0
1
i
:= 1 (c
i
) .
Pasul 2. Pentru / = 1. :.
Pentru i = 0. :÷/. calculeaza
1
k
1
i
:=
1
k÷1
1
i+1
÷1
k÷1
1
i
c
i+k
÷c
i
Pasul 3. A…seaza 1
k
1
i
. / = 1. :. i = 0. :÷/. sau a…seaza numai 1
m
1
0
. STOP.
Probleme propuse :
1. Sa se construiasca un program de calcul al tabloului de diferente divizate in limbajul
Pascal si in limbajul C.
2. Considerând functia 1 : R ÷ R, 1 (r) =
1
1+x
2
sa se construiasca tabloul cu diferentele
divizate relativ la nodurile ÷3. ÷1. 0. 1. 1.5 pina la ordinul 4.
3. Pentru functia densitate de probabilitate a lui Gauss
1 : R ÷R. 1 (r) =
1

2:
c
÷
1
2
x
2
sa se construiasca tabloul de diferente divizate pina la ordinul 5 cu nodurile echidistante
c
k
= c +//. / = 0. 5. / = 0.4.
1.3 Polinomul de interpolare al lui Lagrange
Sunt prezentate formula de interpolare a lui Newton ce foloseste recurent diferentele divizate
(diagonala tabloului de diferente divizate) si procedura de interpolare a lui Aitken pentru
polinomul lui Lagrange.
Se considera cunoscute valorile functiei 1 : [c. /] ÷ R. pe nodurile distincte c
k
÷ [c. /].
/ = 0. :. n
k
= 1 (c
k
) .
De…nitia 1: Se numeste polinomul de interpolare al lui Lagrange relativ la functia 1 si la
nodurile c
k
. / = 0. :. polinomul de grad minim 1
m
1 care satisface conditiile de interpolare
1
m
1 (c
k
) = 1 (c
k
) = n
k
. \/ = 0. :.
Observatie: Gradul polinomului 1
m
1 este :, iar conditiile de interpolare de mai sus
conduc la un sistem liniar de : + 1 ecuatii cu cei : + 1 coe…cienti ca necunoscute si astfel,
polinomul de interpolare al lui Lagrange este unic determinat de aceste conditii de interpolare.
Se obtine expresia lui 1
m
1,
1
m
1 (r) =
m
¸
k=0
n(r)
(r ÷c
k
) n
t
(c
k
)
1 (c
k
) . \r ÷ [c. /]. (2)
6
unde
n(r) = (r ÷c
0
) (r ÷c
1
) ... (r ÷c
m
) .
Este cunoscut faptul ca operatorul de interpolare al lui Lagrange 1
m
este liniar. Deasemenea,
in formula de interpolare a lui Lagrange
1 (r) = 1
m
1 (r) +1
m
1 (r) . r ÷ [c. /] (3)
are loc estimarea erorii :
[1
m
1 (r)[ _

[n(r)[ [r. c
0
. .... c
m
; 1]. \r ÷ [c. /]. daca 1 ÷ ([c. /]
1
(m+1)!
[n(r)[

1
(m+1)

C
\r ÷ [c. /]. daca 1 ÷ (
m+1
[c. /].
(4)
Din punct de vedere practic, dându-se o fonctie 1 : [c. /] ÷R. cunoscuta doar pe nodurile
c
k
÷ [c. /]. / = 0. :. si precizându-se o eroare admisa 0, se cere sa se determine
: ÷ N si sa se aproximeze valoarea 1 (c) prin 1
m
1 (c) cu o eroare ce nu depaseste . In acest
caz, presupunandu-se cunoscut un majorant `
m+1
(1) . pentru normele derivatelor

1
(k)

C
se determina : astfel incat [1
m
1 (c)[ < . adica
[n(c)[
(:+ 1)!
`
m+1
(1) < .
Dar aici, cerinta cunoasterii majorantului `
m+1
(1) nu poate … ocolita. Acest aspect restrange
sfera de aplicabilitate a procedeului.
1.3.1 Algoritmul lui Aitken
O metoda mult mai practica este stabilita prin algoritmul lui Aitken, bazat pe urmatoarea
proprietate de recurenta a polinomului lui Lagrange:
Proprietatea de recurenta: Notand 1
0
1 (r; c
j
) = 1 (c
j
) . , = 0. : se obtine relatia de
recurenta
1
m
1(r; c
0
. c
1
. .... c
m
) =
r ÷c
i
c
k
÷c
i
1
m÷1
1(r; c
0
. .... c
i÷1
. c
i+1
. .... c
m

÷
r ÷c
k
c
k
÷c
i
1
m÷1
1(r; c
0
. .... c
k÷1
. c
k+1
. .... c
m
). /. i = 0. :. \r ÷ [c. /].
Metoda lui Aitken consta in generarea tabloului
c
0
1
00
c
1
1
10
1
11
c
2
1
20
1
21
1
22
c
3
1
30
1
31
1
32
1
33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
m
1
m0
1
m1
1
m2
1
m3
..... 1
mm
unde 1
i0
= 1 (c
i
) . i = 0. :, iar elementele celorlalte coloane sunt calculate prin
1
i;j+1
=
1
c
i
÷c
j

1
jj
c
j
÷r
1
ij
c
i
÷r

7
pentru i = 1. : si , = 0. i ÷1.
Observam ca
1
11
=
r ÷c
1
c
0
÷c
1
1 (c
0
) +
r ÷c
0
c
1
÷c
0
1 (c
1
) = 1
1
1 (r)
si analog se obtine pentru i = 2. :
1
ii
= 1
i
1 (r)
adica polinomul de interpolare Lagrange relativ la nodurile c
0
. c
1
. .... c
i
.
Astfel, sirul elementelor de pe diagonala tabloului 1
11
. 1
22
. .... 1
ii
. .... 1
mm
devine un sir de
aproximatii ale lui 1 (r) . Acest sir va converge catre 1 (r) atunci cand
lim
m÷o
1
m
1 (r) = 1 (r) .
ceea ce in baza criteriului lui Cauchy este echivalent cu
lim
i÷o
[1
ii
÷1
i÷1;i÷1
[ = 0.
De aici rezulta un criteriu de oprire a algoritmului lui Aitken dat de conditia
[1
ii
÷1
i÷1;i÷1
[ <
pentru 0 dat initial. Prin urmare, algoritmul lui Aitken genereaza primele i + 1 coloane
ale tabloului oprindu-se la prima coloana pentru care este indeplinita conditia de mai sus.
Asadar, gradul maxim al polinomului de interpolare este :, dar algoritmul se poate opri la
un grad mai mic (in urma atingerii preciziei dorite). Deoarece eroarea formulei de interpolare
depinde de [n(r)[ . rezulta ca pentru a opri acest algoritm cat mai repede este indicat sa se
ordoneze nodurile c
0
. .... c
m
dupa distanta lor fata de c. punctul in care dorim sa aproximam
pe 1 (c) . Astfel, se ordoneaza nodurile pina este indeplinita conditia
[c
i
÷r[ _ [c
j
÷r[ . daca i < ,. i = 0. :. , = 1. :.
Dupa cum se observa, metoda lui Aitken si criteriul sau de oprire necesita doar cunoasterea
valorilor 1 (c
i
) . i = 0. :. Acest avantaj justi…ca prezenta acestui algoritm in bibliotecile
matematice ale softurilor de calcul numeric (gen Matlab, Mathcad sau Mathematica).
Algoritmul lui Aitken:
I. Date de intrare:
: gradul maxim al polinomului de interpolare
c
i
. i = 0. :. nodurile de interpolare
1 expresia functiei, sau valorile ei pe nodurile de interpolare 1 (c
i
) . i = 0. :
eroarea absoluta maxima admisibila
c ÷ [c. /] punctul in care se aproximeaza functia 1.
II. Date de iesire:
1
i
1 (c) valoarea calculata cu precizia ceruta (i _ : este gradul polinomului pentru care
s-a atins aceasta precizie)
sau un mesaj de eroare in care se speci…ca faptul ca in conditiile date nu s-a putut calcula
o aproximatie cu precizia dorita.
8
III. Pasii algoritmului:
Pasul 1. Se ordoneaza nodurile in functie de distanta lor fata de punctul c. adica
Pentru i = 0. :
Pentru , = i + 1. :
Daca [c
i
÷c[ [c
j
÷c[ atunci n := c[i]; c[i] := c[,]; c[,] := n;
Altfel, i := i + 1;
Pasul 2. Pentru i = 0. : executa 1
i0
:= 1 (c
i
) ;
Pasul 3. Pentru i = 1. : si , = 0. i ÷1 calculeaza
1
i;j+1
=
1
c
i
÷c
j
[1
jj
(c
i
÷c) ÷1
ij
(c
j
÷c)];
Daca [1
ii
÷1
i÷1;i÷1
[ < atunci tipareste 1
i
1 (c) = 1
ii
. STOP
Altfel, i := i + 1;
Pasul 4. Daca [1
mm
÷1
m÷1;m÷1
[ < atunci tipareste 1
m
1 (c) = 1
mm
.
Altfel, tipareste " Nu s-a putut calcula o aproximatie cu precizia dorita ". STOP.
Probleme propuse :
1. Sa se construiasca un program in limbajele C si Pascal pentru algoritmul lui Aitken.
2. Valorile functiei 1 (r) =
3

r sunt date pe noduri in tabelul
r 1.0 1.1 1.3 1.5 1.6
1 (r) 1 1.032 1.091 1.145 1.17
Folosind algoritmul lui Aitken, sa se calculeze 1 (1.15) cu o eroare absoluta maxima de
10
÷3
.
3. Valorile unei functii 1 sunt date pe noduri prin intermediul tabelului
r 1.00 1.08 1.13 1.20 1.27 1.31 1.38
1 (r) 1.17520 1.30254 1.38631 1.50946 1.21730 1.22361 1.23470
Folosind algoritmul lui Aitken, sa se calculeze cu o precizie de 10
÷5
valorile functiei in
punctele 1.134. 1.151. 1.185.
1.3.2 Formula de interpolare a lui Newton
Newton a dat o formula utila, din punct de vedere al calcului si al usurintei de programare (in
virtutea modului recurent de constructie), pentru polinomul de interpolare al lui Lagrange.
Pentru a obtine aceasta formula consideram diferentele divizate
[r. c
0
; 1]. [r. c
0
. c
1
; 1]. .... [r. c
0
. c
1
. .... c
m
; 1]
exprimate cu ajutorul diferentelor de ordin inferior,
[r. c
0
. c
1
. .... c
m
; 1] =
[r. c
0
. c
1
. .... c
m÷1
; 1] ÷[c
0
. c
1
. .... c
m
; 1]
r ÷c
m
[r. c
0
. c
1
. .... c
m÷1
; 1] =
[r. c
0
. c
1
. .... c
m÷2
; 1] ÷[c
0
. c
1
. .... c
m÷1
; 1]
r ÷c
m÷1
.....................................................................................
9
[r. c
0
. c
1
; 1] =
[r. c
0
; 1] ÷[c
0
. c
1
; 1]
r ÷c
1
[r. c
0
; 1] =
1 (r) ÷1 (c
0
)
r ÷c
0
.
Eliminând din aceste : + 1 relatii diferentele divizate [r. c
0
. .... c
k
; 1]. / = 0. :÷1 , adica
inmultind a doua egalitate cu
1
x÷am
, pe a treia egalitate cu
1
(x÷a
m1
)(x÷am)
si asa mai departe
pina ultima egalitate se inmulteste cu
1
(r ÷c
1
) ... (r ÷c
m
)
si adunând egalitatile obtinute membru cu membru si apoi exprimând 1 (r) se obtine
1 (r) = 1 (c
0
) +
m
¸
i=1
(r ÷c
0
) ... (r ÷c
i÷1
) [c
0
. c
1
. .... c
i
; 1] +n(r) [r. c
0
. .... c
m
; 1].
Astfel, s-a obtinut tocmai formula de interpolare a lui Lagrange
1 (r) = `
m
1 (r) +1
m
1 (r) . r ÷ [c. /] (5)
cu polinomul de interpolare dat prin formula lui Newton
`
m
1 (r) = 1 (c
0
) +
m
¸
i=1
(r ÷c
0
) ... (r ÷c
i÷1
) [c
0
. c
1
. .... c
i
; 1] = (6)
= 1 (c
0
) +
m
¸
i=1
(r ÷c
0
) ... (r ÷c
i÷1
) 1
i
1
0
iar restul dat cu ajutorul diferentelor divizate
1
m
1 (r) = n(r) [r. c
0
. .... c
m
; 1].
Se observa ca in formula (6) s-au folosit doar diferentele divizate de pe latura superioara
a tabloului de diferente. Deasemenea, din (3) si (5) rezulta 1
m
1 (r) = `
m
1 (r) . \r ÷ [c. /].
Observatie: Din formula (6) rezulta ca polinomul de interpolare al lui Newton veri…ca
relatia de recurenta
`
k
1 (r; c
0
. .... c
k
) = `
k÷1
1 (r; c
0
. .... c
k÷1
) + (r ÷c
0
) ... (r ÷c
k÷1
) [c
0
. .... c
k
; 1].
\/ = 1. :. unde `
0
1 (r) = 1 (c
0
) . Aceasta proprietate permite construirea recurenta a acestui
polinom (deci programare mai facila) precum si oprirea algoritmului odata atinsa precizia
dorita, dupa ce in prealabil s-au reordonat nodurile in functie de distanta lor pina la punctul
in care dorim sa aproximam functia 1. Astfel se obtin iterativ polinoamele lui Newton de
gradele 1, 2, ... intr-un mod asemanator cu generarea polinoamelor lui Lagrange prin metoda
lui Aitken. Criteriul de oprire este asemanator. Daca
[`
k
1 (c) ÷`
k÷1
1 (c)[ <
10
atunci algoritmul se opreste la ordinul /, adica la polinomul `
k
1 (r; c
0
. .... c
k
) . Insa gradul
maxim al polinomului generat de algoritmul de mai jos este :.
Algoritmul polinomului lui Newton:
I. Date de intrare:
: gradul maxim al polinomului de interpolare
c
k
. / = 0. :. nodurile de interpolare
1 expresia functiei, sau valorile ei pe nodurile de interpolare 1 (c
k
) . / = 0. :
eroarea absoluta maxima admisibila
c ÷ [c. /] punctul in care se aproximeaza valoarea functiei 1.
II. Date de iesire:
`
k
1 (c) valoarea calculata cu precizia ceruta (/ _ : este gradul polinomului pentru
care s-a atins aceasta precizie)
sau un mesaj de eroare in care se speci…ca faptul ca in conditiile date nu s-a putut calcula
o aproximatie cu precizia dorita.
III. Pasii algoritmului:
Pasul 1. Se ordoneaza nodurile in functie de distanta lor fata de punctul c. adica
Pentru / = 0. :
Pentru , = / + 1. :
Daca [c
k
÷c[ [c
j
÷c[ atunci / := n; n := ,;
Altfel, / := / + 1;
Pasul 2. Se calculeaza diferentele divizate [c
0
. .... c
k
; 1] = 1
k
1
0
. / = 0. : utilizand
procedura din paragraful 1.2 sau obtinând aici iterativ,
1
0
1
k
:= 1 (c
k
) . pentru / = 0. :
si
1
j
1
k
:=
1
j÷1
1
k+1
÷1
j÷1
1
k
c
k+j
÷c
k
pentru , = 1. : si pentru / = 0. :÷,.
Pasul 3. / := 0; `
0
1 (c) = 1 (c
0
)
Pasul 4. Cat timp / < : executa
/ := / + 1;
`
k
1 (c) := `
k÷1
1 (c) + (c ÷c
0
) ... (c ÷c
k÷1
) [c
0
. .... c
k
; 1]
Daca [`
k
1 (c) ÷`
k÷1
1 (c)[ < atunci tipareste `
k
1 (c) . STOP.
Pasul 5. Daca [`
m
1 (c) ÷`
m÷1
1 (c)[ < atunci tipareste `
m
1 (c). STOP.
Altfel, tipareste " Nu s-a putut calcula o aproximatie cu precizia dorita ".
STOP.
Programul in limbajul C
#include <stdio.h
#include <conio.h
#include <math.h
#include <iostream.h
#include "stdafx.h"
#using <mscorlib.dll
11
using namespace System;
int main()
{
double p[100], a[100], f[100], x, e, q;
int m, i, j, k;
double df[100][100];
printf("m=");
scanf("%d", &m);
printf("x=");
scanf("%lf", &x);
printf("e=");
scanf("%lf", &e);
for (i=0; i<=m; i++)
{
printf("a[%d]=", i);
scanf("%lf", &a[i]);
printf("f[%d]=", i);
scanf("%lf", &f[i]);
}
for(i=0;i<=m;i++)
df[0][i]=f[i];
for(k=1;k<=m;k++)
for(i=0;i<=m-k;i++)
df[k][i]=(df[k-1][i+1]-df[k-1][i])/(a[i+k]-a[i]);
p[0] = f[0];
for (i=1; i<=m; i++)
{
q = 1;
for (j=0; j<=i-1; j++)
q = q * (x-a[j]);
p[i] = p[i-1] + q * df[i][i];
}
if (abs(p[m] -p[m-1]) < e)
printf("f(x) este aproximat cu eroarea e=%lf de catre polinomul lui Newton prin
p[%d]=%lf.`n", e,m,p[m]);
else
printf("f(x) nu poate … aproximat cu eroarea e=%lf de catre polinomul lui New-
ton", e);
return 0;
}
Probleme propuse :
1.Sa se construiasca un program in limbajul Pascal pentru algoritmul lui Newton.
2. Valorile functiei 1 (r) =
3

r sunt date pe noduri in tabelul
12
r 1.0 1.1 1.3 1.5 1.6
1 (r) 1 1.032 1.091 1.145 1.17
Folosind algoritmul lui Newton, sa se calculeze 1 (1.15) cu o eroare absoluta maxima de
10
÷5
.
3. Valorile unei functii 1 sunt date pe noduri prin intermediul tabelului
r 1.00 1.08 1.13 1.20 1.27 1.31 1.38
1 (r) 1.17520 1.30254 1.38631 1.50946 1.21730 1.22361 1.23470
Folosind algoritmul lui Newton, sa se calculeze cu o precizie de 10
÷5
valorile functiei in
punctele 1.134. 1.151. 1.185. Sa se compare cu valorile obtinute prin algoritmul lui Aitken.
Apoi, sa se calculeze cu o precizie de 10
÷5
valorile functiei in punctele 1.140, 1.175, 1.195, cu
ajutorul algoritmului lui Newton.
1.4 Polinomul de interpolare a lui Hermite
Consideram functia 1 : [c. /] ÷ R. pentru care sunt cunoscute pe nodurile c
k
· [c. /]. / =
0. :. valorile 1
(j)
(c
k
) . , = 0. :
k
. / = 0. :. unde :
k
÷ N si …e : = :+:
0
+... +:
m
.
De…nitia 1: Se numeste polinomul de interpolare al lui Hermite relativ la functia 1 ,
la nodurile c
k
. / = 0. :. si la valorile 1
(j)
(c
k
) . , = 0. :
k
. / = 0. :. polinomul de grad
minim H
n
1 care satisface conditiile de interpolare :
H
n
1
(j)
(c
k
) = 1
(j)
(c
k
) . \, = 0. :
k
. \/ = 0. :. (7)
Fie
n(r) = (r ÷c
0
)
r
0
+1
(r ÷c
1
)
r
1
+1
... (r ÷c
m
)
rm+1
si
n
k
(r) =
n(r)
(r ÷c
k
)
r
k
+1
\/ = 0. :.
Conditiile (7) determina in mod unic polinomul de interpolare a lui Hermite, obtinandu-se
H
n
1 (r) =
m
¸
k=0

n
k
(r)
r
k
¸
j=0
¸
(r ÷c
k
)
j
,!

1 (t)
n
k
(t)

(j)
[t = c
k
¸
. \r ÷ [c. /] (8)
iar in formula de interpolare a lui Hermite
1 (r) = H
n
1 (r) +1
n
1 (r) . r ÷ [c. /]
estimarea restului este
[1
n
1 (r)[ _
1
(: + 1)!
[n(r)[

1
(n+1)

C
\r ÷ [c. /]. daca 1 ÷ (
n+1
[c. /].
1.4.1 Formula lui Taylor
Pentru : = 0 si : = :
0
in formula (8) se obtine polinomul lui Taylor ca un polinom de
interpolare cu un singur nod multiplu de ordinul n+1,
1
n
1 (r) =
n
¸
k=0
(r ÷c
0
)
k
/!
1
(k)
(c
0
) (9)
13
iar estimarea restului este
[1
n
1 (r)[ _
1
(: + 1)!
[r ÷c
0
[
n+1

1
(n+1)

C
daca 1 ÷ (
n+1
[c
0
÷/. c
0
+/].
Din formula (9) se observa ca polinomul lui Taylor poate … obtinut recurent prin
1
0
1 (r) = 1 (c
0
)
1
k
1 (r) = 1
k÷1
1 (r) +
(r ÷c
0
)
k
/!
1
(k)
(c
0
) . pentru / = 1. :.
Astfel, se obtine algoritmul urmator :
Algoritm pentru polinomul lui Taylor
I. Date de intrare:
: gradul polinomului de interpolare
c nodul de interpolare
1
(k)
(c) . / = 0. :. valorile pe nodul c
n ÷ [c. /] punctul in care se aproximeaza valoarea functiei 1
II. Date de iesire:
1
n
1 (n) aproximatia lui 1 (n) prin polinomul lui Taylor
III. Pasii algoritmului:
Pasul 1. …e 1
0
:= 1 (c) , j (0) := 1 si pentru / = 1. :
1
k
:= 1
(k)
(c)
j (/) := j (/ ÷1) /
Pasul 2. …e 1
0
1 (n) = 1 (c) si pentru / = 1. :
1
k
1 (n) = 1
k÷1
1 (n) +
1
j (/)
(n ÷c)
k
1
k
Pasul 3. Tipareste 1
n
1 (n) . STOP.
1.4.2 Metoda lui Aitken pentru polinomul lui Hermite cu noduri duble
Daca nodurile c
k
. / = 0. :. sunt duble atunci se presupun cunoscute valorile 1 (c
k
) . 1
t
(c
k
) .
/ = 0. :. Polinomul lui Hermite cu noduri duble este
H
2m+1
1 (r) =
m
¸
k=0

n
k
(r)
¸
1 (c
k
)
n
k
(c
k
)
+ (r ÷c
k
)

1 (t)
n
k
(t)

t
[t = c
k

(10)
unde
n(r) = (r ÷c
0
)
2
(r ÷c
1
)
2
... (r ÷c
m
)
2
si
n
k
(r) =
n(r)
(r ÷c
k
)
2
\/ = 0. :.
14
Acest polinom poate … obtinut astfel,
H
2m+1
1 (r) = (
0;0
+(
1;1
(r ÷c
0
) +(
2;2
(r ÷c
0
)
2
+(
3;3
(r ÷c
0
)
2
(r ÷c
1
) + (11)
+... +(
2m+1;2m+1
(r ÷c
0
)
2
(r ÷c
1
)
2
... (r ÷c
m÷1
)
2
(r ÷c
m
)
in care coe…cientii se determina recurent prin
(
2i;0
= 1 (c
i
) . (
2i+1;0
= 1 (c
i
) . (
2i+1;1
= 1
t
(c
i
) . i = 0. :
.
2i
= c
i
. .
2i+1
= c
i
. i = 0. :
(
2i;1
=
(
2i;0
÷(
2i÷1;0
.
2i
÷.
2i÷1
i = 1. :.
si
(
i;j
=
(
i;j÷1
÷(
i÷1;j÷1
.
i
÷.
i÷j
i = 2. 2:+ 1. , = 2. i.
Rezulta urmatorul algoritm prin care se obtin coe…cientii din (11).
Metoda lui Aitken pentru polinomul lui Hermite cu noduri duble
I. Date de intrare:
m numarul de noduri-1
c
k
. / = 0. :. nodurile de interpolare
1 (c
k
) . 1
t
(c
k
) . / = 0. :. valorile functiei si ale derivatelor sale pe nodurile de
interpolare
II. Date de iesire: coe…cientii (
0;0
(
1;1
...(
2m+1;2m+1
polinomului H
2m+1
1 (r) din (11).
III. Pasii algoritmului:
Pasul 1. Pentru i = 0. : executa
.
2i
:= c
i
. .
2i+1
:= c
i
(
2i;0
:= 1 (c
i
) . (
2i+1;0
:= 1 (c
i
) . (
2i+1;1
:= 1
t
(c
i
)
Pentru i = 1. : calculeaza
(
2i;1
:=
(
2i;0
÷(
2i÷1;0
.
2i
÷.
2i÷1
Pasul 2. Pentru i = 2. 2:+ 1
Pentru , = 2. i calculeaza
(
i;j
=
(
i;j÷1
÷(
i÷1;j÷1
.
i
÷.
i÷j
Pasul 3. Tipareste (
0;0
(
1;1
...(
2m+1;2m+1
. STOP.
Probleme propuse :
1. Sa se construiasca un program in limbajele C si Pascal pentru algoritmele asupra
polinomului lui Taylor si asupra metodei lui Aitken pentru polinomul lui Hermite cu noduri
duble.
15
2. Fie 1 (r) =

r + 1 si 1
n
1 polinomul lui Taylor de gradul n corespunzator nodului
c
0
= 0. Sa se determine 1
0
1 (n) pentru n=6 si u=0.3.
3. Folosind algoritmul lui Aitken pentru polinomul lui Hermite cu noduri duble sa se
aproximeze valoarea unei functii 1 (0.2) avand pe noduri valorile:
r 1 (r) 1
t
(r)
0.1 1.2314028 2.64281
0.3 1.9121188 4.24424
0.4 2.3855409 5.25108
0.5 2.9682818 6.43656
0.6 3.6801169 7.84023
16
2 Interpolarea neteda pe por¸tiuni
Acest capitol este dedicat interpolarii netede a datelor experimentale prin interpolare Hermite
cu noduri duble pe portiuni si prin functii spline polinomiale.
2.1 Interpolarea neteda pe portiuni de tip Hermite. Metoda lui
Akima
Pentru 1 : [c. /] ÷ R. 1 ÷ (
1
[c. /]. polinomul de interpolare al lui Hermite cu doua noduri
duble este unic determinat de conditiile

1 (c) = 1 (c) . 1
t
(c) = 1
t
(c)
1 (/) = 1 (/) . 1
t
(/) = 1
t
(/)
avand pe [c. /] expresia
1 (r) =
(/ ÷r)
2
(r ÷c)
(/ ÷c)
2
1
t
(c) ÷
(r ÷c)
2
(/ ÷r)
(/ ÷c)
2
1
t
(/) +
+
(/ ÷r)
2
[2 (r ÷c) + (/ ÷c)]
(/ ÷c)
3
1 (c) +
(r ÷c)
2
[2 (/ ÷r) + (/ ÷c)]
(/ ÷c)
3
1 (/) .
Daca 1 ÷ (
4
[c. /] atunci pentru estimarea erorii formulei de interpolare
1 (r) = 1 (r) +1(r) (12)
avem
[1(r)[ _
(/ ÷c)
4
3 2
7

1
(4)

C
\r ÷ [c. /].
Considerand o diviziune a intervalului [c. /]
: c = r
0
< r
1
< ... < r
n÷1
< r
n
= /
si valorile pe aceste noduri ale unei functii 1 ÷ (
1
[c. /], 1 (r
i
) . 1
t
(r
i
) . i = 0. :. se poate
construi o functie neteda 1 ÷ (
1
[c. /] pentru care
1 (r
i
) = 1 (r
i
) . 1
t
(r
i
) = 1
t
(r
i
) . \i = 0. :
cerând ca restrictia functiei 1 la …ecare subinterval [r
i÷1
. r
i
]. i = 1. : sa …e 1
i
dat prin
1
i
(r) =
(r
i
÷r)
2
(r ÷r
i÷1
)
(r
i
÷r
i÷1
)
2
1
t
(r
i÷1
) ÷
(r ÷r
i÷1
)
2
(r
i
÷r)
(r
i
÷r
i÷1
)
2
1
t
(r
i
) + (13)
+
(r
i
÷r)
2
[2 (r ÷r
i÷1
) + (r
i
÷r
i÷1
)]
(r
i
÷r
i÷1
)
3
1 (r
i÷1
)+
(r ÷r
i÷1
)
2
[2 (r
i
÷r) + (r
i
÷r
i÷1
)]
(r
i
÷r
i÷1
)
3
1 (r
i
) .
Se observa ca 1
tt
i
exista pe intervalele deschise (r
i÷1
. r
i
) pentru orice i = 1. : si este un
polinom de gradul intai. Atunci 1
tt
este continua pe portiuni si marginita pe [c. /]. Prin
urmare, 1 ÷ (
1
[c. /] ¨ 1
2
[c. /]. In cele ce urmeaza vom nota n
i
= 1 (r
i
) . \i = 0. :.
17
Algoritmul de mai jos realizeaza aproximarea valorii 1 (c) a functiei 1 intr-un punct c ÷
[c. /]. c = r
i
. \i = 0. : prin valoarea 1 (c) . De cele mai multe ori, sunt cunoscute (prin
masuratori experimentale) doar valorile 1 (r
i
), i = 0. :. urmand ca valorile derivatei pe
noduri sa …e aproximate. O metoda de aproximare, generata prin rationamente de natura
geometrica, a fost propusa de H. Akima in 1970 si este expusa in [13]. Pe scurt, dandu-se
nodurile r
i
. i = 0. : si valorile n
i
. i = 0. :, se calculeaza intai pantele
:
i
=
r
i+1
÷r
i
t
i+1
÷t
i
. i = 0. : ÷1
iar apoi, se aproximeaza valorile derivatelor pe unele dintre nodurile interioare prin,
1
t
(r
i
) =
[:
i+2
÷:
i+1
[ :
i÷1
+[:
i÷1
÷:
i÷2
[ :
i+1
[:
i+2
÷:
i+1
[ +[:
i÷1
÷:
i÷2
[
. i = 2. : ÷3. (14)
Formula (14) constituie un punct tare al metodei lui Akima, dar deoarece nu poate propune
o formula si pentru primele doua si ultimele trei noduri conduce la necesitatea introducerii
arti…ciale a unor pante corespunzatoare extremitatilor intervalului [c. /] pentru a extinde
formula (14), ceea ce constituie un punct slab al metodei. De aceea, macar pe primul si
pe ultimul nod putem stabili valori pentru 1
t
(r
0
) si 1
t
(r
n
) astfel incat functia 1 sa aiba
urmatoarea proprietate de minim:
J (1) = min¦J (o) : o ÷ (
1
[c. /] ¨ 1
2
[c. /]. o (r
i
) = n
i
. \i = 0. :¦. (15)
unde
J (1) =
b

a
[1
tt
(r)]
2
dr.
In baza metodei lui Akima se introduc atunci doar pantele suplimentare
:
÷1
= 2:
0
÷:
1
. :
n
= 2:
n÷1
÷:
n÷2
. :
n+1
= 3:
n÷1
÷2:
n÷2
si se extinde formula (14) pentru i = 1. : ÷1. Daca 1
tt
0
(r
0
) = 1
tt
n
(r
n
) = 0 atunci proprietatea
(15) este indeplinita, ceea ce va conduce la a propune
1
t
(r
0
) =
3
2
:
0
÷
1
2
1
t
(r
1
) . 1
t
(r
n
) =
3
2
:
n÷1
÷
1
2
1
t
(r
n÷1
) .
In continuare functia 1 este construita in baza formulei (13).
Algoritmul lui Akima
I. Date de intrare:
nodurile r
i
. i = 0. :
valorile n
i
= 1 (r
i
) . i = 0. :
c punctul in care se realizeaza aproximarea
II. Date de iesire:
1 (c) valoare ce aproximeaza pe 1 (c) .
III. Pasii algoritmului:
18
Pasul 1. Pentru i = 0. : ÷1 calculeaza pantele
:
i
:=
r
i+1
÷r
i
t
i+1
÷t
i
Pasul 2. Calculeaza
:
÷1
:= 2:
0
÷:
1
. :
n
:= 2:
n÷1
÷:
n÷2
. :
n+1
:= 3:
n÷1
÷2:
n÷2
Pasul 3. Pentru i = 1. : ÷1 calculeaza
1
t
(r
i
) :=
[:
i+2
÷:
i+1
[ :
i÷1
+[:
i÷1
÷:
i÷2
[ :
i+1
[:
i+2
÷:
i+1
[ +[:
i÷1
÷:
i÷2
[
Pasul 4. Calculeaza
1
t
(r
0
) :=
3
2
:
0
÷
1
2
1
t
(r
1
) . 1
t
(r
n
) :=
3
2
:
n÷1
÷
1
2
1
t
(r
n÷1
) .
Pasul 5. Se determina indicele , ÷ ¦1. .... :¦ pentru care
r
j÷1
< c < r
j
.
Pasul 6. Calculeaza
1 (c) :=
(r
j
÷c)
2
(c ÷r
j÷1
)
(r
j
÷r
j÷1
)
2
1
t
(r
j÷1
) ÷
(c ÷r
j÷1
)
2
(r
j
÷c)
(r
j
÷r
j÷1
)
2
1
t
(r
j
) +
+
(r
j
÷c)
2
[2 (c ÷r
j÷1
) + (r
j
÷r
j÷1
)]
(r
j
÷r
j÷1
)
3
1 (r
j÷1
)+
(c ÷r
j÷1
)
2
[2 (r
j
÷c) + (r
j
÷r
j÷1
)]
(r
j
÷r
j÷1
)
3
1 (r
j
) .
Pasul. 7 Tipareste 1 (c) . STOP.
Probleme propuse:
1. Sa se construiasca un program in limbajele C si Pascal pentru algoritmul lui Akima.
2. La momentele 7.5 (adica ora 7
30
), 10.5 (ora 10
30
), 13, 15.5 (ora 15
30
), 18, 21, 24 si 27
(adica ora 3 A. M. a doua zi) s-au masurat valorile glicemiei, obtinandu-se 130, 121, 128, 96,
122, 138, 114, 90 (masurate in mg/dl). Sa se aproximeze glicemia acestui pacient de la orele
12, 14, 23 si 2 (a doua zi A. M, adica momentul 26) folosind algoritmul lui Akima.
2.2 Interpolarea spline polinomial¼ a
Se prezinta functia spline poligonala de interpolare a datelor experimentale (utilizata in multe
domenii ca metoda empirica de trasare a gra…cului prin puncte, spre exemplu in spitale la
curba temperaturii pacientilor internati) si doua tipuri de functii spline cubice generate de
conditii bilocale si respectiv, conditii initiale. Pentru functia spline cubica generata de conditii
bilocale s-a ales varianta mai usor programabila (fara expresii de forma (r ÷c
i
)
+
) din [13].
Consideram un interval [c. /] si o diviziune a acestui interval
: c = r
0
< r
1
< ... < r
n÷1
< r
n
= /.
19
Notam /
i
= r
i
÷r
i÷1
¸si 1
i
= [r
i÷1
. r
i
]. \i = 1. :.
De…nitie: Functia : : [c. /] ÷÷R. se numeste spline polinomial de gradul m de interpolare
a valorilor n
0;
n
1
. .... n
n
pe nodurile r
i
. i = 0. : daca:
(i) : ÷ (
m÷1
[c. /]
(ii) restrictia lui : la …ecare subinterval 1
i
, i = 1. :. este polinom de gradul :
(iii) : (r
i
) = n
i
. \i = 0. :.
Daca n
0;
n
1
. .... n
n
sunt valorile pe nodurile r
i
. i = 0. : ale unei functii 1 : [c. /] ÷÷ R.
atunci functia spline este de interpolare a functiei 1 pe nodurile diviziunii .
2.2.1 Spline poligonal de interpolare
Fie

n
: c = r
0
< r
1
< ... < r
n÷1
< r
n
= /
o diviziune a intervaluluii [c. /]. Not¼ am /
i
= r
i
÷r
i÷1
¸si 1
i
= [r
i÷1
. r
i
]. \i = 1. : ¸si sistemul de
: + 1 numere reale, n = (n
0;
n
1
. .... n
n
) ÷ R
n+1
asociat diviziunii
n
. Pentru …ecare i = 1. :
se de…ne¸ste 1
i
: 1
i
÷÷R.
1
i
(r) = n
i÷1
+
n
i
÷n
i÷1
/
i
(r ÷r
i÷1
). \r ÷ 1
i
.
Gra…cul func¸tiei 1
i
este segmentul ce une¸ste punctele (r
i÷1
. n
i÷1
) ¸si (r
i
. n
i
).
Dac¼ a construim 1 : [c. /] ÷÷R. astfel încât 1 [
I
i
= 1
i
. \i = 1. :, atunci 1 este o func¸tie
continu¼ a pe [c. /], al c¼ arei gra…c este linia poligonal¼ a ce une¸ste punctele (r
0
. n
0
). (r
1
. n
1
).... (r
n
. n
n
).
Functia 1 este o functie spline polinomiala de interpolare de gradul intai, numit spline polig-
onal.
Probleme propuse:
1. Sa se construiasca un algoritm pentru functia spline poligonala de interpolare al c¼ arei
gra…c este linia poligonal¼ a ce une¸ste punctele (r
0
. n
0
). (r
1
. n
1
).... (r
n
. n
n
) si sa se programeze
in limbajele C si Pascal.
2. La momentele 7.5 (adica ora 7
30
), 10.5 (ora 10
30
), 13, 15.5 (ora 15
30
), 18, 21, 24 si
27 (adica ora 3 A. M. a doua zi) s-au masurat valorile glicemiei, obtinandu-se 130, 121, 128,
96, 122, 138, 114, 90 (masurate in mg/dl). Sa se aproximeze glicemia acestui pacient de la
orele 12, 14, 23 si 2 (a doua zi A. M, adica momentul 26) folosind functia spline poligonala
de interpolare. Sa se compare rezultatele cu cele obtinute prin algoritmul lui Akima.
2.2.2 Spline cubic generat de condi¸tii la limita
Consideram o functie 1 : [c. /] ÷R. 1 ÷ (
2
[c. /]. si diviziunea intervalului [c. /]
: c = r
0
< r
1
< ... < r
n÷1
< r
n
= /.
Deasemenea, …e n
0;
n
1
. .... n
n
astfel incat n
i
= 1 (r
i
) . \i = 0. : si notam /
i
= r
i
÷ r
i÷1
.
\i = 1. :.
Un spline cubic pentru 1 : [c. /] ÷ R. este o functie spline polinomiala de gradul 3 de
interpolare a functiei 1 pe nodurile diviziunii . : : [c. /] ÷÷R. : ÷ (
2
[c. /]. Vom nota prin
:
i
restrictiile functiei : la subintervalele [r
i÷1
. r
i
]. i = 1. : ale diviziunii .
20
Pentru functiile spline cubice se folosesc notatiile n
i
= : (r
i
) . :
i
= :
t
(r
i
) . `
i
=
:
tt
(r
i
) . \i = 0. :.
Deoarece :
tt
i
. i = 1. : sunt functii polinomiale de gradul intai, in baza notatiilor de mai
sus se vor rezolva problemele bilocale

:
tt
i
(r) =
M
i
·(x÷x
i1
)+M
i1
·(x
i
÷x)
h
i
. r ÷ [r
i÷1
. r
i
]
:
i
(r
i÷1
) = n
i÷1
:
i
(r
i
) = n
i
. \i = 1. :
si se obtine
:
i
(r) =
¸
(r ÷r
i÷1
)
3
6/
i
÷
/
i
(r ÷r
i÷1
)
6
¸
`
i
+
¸
(r
i
÷r)
3
6/
i
÷
/
i
(r
i
÷r)
6
¸
`
i÷1
+ (16)
+
r
i
÷r
/
i
n
i÷1
+
r ÷r
i÷1
/
i
n
i
. \r ÷ [r
i÷1
. r
i
]. \i = 1. :.
Pentru determinarea coe…cientilor `
i
. i = 0. :. din conditia : ÷ (
1
[c. /] rezulta cerintele
:
t
i
(r
i
) = :
t
i
(r
i+1
) . \i = 1. : ÷1. Acestea conduc la un sistem liniar de n-1 ecuatii cu n+1
necunoscute `
i
. i = 0. :
/
i
`
i÷1
6
+
/
i
+/
i+1
3
`
i
+
/
i+1
`
i
6
=
n
i+1
÷n
i
/
i+1
÷
n
i
÷n
i÷1
/
i
. \i = 1. : ÷1.
La acestea se adauga inca doua conditii `
0
= `
n
= 0. sau :
t
(r
0
) = 1
0
. :
t
(r
n
) = 1
n
(in
ipoteza ca sunt cunoscute 1
t
(r
0
) = 1
0
si 1
t
(r
n
) = 1
n
). Adaugand de exemplu, ultimele doua
conditii se obtine sistemul

h
i
M
i1
6
+
h
i
+h
i+1
3
`
i
+
h
i+1
M
i
6
=
y
i+1
÷y
i
h
i+1
÷
y
i
÷y
i1
h
i
. \i = 1. : ÷1
h
1
M
0
3
+
h
1
M
1
6
=
y
1
÷y
0
h
1
÷1
0
hnM
n1
6
+
hnMn
3
= 1
n
÷
yn÷y
n1
hn
(17)
din care se determina in mod unic `
0;
`
1
. .... `
n
. Observam ca matricea acestui sistem este
tridiagonala.
In [13] se arata ca functia spline cubica (16) ce indeplineste oricare din cele doua conditii
suplimentare de mai sus are proprietatile :
(i) Minimizarea functionalei
J (o) =
b

a
[o
tt
(r)]
2
dr
adica
J (:) = min¦J (o) : o ÷ (
2
[c. /]. o (r
i
) = n
i
. \i = 0. :¦.
(ii) Aproximare uniforma pentru orice functie 1 ÷ (
2
[c. /]. cu estimarea globala a erorii
|1
t
÷:
t
| _

/ ÷c |1
tt
|
C

/
|1 ÷:| _

/ ÷c |1
tt
|
C
/

/.
21
unde / = max¦/
i
: i = 1. :¦.
Pentru functia spline cubica (16) veri…cand conditiile :
t
(r
0
) = 1
0
. :
t
(r
n
) = 1
n
se con-
struieste urmatorul algoritm.
Algoritmul functiei spline cubice generata de conditii la limita
I. Date de intrare:
nodurile r
i
. i = 0. :
valorile n
i
= 1 (r
i
) . i = 0. :
valorile derivatei pe nodurile extreme, 1
0
. 1
n
c ÷ [c. /]. c = r
i
. \i = 0. :. punctul in care se aproximeaza 1 (c) prin : (c)
II. Date de iesire: : (c) .
III. Pasii algoritmului
Pasul 1. Se determina indicele , ÷ ¦1. .... :¦ pentru care
r
j÷1
< c < r
j
.
Pasul 2. Executa
c
0
:= 2. c
0
:= 1. /
n
:= 1
Pentru i = 1. : calculeaza
/
i
:= r
i
÷r
i÷1
.
c
i
:= 2
Pasul 3. Executa
d
0
:=
6
/
1

n
1
÷n
0
/
1
÷1
0

. d
n
=
6
/
n

1
n
÷
n
n
÷n
n÷1
/
n

Pentru i = 1. : ÷1 calculeaza
/
i
:=
/
i
/
i
+/
i+1
c
i
= 1 ÷/
i
d
i
:=
6
/
i
+/
i+1

n
i+1
÷n
i
/
i+1
÷
n
i
÷n
i÷1
/
i

Pasul 4. Executa
c
0
:=
c
0
c
0
Pentru i = 1. : ÷1 calculeaza
.
i
:= c
i
÷/
i
c
i÷1
c
i
:=
c
i
.
i
Executa
.
n
:= c
n
÷/
n
c
n÷1
22
Pasul 5. Executa
.
0
:=
d
0
2
Pentru i = 1. : calculeaza
.
i
:=
d
i
÷/
i
.
i÷1
.
i
Pasul 6. Determinarea solutiei `
0;
`
1
. .... `
n
a sistemului (17)
Executa
`
n
:= .
n
Pentru i = : ÷1. 0 calculeaza
`
i
:= .
i
÷c
i
`
i+1
.
Pasul 7. Calculeaza
: (c) :=
¸
(c ÷r
j÷1
)
3
6/
j
÷
/
j
(c ÷r
j÷1
)
6
¸
`
j
+
¸
(r
j
÷c)
3
6/
j
÷
/
i
(r
j
÷c)
6
¸
`
j÷1
+
+
r
j
÷c
/
j
n
j÷1
+
c ÷r
j÷1
/
j
n
j
Pasul 8. Tipareste : (c) . STOP.
Programul in limbajul C
#include "stdafx.h"
#using <mscorlib.dll
using namespace System;
#include <stdio.h
#include <math.h
#include <conio.h
void main()
{
int n,i,nri;
double u,f0,fn,av,bv;
double x[20],y[20],h[20],a[20],b[20],c[20],d[20],alfa[20],omega[20],z[20],M[20];
double s;
printf("n=");scanf("%d",&n);
printf("a=");scanf("%lf",&av);
printf("b=");scanf("%lf",&bv);
printf("u=");scanf("%lf",&u);
printf("f0=");scanf("%lf",&f0);
printf("fn=");scanf("%lf",&fn);
for (i=0;i<=n;i++)
{
23
printf("y[%d]=",i);
scanf("%lf",&y[i]);
}
for (i=0;i<=n;i++)
x[i]=av+i*((bv-av)/n);
/*Pasul 1*/
for (i=1; i<=n; i++)
h[i]=x[i]-x[i-1];
for (i=0; i<=n; i++)
{
a[i]=2;
}
for (i=1; i<=n-1; i++)
{
b[i]=h[i]/(h[i]+h[i+1]);
}
b[n]=1;
c[0]=1;
for (i=1; i<=n-1; i++)
c[i]=1-b[i];
d[0]=(6/h[1])*((y[1]-y[0])/h[1]-f0);
d[n]=(6/h[n])*(fn-(y[n]-y[n-1])/h[n]);
for(i=1;i<=n-1;i++)
d[i]=(6/(h[i]+h[i+1]))*((y[i+1]-y[i])/h[i+1]-(y[i]-y[i-1])/h[i]);
/*Pasul 2*/
alfa[0]=c[0]/a[0];
for (i=1; i<=n-1; i++)
{
omega[i]=a[i]-alfa[i-1]*b[i];
alfa[i]=c[i]/omega[i];
}
omega[n]=a[n]-alfa[n-1]*b[n];
/*Pasul 3*/
z[0]=d[0]/2;
for(i=1; i<=n; i++)
{
z[i]=(d[i]-b[i]*z[i-1])/omega[i];
}
/*Pasul 4*/
M[n]=z[n];
for (i=n-1;i=0;i–)
M[i]=z[i]-alfa[i]*M[i+1];
/*Pasul 5*/
for (i=1; i<=n; i++)
if((x[i-1]<u)&&(u<x[i]))
24
{
printf("i=%d ",i);
nri=i;
}
/*Pasul 6*/
s=(M[nri]*pow((u-x[nri-1]),3))+(M[nri-1]*pow((x[nri]-u),3))/6*h[nri]+(y[nri-1]-(M[nri-
1]*h[nri]*h[nri])/6)*((x[nri]-u)/h[nri])+
(y[nri]-M[nri]*h[nri]*h[nri]/6)*(u-x[nri-1])/h[nri];
printf("`ns=%lf ",s);
getch();
}
Probleme propuse
1. Se se construiasca un program in limbajul Pascal pentru algoritmul functiei spline
cubice generata de conditii la limita.
2. La momentele 7.5 (adica ora 7
30
), 10.5 (ora 10
30
), 13, 15.5 (ora 15
30
), 18, 21, 24 si
27 (adica ora 3 A. M. a doua zi) s-au masurat valorile glicemiei, obtinandu-se 130, 121, 128,
96, 122, 138, 114, 90 (masurate in mg/dl). Sa se aproximeze glicemia acestui pacient de la
orele 12, 14, 23 si 2 (a doua zi A. M, adica momentul 26) folosind algoritmul de la problema
precedenta. Sa se compare rezultatele cu cele obtinute prin algoritmul lui Akima si prin
interpolare spline poligonala. Se dau 1
0
= ÷2. 1
7
= ÷3.
2.2.3 Spline cubic generat de condi¸tii initiale
Consideram o functie 1 : [c. /] ÷R. 1 ÷ (
2
[c. /]. si diviziunea intervalului [c. /]
: c = r
0
< r
1
< ... < r
n÷1
< r
n
= /.
Deasemenea, …e n
0;
n
1
. .... n
n
astfel incat n
i
= 1 (r
i
) . \i = 0. : si notam /
i
= r
i
÷ r
i÷1
.
\i = 1. :.
Fie functia spline cubica de interpolare a functiei 1 pe nodurile diviziunii . : : [c. /] ÷÷R.
: ÷ (
2
[c. /]. Vom nota prin :
i
restrictiile functiei : la subintervalele [r
i÷1
. r
i
]. i = 1. : ale
diviziunii . In [14] se construieste o functie spline cubica de interpolare generata de conditii
initiale. Astfel, restrictia sa la subintervalul [r
i÷1
. r
i
]. i = 1. : este determinata prin rezolvarea
problemei Cauchy

:
tt
i
(r) = `
i
+
1
h
i
(`
i
÷`
i÷1
)(r ÷r
i÷1
)
:
i
(r
i÷1
) = n
i÷1
:
t
i
(r
i÷1
) = :
i÷1
.
unde `
i
= :
tt
i
(r
i
) ¸si :
i
= : [
[x
i1
;x
i
]
.
Se obtine
:
i
(r) =
1
6/
i
(`
i
÷`
i÷1
)(r÷r
i÷1
)
3
+
`
i
2
(r÷r
i÷1
)
2
+:
i
(r÷r
i÷1
)+n
i÷1
. \r ÷ [r
i÷1
. r
i
]. (18)
Din condi¸tia : ÷ (
2
[c. /] ¸si condi¸tiile pe noduri : :(r
i
) = n
i
. :
t
(r
i
) = :
i
. i = 1. :. se ob¸tin
rela¸tiile,

`
i
+ 2`
i÷1
= 6
y
i
÷y
i1
÷m
i1
·h
i
h
2
i
`
i
+`
i÷1
=
2(m
i
÷m
i1
)
h
i
. i = 1. :.
(19)
25
care sunt echivalente cu oricare din urm¼ atoarele dou¼ a sisteme de rela¸tii :

:
i÷1
=
1
h
i
(n
i
÷n
i÷1
) ÷
1
6
/
i
(`
i
+ 2`
i÷1
)
:
i
=
1
h
i
(n
i
÷n
i÷1
) +
1
6
/
i
(4`
i
+`
i÷1
)
. i = 1. : (20)
¸si

`
i
=
6
h
2
i
(n
i
÷n
i÷1
) ÷
6m
i1
h
i
÷2`
i÷1
:
i
=
3
h
i
(n
i
÷n
i÷1
) ÷2:
i÷1
÷
M
i1
h
i
2
. i = 1. :. (21)
unde /
i
= r
i
÷r
i÷1
. \i = 1. :.
Prin utilizarea rela¸tiilor de recuren¸t¼ a (21) se ob¸tine in mod unic functia spline cubica
de interpolare pornind de la valorile n
0;
n
1
. .... n
n
si de la valorile primelor doua derivate pe
primul nod, :
0
si `
0
. Estimarea erorii in formula corespunzatoare de interpolare spline poate
… gasita in [15] pentru cazurile 1 ÷ 1ij[c. /]. respectiv 1 ÷ (
1
[c. /] cu 1
t
÷ 1ij[c. /].
Observatie: Valorile :
0
si `
0
sunt in general libere (experimental, de obicei se determina
n
0;
n
1
. .... n
n
) si pot … date astfel incat functia spline corespunzatoare sa aiba proprietati
suplimentare. Astfel, daca `
0
= `
n
= 0 atunci functia spline cubica cu restrictiile la
subintervalele diviziunii date in (18) va avea proprietatea de minimizare a func¸tionalei
J(n) =
b

a
[n
tt
(r)]
2
dr (22)
pe mul¸timea func¸tiilor de clas¼ a (
2
[c. /] ce interpoleaz¼ a 1 pe nodurile diviziunii
n
. Deaseme-
nea, : ¸si :
t
aproximeaz¼ a pe 1 ¸si respectiv, 1
t
, cu o eroare estimat¼ a global astfel :
|1 ÷:| _

/ ÷c |1
tt
|
C
/
3
2
|1
t
÷:
t
| _

/ ÷c |1
tt
|
C

/. (23)
Pentru a avea `
n
= 0 se poate obtine :
0
astfel:
Se de…nesc c
1
= ÷2. c
1
= ÷
6
h
1
. /
1
=
3
h
1
(n
1
÷n
0
). d
1
=
6
h
2
1
(n
1
÷n
0
) ¸si recurent se calculeaza
pentru i = 2. :
c
i
= ÷2c
i÷1
÷
/
i
c
i÷1
2
/
i
=
3(n
i
÷n
i÷1
)
/
i
÷2/
i÷1
÷
/
i
d
i÷1
2
(24)
¸si
c
i
= ÷2c
i÷1
÷
6c
i÷1
/
i
d
i
=
6(n
i
÷n
i÷1
)
/
2
i
÷
6/
i÷1
/
i
÷2d
i÷1
. (25)
Punand
`
0
= 0 si :
0
= ÷
d
n
c
n
(26)
se va obtine `
n
= 0.
26
Algoritmul functiei spline cubice generata de conditii initiale
I. Date de intrare:
nodurile r
i
. i = 0. :
valorile n
i
. i = 0. :
:
0
si `
0
, valorile primelor doua derivate pe primul nod
c ÷ [c. /]. c = r
i
. \i = 0. :. punctul in care se aproximeaza 1 (c) prin : (c)
II. Date de iesire: : (c) .
III. Pasii algoritmului
Pasul 1. Se determina indicele , ÷ ¦1. .... :¦ pentru care
r
j÷1
< c < r
j
.
Pasul 2. Pentru i = 1. : calculeaza
/
i
:= r
i
÷r
i÷1
:
i
:=
3
/
i
(n
i
÷n
i÷1
) ÷2:
i÷1
÷
`
i÷1
/
i
2
`
i
:=
6
/
2
i
(n
i
÷n
i÷1
) ÷
6:
i÷1
/
i
÷2`
i÷1
Pasul 3. Calculeaza
: (c) :=
1
6/
j
(`
j
÷`
j÷1
)(c ÷r
j÷1
)
3
+
`
j
2
(c ÷r
j÷1
)
2
+:
j
(c ÷r
j÷1
) +n
j÷1
.
Pasul 4. Tipareste : (c) . STOP.
Observatie: Daca valorile :
0
si `
0
nu sunt date atunci se poate intercala intre pasii 1
si 2 subrutina urmatoare:
Pasul 1.1. Executa
`
0
:= 0. c
1
:= ÷2. /
1
:=
3
/
1
(n
1
÷n
0
)
c
1
:= ÷
6
/
1
. d
1
:=
6
/
2
1
(n
1
÷n
0
).
Pasul 1.2. Pentru i = 2. : calculeaza
c
i
:= ÷2c
i÷1
÷
/
i
c
i÷1
2
. c
i
:= ÷2c
i÷1
÷
6c
i÷1
/
i
/
i
:=
3(n
i
÷n
i÷1
)
/
i
÷2/
i÷1
÷
/
i
d
i÷1
2
d
i
:=
6(n
i
÷n
i÷1
)
/
2
i
÷
6/
i÷1
/
i
÷2d
i÷1
.
Pasul 1.3. Executa
:
0
:= ÷
d
n
c
n
.
27
Prin acesta subrutina se vor determina :
0
si `
0
astfel incat functia spline cubica corespun-
zatoare sa minimizeze functionala (22) si sa aiba estimarea erorii (23).
Programul in limbajul C
#include <conio.h
#include <stdio.h
int main()
{
clrscr();
printf("Functia spline`n______________`n`n`n");
‡oat s, h[100], x[100], y[100], u, m[100], M[100];
int i, k, n;
printf("n=");scanf("%d",&n);
//n=7;
/* for (i=0; i<=n; i++)
{
printf("x[%d]=",i);
scanf("%lf",&x[i]);
printf("y[%d]=",i);
scanf("%lf",&y[i]);
}
printf("u=");
scanf("%lf",&u);
printf("m0=");
scanf("%lf",&m[0]);
printf("M0=");
scanf("%lf",&M[0]);
*/
printf("u=");scanf("%f",&u);
printf("m[0]=");scanf("%f",&m[0]);
printf("M[0]=");scanf("%f",&M[0]);
printf("`n");
//u=3.3;m[0]=0;M[0]=17;
for (i=1; i<=n; i++)
h[i] = x[i] - x[i-1];
printf("h[i]: ");
for (i=1; i<=n; i++)
printf("%f ",h[i]);
printf("`n`n");
for (i=1; i<=n; i++)
{
m[i] = (3 / h[i]) * (y[i] - y[i-1]) - 2 * m[i-1] - (M[i-1] / 2) * h[i] ;
M[i] = (6 / (h[i] * h[i])) * (y[i] - y[i-1]) - (6 * m[i-1]) / h[i] - 2 * M[i-1];
printf("M[i]=%f m[i]=%f ",M[i],m[i]);
}
28
printf("`n`nu=%f`n ",u);
for (i=1; i<=n; i++)
{
printf("%f ",x[i-1]);
if ((x[i-1]<u) && (u<x[i]))
{k = i;printf("* %d* ",k);}
}
s = ((M[k] - M[k-1]) / (6 * h[k] )) * (u - x[k-1]) * (u - x[k-1]) * (u - x[k-1])
+ (M[k-1] / 2) * (u - x[k-1]) * (u - x[k-1])
+ m[k-1] * (u - x[k-1]) + y[k-1];
printf("`nS(%f)=%f`n`n",u,s);
getch();
return 0;
}
Probleme propuse
1. Sa se construiasca un program in limbajul Pascal pentru algoritmul functiei spline
cubice generata de conditii la limita.
2. La momentele 7.5 (adica ora 7
30
), 10.5 (ora 10
30
), 13, 15.5 (ora 15
30
), 18, 21, 24 si 27
(adica ora 3 A. M. a doua zi) s-au masurat valorile glicemiei, obtinandu-se 130, 121, 128, 96,
122, 138, 114, 90 (masurate in mg/dl). Sa se aproximeze glicemia acestui pacient de la orele
12, 14, 23 si 2 (a doua zi A. M, adica momentul 26) folosind algoritmul de interpolare spline
cubic generat de conditii initiale cu :
0
si `
0
date in (26) prin folosirea subrutinei de mai
sus. Sa se compare rezultatele cu cele obtinute prin algoritmul lui Akima si prin algoritmul
de interpolare spline cubic generat de conditii bilocale.
29
3 Aproximarea uniform¼ a a func¸tiilor. Polinoamele lui
Berstein
Fie functia 1 : [0. 1] ÷÷R.
De…nitia 1. Numim polinomul lui Bernstein de grad m relativ la functia f, polinomul
de…nit prin formula
(1
m
1) (r) =
m
¸
k=0
j
m;k
(r) 1

/
:

.
unde
j
m;k
(r) =

:
/

r
k
(1 ÷r)
m÷k
. / = 0. :.
De…nitia 2. Numim formula de aproximare a lui Bernstein, formula
1 (r) = (1
m
1) (r) + (1
m
1) (r) .
unde (1
m
1) (r) este restul formulei de aproximare.
Proprietati:
(1) 1
m
este un operator liniar si pozitiv, adica
1
m
(c1 +o) = c1
m
1 +1
m
o. c. ÷ R
si 1
m
1 _ 0. daca 1 _ 0 .
(2) Polinomul lui Bernstein interpoleaza functia f la capetele intervalului [0,1], adica
(1
m
1) (0) = 1 (0) si (1
m
1) (1) = 1 (1) .
(3) Daca 1 ÷ ([0. 1] atunci
lim
m÷÷o
(1
m
1) (r) = 1 (r) .
uniform pe [0,1].
(4) Daca 1 ÷ (
2
[0. 1] atunci in formula de aproximare a lui Bernstein avem
(1
m
1) (r) = ÷
r (1 ÷r)
2:
1
tt
(:) . 0 < : < 1.
[(1
m
1) (r)[ _
r (1 ÷r)
2:
sup
x÷(0;1)
[1
tt
(r)[ =
r (1 ÷r)
2:
`
2
(1)
si de asemenea
[(1
m
1) (r)[ _
1
8:
`
2
(1).
(5) Polinomul lui Bernstein relativ la functia 1 : [0. 1] ÷÷R este dat prin formula
(1
m
1) (r; c. /) =
1
(/ ÷c)
m
m
¸
k=0

:
/

(r ÷c)
k
(/ ÷r)
m÷k
1

c + (/ ÷c)
/
:

.
30
Algoritmul POLBERN
Algoritmul calculeaza valoarea polinomului lui Bernstein 1
m
1 asociat unei functii 1 :
[0. 1] ÷÷R intr-un punct r ÷ [0. 1].
Intrari: m-gradul polinomului lui Bernstein
x-punctul in care dorim sa aproximam valoarea lui f;
1

k
m

. / = 0. :. valorile functiei in punctele
k
m
(sau expresia functiei)
Iesiri: 1
m
1 (r)
Pasul 1: j
m;0
(r) := r
m
Pasul 2: (1
m
1) (r) := j
m;0
(r)1(0)
Pasul 3: Pentru / = 1. : executa
Pasul 3.1: j
m;k
(r) := j
m;k÷1
(r)
m÷k+1
k

x
1÷x
Pasul 3.2: (1
m
1) (r) := (1
m
1) (r) +j
m;k
(r)1

k
m

Pasul 4: Tipareste (1
m
1) (r) . STOP.
Observatia 1. Pentru a reduce volumul de calcule, pentru a‡area lui j
m;k
(r) am folosit
relatia de recurenta:
j
m;k
(r) =
:÷/ + 1
/

r
1 ÷r
j
m;k÷1
(r).
In acest mod nu vom … nevoiti sa calculam combinari si ridicari la putere nenecesare.
Probleme propuse
1. Sa se scrie un program in limbajul C pentru algoritmul POLBERN.
2. Folosind procedura de la 1., sa se calculeze valoarea polinomului lui Bernstein (1
5
1) (r; 0. 1)
unde 1(r) = c
x
. in punctul r =
1
2
. Sa se compare rezultatul cu

c.
31
4 Ajustarea in medie p¼ atratic¼ a a datelor experimentale
Atunci cand valorile unei functii pe nodurile r
i
. i = 0. : pot … obtinute doar cu aproximatie,
problema interpolarii acestor valori îsi pierde justi…carea. O alternativa la aceasta situatie este
obtinerea polinomului, de un anumit grad …xat, situat cel mai aproape de aceste valori. Un
asemenea polinom se poate determina utilizand principiul celor mai mici patrate descoperit
de K. F. Gauss la inceputul secolului XIX.
Concret, …ind date nodurile r
i
. i = 0. : si valorile unei functii obtinute experimental
(prin masurare) n
i
. i = 0. : se cere sa se determine un polinom de grad j, j < :,
o (r) = c
p
r
p
+... +c
1
r +c
0
pentru care reziduul (de variabilele c
0
. .... c
p
),
1(c
0
. .... c
p
) =
n
¸
i=0
[n
i
÷c
p
r
p
i
÷... ÷c
1
r
i
÷c
0
]
2
se minimizeaza. Determinarea acestui polinom va … astfel o aplicatie a metodei lui Sylvester
pentru punctele de extrem local ale functiilor de mai multe variabile (a se vedea [21]). Poli-
nomul obtinut se numeste polinomul de regresie. Cel mai des folosite in deducerea empirica
experimentala a legilor naturii suntdreapta si parabola patratica de regresie. Deasemenea,
principiul celor mai mici patrate poate … folosit si la constructia functiilor spline de ajustare
a datelor experimentale.
4.1 Metoda celor mai mici p¼ atrate : dreapta de regresie
Dorind sa stabilim legea de dependenta n = 1 (r) dintre doua marimi r si n se efectueaza
masuratorile exprimate in tabelul
r r
0
r
1
...... r
n
n n
0
n
1
...... n
n
.
Punctele (r
0
. n
0
). (r
1
. n
1
).... (r
n
. n
n
) se reprezinta intr-un sistem de axe XOY, iar imaginea
lor se numeste nor statistic. Daca forma norului statistic este asemanatoare unei drepte atunci
se poate presupune ca legea de dependenta dintre r si n este liniara. Astfel, se va cauta dreapta
cea mai apropiata de punctele norului statistic. Fie ecuatia carteziana a acestei drepte,
n = cr +/
cu coe…cientii c si / necunoscuti. Consideram functia o (r) = cr + / si vom determina
coe…cientii ce minimizeaza reziduul (abatere patratica medie)
1(c. /) =
n
¸
i=0
[1(r
i
) ÷o (r
i
)]
2
=
n
¸
i=0
[n
i
÷cr
i
÷/]
2
.
In acest scop se considera sistemul

@R
@a
= ÷2
n
¸
i=0
(n
i
÷cr
i
÷/) r
i
= 0
@R
@b
= ÷2
n
¸
i=0
(n
i
÷cr
i
÷/) = 0
==
32

c
n
¸
i=0
r
2
i
+/
n
¸
i=0
r
i
=
n
¸
i=0
r
i
n
i
c
n
¸
i=0
r
i
+ (: + 1) / =
n
¸
i=0
n
i
.
(27)
Totodata,
·
2
1
·c
2
= 2
n
¸
i=0
r
2
i
0
si
=

@
2
R
@a
2
@
2
R
@a@b
@
2
R
@a@b
@
2
R
@b
2

= 4 (: + 1)
2

n
¸
i=0
1
: + 1
r
2
i
÷

n
¸
i=0
1
: + 1
r
i

2
¸
¸
0.
in virtutea inegalitatii lui Jensen. Atunci, determinantul sistemului (27) este strict pozitiv si
solutia sistemului (27) este unicul punct de minim local pentru reziduul 1(c. /) . Rezolvand
acest sistem se determina coe…cientii din ecuatia dreptei de regresie.
Algoritmul dreptei de regresie
I. Date de intrare:
n numarul datelor
r
i
. i = 0. :, valorile marimii x
n
i
. i = 0. :, valorile marimii y
II. Date de iesire:
c. / coe…cientii din ecuatia carteziana a dreptei de regresie
III. Pasii algoritmului:
Pasul 1. Calculeaza
d := (: + 1)
n
¸
i=0
r
2
i
÷

n
¸
i=0
r
i

2
d
1
:= (: + 1)
n
¸
i=0
r
i
n
i
÷
n
¸
i=0
r
i

n
¸
i=0
n
i
d
2
:=
n
¸
i=0
r
2
i

n
¸
i=0
n
i
÷
n
¸
i=0
r
i
n
i

n
¸
i=0
r
i
Pasul 2. Calculeaza
c :=
d
1
d
/ :=
d
2
d
Pasul 3. Tipareste c. /. STOP.
Probleme propuse:
1. Sa se construiasca un program in limbajele C si Pascal pentru algoritmul dreptei de
regresie.
2. (din [21]) Fie tabelul de valori ale functiei n = 1 (r)
33
r 1 3 4 6 8 9
n 1 2 4 4 5 3
Sa se determine dreapta de regresie de ecuatie n = cr +/ ce ajusteaza datele din tabel. (
Se gasesc c =
95
281
si / =
399
281
).
4.2 Metoda celor mai mici p¼ atrate : parabola de regresie
Dorind sa stabilim legea de dependenta n = 1 (r) dintre doua marimi r si n se efectueaza
masuratorile exprimate in tabelul
r r
0
r
1
...... r
n
n n
0
n
1
...... n
n
.
Punctele (r
0
. n
0
). (r
1
. n
1
).... (r
n
. n
n
) se reprezinta intr-un sistem de axe XOY, iar imaginea
lor se numeste nor statistic. Daca forma norului statistic este asemanatoare unei parabole
patratice atunci se poate presupune ca legea de dependenta dintre r si n este de forma
n = cr
2
+/r +c
cu coe…cientii c. / si c necunoscuti. Consideram functia o (r) = cr
2
+/r+c si vom determina
coe…cientii ce minimizeaza reziduul (abatere patratica medie)
1(c. /. c) =
n
¸
i=0
[1(r
i
) ÷o (r
i
)]
2
=
n
¸
i=0
[n
i
÷cr
2
i
÷/r
i
+c]
2
.
In acest scop se considera sistemul

@R
@a
= ÷2
n
¸
i=0
[n
i
÷cr
2
i
÷/r
i
+c] r
2
i
= 0
@R
@b
= ÷2
n
¸
i=0
[n
i
÷cr
2
i
÷/r
i
+c] r
i
= 0
@R
@c
= ÷2
n
¸
i=0
[n
i
÷cr
2
i
÷/r
i
+c] = 0
==

c
n
¸
i=0
r
4
i
+/
n
¸
i=0
r
3
i
+c
n
¸
i=0
r
2
i
=
n
¸
i=0
r
2
i
n
i
c
n
¸
i=0
r
3
i
+/
n
¸
i=0
r
2
i
+c
n
¸
i=0
r
i
=
n
¸
i=0
r
i
n
i
c
n
¸
i=0
r
2
i
+/
n
¸
i=0
r
i
+c (: + 1) =
n
¸
i=0
n
i
.
(28)
Totodata,
·
2
1
·c
2
= 2
n
¸
i=0
r
4
i
0.
34
=

@
2
R
@a
2
@
2
R
@a@b
@
2
R
@a@b
@
2
R
@b
2

= 4

n
¸
i=0
r
2
i

n
¸
i=0
r
4
i
÷

n
¸
i=0
r
3
i

2
¸
¸
0
si
H
R
(c. /. c) =

@
2
R
@a
2
@
2
R
@a@b
@
2
R
@a@c
@
2
R
@a@b
@
2
R
@b
2
@
2
R
@b@c
@
2
R
@a@c
@
2
R
@b@c
@
2
R
@c
2

= 8
n
¸
i=0
r
4
i

(: + 1)
n
¸
i=0
r
2
i
÷

n
¸
i=0
r
i

2
¸
¸
+
+8
n
¸
i=0
r
2
i

n
¸
i=0
r
i

n
¸
i=0
r
3
i

÷

n
¸
i=0
r
2
i

2
¸
¸
+
+8
n
¸
i=0
r
3
i

¸
n
¸
i=0
r
i

n
¸
i=0
r
2
i

÷(: + 1)
n
¸
i=0
r
3
i
¸
0.
Atunci, determinantul sistemului (28) este strict pozitiv si solutia sistemului (28) este unicul
punct de minim local pentru reziduul 1(c. /. c) . Rezolvand acest sistem se determina coe…-
cientii din ecuatia carteziana a parabolei de regresie,
n = cr
2
+/r +c.
Algoritmul parabolei de regresie
I. Date de intrare:
n numarul datelor
r
i
. i = 0. :, valorile marimii x
n
i
. i = 0. :, valorile marimii y
II. Date de iesire:
c. /. c coe…cientii din ecuatia carteziana a parabolei de regresie
III. Pasii algoritmului:
Pasul 1. Calculeaza
d := (: + 1)

n
¸
i=0
r
2
i

n
¸
i=0
r
4
i

+ 2

n
¸
i=0
r
i

n
¸
i=0
r
2
i

n
¸
i=0
r
3
i

÷
÷

n
¸
i=0
r
2
i

3
÷

n
¸
i=0
r
i

2

n
¸
i=0
r
4
i

÷(: + 1)

n
¸
i=0
r
3
i

2
d
1
:= (: + 1)

n
¸
i=0
r
2
i

n
¸
i=0
r
2
i
n
i

+

n
¸
i=0
r
i

n
¸
i=0
r
2
i

n
¸
i=0
r
i
n
i

+
+

n
¸
i=0
r
3
i

n
¸
i=0
r
i

n
¸
i=0
n
i

÷

n
¸
i=0
r
2
i

2

n
¸
i=0
n
i

÷
÷

n
¸
i=0
r
i

2

n
¸
i=0
r
2
i
n
i

÷(: + 1)

n
¸
i=0
r
3
i

n
¸
i=0
r
i
n
i

35
d
2
:= (: + 1)

n
¸
i=0
r
i
n
i

n
¸
i=0
r
4
i

+

n
¸
i=0
r
2
i

n
¸
i=0
r
3
i

n
¸
i=0
n
i

+
+

n
¸
i=0
r
i

n
¸
i=0
r
2
i

n
¸
i=0
r
2
i
n
i

÷

n
¸
i=0
r
2
i

2

n
¸
i=0
r
i
n
i

÷
÷

n
¸
i=0
r
4
i

n
¸
i=0
r
i

n
¸
i=0
n
i

÷(: + 1)

n
¸
i=0
r
2
i
n
i

n
¸
i=0
r
3
i

d
3
:=

n
¸
i=0
r
4
i

n
¸
i=0
r
2
i

n
¸
i=0
n
i

+

n
¸
i=0
r
i

n
¸
i=0
r
2
i
n
i

n
¸
i=0
r
3
i

+
+

n
¸
i=0
r
2
i

n
¸
i=0
r
3
i

n
¸
i=0
r
i
n
i

÷

n
¸
i=0
r
2
i

2

n
¸
i=0
r
2
i
n
i

÷
÷

n
¸
i=0
r
i

n
¸
i=0
r
i
n
i

n
¸
i=0
r
4
i

÷

n
¸
i=0
r
3
i

2

n
¸
i=0
n
i

.
Pasul 2. Calculeaza
c :=
d
1
d
/ :=
d
2
d
c :=
d
3
d
Pasul 3. Tipareste c. /. c. STOP.
Tema : Sa se scrie un program in limbajul C pentru parabola de regresie.
36
5 Formule de cuadratur¼ a
Pentru o functie continua 1 : [c. /] ÷÷R, cand primitiva sa se poate calcula sub forma …nita,
formula lui Leibniz-Newton permite calculul integralei de…nite
b

a
1 (r) dr = 1(/) ÷1(c).
Cand primitiva F nu se poate determina sub forma …nita, atunci integrala de…nita
b

a
1 (r) dr
se poate calcula doar aproximativ, motivand astfel studiul si utilizarea formulelor de cuadratura
numerica.
In general, o formula de cuadratura este de forma
b

a
1 (r) dr =
n
¸
k=1
¹
k
1 (r
k
) +1(1)
in care ¹
k
÷ R se numesc coe…cientii, iar r
k
÷ [c. /]. / = 1. : nodurile formulei de
cuadratura. Estimarea erorii comise se poate realiza stabilind o margine superioara pentru
restul [1(1)[ al formulei de cuadratura.
Daca o formula de cuadratura se poate obtine prin integrarea pe intervalul [a,b] a unei
formule de interpolare
1(r) = 1(r) +1(r). r ÷ [c. /]
atunci se numeste formula de cuadratura de tip interpolator.
Formula trapezului, formula lui Simpson si in general formulele lui Newton-Cotes sunt
formule de cuadratura de tip interpolator( a se vedea [4], [7] si [20]).
5.1 Exemple de func¸tii continue cu primitiva f¼ ar¼ a form¼ a …nit¼ a
Printre exemplele de functii continue (chiar analitice) ce au primitiva inexprimabila sub forma
…nita, putem mentiona densitatea de probabilitate normala a lui Gauss pe un interval compact
si functiile ce conduc la integralele eliptice in sensul Legendre.
Densitatea de probabilitate normala cu media zero si dispersia o = 1.
1 : R ÷÷R, 1(r) =
1

2:
c
÷
x
2
2
conduce la functia integrala a lui Laplace,
(r) =
1

2:
x

0
c
÷
t
2
2
dt. r 0
in care integrala se poate calcula doar aproximativ. Valorile functiei lui Laplace pentru
r ÷ [0. 4] sunt aproximate in 401 noduri echidistante din intervalul [0. 4] si se gasesc
tabelate in tratatele de calculul probabilitatilor.
37
Consideram elipsa de ecuatie implicita
(1) :
r
2
c
2
+
n
2
/
2
÷1 = 0. c. / 0. c /
cu excentricitatea c =

a
2
÷b
2
a
. Ecuatiile parametrice ale elipsei sunt
(1) :

r = c cos t
n = / sin t
. t ÷ [0. 2:].
Incercand sa calculam lungimea arcului de elipsa cuprins in cadranul I putem folosi atat
ecuatiile parametrice la calculul integralei
|

1
4

=

2

0

[r
t
(t)]
2
+ [n
t
(t)]
2
dt
cat si ecuatia explicita n =
b
a

c
2
÷r
2
. r ÷ [0. c].
la calculul integralei
|

1
4

=
a

0

1 + [n
t
(r)]
2
dr.
Ambele integrale conduc la integrala eliptica
|

1
4

= c

2

0

1 ÷c
2
sin
2
tdt.
Spre exemplu,
|

1
4

=
a

0

1 + [n
t
(r)]
2
dr =
1
c
a

0

c
4
+ (/
2
÷c
2
)r
2
c
2
÷r
2
dr.
cu substitutia r = c sin t. t ÷ [0.

2
] se obtine
|

1
4

=
1
c

2

0

c
2
+ (/
2
÷c
2
) sin
2
t
cos
2
t
c cos tdt =
=

2

0

c
2
+ (/
2
÷c
2
) sin
2
tdt =

2

0
c

1 ÷
(c
2
÷/
2
)
c
2
sin
2
tdt =
= c

2

0

1 ÷c
2
sin
2
tdt.
38
Integralele eliptice de genul I, II si III in sensul lui Legendre sunt respectiv,
1(/. .) =
'

0
dt

1 ÷/
2
sin
2
t
1(/. .) =
'

0

1 ÷/
2
sin
2
tdt
'

0
dt

1 +/sin
2
t

1 ÷/
2
sin
2
t
.
pentru / ÷ (0. 1). / ÷ R si . 0 constante.
In secolul al XIX-lea J. Liouville a aratat ca pentru nici o integrala eliptica in sensul lui
Legendre primitiva nu se poate obtine sub forma …nita (este suma unei serii de puteri). Deci,
integralele eliptice nu se pot calcula exact. Spre exemplu, lungimea orbitei Pamantului in
jurul Soarelui se determina prin calculul aproximativ al integralei
|(1) = 4c1(c.
:
2
) = 4c

2

0

1 ÷c
2
sin
2
tdt.
unde c = 0. 016729 si c = 149. 6 10
6
km.
5.2 Formula trapezului
Dup¼ a cum se ¸stie, pentru o func¸tie continu¼ a 1 : [c. /] ÷÷R. are loc egalitatea,
b

a
1(r)dr =
/ ÷c
2
[1(c) +1(/)] +1(1).
Pentru valoarea absolut¼ a a restului 1(1) se pot stabili margini superioare. Corespunz¼ ator cu
propriet¼ a¸tile func¸tiei 1 aceste margini superioare pot … mai apropiate sau mai îndep¼ artate de
[1(1)[. Astfel, dac¼ a 1 ÷ ([c. /] atunci estimarea se face cu ajutorul modulului de continuitate,
[1(1)[ _
/ ÷c
2
¬(1;
/ ÷c
2
).
În [9] s-au ob¸tinut recent urm¼ atoarele estim¼ ari :
[1(1)[ _

L(b÷a)
2
4
. daca 1 ÷ 1ij[c. /]
(b÷a)
2
|f
0
|
4
. daca 1 ÷ (
1
[c. /].
Pentru 1 ÷ (
2
[c. /] este cunoscuta estimarea clasic¼ a,
[1(1)[ _
(/ ÷c)
3
|1
tt
|
12
.
39
Pentru func¸tii cu derivata Lipschitz are loc:
Teorema: (in [5]) Dac¼ a 1 ÷ (
1
[c. /] cu 1
t
÷ 1ij[c. /], iar 1
t
0 este constanta Lipschitz
pentru 1
t
, atunci
[1(1)[ _
(/ ÷c)
3
1
t
12
.
Considerând o diviziune a intervalului [c. /].
: c = r
0
< r
1
< ... < r
n÷1
< r
n
= /
not¼ am /
i
= r
i+1
÷r
i
. \i = 0. : ÷1. ¸si
1
n
(1. ) =
1
2
n÷1
¸
i=0
/
i
[1 (r
i
) +1(r
i+1
)].
Corespunz¼ ator diviziunii de mai sus se ob¸tine :
Teorema: (in [5] si [9]) Formula trapezului corespunz¼ atoare diviziunii este
b

a
1(r)dr = 1
n
(1. ) +1
n
(1. ).
iar pentru estimarea restului avem
[1
n
(1. )[ _

1
2
n÷1
¸
i=0
/
i
¬(1;
1
2
/
i
). dac¼ a 1 ÷ ([c. /]
L
4
n÷1
¸
i=0
/
2
i
. dac¼ a 1 ÷ 1ij[c. /]
|f
0
|
4
n÷1
¸
i=0
/
2
i
. dac¼ a 1 ÷ (
1
[c. /]
L
0
12
n÷1
¸
i=0
/
3
i
. dac¼ a 1
t
÷ 1ij[c. /]
|f
00
|
12
n÷1
¸
i=0
/
3
i
. dac¼ a 1 ÷ (
2
[c. /].
(29)
Corolar: (in [5] si [9]) Dac¼ a diviziunea este echidistant¼ a atunci,
b

a
1(r)dr =
/ ÷c
2:
[1(c) + 2
n÷1
¸
i=1
1(c +
i(/ ÷c)
:
) +1(/)] +1
n
(1) (30)
¸si
[1
n
(1)[ _

b÷a
2
¬(1;
b÷a
2n
). dac¼ a 1 ÷ ([c. /]
(b÷a)
2
L
4n
. dac¼ a 1 ÷ 1ij[c. /]
(b÷a)
2
·|f
0
|
4n
. dac¼ a 1 ÷ (
1
[c. /]
(b÷a)
3
L
0
12n
2
. dac¼ a 1
t
÷ 1ij[c. /]
(b÷a)
3
|f
00
|
12n
2
. dac¼ a 1 ÷ (
2
[c. /].
(31)
40
Observatie: Formula (30) se poate obtine si integrand formula de interpolare spline
poligonala cu noduri echidistante.
Fie functia integrabila 1 : [c. /] ÷÷ R cu valori cunoscute pe noduri echidistante din
intervalul [a,b].
De…nitia 1. Numimformula de cuadratura generalizata a trapezelor formula de cuadratura
obtinuta prin aplicarea formulei de cuadratura a trapezului pe …ecare subinterval
[c + (/ ÷1)/. c +//]. / = 1. :.
unde / =
b÷a
n
.
1. Formula de cuadratura a trapezelor este
b

a
1 (r) dr =
/ ÷c
2:
¸
1 (c) + 2
m÷1
¸
k=1
1 (c +//) +1(/)
¸
+1
n
(1) .
2. Daca 1 ÷ (
2
[c. /] atunci restul in formula de cuadratura a trapezelor are expresia
1
n
(1) = ÷
(/ ÷c)
3
12:
2
1
tt
(:) = ÷
(/ ÷c) /
2
12
1
tt
(:). c < : < /.
de unde
[1
n
(1)[ _
(/ ÷c)
3
12:
2
`
2
(1) =
(/ ÷c) /
2
12
`
2
(1).
3. Formula de cuadratura a trapezelor are gradul de exactitate 1.
4. Daca se considera in formula de cuadratura a trapezelor
: = 2
p
. j = 0. 1. 2. ...
si se noteaza prin
/
p
=
/ ÷c
:
=
/ ÷c
2
p
. j = 0. 1. 2. ...
o
p
= 1 (c) + 2
n÷1
¸
k=1
1 (c
k
) +1(/). c
k
= c +//
p
. / = 0. :.
cu
o
0
= 1 (c) +1(/).
atunci urmatoarele formule de recurenta au loc
/
p+1
=
/
p
2
.
o
p+1
= o
p
+ 2
2
p
¸
k=1
1 (c + (2/ ÷1) /
p+1
) . j = 0. 1. ...
deci
b

a
1 (r) dr -
/
p
2
o
p
.
41
Algoritmul (Trapez-repetat)
Algoritmul calculeaza valoarea aproximativa a integralei
b

a
1 (r) dr prin formula repetata a
trapezelor, cu o precizie data c.
Intrari: a,b-limitele de integrare
f-expresia functiei
c÷precizia dorita
Iesiri:
b

a
1 (r) dr÷valoarea aproximativa
Pasul 1: (Initializari)
j := 0. /
p
:= / ÷c. o
p
:=
hp
2
[1 (c) +1(/)] . :
p
:= 1
Pasul 2: j := j + 1
Pasul 3: /
p
:=
h
p1
2
Pasul 4: sum:=0
Pasul 5: Pentru i = 1. :
p÷1
executa
sum:=sum+1 (c + (2i ÷1) /
p
)
Pasul 6: sum:=/
p
sum
Pasul 7: o
p
:=
S
p1
2
+sum
Pasul 8: :
p
:= 2:
p÷1
Pasul 9: Daca [o
p
÷o
p÷1
[ _ c atunci
salt la pasul al doilea
Pasul 10: Tipareste S
p
. STOP.
Programul in limbajul C
#include "stdafx.h"
double f(double x)
{
return 1/( x*x + 1 );
}
int _tmain(int argc, _TCHAR* argv[])
{
int n,i;
double a, b, x[100], s;
printf("n=");
scanf("%d",&n);
printf("a=");
scanf("%lf",&a);
printf("b=");
scanf("%lf",&b);
for (i=0; i<=n; i++)
x[i] = a + i * (b-a) / n;
s = 0;
42
for (i=1; i<=n; i++)
s = s + f(x[i-1]) + f(x[i]);
s = (b-a) / (2 * n) * s;
printf("REZ: %lf`n`n",s);
return 0;
}
Probleme propuse:
1. Sa se utilizeze formula de cuadratura a trapezului pentru n=10 la calculul integralei

1
0
1
r + 1
dr
si sa se compare rezultatul cu valoarea exacta a acestei integrale ln 2.
2. Sa se utilizeze formula de cuadratura a trapezului pentru n=10 la calculul integralei

1:5
0
c
÷
t
2
2
dt.
5.3 Formule de tip Euler-Mac Laurin. Formula perturbat¼ a a trapezu-
lui
Uneori se utilizeaz¼ a urm¼ atoarea formul¼ a de cuadratur¼ a de tip Euler-Mac Laurin, numit¯a ¸si
formula perturbat¼ a a trapezului (în care mai apar pe noduri doar derivate de ordinul întâi) :
b

a
1(r)dr =
/ ÷c
2
[1(c) +1(/)] ÷
(/ ÷c)
2
12
[1
t
(/) ÷1
t
(c)] +1(1). (32)
Estimarea restului acestei formule de cuadratur¼ a a fost ob¸tinut¼ a de K.Petr în 1915, în [18]
(pentru alte moduri de ob¸tinere a acestei formule si a restului, a se vedea ¸si [16], [20]),
[1(1)[ _
(/ ÷c)
5

1
IV

720
(33)
pentru functii 1 ÷ (
4
[c. /]. Recent, în 2001, N.Barnett ¸si S.S.Dragomir au ob¸tinut în [2] o
estimare ce utilizeaz¼ a derivata de ordinul trei,
[1(1)[ _
(/ ÷c)
4
|1
ttt
|
160
(34)
pentru 1 ÷ (
3
[c. /]. Ulterior, în 2002, au fost condu¸si la o estimare valabil¼ a pentru func¸tii de
3 ori derivabile cu derivata de ordinul 3 Lipschitz (având constanta Lipschitz 1
ttt
, a se vedea
[3]) :
[1(1)[ _
(/ ÷c)
5
1
ttt
720
. (35)
43
Considerând o diviziune a intervalului [c. /] :
1
n
: c = r
0
< r
1
< ... < r
n÷1
< r
n
= /.
/
i
= r
i+1
÷ r
i
. \i = 0. : ÷1 se ob¸tine în [2] urm¼ atoarea formul¼ a de cuadratur¼ a ( numit¼ a
formul¼ a de cuadratur¼ a trapezoidal¼ a perturbat¼ a ) :
b

a
1(r)dr =
1
2
n÷1
¸
i=0
/
i
[1(r
i
) +1 (r
i+1
)] ÷
1
12
n÷1
¸
i=0
/
2
i
[1
t
(r
i+1
) ÷1
t
(r
i
)] +1
n
(1. 1
n
) (36)
pentru care restul satisface estimarea
[1
n
(1. 1
n
)[ _
|1
ttt
|
160
n÷1
¸
i=0
/
4
i
. (37)
Dac¼ a diviziunea 1
n
este echidistant¼ a atunci /
i
= / =
b÷a
n
. \i = 0. : ÷1. iar formula se
simpli…ca (36) devenind,
b

a
1(r)dr =
/ ÷c
2:
[1(c) + 2
n÷1
¸
i=1
1(r
i
) +1(/)] ÷
(/ ÷c)
2
12:
2
[1
t
(/) ÷1
t
(c)] +1
n
(1). (38)
Estimarea restului este în acest caz ( conform cu [2]),
[1
n
(1)[ _
(/ ÷c)
4
|1
ttt
|
160:
3
. (39)
iar inegalitatile (35) si (33) ne conduc la estimarile
[1
n
(1)[ _

(b÷a)
5
·L
000
720n
4
(b÷a)
5
·|f
IV
|
720n
4
.
(40)
Observatie: Formula (32)-(33) se poate obtine si prin integrarea pe [c. /] a formulei de
interpolare Hermite cu doua noduri duble (12), iar formula (36) se poate obtine prin integrarea
pe [c. /] a formulei de interpolare neteda pe portiuni generata pe …ecare subinterval de formula
(13). Formula (38) conduce la urmatorul algoritm :
Algoritmul cuadraturii perturbate a trapezului
I. Date de intrare:
a,b capetele intervalului de integrare
n, numarul nodurilor
1 functia ce se integreaza
II. Date de iesire : o, valoarea aproximativa a integralei
b

a
1(r)dr
III. Pasii algoritmului
44
Pasul 1. Pentru i = 0. : calculeaza
r
i
:= c +i
/ ÷c
:
Pasul 2. Calculeaza
1 := 0
Pentru i = 1. : calculeaza
1 := 1 + [1 (r
i÷1
) +1 (r
i
)]
Pasul 3. Calculeaza
o :=
(/ ÷c)
2:
1 ÷
(/ ÷c)
2
12:
2
[1
t
(/) ÷1
t
(c)].
Pasul 4. Tipareste o. STOP.
Probleme propuse :
1. Sa se scrie un program in limbajele C si Pascal pentru algoritmul cuadraturii perturbate
a trapezului.
2. Sa se utilizeze formula de cuadratura a perturbata a trapezului pentru n=10 la calculul
integralei

1:5
0
c
÷
t
2
2
dt.
si sa se compare cu rezultatul de la paragraful precedent si cu cel dat in tabelele de valori ale
functiei integrale a lui Laplace.
5.4 Formula lui Simpson
Formula de cuadratura a lui Simpson este
b

a
1 (r) dr =
/ ÷c
6
¸
1 (c) + 41

c +/
2

+1(/)

+1(1) .
unde restul formulei, cand 1 ÷ (
4
[c. /]. este
1(1) = ÷
(/ ÷c)
5
2880
1
(iv)
(:) . c < : < /.
astfel pentru evaluarea erorii avem
[1(1)[ _
(/ ÷c)
5
2880
`
4
(1).
De…nitia 1. Numim formula de cuadratura a lui Simpson repetata formula de cuadratura
obtinuta prin aplicarea formulei de cuadratura a lui Simpson pe …ecare subinterval [c + 2 (/ ÷1) /. 2//] .
/ = 1. :. unde / =
b÷a
2n
.
45
1. Formula de cuadratura repetata a lui Simpson este
b

a
1 (r) dr =
/ ÷c
6:
¸
1 (c) + 4
n
¸
k=1
1 (c + (2/ ÷1) /) + 2
n÷1
¸
k=1
1 (c + 2//) +1(/)
¸
+1
n
(1) .
2. Daca 1 ÷ (
4
[c. /] atunci restul in formula de cuadratura repetata a lui Simpson are
expresia
1
n
(1) = ÷
(/ ÷c)
5
2880:
4
1
(iv)
(:) = ÷
(/ ÷c) /
4
180
1
(iv)
(:) . c < : < /.
de unde
[1
n
(1)[ _
(/ ÷c)
5
2880:
4
`
4
(1) =
(/ ÷c) /
4
180
`
4
(1).
3. Formula de cuadratura repetata a lui Simpson are gradul de exactitate 3.
4. Daca se considera in formula de cuadratura repetata a lui Simpson
: = 2
p
. j = 0. 1. 2. ...
si se noteaza prin
/
p
=
/ ÷c
2:
=
/ ÷c
2
p+1
. j = 0. 1. 2. ...
cu
o
0
= 1 (c) +1(/).
o
(1)
p
=
n
¸
k=1
1 (c + (2/ ÷1) /
p
) . j = 0. 1. 2. ...
o
(2)
p
=
n÷1
¸
k=1
1 (c + 2//
p
) . j = 0. 1. 2. ...
cu o
(2)
0
= 0. atunci au loc relatiile de recurenta
/
p+1
=
1
2
/
p
.
o
(2)
p+1
= o
(2)
p
+o
(1)
p
.
deci
b

a
1 (r) dr -
/
p
3

o
0
+ 2o
(2)
p
+ 4o
(1)
p

.
Algoritmul (Simpson-repetat)
Algoritmul calculeaza valoarea aproximativa a integralei
b

a
1 (r) dr prin formula repetata a
46
lui Simpson, cu o precizie data c.
Intrari: a,b-limitele de integrare
f-expresia functiei
c÷precizia dorita
Iesiri:
b

a
1 (r) dr-valoarea aproximativa
Pasul 1: (Initializari)
j := 0. /
p
:=
b÷a
2
. o
0
:= 1 (c) +1(/). :
0
:= 1.
o
(2)
0
:= 0. o
(1)
0
:= 1(c +/
0
). 1
0
:=
h
3

o
0
+ 2o
(2)
p
+ 4o
(1)
p

Pasul 2: j := j + 1
Pasul 3: /
p
:=
1
2
/
p÷1
Pasul 4: :
p
:= 2:
p÷1
Pasul 5: o
(2)
p
:= o
(2)
p÷1
+o
(1)
p÷1
Pasul 6: o
(1)
p
:= 0
Pasul 7: Pentru / := 1. :
p
executa
o
(1)
p
:= o
(1)
p
+1 (c + (2/ ÷1) /
p
)
Pasul 8: 1
p
:=
hp
3

o
0
+ 2o
(2)
p
+ 4o
(1)
p

Pasul 9: Daca [1
p
÷1
p÷1
[ _ c atunci
salt la pasul al doilea
Pasul 10: Tipareste 1
p
. STOP.
Programul in limbajul C
#include "stdafx.h"
double f(double x)
{
return 1 /( x + 1 );
}
int _tmain(int argc, _TCHAR* argv[])
{
int n,i;
double a, b, x[1000], s;
printf("n=");
scanf("%d",&n);
printf("a=");
scanf("%lf",&a);
printf("b=");
scanf("%lf",&b);
for (i=0; i<=n; i++)
x[i] = a + i * (b-a) / n;
s = 0;
47
for (i=1; i<=n; i++)
s = s + f(x[i-1]) + f(x[i]) + 4 * f( (x[i]+x[i-1])/2 );
s = (b-a) / (6 * n) * s;
printf("REZ: %22.20lf`n`n",s);
return 0;
}
Probleme propuse
1. Sa se scrie un program in limbajul Pascal pentru algoritmul lui Simpson.
2. Se considera functia 1 (r) =
1
1+x
. Sa se calculeze valoarea aproximativa a integralei
1

0
1 (r) dr. cu o precizie c = 10
÷1
. c = 10
÷2
. c = 10
÷3
. folosind formulele repetate ale
trapezului, respectiv a lui Simpson.
48
6 Metode numerice in algebra liniara
6.1 Calculul determinantului
Fie ¹ o matrice patratica de ordinul n
¹ = (c
ij
)
i;j=1;n
cu dct¹ = 0. Se pune problema calculului determinantului, dct¹. si a inversei ¹
÷1
.
Calculul determinantului dct¹ se poate face prin mai multe metode. Una dintre cele mai
e…ciente metode, din punct de vedere al volumului de calcul, consta in a face, cu ajutorul
transformarilor, elemente nule sub diagonala principala, adica
dct¹ :=

c
11
c
12
. . . c
1n
c
21
c
22
. . . c
2n
. . . . . . . . . . . .
c
n1
c
n2
. . . c
nn

=

c
(1)
11
c
(1)
12
. . . c
(1)
1n
0 c
(2)
22
. . . c
(2)
2n
. . . . . . . . . . . .
0 0 . . . c
(n)
nn

.
deci
dct¹ = c
(1)
11
c
(2)
22
... c
(n)
nn
.
Transformarile necesare sunt date de relatiile:
c
(1)
ij
:= c
ij
. i. , = 1. :.
c
(p+1)
ij
:= c
(p)
ij
÷c
(p)
pj

c
(p)
ip
c
(p)
pp

. j = 1. : ÷1.
pentru i. , = j + 1. :. Conditia de realizare a metodei este c
(p)
pp
= 0. j = 1. :.
In caz contrar sunt necesare unele interschimbari de linii si/sau coloane.
Algoritmul (DET)
Algoritmul calculeaza determinantul unei matrici A.
Intrari: n-ordinul matricei
A-matricea careia i se calculeaza determinantul
Iesiri: dct (¹)
Pasul 1: dct := 1
Pasul 2: Pentru j := 1. : ÷1 executa
Pasul 2.1 : Daca c
pp
= 0 salt la pasul 2.3
Pasul 2.2 : Cauta un element c
jp
= 0, cu , ÷ ¦j + 1. .... :¦ .
Daca acest element nu exista atunci dct := 0. STOP.
altfel
dct := ÷dct.
Schimba linia p cu linia j.
Pasul 2.3.1: Pentru i := j + 1. : executa
c
ij
:= c
ij
÷c
pj

a
ip
app
Pasul 2.4 : dct := dct c
pp
Pasul 3: dct := dct c
nn
Pasul 4: Tipareste: dct. STOP.
49
6.2 Calculul inversei unei matrici
Fie ¹ o matrice patratica de ordinul n
¹ = (c
ij
)
i;j=1;n
Transformarile folosite sunt:
c
(0)
ij
:= c
ij
. i. , = 1. :. c
(0)
ij
=

1. : +i = ,
0. : +i = ,. i = 1. :; , = : + 1. 2:

c
(p)
pj
:= c
(p÷1)
pj
c
(p÷1)
pp
. , = j + 1. 2:
c
(p)
ij
:= c
(p÷1)
ij
÷c
(p)
pj
c
(p÷1)
ip
. , = j + 1. 2:; i = 1. :; i = j
. j = 1. :
La sfarsitul acestor calcule obtinem:
¹
÷1
=

¸
c
(n)
1;n+1
. . . c
(n)
1;2n
. . . . . . . . .
c
(n)
n;n+1
. . . c
(n)
n;2n
¸

.
Algoritmul (INV)
Algoritmul calculeaza inversa unei matrici A.
Intrari: n-ordinul matricei
A-matricea careia i se calculeaza inversa
Iesiri: ¹
÷1
sau
un mesaj de eroare daca A este nesingulara
Pasul 1: Pentru , = : + 1. 2: executa
Pasul 1.1 : Pentru i = 1. : executa
Daca : +i = , atunci c
ij
:= 1
altfel c
ij
:= 0
Pasul 2: Pentru j = 1. : executa
Pasul 2.1 : Daca c
pp
= 0 se trece la pasul 2.3
Pasul 2.2 : Se cauta un element c
jp
= 0, , ÷ ¦j + 1. .... :¦ .
Daca un astfel de element nu exista atunci
tipareste: ”A este nesingulara”. STOP.
altfel
schimba linia p cu linia j in intreaga matrice
(avand 2n coloane)
Pasul 2.3 : c := c
pp
Pasul 2.4 : Pentru , = j. 2: executa
c
pj
:= c
pj
c
Pasul 2.5 : Pentru i = 1. : executa
Pasul 2.5.1 : Daca i = j atunci
Pasul 2.5.1.1: c := c
ip
Pasul 2.5.1.2: Pentru , = j. 2: executa
c
ij
:= c
ij
÷c
pj
c
Pasul 3: Pentru i = 1. : executa
50
Pasul 3.1 : Pentru , = 1. : executa
c
÷1
ij
:= c
ij+n
Pasul 4: Tipareste ¹
÷1
. STOP.
Probleme propuse
1. Sa se scrie cate un program in limbajul C pentru algoritmii DET si INV.
2. Sa se calculeze determinantul si (daca este posibil) inversa urmatoarelor matrici:
(a)

¸
3 2 1
2 1 0
1 0 0
¸

; (b)

¸
2 1 3
3 3 2
1 2 1
¸

; (c)

¸
¸
¸
1 4 2 ÷5
2 1 4 ÷3
3 2 1 ÷1
3 1 0 5
¸

.
R: (a) dct = ÷1; (b) dct = 6; (c) dct = 0.
¹
÷1
=

¸
0 0 1
0 1 ÷2
1 ÷2 1
¸

si ¹
÷1
=
1
6

¸
÷1 5 ÷7
÷1 ÷1 5
3 ÷3 3
¸

3. Sa se compare rezultatele obtinute cu cele furnizate de procedurile DET si INV.
6.3 Metoda lui Gauss pentru sisteme liniare
Fie sistemul ¹r = /. ¹ = (c
ij
)
i;j=1;n
. / = (/
1
. .... /
n
)
T
. cu dct (¹) = 0.
Metoda lui Gauss consta din doua etape:
1) transformarea sistemului dat intr-un sistem triunghiular echivalent:
n
¸
i=p
c
(p)
pj
r
j
= /
(p)
. j = 1. :.
elementele matricei acestui sistem …ind date de relatiile:
c
(1)
ij
:= c
ij
. /
(1)
i
:= /
i
. i. , = 1. :.
c
(p+1)
ij
:= c
(p)
ij
÷c
(p)
pj

c
(p)
ip
c
(p)
pp

.
/
(p+1)
i
:= /
(p)
i
÷/
(p)
p

c
(p)
ip
c
(p)
pp

.
pentru j = 1. : ÷1. iar i. , = j + 1. :. in ipoteza ca c
(p)
pp
= 0. j = 1. :.
Observatia 1. Asigurarea conditiilor c
(p)
pp
= 0. j = 1. :. se poate face prin procedeul
pivotului maxim. Astfel, pentru a asigura ca c
(p)
pp
= 0. se determina, dintre elementele c
(p)
ij
.
i. , = j. :. elementul cu valoarea absoluta maxima. Fie acesta c
(p)
ipjp
. Schimband intre ele
liniile p si i
p
respectiv coloanele p si ,
p
, elementul c
(p)
ipjp
va ocupa pozitia (p,p). Matricea
A …ind nesingulara, acest element este diferit de zero.
Observatia 2. Pentru a evita unele schimbari de coloane, se poate folosi o pivotare
partiala. Astfel, daca c
(p)
pp
= 0, se schimba linia p cu linia i
p
pentru care avem

c
ip;p

= max

c
(p)
ip

. i = j + 1. :
¸
.
51
In cazul in care c
(p)
ip
= 0. i = j. :. se va face uz si de schimbarea coloanelor.
2) rezolvarea sistemului triunghiular folosind metoda substitutiei inverse:
r
n
= /
(n)
n
c
(n)
nn
.
r
p
=
1
c
(p)
pp
¸
/
(p)
p
÷
n
¸
j=p+1
c
(p)
pj
r
j
¸
. j = : ÷1. 1.
Algoritmul (Gauss)
Algoritmul rezolva sistemul liniar ¹r = / prin metoda lui Gauss, alegandu-se drept varianta
de implementare aceea a pivotului maxim.
Intrari: n-ordinul matricei
A-matricea sistemului
b- vectorul termenilor liberi
Iesiri: x-vectorul solutiilor, sau
un mesaj de eroare, in cazul in care sistemul nu e compatibil determinat
Pasul 1: Pentru / = 1. :. executa: j
k
:= /
Pasul 2: Pentru / = 1. : ÷1. executa
Pasul 2.1: determina i. , ÷ ¦/. / + 1. .... :¦ astfel incat:
[c
ij
[ = max
¸
[c
r;q
[ . :. ¡ = /. :

Pasul 2.2: Daca c
ij
= 0 atunci
Tipareste:”Sistemul nu este compatibil determinat”. STOP.
Pasul 2.3: Schimba linia i cu linia k din matricea A
Pasul 2.4: Schimba componentele i si k in vectorul b
Pasul 2.5: Schimba coloana j cu coloana k in matricea A
Pasul 2.6: Schimba componentele i si k ale vectorului P.
Pasul 2.7: Pentru i = / + 1. : executa
Pasul 2.7.1: tc:j:=
a
ik
a
kk
Pasul 2.7.2: Pentru , = / + 1. : executa
c
ij
:= c
ij
÷tc:j c
kj
Pasul 2.7.3: /
i
:= /
i
÷/
k
tc:j
Pasul 3: Daca c
nn
= 0 atunci
Tipareste:”Sistemul nu este compatibil determinat”. STOP.
Pasul 4: Pentru i = 1. : executa
r
i
=
1
a
ii

/
i
÷
n
¸
j=i+1
c
ij
r
j

Pasul 5: Ordoneaza in mod crescator componentele vectorului P si corespunzator elementele
vectorului x
Pasul 6: Tipareste x. STOP.
Probleme propuse
1. Sa se scrie un program in limbajele C si Pascal pentru algoritmul lui Gauss..
2. Sa se rezolve sistemele:
52
(a)

2r
1
+r
2
÷4r
3
+r
4
= 0
÷4r
1
+ 3r
2
+ 5r
3
÷2r
4
= 10
r
1
÷r
2
+r
3
÷r
4
= 3
r
1
+ 3r
2
÷3r
3
+ 3r
4
= ÷1
;
(b)

2r
1
+ 4r
3
+r
4
= 7
2r
2
+ 4r
3
+r
4
= 7
2r
1
+ 4r
2
+ 3r
3
= 9
r
1
+ 2r
2
+ 2r
4
= 5
;
(c)

2r
1
+ 2r
2
+ 2r
3
= 6
r
1
÷r
2
= 2
3r
1
+r
2
+ 2r
3
= 8
.
6.4 Metoda iterativ¼ a a lui Jacobi pentru sisteme liniare
Consider¼ am sistemul liniar

c
11
r
1
+... +c
1n
r
n
= /
1
..........................
c
n1
r
1
+... +c
nn
r
n
= /
n
(41)
ce poate … scris sub forma vectorial¼ a ¹ r = /. unde ¹ =

¸
c
11
... c
1n
... ... ...
c
n1
... c
nn
¸

. r =

¸
r
1
...
r
n
¸

¸si / =

¸
/
1
...
/
n
¸

. Presupunem c¼ a det ¹ = 0.
Putem scrie sistemul (41) sub forma echivalent¼ a r = c r +. unde
c = (c
ij
)
i;j=1;n
. = (
1
. ....
n
)
se pot exprima în func¸tie de ¹ ¸si /. Aceasta se poate realiza întotdeauna astfel :
Dac¼ a c
ii
= 0. \i = 1. :. atunci împ¼ ar¸tind …ecare ecua¸tie de ordin i cu c
ii
. ob¸tinem sistemul
echivalent
¦r
i
=
/
i
c
ii
÷
c
i1
c
ii
r
1
÷... ÷
c
i;i÷1
c
ii
r
i÷1
÷
c
i;i+1
c
ii
r
i+1
÷... ÷
c
in
c
ii
r
n
+/
i
. i = 1. :.
Notând
c =

¸
¸
¸
0 ÷
a
12
a
11
... ÷
a
1n
a
11
÷
a
21
a
22
0 ... ÷
a
2n
a
22
... ... ... ...
÷
a
n1
ann
÷
a
n2
ann
... 0
¸

¸si =

¸
/
1
+
b
1
a
11
.....
/
n
+
bn
ann
¸

ob¸tinem forma sistemului,
r = c r +. (42)
Dac¼ a exist¼ a un c
ii
= 0. atunci se rearanjeaz¼ a ecua¸tiile ¸si se renumeroteaz¼ a necunoscutele
astfel încât sistemul s¼ a poat¼ a … adus la forma în care c
ii
= 0. \i = 1. :. Astfel, odat¼ a ajun¸si
53
la forma (42) a sistemului (41), se va putea aplica sistemului liniar metoda aproxima¸tiilor
succesive, ob¸tinând itera¸tiile
r
(k+1)
= c r
(k)
+. / = 0. 1. 2. ... (43)
Dac¼ a not¼ am r
(k+1)
=

¸
r
(k+1)
1
...
r
(k+1)
n
¸

. atunci pe componente (43) devine
¦r
(k+1)
i
=
n
¸
j=1
c
ij
r
(k+1)
j
+
i
, i = 1. :. (44)
Itera¸tiile (43) vor porni de la un vector ini¸tial arbitrar, r
(0)
=

¸
r
(0)
1
...
r
(0)
n
¸

. Astfel, este de…nit
un proces iterativ Picard. Aplicând principiul de punct …x al lui Banach vom ob¸tine condi¸tii
su…ciente de convergen¸t¼ a a acestui proces. :
Teorema: Dac¼ a det ¹ = 0 ¸si |c|
o
< 1. atunci sistemul (41) are o unic¼ a solu¸tie r
+
÷ R
n
,
ce este limita ¸sirului de…nit prin recuren¸t¼ a în (43) indiferent de vectorul ini¸tial r
(0)
. Dac¼ a
r
(0)
= atunci are loc urm¼ atoarea estimare a erorii :

r
+
÷r
(k)

o
_
|c|
k
o
1 ÷|c|
o
||
o
. \/ ÷ N
+
. (45)
Se considera sistemul
¹r = /. ¹ = (c
ij
)
i;j=1;n
. / = (/
1
. .... /
n
)
T
.
pentru care construim o metoda iterativa de aproximare a solutiei r
+
a sistemului este o
metoda care plecand de la o aproximatie initiala r
(0)
(valoare de pornire) genereaza un sir
r
(k)
. / = 1. 2. ... de aproximatii ale solutiei r
+
.
Daca sirul r
(k)
. / = 1. 2. ... converge la r
+
. metoda se numeste convergenta.
Elementul r
(k)
al sirului se numeste aproximatie de rang k. Obtinerea unei metode iterative
are la baza scrierea matricei A sub forma
¹ = 1 +( (46)
si a sistemului sub forma
1r = (r +/.
Daca r
(0)
este valoarea de pornire, sirul r
(k)
. / = 1. 2. ... poate … generat astfel:
1r
(m+1)
= (r
(m)
+/. : = 0. 1. ...
Proprietatea 1. Pentru r
(m)
dat, exista in mod unic r
(m+1)
daca si numai daca exista
1
÷1
si avem:
r
(m+1)
= 1
÷1
(r
(m)
+1
÷1
/. (47)
54
Prin urmare, scrierea sub forma (46) a matricei A trebuie sa tina seama de conditia ca sa
existe 1
÷1
.
Proprietatea 2. Convergenta metodei iterative este asigurata daca
|1
÷1
(| < 1. |«| …ind una dintre normele unei matrice.
In functie de alegerea matricei P avem diverse metode iterative.
Metoda lui Jacobi, cea prezentata la inceputul acestui paragraf, se obtine pentru
1 := 1
J
=

¸
¸
¸
c
11
0 . . . 0
0 c
22
. . . 0
. . . . . . . . . . . .
0 0 . . . c
nn
¸

. c
ii
= 0. i = 1. :.
Relatia (47) poate … scrisa sub forma detaliata:
r
(m+1)
i
=
1
c
ii

/
i
÷
n
¸
j=1;j,=i
c
ij
r
(m)
j

. i = 1. :.
In acest caz, conditia de convergenta pentru orice valoare de pornire r
(0)
. este de exemplu:

1
n
÷1
÷1
J
¹

o
= max
1<i<n

n
¸
j=1;j,=i

c
ij
c
ii

¸
= c < 1.
adica matricea A sa …e strict diagonal dominanta.
Algoritmul metodei lui Jacobi
Calculeaza o aproximatie a solutiei sistemului ¹r = / cu precizia cj: folosind metoda
lui Jacobi. Conditia de oprire a calculului aproximatiilor succesive ale solutiei este

r
(k)
÷r
(k÷1)

_
1 ÷|1
÷1
(|
|1
÷1
(|
cj:.
|| …ind una dintre normele pentru indice; |1
÷1
(| trebuie sa …e <1 pentru ca metoda
sa convearga.
Intrari: n-ordinul matricei
A-matricea sistemului
b- matricea termenilor liberi
eps-precizia
norma |1
÷1
(| (daca nu, se poate calcula in program)
r
(0)
-aproximatia initiala
Iesiri: r
(m)
-aproximatia …nala
Pasul 0: : := 0
Pasul 1: : := :+ 1
Pasul 2: Pentru i = 1. : executa
55
Pasul 2.1: r
(m)
i
=
1
a
ii

/
i
÷
n
¸
j=1;j,=i
c
ij
r
(m÷1)
j

Pasul 3: Daca

r
(m)
÷r
(m÷1)

_
1÷|P
1
Q|
|P
1
Q|
cj: atunci STOP
altfel mergi la Pasul 1.
Probleme propuse
1. Sa se scrie un program in limbajele C si Pascal pentru algoritmul lui Jacobi..
2. Se da urmatorul sistem liniar, ¹r = / :
¹ =

¸
¸
¸
¸
¸
¸
¸
4 ÷1 0 ÷1 0 0
÷1 4 ÷1 0 ÷1 0
0 ÷1 4 0 0 ÷1
÷1 0 0 4 ÷1 0
0 ÷1 0 ÷1 4 ÷1
0 0 ÷1 0 ÷1 4
¸

. / =

¸
¸
¸
¸
¸
¸
¸
2
1
2
2
1
2
¸

.
Acest sistem are solutia exacta r = (1. 1. 1. 1. 1. 1)
T
.
Sa se rezolve sistemul folosind metoda iterativa a lui Jacobi. Ca si aproximatie initiala se va
folosi r
(0)
= 0. Precizia cu care se cer solutiile este c = 0. 0001. Comparati rezultatele.
3. Fie sistemul ¹r = /. ¹ =

¸
2 ÷1 0
÷1 2 ÷1
0 ÷1 2
¸

si / =

¸
1
0
1
¸

.
(1) Sa se determine o solutie aproximativa a sistemului folosind:
(a) Metoda lui Jacobi cu 3 pasi;
(2) Stiind ca valoarea exacta a solutiei este r =

¸
1
1
1
¸

. studiati erorile ce apar.
56
7 Metode numerice pentru ecua¸tii neliniare
7.1 Metoda injum¼ at¼ a¸tirii intervalului
Metoda injumatatirii pentru aproximarea solutiei izolate r
+
÷ (c. /) a ecuatiei 1 (r) = 0.
1 ÷ ([c. /]. consta in construirea unui sir de intervale
[c
0
. /
0
] [c
1
. /
1
] ... [c
n
. /
n
] ...
astfel incat r
+
÷ [c
n
. /
n
] .
Pentru aceasta se considera [c
0
. /
0
] = [c. /]. In continuare se ia
[c
1
. /
1
] =

[c.
a+b
2
]. daca 1(c)1

a+b
2

< 0.
[
a+b
2
. /]. daca 1(c)1

a+b
2

0.
In general avem
[c
n+1
. /
n+1
] =

[c
n
.
an+bn
2
]. daca 1(c
n
)1

an+bn
2

< 0.
[
an+bn
2
. /
n
]. daca 1(c
n
)1

an+bn
2

0.
Observatia 1. Se poate intampla ca in construirea sirului de intervale sa avem c
n
= r
+
sau /
n
= r
+
. caz in care procedeul se incheie.
Observatia 2. Sirurile (c
n
)
n`0
si (/
n
)
n`0
reprezinta siruri de aproximatie prin lipsa,
respectiv prin adaos, pentru solutia r
+
.
Observatia 3. Deoarece /
n
÷c
n
=
b÷a
2
n
. avem ca
[r
n
÷r
+
[ _
/ ÷c
2
n
.
daca r
n
= c
n
sau r
n
= /
n
.
Algoritmul (Metoda injumatatirii)
Algoritmul aproximeaza solutia izolata r
+
÷ [c. /] a ecuatiei 1 (r) = 0. 1 ÷ ([c. /]. prin
metoda injumatatirii intervalului.
Intrari: functia f
capetele intervalului: a, b
precizia dorita: cj:
Iesiri: Aproximarea radacinii ecuatiei: SOL
Pasul 1: Fie c :=
a+b
2
Pasul 2: Daca / ÷c _ cj: atunci SOL:=c. STOP.
Pasul 3: Daca 1 (/) 1 (c) _ 0 atunci c := c
altfel / := c
Pasul 4: Mergi la Pasul 1.
Observatia 4. Inainte de aplicarea acestui algoritm trebuie sa ne asiguram ca in intervalul
[a,b] ecuatia are doar o singura solutie (una din conditii e 1 (c) 1 (/) < 0). Aceasta se poate
face folosind una din metodele de izolare a radacinilor unei ecuatii: sirul lui Rolle, Sturm, etc.
57
Observatia 5. Chiar daca nu ne-am asigurat ca 1(r) = 0 are o singura solutie in [a,b],
daca 1 (c) 1 (/) < 0. algoritmul de mai sus va converge spre una din radacinile ce se a‡a in
[a,b].
Probleme propuse
1. Sa se scrie un program in C pentru algoritmul prezentat.
2. Folosind procedura de la 1., sa se aproximeze cu 4 zecimale exacte, cea mai mare
radacina a ecuatiei:
r
6
÷r ÷1 = 0.
3. Folositi programul pentru a calcula cea mai mica radacina pozitiva a ecuatiei
r ÷tor = 0.
7.2 Metoda aproxima¸tiilor succesive pentru ecuatii scalare
Consider¼ am ecua¸tia
.(r) = r (48)
cu . : R ÷ R. continu¼ a. Pentru r
0
÷ J ( unde J · R. este interval ) …xat se construie¸ste
prin recuren¸t¼ a ¸sirul aproxima¸tiilor succesive
r
n+1
= .(r
n
) . : ÷ N. (49)
Utilizand principiul de punct …x al lui Banach se obtine:
Teorema 1: Fie J · R. interval compact ¸si . : J ÷ R. astfel încât .(r) ÷ J. \r ÷ J
¸si . ÷ (
1
(J) . Dac¼ a [.
t
(r)[ _ ¡ < 1. \r ÷ J. atunci ecua¸tia (48) are în J o unic¼ a solu¸tie
r
+
, care este limita ¸sirului (49). În plus, are loc estimarea erorii :
[r
n
÷r
+
[ _
¡
n
1 ÷¡
[r
1
÷r
0
[ . \: ÷ N
+
. (50)
Folosind teorema lui Lagrange a cresterilor …nite se poate demonstra:
Teorema 2: Fie r
+
un punct …x al lui ., iar (r
n
)
n÷N
¸sirul aproxima¸tiilor succesive generat
de . pentru un r
0
dat, care converge la r
+
. Dac¼ a . ÷ (
1
(\ (r
+
)) ¸si [.
t
(r)[ < ¡. \r ÷ \ (r
+
) .
atunci
[r
n
÷r
+
[ _
¡
1 ÷¡
[r
n
÷r
n÷1
[ . \: ÷ N
+
. (51)
Observatia 1: Propozi¸tia precedent¼ a precizeaz¼ a o estimare a posteriori ¸si d¼ a posibilitatea
stabilirii unui criteriu de oprire a procedurii iterative Picard. Astfel, notând cu eroarea
absolut¼ a maxim¼ a admis¼ a, adic¼ a [r
n
÷r
+
[ _ . din (51) se ob¸tine
[r
n
÷r
n÷1
[ _
1 ÷¡
¡
.
condi¸tie care constituie un criteriu de oprire a calculului.
Observatia 2: Condi¸tia de convergen¸t¼ a a procedurii iterative Picard este dat¼ a de ine-
galitatea |.
t
|
o
< 1. R¼ asturnarea acestei inegalit¼ a¸ti poate conduce la divergen¸ta itera¸tiilor
58
Picard. Dac¼ a |.
t
|
o
< 1 ¸si .
t
(r) 0. \r ÷ J. atunci ¸sirul (49) converge monoton c¼ atre r
+
.
descresc¼ ator dac¼ a r
0
r
+
¸si cresc¼ ator dac¼ a r
0
< r
+
. Dac¼ a |.
t
|
o
< 1 ¸si .
t
(r) < 0. \r ÷ J.
atunci ¸sirul (49) converge oscilant c¼ atre r
+
.
Observatia 3: Ecua¸tia 1 (r) = 0 poate … pus¼ a sub forma (48) ¸si se poate g¼ asi func¸tia .
astfel încât s¼ a …e îndeplinit¼ a condi¸tia |.
t
|
o
< 1. Astfel, dac¼ a 1 ÷ (
1
(J) ¸si presupunând c¼ a
exist¼ a :
1
. `
1
0 astfel încât
0 < :
1
_ 1
t
(r) _ `
1
. \r ÷ J
( acest lucru se poate realiza dac¼ a 1
t
(r) = 0 ¸si atunci când 1
t
(r) < 0. c¼ aci ecua¸tia 1 (r) = 0
poate … pus¼ a sub forma ÷1 (r) = 0 ). Apoi, ecua¸tia 1 (r) = 0 se pune sub forma echivalent¼ a
r = r ÷ \ 1 (r) . unde \ 0 se alege astfel încât s¼ a avem |.
t
|
o
< 1. ¸si se va pune
.(r) = r ÷\ 1 (r) . Pentru a determina constanta \ 0 pornim de la inegalitatea
0 _ .
t
(r) = 1 ÷\ 1
t
(r) _ ¡ < 1
ceea ce va conduce la a alege \ =
1
M
1
¸si atunci vom ob¸tine ¡ = 1 ÷
m
1
M
1
< 1.
Observatia 4: Dac¼ a intervalul compact J nu con¸tine originea ¸si func¸tia . este bijectiv¼ a,
atunci ecua¸tia (48) poate … rezolvat¼ a ¸si când [.
t
(r)[ _ / 1. În acest caz procesul iterativ ar
deveni divergent. De aceea se pune ecua¸tia (48) sub forma echivalent¼ a r = .
÷1
(r)
not
= · (r) .
Vom … condu¸si la solu¸tia ecua¸tiei (48), iar procedura iterativa Picard corespunz¼ atoare este
convergent¼ a, deoarece

t
(r)[ =

1
.
t
(· (r))

_
1
/
= ¡ < 1.
Algoritmul metodei aproximatiilor succesive
I. Date de intrare:
r
0
iteratia initiala
. functia contractie
0 eroarea admisa
II. Date de iesire:
r
n
ultima iteratie ce aproximeaza solutia cu eroarea admisa
III. Pasii algoritmului
Pasul 1. Calculeaza
r
1
= .(r
0
)
Pasul 2. Cat timp
[r
n
÷r
n+1
[ _
Pentru : _ 0
Calculeaza
r
n+1
= .(r
n
)
Pasul 3. Pentru : ÷ N. pentru care
[r
n
÷r
n÷1
[ <
Tipareste r
n
. STOP.
59
Probleme propuse :
1. Sa se construiasca un program in limbajele C si Pascal pentru metoda aproximatiilor
succesive.
2. Folosind metoda aproximatiilor succesive sa se aproximeze solutia din intervalul (1,2)
a ecuatiei
r
4
÷r ÷1 = 0.
7.3 Metoda aproxima¸tiilor succesive pentru sisteme neliniare
Consider¼ am sistemul de ecua¸tii :

r
1
= .
1
(r
1
. .... r
n
)
................
r
n
= .
n
(r
1
. .... r
n
)
. (r
1
. .... r
n
) ÷ 1. (52)
unde 1 · R
n
este un domeniu, .
i
: 1 ÷R sunt func¸tii continue pe 1 astfel încât
(.
1
(r
1
. .... r
n
). .... .
n
(r
1
. .... r
n
)) ÷ 1. \(r
1
. .... r
n
) ÷ 1.
Acest sistem poate … pus sub forma vectorial¼ a
r = .(r) . r ÷ 1. (53)
unde r = (r
1
. .... r
n
) ¸si . = (.
1
. .... .
n
) .
În conformitate cu metoda aproxima¸tiilor succesive expus¼ a în capitolul precedent se ob¸tine
¸sirul de itera¸tii Picard :
r
(0)
. r
(1)
. .... r
(m)
. ...
ce porne¸ste de la o valoare aleas¼ a r
(0)
¸si se construie¸ste prin recuren¸ta :
r
(m+1)
= .

r
(m)

. : ÷ N. (54)
Convergen¸ta acestui ¸sir este asigurat¼ a de calitatea de contrac¸tie a func¸tiei .. Pentru a ob¸tine
calitatea de contrac¸tie pentru . va … su…cient s¼ a presupunem c¼ a .
i
÷ (
1
(1) . \i = 1. : ¸si
s¼ a g¼ asim constanta de contrac¸tie cu ajutorul normei matricii Jacobi a lui .. .
t
=

@ '
i
@ x
j

. i.
, = 1. :. Astfel, în spa¸tiul de matrici putem considera norma Cebî¸sev,
|.
t
|
o
=

·.
i
·r
j

. i. , = 1. :

= max
1<i<n
n
¸
j=1
max
x÷D

·.
i
(r)
·r
j

.
Aplicând principiul de punct …x al lui Banach si varianta pe R
n
a teoremei cre¸sterilor
…nite a lui Lagrange se ob¸tine :
Teorema 1: Dac¼ a .
i
÷ (
1
(1) . \i = 1. : ¸si |.
t
|
o
_ ¡ < 1. atunci ecua¸tia (53) are jjn
1 o solu¸tie unic¼ a r
+
astfel încât ¸sirul de itera¸tii Picard (54) este convergent ¸si pentru orice
r
(0)
÷ 1.
lim
m÷o
r
(m)
= r
+
.
60
În plus, are loc estimarea apriori a erorii de aproximare :

r
(m)
÷r
+

o
_
¡
m
1 ÷¡

r
(0)
÷r
(1)

o
. \: ÷ N
+
. (55)
unde ||
o
este norma Cebî¸sev din R
n
.
Observam c¼ a o estimare a posteriori este

r
(m)
÷r
+

o
_
¡
1 ÷¡

r
(m)
÷r
(m÷1)

o
ceea ce va furniza ¸si un criteriu de oprire a procesului iterativ Picard.
Observatia 1: Dac¼ a aplica¸tia . este de…nit¼ a pe o submul¸time compact¼ a a lui R
n
. ca de
exemplu
o

r
(0)
. :

= ¦r ÷ R
n
:

r ÷r
(0)

_ :. : 0¦
atunci pentru convergen¸ta procesului iterativ trebuie îndeplinit¼ a ¸si condi¸tia

r
(0)
÷.

r
(0)

_
(1 ÷c) : ce va asigura c¼ a .

r
(m)

÷ o

r
(0)
. :

cccond r
(m)
÷ o

r
(0)
. :

.
Observatia 2: Metoda aproxima¸tiilor succesive poate … aplicat¼ a ¸si ecua¸tiilor vectoriale
de forma 1(r) = 0. deoarece acesta poate … adus¼ a la forma r = r + `1(r). unde ` este o
matrice nesingular¼ a. Notând .(r) = r + `1(r) aceast¼ a ecua¸tie devine r = .(r) . Matricea
` se va determina astfel încât metoda generat¼ a de operatorul 1 +`1 s¼ a convearg¼ a. În acest
scop, în baza condi¸tiei |.
t
|
o
_ ¡ < 1, când 1 ÷ (
1
(1) ¸si det(1
t

r
(0)

) = 0. vom avea
.
t
(r) = 1 + ` 1
t
(r) . iar atunci matricea ` se va determina astfel încoot .
t

r
(0)

= 0.
adic¼ a ` = ÷(1
t

r
(0)

)
÷1
. Dac¼ a det(1
t

r
(0)

) = 0, atunci se va alege o alt¼ a valoare de
pornire r
(0)
.
Observatia 3: Fie sistemul de dou¼ a ecua¸tii scris sub forma

r = 1(r. n)
n = G(r. n).
unde 1. G : 1 ÷÷ R, domeniul 1 · R
2
continand solutia izolata (r
+
. n
+
) a sistemului,
consta in construirea sirului de puncte (r
n
. n
n
)
n`0
dupa regula

r
n+1
= 1(r
n
. n
n
)
n
n+1
= G(r
n
. n
n
).
cu (r
0
. n
0
) ÷ 1.
Daca sirul (r
n
. n
n
)
n`0
este convergent si 1. G sunt continue pe D, atunci limita sirului
este solutia (r
+
. n
+
) .
Proprietatea 1. Daca 1. G : 1 ÷÷1 sunt continue, cu derivatele partiale de ordinul
intai continue pe D si
|\| = ` < 1. \(r. n) =

@F
@x
@F
@y
@G
@x
@G
@y

.
atunci (r
n
. n
n
) ÷÷(r
+
. n
+
) .
61
Observatia 4. Un exemplu de norma ce poate … considerata este
|\|
M
= max

max
D

·1
·r

+ max
D

·1
·n

. max
D

·G
·r

+ max
D

·G
·n

¸
.
Proprietatea 2. Daca sunt satisfacute conditiile dinainte cu norma |«|
m
. atunci au
loc evaluarile
[r
n
÷r
+
[ _
`
n
1 ÷`
[r
1
÷r
0
[ si [n
n
÷n
+
[ _
`
n
1 ÷`
[n
1
÷n
0
[ .
Algoritmul metodei aproximatiilor succesive pentru sistem neliniar
I. Date de intrare:
r
0
si n
0
iteratia initiala
1 si G functiile din sistem
0 eroarea admisa
II. Date de iesire:
r
n
si n
n
ultima iteratie ce aproximeaza solutia cu eroarea admisa
III. Pasii algoritmului
Pasul 1. Calculeaza

r
1
:= 1(r
0
. n
0
)
n
1
:= G(r
0
. n
0
).
Pasul 2. Cat timp
[r
n
÷r
n+1
[ _ sau [n
n
÷n
n+1
[ _
Pentru : _ 0
Calculeaza

r
n+1
:= 1(r
n
. n
n
)
n
n+1
:= G(r
n
. n
n
).
Pasul 3. Pentru : ÷ N. pentru care
[r
n
÷r
n÷1
[ < si [n
n
÷n
n÷1
[ <
Tipareste r
n
. n
n
. STOP.
Programul in limbajul C
#include "stdafx.h"
#include <stdio.h
#include <conio.h
#include <math.h
double x[1000],y[1000],epsilon;
int i;
‡oat F(‡oat v)
{
return 5-v;
}
62
‡oat G(‡oat v)
{
return 6/v;
}
int main(int argc, char* argv[])
{
printf("epsilon=");
scanf("%lf",&epsilon);
printf("x0=");
scanf("%lf",&x[0]);
printf("y0=");
scanf("%lf",&y[0]);
x[1]=F(y[0]);
y[1]=G(x[0]);
i=0;
while ((abs(x[i+1]-x[i])=epsilon)&&(abs(y[i+1]-y[i])=epsilon))
{
i++;
x[i+1]=F(y[i]);
y[i+1]=G(x[i]);
}
printf("%lf %lf",x[i+1],y[i+1]);
getch();
return 0;
}
Tema : Sa se rezolve sistemul

r
2
+n
2
= 10

r +n = 2
.
7.4 Metoda tangentei a lui Newton
Fie ecuatia algebrica sau transcendenta 1(r) = 0. unde 1 : (c. ) ÷÷ R. Presupunem ca
ecuatia are o solutie unica r
+
÷ (c. /) · (c. ). adica r
+
este izolata.
De…nitia 1. Daca se construieste sirul de aproximante (r
n
)
n`0
. pentru solutia r
+
÷
(c. /) . dupa regula
r
n+1
= r
n
÷
1 (r
n
)
1
t
(r
n
)
cu r
0
= c sau r
0
= /. spunem ca se utilizeaza metoda tangentei (Newton) pentru aproxi-
marea solutiei r
+
.
Observatia 1. Daca sirul (r
n
)
n`0
este convergent si 1 ÷ (
1
[c. /]. atunci limita sirului
este r
+
.
Observatia 2. Aproximanta initiala r
0
÷ [c. /] astfel incat 1 (r
0
) 1
tt
(r
0
) 0.
63
Proprietatea 1. Daca 1 ÷ (
2
[c. /] si 1
t
. 1
tt
au semn constant pe (c. /) . atunci
r
n
÷÷r
+
.
Proprietatea 2. In conditiile proprietatii precedente, eroarea absoluta comisa se poate
evalua prin
[r
n
÷r
+
[ _
[1 (r
n
)[
:
1
(1)
.
sau
[r
n
÷r
+
[ _
`
2
(1)
2:
1
(1)
(r
n
÷r
n÷1
)
2
.
unde
:
1
(1) = inf
[a;b]
[1
t
(r)[ si `
2
(1) = sup
[a;b]
[1
tt
(r)[ .
Observatia 3. Daca `
2
(1) _ 2:
1
(1). atunci are loc evaluarea
[r
n
÷r
+
[ _ (r
n
÷r
n÷1
)
2
.
Algoritmul metodei tangentei (Newton)
Algoritmul calculeaza o aproximatie a solutiei izolate r
+
÷ [c. /] a ecuatiei 1 (r) = 0.
1 ÷ ([c. /]. prin metoda lui Newton.
Intrari: a,b-capetele intervalului
f-expresia functiei f
df-expresia derivatei functiei f (1
t
)
cj:-precizia dorita
valoarea derivatei a doua in a (1
tt
(c))
Iesiri: SOL-aproximatia dorita a solutiei ecuatiei
Pasul 1: Daca 1(c)1
tt
(c) 0 atunci r
0
:= c
altfel r
0
:= /
Pasul 2: : := 0
Pasul 3: : := : + 1; r
n
:= r
n÷1
÷1(r
n÷1
)d1(r
n÷1
)
Pasul 4: Daca [r
n
÷r
n÷1
[ < cj: atunci SOL:=r
n
; STOP
altfel mergi la Pasul 3.
Observatia 4. Algoritmul a fost dat pentru cazul in care solutia ecuatiei a fost izolata
in intervalul [a,b], iar functiile 1
t
si 1
tt
au semn constant pe acest interval, iar alegerea
lui r
0
la pasul 1 este evidenta. Exista si alte modalitati de determinare a valorii initiale de
pornire:
r
0
=

c. 1 (c) 1
tt
(c) 0 sau 1 (/) 1
tt
(c) < 0
/. 1 (c) 1
tt
(c) < 0 sau 1 (/) 1
tt
(c) 0
unde c =
a+b
2
si 1
tt
(r) = 0. r ÷ [c. /].
In cazul general, cand nu avem informatii despre functia f se ia o valoare oarecare, iar
daca dupa un numar …xat de iteratii nu ajungem la precizia dorita se reia procedeul cu o alta
valoare de pornire.
64
Probleme propuse
1. Sa se scrie un program in C pentru algoritmul metodei tangentei.
2. Sa se aproximeze cu 4 zecimale corecte solutia reala a ecuatiei
1(r) := r
3
+r ÷0. 1 = 0.
3. Folosind metoda tangentei sa se calculeze cea mai mica radacina pozitiva a ecuatiei
r ÷tor = 0.
7.5 Metoda coardei
Fie ecuatia algebrica sau transcendenta 1 (r) = 0. unde 1 : (c. ) ÷÷R. Presupunem ca
ecuatia are o solutie unica r
+
÷ (c. /) · (c. ). adica r
+
este izolata.
De…nitia 1. Daca se construieste sirul de aproximante (r
n
)
n`0
. pentru solutia r
+
÷
(c. /) . dupa una din formulele
r
n+1
= r
n
÷
1 (r
n
)
1(/) ÷1 (r
n
)
(/ ÷r
n
) . r
0
= c.
sau
r
n+1
= r
n
÷
1 (r
n
)
1(c) ÷1 (r
n
)
(c ÷r
n
) . r
0
= /.
spunem ca se utilizeaza metoda secantei pentru aproximarea solutiei r
+
.
Observatia 1. Daca sirul (r
n
)
n`0
este convergent si 1 ÷ ([c. /], atunci limita sirului
este r
+
.
Observatia 2. Aproximarea initiala r
0
se alege dupa cum urmeaza
r
0
=

c. daca 1(c)1
t
(c) < 0
/. daca 1(/)1
t
(/) < 0.
Proprietatea 1. Daca 1 ÷ (
2
[c. /] si 1
t
. 1
tt
au semn constant pe [a,b], atunci
r
n
÷÷r
+
.
Proprietatea 2. In conditiile proprietatii 1., eroarea absoluta comisa se evalueaza prin
[r
n
÷r
+
[ _
[1 (r
n
)[
:
1
(1)
.
sau
[r
n
÷r
+
[ _
`
1
(1) ÷:
1
(1)
:
1
(1)
[r
n
÷r
n÷1
[ .
unde
:
1
(1) = inf
[a;b]
[1
t
(r)[ si `
1
(1) = sup
[a;b]
[1
t
(r)[ .
Observatia 3. Daca `
1
(1) _ 2:
1
(1) atunci are loc evaluarea
[r
n
÷r
+
[ _ [r
n
÷r
n÷1
[ .
65
De…nitia 2. Spunem ca avem metoda combinata secanta-tangenta, daca se construieste
sirul de intervale

r
s
0
. r
t
0

r
s
1
. r
t
1

...

r
s
n
. r
t
n

... (56)
sau

r
t
0
. r
s
0

r
t
1
. r
s
1

...

r
t
n
. r
s
n

... (57)
astfel incat r
+
÷ (r
s
n
. r
t
n
) . respectiv r
+
÷ (r
t
n
. r
s
n
) . iar
r
t
n+1
= r
t
n
÷
1 (r
t
n
)
1
t
(r
t
n
)
.
r
s
n+1
= r
s
n
÷
1 (r
s
n
)
1 (r
t
n
) ÷1 (r
s
n
)

r
t
n
÷r
s
n

.
Observatia 4. Daca 1(c)1
t
(c) < 0 se ia r
s
0
= c si r
t
0
= /. caz in care se obtine sirul
(56), iar daca 1(/)1
t
(/) < 0 se ia r
s
0
= / si r
t
0
= c. caz in care se obtine sirul (57).
Observatia 5. Daca r
n
= r
t
n
sau r
n
= r
s
n
avem evaluarea
[r
n
÷r
+
[ _

r
t
n
÷r
s
n

.
Algoritmul pentru : Metoda Combinata Secanta-Tangenta
Algoritmul determina un sir de aproximatii ale solutiei izolate r
+
÷ [c. /] a ecuatiei
1 (r) = 0. 1 ÷ ( [c. /] . 1
tt
are semn constant pe [a,b] folosind metoda combinata secanta-
tangenta.
Intrari: a,b-extremitatile intervalului
f-expresia functiei f
df-expresia derivatei functiei f (1
t
)
sign(1
tt
)-semnul derivatei a doua a functiei f
cj:÷precizia dorita
Iesiri: SOL-aproximatie a solutiei ecuatiei, cu precizia ceruta
Pasul 1: Daca 1(c):io:(1
tt
) < 0 atunci r
s
0
:= c; r
t
0
:= /; : := 0
altfel r
s
0
:= /; r
t
0
:= c; : := 0
Pasul 2: r
t
n+1
= r
t
n
÷1 (r
t
n
) d1 (r
t
n
)
Pasul 3: r
s
n+1
= r
s
n
÷
f(x
s
n
)
f(x
t
n
)÷f(x
s
n
)
(r
t
n
÷r
s
n
)
Pasul 4: : := : + 1
Pasul 5: Daca [r
t
n
÷r
s
n
[ < cj: atunci SOL:=r
t
n
. STOP
altfel mergi la Pasul 2.
Observatia 6. Reamintim ca algoritmul a fost dat pentru cazul in care 1(c)1(/) < 0
(exista o solutie in intervalul [a,b]) si semnul functiei 1
tt
e constant pe intervalul [a,b]. O
alta posibilitate de alegere a r
s
0
si r
t
0
este cea data de Observatia 4., in care nu e necesara
cunoasterea semnului derivatei a doua a functiei f.
Observatia 7. Ca aproximatie a solutiei ecuatiei se poate considera r
s
n
sau r
t
n
, dar
exista si o alta posibilitate
SOL:=
r
s
n
+r
t
n
2
.
66
Observatia 8. In aplicatii se cere aproximarea unei solutii pentru o ecuatie data, cu
eroare precizata. De obicei, eroarea este precizata prin distanta intre 2 aproximatii succesive
[r
n
÷r
n÷1
[ . In general insa, [r
n
÷r
n÷1
[ _ c nu implica intotdeauna [r
n
÷r
+
[ < c. De
aceea, sunt foarte utile metodele combinate prin care solutia r
+
este aproximata din ambele
parti, ea a‡andu-se mereu intre 2 aproximante succesive:
r
s
n
_ r
+
_ r
d
n
. : = 1. 2. ...
In aceste cazuri, eroarea comisa in aproximarea r
+
-

r
s
n
+r
d
n

2 nu depaseste marimea

r
d
n
÷r
s
n

2. Deci, eroarea de aproximare poate … direct controlata. Un astfel de exemplu il
constituie metoda combinata secanta-tangenta.
Probleme propuse
1. Sa se implementeze in C algoritmul pentru metoda combinata secanta-tangenta.
2. Folosind metoda secantei sa se aproximeze cu 4 zecimale corecte solutia reala a ecuatiei:
r
3
÷r ÷0. 1 = 0.
3. Sa se aproximeze cu 4 zecimale exacte cea mai mare radacina a ecuatiei:
r
6
÷r ÷1 = 0.
67
8 Metode numerice pentru ecua¸tii diferen¸tiale
8.1 Derivarea numeric¼ a
Fie cunoscute valorile functiei 1 : [c. /] ÷÷ R pe nodurile distincte c
i
÷ [c. /]. i = 0. :.
n
i
= 1 (c
i
) .
De…nitia 1. Numim formula de derivare numerica, formula
1
(k)
(c) =
m
¸
i=0
¹
i
1 (c
i
) +1
m
(1).
unde c ÷ [c. /]. …xat, pentru care exista 1
(k)
(c). iar 1
m
(1) este restul formulei.
De…nitia 2. Formula de derivare numerica este de tip interpolator daca se obtine prin
derivarea unei formule de interpolare.
Formula de derivare numerica Gregory-Newton pentru c = c este
(`
m
1)
(k)
(c) =
1
/
k
¸

k
h
1 (c) ÷
/
2

k+1
h
1 (c) +
/ (3/ + 5)
24

k+2
h
1 (c) ÷...

.
de unde
1
t
(c) -
1
/
¸

h
1 (c) ÷
1
2

2
h
1 (c) +
1
3

3
h
1 (c) ÷... + (÷1)
m÷1
1
:

m
h
1 (c)

si respectiv
1
tt
(c) -
1
/
2
¸

2
h
1 (c) ÷
3
h
1 (c) +
11
12

4
h
1 (c) ÷...

.
Algoritmul (Derivgn)
Algoritmul calculeaza valoarea derivatei unei functii f intr-un punct a, aproximand-o pornind
de la formula lui Gregory-Newton.
Intrari: m-ordinul formulei de tip interpolator
f-expresia functiei, sau
1(c), 1(c +/),...,1(c +:/)-valorile functiei pe punctele c +//, / = 0. :. / =
b÷a
m
a-punctul in care este ceruta valoarea aproximativa a functiei
Iesiri: (`
n
1)
t
(c) - 1
t
(c)-valoarea aproximativa a derivatei lui f in a
Pasul 1: Se determina sirul diferentelor …nite
n
1 (c) . ....
m
n
1 (c)
Pasul 2: df:=0
Pasul 3: Pentru , := 1. : executa
d1 := d1 +
1
h
(÷1)
j÷1 1
j

j
h
1

(c)
Pasul 4: Tipareste df. STOP.
Probleme propuse
1. Sa se scrie un program in limbajele C si Pascal pentru algoritmul Derivgn.
2. Se considera functia 1(r) = lg r, ale carei valori sunt date in tabelul de mai jos:
r 50 55 60 65
1(r) 1. 6990 1. 7404 1. 7782 1. 8129
.
Sa se calculeze valoarea lui 1
t
(50) prin metoda de derivare numerica Gregory-Newton.
68
8.2 Metoda re¸telelor
Metoda retelelor aplicata la ecuatii diferentiale liniare utilizeaza diferentele divizate in aprox-
imarea derivatelor succesive ale unei functii pe noduri si conduce la rezolvari de sisteme
algebrice de ecuatii liniare.
Astfel, folosind forma data de Newton polinomului lui Lagrange, se obtin aproximari ale
derivatelor succesive ale unei functii pe un nod r
0
1
t
(r
0
) = [r
0
. r
0
+/; 1] =
1 (r
0
+/) ÷1 (r
0
)
/
(58)
1
t
(r
0
) =
1 (r
0
+/) ÷1 (r
0
÷/)
2/
(59)
1
ttt
(r
0
) = 2[r
0
÷/. r
0
. r
0
+/; 1] =
1 (r
0
+/) ÷21 (r
0
) +1 (r
0
÷/)
/
2
(60)
si in general, folosind formula de legatura dintre diferentele divizate cu noduri echidistante si
diferentele …nite, se obtine
1
(n)
(r
0
) =

n
h
1 (r
0
)
/
n
. (61)
Consideram ecuatia diferentiala liniara de ordinul II
n
tt
(r) +j (r) n
t
(r) +¡ (r) n (r) = 1 (r) . r ÷ [c. /] (62)
cu conditiile la limita
n (c) = ¹. n (/) = 1 (63)
si j. ¡. 1 ÷ ([c. /]. Presupunem ca problema bilocala (62)+(63) are solutie unica pe [c. /].
Se considera o diviziune echidistanta a intervalului [c. /] prin nodurile
r
i
= c +i /. i = 0. :
cu / =
1
n
(/ ÷c) si se fac notatiile
j
i
= j (r
i
) . ¡
i
= ¡ (r
i
) . 1
i
= 1 (r
i
) . i = 0. :.
Se scrie ecuatia (62) cu conditiile (63) pe nodurile r
i
i = 1. : ÷1 si se obtine

n
tt
(r
i
) +j (r
i
) n
t
(r
i
) +¡ (r
i
) n (r
i
) = 1 (r
i
) . i = 1. : ÷1
n (r
0
) = ¹. n (r
n
) = 1.
(64)
Folosind formulele (59) si (60) pe nodurile r
i
i = 1. : ÷1 se obtine
n
t
(r
i
) =
n (r
i+1
) ÷n (r
i÷1
)
2/
(65)
n
tt
(r
i
) =
n (r
i+1
) ÷2n (r
i
) +n (r
i÷1
)
/
2
. (66)
69
Notand n
i
= n (r
i
) . i = 0. :, din (64), (65) si (66) se obtine sistemul liniar

1
h
2
(n
i+1
÷2n
i
+n
i÷1
) +
1
2h
j
i
(n
i+1
÷n
i÷1
) +¡
i
n
i
= 1
i
. i = 1. : ÷1
n
0
= ¹. n
n
= 1.
(67)
Rezolvand sistemul (67) de n-1 ecuatii cu n-1 necunoscute n
1
. .... n
n÷1
se obtine aproximatia
solutiei problemei bilocale (62)+(63) pe nodurile diviziunii considerate.
Algoritmul metodei retelelor
I. Date de intrare:
n numarul de noduri
h pasul diviziunii
a, b capetele intervalului
j. ¡. 1 functiile coe…cienti ai ecuatiei
¹. 1 valorile bilocale
II. Date de iesire:
n
1
. .... n
n÷1
aproximatia solutiei pe nodurile interioare
III. Pasii algoritmului
Pasul 1. Pentru i = 0. : calculeaza
r
i
:= c +i /
Pasul 2. Pentru i = 1. : ÷1 executa
j
i
:= j (r
i
) . ¡
i
:= ¡ (r
i
) . 1
i
:= 1 (r
i
)
Pasul 3. Executa
n
0
:= ¹. n
n
:= 1
Pasul 4. Rezolva sistemul

(2 ÷/ j
i
) n
i÷1
+ (2/
2
¡
i
÷4) n
i
+ (2 + / j
i
) n
i+1
= 2/
2
1
i
. i = 1. : ÷1
n
0
= ¹. n
n
= 1.
Pasul 5. Tipareste n
1
. .... n
n÷1
. STOP.
Probleme propuse
1. Sa se construiasca un program in limbajele C si Pascal pentru algoritmul metodei
retelelor.
2. Folosind metoda retelelor sa se rezolve problema bilocala

n
tt
(r) +rn
t
(r) +r
2
n (r) = 1. r ÷ [0. 1]
n (0) = n (1) = 1
folosind 6 puncte ale retelei.
70
8.3 Metoda lui Euler
Se considera problema Cauchy

n
t
= 1(r. n)
n(r
0
) = n
0
(68)
Presupunand ca solutia y a problemei considerate satisface conditiile de diferentiabilitate
necesare, functia y poate … dezvoltata in serie Taylor in vecinatatea punctului r
0
:
n(r) = n(r
0
) +
r ÷r
0
1!
n
t
(r
0
) +
(r ÷r
0
)
2
2!
n
tt
(r
0
) +... (69)
Avand in vedere (68) si folosind pentru derivatele lui f notatiile
1
x
=
·1
·r
. 1
xy
=
·
2
1
·r·n
. ...
se obtine
n
t
= 1
n
tt
= 1
x
+1
y
n
t
= 1
x
+1
y
1
n
ttt
= 1
xx
+ 21
xy
1 +1
yy
1
2
+1
x
1
y
+1
2
y
1.
Deci,
n(r) = n
0
+
r ÷r
0
1!
1(r
0
. n
0
) +
(r ÷r
0
)
2
2!
1
(1)
(r
0
. n
0
) +...
... +
(r ÷r
0
)
p÷1
j!
1
(p÷1)
(r
0
. n
0
) +... (70)
unde 1
(j)
este derivata totala de ordinul j a functiei 1(r. n (r)) in raport cu x.
Prin transcrierea seriei (70) si alegerea unui pas de lungime h, r÷r
0
= /. se poate evalua
solutia y in punctul r
1
:= r
0
+ /. Mai departe, calculand derivatele n
t
. n
tt
. ... in punctul
r
1
. se poate aproxima n(r
2
). r
2
:= r
1
+ /. Continuand in acest mod se obtine o multime
discreta de valori n
k
care aproximeaza solutia y in punctele r
k
:= r
0
+//. si n
k
- n (r
k
) .
/ = 1. 2. ....
In felul acesta, suntem condusi la o metoda iterativa de aproximare discreta a solutiei y a
problemei (68).
Introducand polinomul lui Taylor
(1
k
1) (r. n) = 1(r. n) +
/
2!
1
(1)
(r. n) +... +
/
k÷1
/!
1
(k÷1)
(r. n). / = 1. 2. ...
formula (70) se scrie sub forma:
n(r) = n
0
+/(1
k
1) (r. n). (71)
Algoritmul seriei Taylor
71
1. Date initiale: c. / ÷ R, : ÷ N, 1 si n
0
2.1. Se alege pasul h, de exemplu / :=
b÷a
n
.
2.2. Pentru i = 0. : ÷1. se executa
r
i
:= c +i/
n
i+1
:= n
i
+/(1
k
1) (r
i
. n
i
)
3. Date …nale: n
i
. i = 0. :.
Metoda lui Euler.se obtine din (71) pentru / = 1;
n
i+1
:= n
i
+/1(r
i
. n
i
).
Probleme propuse
1. Sa se scrie un program in C pentru metoda lui Euler.
2. Sa se rezolve problema lui Cauchy

n
t
= r
2
÷n
n(0) = 1
. r ÷ [0. 4]
luand pe rand pasul / =
1
4
.
1
8
.
1
16
. Pentru …ecare valoare a lui h sa se tipareasca solutia
adevarata, cea aproximata, eroarea la nodurile luate in considerare. Solutia exacta a problemei
Cauchy este
n(r) = r
2
÷2r + 2 ÷c
÷x
.
Sa se analizeze rezultatele obtinute.
3. Se considera problema Cauchy

n
t
=
y
2
1+x
2
n(+1) = ÷

4
.
Sa se aproximeze valorile solutiei y in punctele r
i
= 1 +
1
10
. i = 1. 10 folosind metoda lui
Euler.
8.4 Metode de tip Runge Kutta
Polinomul lui Taylor
(1
k
1) (r. n) = 1(r. n) +
/
2!
1
(1)
(r. n) +... +
/
k÷1
/!
1
(k÷1)
(r. n). / = 1. 2. ...
si formula
n(r) = n
0
+/(1
k
1) (r. n)
genereaza metodele de tip Runge-Kutta pentru / = 1. 2. 3. 4.
Pentru / = 1 se obtine metoda lui Euler (Runge-Kutta de ordinul I).
Pentru / = 2 se obtine metoda Runge-Kutta de ordinul al II-lea data recurent prin
n
n+1
= n
n
+
1
2
(1
0
+1
1
) . : ÷ N,
72
unde
1
0
= /1(r
n
. n
n
). 1
1
= /1(r
n
+/. n
n
+1
0
). n
0
dat.
Pentru / = 3 se obtine metoda Runge-Kutta de ordinul al III-lea generata recurent prin
n
n+1
= n
n
+
1
6
(1
0
+ 41
1
+1
2
) . : ÷ N, n
0
dat,
1
0
= /1(r
n
. n
n
).
1
1
= /1(r
n
+
1
2
/. n
n
+
1
2
1
0
).
1
2
= /1(r
n
+/. n
n
+ 21
1
÷1
0
).
Cea mai des folosita (pentru / = 4) este metoda Runge-Kutta de ordinul al IV-lea generata
recurent prin
n
n+1
= n
0
+
1
6
(1
0
+ 21
1
+ 21
2
+1
3
) . : ÷ N, n
0
dat,
1
0
= /1(r
n
. n
n
).
1
1
= /1(r
n
+
1
2
/. n
n
+
1
2
1
0
).
1
2
= /1

r
n
+
1
2
/. n
n
+
1
2
1
1

.
1
3
= /1(r
n
+/. n
n
+1
2
).
Ordinul de marime al erorii de trunchiere in metodele Runge-Kutta este de /
k+1
.(a se vedea
[8]).
Metoda Runge-Kutta este descrisa de urmatorul algoritm:
1. Date initiale: r
0;
n
0
; / ÷ R, : ÷ N si f
2. Pentru i = 0. : ÷1. se executa
2.1 r
i
:= r
0
+i/
2.2 1
1
:= /1(r
i
. n
i
)
1
2
:= /1

r
i
+
1
2
/. n
i
+
1
2
1
1

1
3
:= /1(r
i
+
1
2
/. n
i
+
1
2
1
2
)
1
4
:= /1 (r
i
+/. n
i
+1
3
) .
2.3. n
i+1
:= n
i
+
1
6
(1
1
+ 21
2
+ 21
3
+1
4
)
3. Date …nale: n
i
. i = 0. :.
Observatia 1. In cazul in care functia f nu depinde de y, procedeul lui Kutta se reduce
la regula de integrare a lui Simpson.
Probleme propuse
1. Sa se scrie un algoritm pentru metoda lui Kutta si sa se implementeze in limbajele C
si Pascal.
2. Se considera problema Cauchy

n
t
=
y
2
1+x
2
n(+1) = ÷

4
.
73
Sa se aproximeze valorile solutiei y in punctele r
i
= 1 +
1
10
. i = 1. 10 folosind metoda lui
Kutta.
3. Fie problema Cauchy

n
t
=
1
1+x
2
÷2n
2
n
t
(0) = 0
. r ÷ [0. 4].
Sa se aproximeze valorile solutiei y in punctele r
i
= /i. unde / =
1
4
. iar i = 16. folosind
metoda lui Kutta. Stiind ca solutia exacta a problemei lui Cauchy este n =
x
1+x
2
. sa se
compare rezultatele obtinute cu valorile reale.
74
Bibliogra…e
[1] O. Agratini, I. Chiorean, Gh. Coman, R. Trîmbi¸ta¸s, Analiz¼a numeric¼a ¸ si teoria aprox-
im¼arii, vol.3, Presa Univ.Clujean¼ a, Cluj-Napoca, 2002.
[2] N.S.Barnett, S.S.Dragomir, A perturbed trapezoid inequality in terms of the third deriv-
ative and applications, RGMIA Research Report Collection, vol.4, no.2 (2001), 221-233.
[3] N.S.Barnett, S.S.Dragomir, A perturbed trapezoid inequality in terms of the fourth
derivative, The Korean J. of Computational & Applied Math., vol.9, no.1, 2002, 45-60.
[4] A. Bica, S. G. Gal, Analiza numerica. Metode numerice, partea a doua, Litogra…a
Univ. Oradea 1998.
[5] A.Bica, The error estimation in terms of the …rst derivative in a numerical method for
the solution of a delay integral equation from biomathematics, Revue d’analyse numérique et
de théorie de l’approximation, vol. 34, no.1, 23-36, 2005.
[6] A. M. Bica, Survey on the numerical methods for ODE’s using the sequence of succesive
approximations, RGMIA Research Report Collection, vol.8, no.1, article 7, 1-16, 2005.
[7] P. Blaga, S. Pop, Gh. Coman, Analiza numerica : lucrari de laborator, Universitatea
Babes-Bolyai Cluj-Napoca, 1994.
[8] C. M. Bucur, C. A. Popeea, Gh. Gh. Simion, Matematici speciale. Calcul numeric,
Ed. Didactic¼ a ¸si Ped., Bucure¸sti, 1983.
[9] P.Cerone, S.S. Dragomir, Trapezoidal and Midpoint-Type Rules from Inequalities Point
of View, Handbook of Analytic Computational Methods in Applied Mathematics ( G.A.
Anastassiou ed.), Chapman&Hall/CRC Press, Boca Raton, London, New York , Washington
DC, 2000.
[10] Gh.Coman, Sever Groze, Rezolvarea numeric¼a a ecua¸ tiilor operatoriale, Litogra…a
Univ. ” Babes-Bolyai ”, 1981.
[11] Gh.Coman, Analiz¼a numeric¼a, Ed. Libris, Cluj-Napoca, 1995.
[12] B.Demidovitch, I.Maron, Elements de calcul numerique, Ed. Mir, Moscow, 1979.
[13] C.Iacob (coord.), Matematici clasice si moderne, vol.4, Ed. Tehnic¼ a, Bucuresti, 1983.
[14] C.Iancu, On the cubic spline of interpolation, Seminar of Functional Analysis and
Numerical Methods, Preprint 4, Cluj-Napoca, (1981), 52-71.
[15] C.Iancu, C.Must¼ a¸ta, Error estimation in the approximation of functions by interpo-
lation cubic splines, Mathematica, Tome29 (52), No1, (1987),33-39.
[16] D.V.Ionescu, Cuadraturi numerice, Ed. Tehnica, Bucuresti, 1957.
[17] D.V.Ionescu, Aplicarea metodei aproximatiilor succesive in integrarea numerica a ecu-
atiilor diferentiale, Studii si Cerc. Mat., Cluj-Napoca, 11, (1960), 273-286.
[18] K.Petr, Uber eine Formel fur numerische Berechnung der bestimen Integrale, Casopis
propestovani Matematiky a Fysiky, 44, (1915), 454-455.
[19] D.D.Stancu, Gh.Coman, O.Agratini, R.Trîmbi¸ta¸s, Analiz¼a numeric¼a ¸ si teoria aprox-
im¼arii, vol.1, Presa Univ. Clujean¼ a, Cluj-Napoca, 2001.
[20] D.D.Stancu, Gh.Coman, P.Blaga, Analiz¼a numeric¼a ¸ si teoria aproxim¼arii, vol.2, Presa
Univ.Clujean¼ a, Cluj-Napoca, 2002.
[21] O. Stanasila, Analiza matematica, Editura Didactica si Pedagogica Bucuresti 1981.
75

Introducere
Acest indrumator de laborator urmeaza pentru capitolele 5-8 cursul de analiza numerica [4] si este adresat studentilor din anul IV ai specializarii Matematica-Informatica si celor din anul II ai specializarilor Matematica si Informatica, din cadrul Facultatii de Stiinte. Desigur, acest indrumator poate … folosit si de catre studentii specializarilor ingineresti ce au in planul de invatamint un curs de metode numerice. Pentru capitolele 1-4 s-au folosit ca suport teoretic lucrarile [8], [10], [11], [12], [13], [14], [19], si [21]. Deasemenea, prezentarea s-a actualizat folosind unele rezultate recente (a se vedea [1], [2], [3], [5], [6], [9] si [20]). O parte dintre algoritmi (cei din paragrafele 1.1, 1.2, 1.3.2, 1.4.2, 7.1, 7.4, 7.5, 7.5 si din capitolele 3 si 6) sunt preluati din [7]. Ca o noutate fata de alte lucrari similare sunt paragrafele 2.1, 2.2.2, 2.2.3, 4.1, 4.2 (dreapta si parabola de regresie sunt folosite si la facultatile cu pro…l economic), 5.1 si 5.3. Unii dintre algoritmi sunt insotiti si de catre varianta notepad a programului corespunzator implementat in limbajul C. Capitolele 1 si 3 sunt dedicate interpolarii si aproximarii functiilor continue, iar capitolul 2 prezinta unele procedee de interpolare neteda a datelor experimentale. In capitolul 4 sunt prezentate cele mai simple procedee de prelucrare a datelor experimentale, bazate pe principiul celor mai mici patrate. Capitolele 5-8 sunt dedicate metodelor numerice, prezentanduse procedee de integrare numerica (continând estimari recente ale restului din formulele de cuadratura; a se vedea [2], [3], [5] si [9]) si derivare numerica, metode din algebra liniara, procedee de aproximare a solutiilor ecuatiilor algebrice si transcendente si a sistemelor neliniare pe spatii euclidiene, precum si cele mai cunoscute metode de rezolvare numerica a problemelor Cauchy si la limita asociate ecuatiilor diferentiale.

1

Interpolarea polinomial¼ a func¸iilor a t

In acest capitol se prezinta cele mai folosite metode de interpolare polinomiala Lagrange si Hermite, insotite de instrumentele lor auxiliare : diferentele …nite si divizate.

1.1

Diferen¸e …nite t
R, multimea de noduri echidistante k = 0; m; h 2 R; h 6= 0g I A = fak : ak = a + kh;

Consideram intr-un interval I

si …e functia f : A ! R. De…nitia 1: Se numeste diferenta …nita de ordinul intai cu pasul h pe nodul ai , i = 0; m 1; relativa la functia f; diferenta
hf

(ai ) = f (ai+1 )

f (ai ) = f (a + (i + 1)h)

f (a + ih) : 1;

De…nitia 2: Se numeste diferenta …nita de ordinul k cu pasul h pe nodul ai , i = 0; m k = 1; m i; relativa la functia f; diferenta data recurent,
k hf

(ai ) =

h

k 1 h f

(ai ) =

k 1 h f

(ai+1 )

k 1 h f

(ai ) :

Prin conventie, se considera ca 0 f (ai ) = f (ai ) ; h Sunt cunoscute proprietatile de liniaritate
k h

8i = 0; m: 8 ;
r+s h f

( f + g) =

k hf

+

k h g;

2 R;

si de comutativitate a compunerii
r h( s hf )

=

s h(

r hf )

=

ale operatorului de diferenta …nita k : h In calcule, de mare utilitate este tabloul cu diferente …nite : x a0 a1 ....... am 3 am 2 am 1 am f f0 f1 ....... fm 3 fm 2 fm 1 fm
hf h f0 h f1 .......... h fm 3 h fm 2 h fm 1 2 hf 2 h f0 2 h f1 3 hf 3 h f0 3 h f1

........ 2 h fm 2 h fm

3 2

......... 3 h fm

....... ....... ....... .......
3

m 1 f h m 1 f0 h m 1 f1 h

m hf m h f0

unde s-au folosit notatiile fi = f (ai ) si formula de recurenta
k h fi

=

k 1 h fi+1

k 1 h fi ;

k = 1; m;

i = 0; m

k:

Tabloul cu diferente …nite ofera o metoda simpla, algoritmica de calcul a tuturor diferentelor …nite ale unei functii, relative la o multime de noduri echidistante date. Datorita

expresia Df (ar ) notatie = [ar . k = 0. m k: Uneori este solicitata numai valoarea m f (a) : h III. ar r = 0. m k h fi := k 1 h fi+1 k h fi . m se calculeaza 0 h fk := f (a + kh) k calculeaza k 1 h fi : Pasul 2. expresia Dk f (ar ) notatie = [ar . urmatorul algoritm : I. m. Se calculeaza nodurile ak = a + kh. Se da functia functia f (x) = x pentru x 6= 0: Sa se construiasca tabloul de diferente …nite pina la ordinul 6 cu pasul h = 0:2 si punctul de plecare a = 1: 1. ar+1 . f ] = Dk 1 f (ar+1 ) ar+k Dk 1 f (ar ) . ar+k . Scrie m f (a) := h numai m f0 : STOP. elementele …ecarei coloane se obtin din elementele coloanei precedente. De…nitia 1: Se numeste diferenta divizata de ordinul intai cu nodurile ar si ar+1 relativa la functia f . ar+k . ar+1 . Pasul 3. h pasul. i = 0. Date de intrare : m ordinul maxim al diferentelor …nite. 1 2. Date de iesire : tabloul cu diferentele …nite pina la ordinul m. m k. si …e functia f : A ! R. a punctul de plecare valorile functiei f pe noduri ( sau expresia functiei f ). ar (1) . :::. m 1: De…nitia 2: Se numeste diferenta divizata de ordinul k cu nodurile ar . m si pentru i = 0. multimea de noduri k = 0. f ] = f (ar+1 ) ar+1 f (ar ) . II. :::. m. Sa se construiasca un program de calcul al tabloului de diferente …nite in limbajul Pascal si in limbajul C. fi . i = 0.2 Diferen¸e divizate t R. ar+1 . sau a…seaza Probleme propuse : 1. i = 0.formulei de recurenta de mai sus. g I Consideram intr-un interval I A = fak : ak 2 R. m. ceea ce permite o programare simpla a algoritmului de generare a elementelor tabloului de diferente …nite. Pasii algoritmului : Pasul 1. relativa la functia f. Se obtine astfel. h k = 0. m. h m h f0 : A…seaza k = 1. adica valorile k f (ai ) . m si pentru k = 0. Pentru k = 1.

ar+k .. i = 0. :::.. Dm 1 f1 .. 8k = 0. ai k = 1. r = 0. k = 1. m: x ak In calcule.. f ] = u0 (ar+i ) i=0 unde u (x) = (x ar ) (x ar+1 ) ::: (x ar+k ) : Observatie: Pentru r = 0 si k = m [a0 .. Dm f Dm f0 2 1 2 1 2 1 unde fi = f (ai ) . m: Deasemenea. Dm 1 f . i = 0... uk (x) = x a0 a1 a2 :::: am am am f f0 f1 f2 :::: fm fm fm Df Df0 Df1 Df2 :::::: Dfm Dfm D2 f D2 f0 D2 f1 D2 f2 :::::: D2 fm D3 f D3 f0 D3 f1 D3 f2 ::::: 2 . a1 .. m r: Prin conventie. :::..r = 0.. m: La constructia tabelului s-a folosit formula de recurenta Dk f (ai ) = Dk 1 f (ai+1 ) ai+k Dk 1 f (ai ) . m 1.. ar+1 . este cunoscut faptul ca operatorul Dk este liniar. m k: Aceeasi formula de recurenta o foloseste algoritmul de mai jos : I.... in special la constructia formulei de interpolare a lui Newton pentru polinomul lui Lagrange.. pentru diferentele divizate exista exprimarea : k X f (ar+i ) [ar .. este util tabloul de diferente divizate. am ... Date de intrare : m ordinul maxim al diferentei divizate . Cand nodurile din A sunt echidistante atunci intre diferentele divizate si diferentele …nite exista relatia m f (a) Dm f (a) = h m : m!h In general. m.. Dm 1 f0 ... f ] = unde u (x) = (x si a0 ) (x a1 ) ::: (x am ) m m X f (ak ) X f (ak ) = u0 (ak ) k=0 uk (ak ) k=0 u (x) .... se noteaza D0 f (ar ) = f (ar ) .

A…seaza Dk fi . Pentru k = 1. Considerând functia f : R ! R. k = 0. Pentru i = 0. 3. m Dk 1 fi ai k. sau numai valoarea Dm f (a0 ) : III. Pentru i = 0. k = 0. k = 0. sau a…seaza numai Dm f0 : STOP. Pasii algoritmului : Pasul 1.ak . polinomul de grad minim Lm f care satisface conditiile de interpolare Lm f (ak ) = f (ak ) = yk . m. k = 1. b] ! R. i = 0. 1 f (x) = p 2 e 1 2 x 2 sa se construiasca tabloul de diferente divizate pina la ordinul 5 cu nodurile echidistante ak = a + kh. m: Observatie: Gradul polinomului Lm f este m. m. (2) . II. k= Dk fi := Pasul 3. polinomul de interpolare al lui Lagrange este unic determinat de aceste conditii de interpolare. m k. 1. b]. 1 2. k = 0. ak ) u0 (ak ) 8x 2 [a. m nodurile diferentelor divizate f (ak ) . 5. b]. m valorile functiei pe noduri. m. 1:5 pina la ordinul 4. h = 0:4: 1. iar conditiile de interpolare de mai sus conduc la un sistem liniar de m + 1 ecuatii cu cei m + 1 coe…cienti ca necunoscute si astfel. Date de iesire : Tabloul diferentelor divizate pina la ordinul m. m ataseaza D0 fi := f (ai ) : Pasul 2. 1.3 Polinomul de interpolare al lui Lagrange Sunt prezentate formula de interpolare a lui Newton ce foloseste recurent diferentele divizate (diagonala tabloului de diferente divizate) si procedura de interpolare a lui Aitken pentru polinomul lui Lagrange. f (x) = 1+x2 sa se construiasca tabloul cu diferentele divizate relativ la nodurile 3. 0. Pentru functia densitate de probabilitate a lui Gauss f : R ! R. Se considera cunoscute valorile functiei f : [a. Sa se construiasca un program de calcul al tabloului de diferente divizate in limbajul Pascal si in limbajul C. m k. m. yk = f (ak ) : De…nitia 1: Se numeste polinomul de interpolare al lui Lagrange relativ la functia f si la nodurile ak . pe nodurile distincte ak 2 [a. Lm f (x) = m X k=0 (x u (x) f (ak ) . calculeaza Dk 1 fi+1 ai+k i = 0. k = 0. 8k = 0. adica Dk f (ai ) . m. Probleme propuse : 1. 0. Se obtine expresia lui Lm f .

am fm0 fm1 fm2 fm3 . i = 0. se cere sa se determine m 2 N si sa se aproximeze valoarea f ( ) prin Lm f ( ) cu o eroare ce nu depaseste ": In acest caz. . aj ) = f (aj ) . presupunandu-se cunoscut un majorant Mm+1 (f ) . f33 . b]. m. iar elementele celorlalte coloane sunt calculate prin fi. . :::. am . b] ju (x)j f (m+1) C 8x 2 [a. . 8x 2 [a. adica ju ( )j Mm+1 (f ) < ": (m + 1)! Dar aici. ai Aitken consta in generarea tabloului f11 f21 f31 . ai 1 . 1.j+1 = 1 ai aj fjj aj fij ai x x . si precizându-se o eroare admisa " > 0. a0 . :::. a0 .. ak 1 . am ).unde u (x) = (x a0 ) (x a1 ) ::: (x am ) : Este cunoscut faptul ca operatorul de interpolare al lui Lagrange Lm este liniar. daca f 2 C m+1 [a. dându-se o fonctie f : [a. k = 0. m se obtine relatia de recurenta Lm f (x. b]: ak Lm 1 f (x. b] (3) ju (x)j [x. . b]. m. in formula de interpolare a lui Lagrange f (x) = Lm f (x) + Rm f (x) . a1 .3.1 Algoritmul lui Aitken O metoda mult mai practica este stabilita prin algoritmul lui Aitken. cerinta cunoasterii majorantului Mm+1 (f ) nu poate … ocolita. :::. . f22 f32 .. Acest aspect restrange sfera de aplicabilitate a procedeului. m. j = 0. Deasemenea. f ]. fmm unde fi0 = f (ai ) . ak+1 . x ak ai Lm 1 f (x. . a0 . i = 0. am ) = x ak Metoda lui a0 f00 a1 f10 a2 f20 a3 f30 . bazat pe urmatoarea proprietate de recurenta a polinomului lui Lagrange: Proprietatea de recurenta: Notand L0 f (x. b]. . a0 . ai+1 . :::. 8x 2 [a. . cunoscuta doar pe nodurile ak 2 [a.. :::. . are loc estimarea erorii : jRm f (x)j 1 (m+1)! x 2 [a. am ) ai k.. daca f 2 C[a. . pentru normele derivatelor f (k) C se determina m astfel incat jRm f ( )j < ". b]: (4) Din punct de vedere practic. b] ! R. :::. .

punctul in care dorim sa aproximam pe f ( ) : Astfel. fii . :::. :::. m: Dupa cum se observa. i = 0. sirul elementelor de pe diagonala tabloului f11 .i 1 j = 0: De aici rezulta un criteriu de oprire a algoritmului lui Aitken dat de conditia jfii fi 1. m " eroarea absoluta maxima admisibila 2 [a. m si j = 0. i = 0. b] punctul in care se aproximeaza functia f: II. Acest avantaj justi…ca prezenta acestui algoritm in bibliotecile matematice ale softurilor de calcul numeric (gen Matlab.i 1 j <" pentru " > 0 dat initial. j = 1. metoda lui Aitken si criteriul sau de oprire necesita doar cunoasterea valorilor f (ai ) . Prin urmare. f22 . Asadar. i 1: Observam ca x a1 x f11 = f (a0 ) + a0 a1 a1 si analog se obtine pentru i = 2. m a0 f (a1 ) = L1 f (x) a0 fii = Li f (x) adica polinomul de interpolare Lagrange relativ la nodurile a0 . sau valorile ei pe nodurile de interpolare f (ai ) . :::. m. dar algoritmul se poate opri la un grad mai mic (in urma atingerii preciziei dorite). i = 0. rezulta ca pentru a opri acest algoritm cat mai repede este indicat sa se ordoneze nodurile a0 . ceea ce in baza criteriului lui Cauchy este echivalent cu i!1 lim jfii fi 1. gradul maxim al polinomului de interpolare este m. daca i < j.pentru i = 1. se ordoneaza nodurile pina este indeplinita conditia jai xj jaj xj . Deoarece eroarea formulei de interpolare depinde de ju (x)j . fmm devine un sir de aproximatii ale lui f (x) : Acest sir va converge catre f (x) atunci cand m!1 lim Lm f (x) = f (x) . Date de intrare: m gradul maxim al polinomului de interpolare ai . am dupa distanta lor fata de . Algoritmul lui Aitken: I. :::. nodurile de interpolare f expresia functiei. a1 . ai : Astfel. m. . i = 0. Date de iesire: Li f ( ) valoarea calculata cu precizia ceruta (i m este gradul polinomului pentru care s-a atins aceasta precizie) sau un mesaj de eroare in care se speci…ca faptul ca in conditiile date nu s-a putut calcula o aproximatie cu precizia dorita. Mathcad sau Mathematica). algoritmul lui Aitken genereaza primele i + 1 coloane ale tabloului oprindu-se la prima coloana pentru care este indeplinita conditia de mai sus. m.

... 1:151... am .. a1 . a1 . m Daca jai j > jaj j atunci u := a[i]... Daca jfii fi 1. sa se calculeze cu o precizie de 10 5 valorile functiei in punctele 1:134. Pasii algoritmului: Pasul 1.. Pasul 4. :::. m Pentru j = i + 1...... am 2 . Probleme propuse : 1.. adica Pentru i = 0.. am 1 ... a0 . a1 . a1 .. [x.. f ] x am 1 . :::.. Pentru i = 0. i := i + 1.. :::. am . m si j = 0. i := i + 1.. f ] exprimate cu ajutorul diferentelor de ordin inferior.. Pasul 2... [x. f ]. i 1 calculeaza fi.. a[j] := u..... STOP.. :::. tipareste " Nu s-a putut calcula o aproximatie cu precizia dorita ".... a0 . a1 . a0 . a1 .3.. f ] [a0 . m executa fi0 := f (ai ) .. a0 .j+1 = 1 ai aj [fjj (ai ) fij (aj )]..i 1 j < " atunci tipareste Li f ( ) = fii : STOP Altfel.... .... am 1 . :::. a0 ...... a0 . a1 . f ] x am [x..... a[i] := a[j].. 1:185: 1... am . Valorile unei functii f sunt date pe noduri prin intermediul tabelului 1:00 1:08 1:13 1:20 1:27 1:31 1:38 x f (x) 1:17520 1:30254 1:38631 1:50946 1:21730 1:22361 1:23470 Folosind algoritmul lui Aitken.III. :::. Pasul 3... Valorile functiei f (x) = 3 x sunt date pe noduri in tabelul 1:0 1:1 1:3 1:5 1:6 x f (x) 1 1:032 1:091 1:145 1:17 Folosind algoritmul lui Aitken.. Pentru a obtine aceasta formula consideram diferentele divizate [x. Se ordoneaza nodurile in functie de distanta lor fata de punctul ... f ]. Pentru i = 1.. Sa se construiasca un program in limbajele C si Pascal pentru algoritmul lui Aitken. sa se calculeze f (1:15) cu o eroare absoluta maxima de 10 3 : 3.... p 2... a1 . f ] = [x.... pentru polinomul de interpolare al lui Lagrange. :::. f ] = [x.... a0 . Altfel.....2 Formula de interpolare a lui Newton Newton a dat o formula utila.. f ] [a0 .. [x.. din punct de vedere al calcului si al usurintei de programare (in virtutea modului recurent de constructie).m 1 j < " atunci tipareste Lm f ( ) = fmm : Altfel. am 1 . :::.. Daca jfmm fm 1....

:::. a0 . Daca jNk f ( ) Nk 1 f ( )j < " . a1 . :::. :::. intr-un mod asemanator cu generarea polinoamelor lui Lagrange prin metoda lui Aitken. am . a0 . Criteriul de oprire este asemanator.. a1 . a1 . f ] x a1 f (x) f (a0 ) [x. cu polinomul de interpolare dat prin formula lui Newton Nm f (x) = f (a0 ) + m X i=1 x 2 [a. :::. :::. m X i=1 (x a0 ) ::: (x ai 1 ) Di f0 8k = 1. unde N0 f (x) = f (a0 ) : Aceasta proprietate permite construirea recurenta a acestui polinom (deci programare mai facila) precum si oprirea algoritmului odata atinsa precizia dorita. 2. . din (3) si (5) rezulta Lm f (x) = Nm f (x) . am . Deasemenea. m. s-a obtinut tocmai formula de interpolare a lui Lagrange f (x) = Nm f (x) + Rm f (x) .. a0 . f ] + u (x) [x. pe a treia egalitate cu (x am 1 )(x pina ultima egalitate se inmulteste cu (x 1 a1 ) ::: (x am ) si adunând egalitatile obtinute membru cu membru si apoi exprimând f (x) se obtine f (x) = f (a0 ) + m X i=1 (x a0 ) ::: (x ai 1 ) [a0 . :::.[x. ai . a0 . 1 inmultind a doua egalitate cu x 1am . f ]: Astfel. b] (5) (x a0 ) ::: (x ai 1 ) [a0 . f ] = : x a0 k = 0. m 1 . f ]. dupa ce in prealabil s-au reordonat nodurile in functie de distanta lor pina la punctul in care dorim sa aproximam functia f: Astfel se obtin iterativ polinoamele lui Newton de gradele 1. f ] [a0 . ak . :::. adica si asa mai departe am ) Eliminând din aceste m + 1 relatii diferentele divizate [x. f ] = [x. 8x 2 [a. ai . a1 . :::. a0 . ak 1 ) + (x a0 ) ::: (x ak 1 ) [a0 . a0 . a0 . f ]: Se observa ca in formula (6) s-au folosit doar diferentele divizate de pe latura superioara a tabloului de diferente. ak . a0 . f ]. b]: Observatie: Din formula (6) rezulta ca polinomul de interpolare al lui Newton veri…ca relatia de recurenta Nk f (x. ak ) = Nk 1 f (x. f ] = (6) = f (a0 ) + iar restul dat cu ajutorul diferentelor divizate Rm f (x) = u (x) [x.

Se calculeaza diferentele divizate [a0 .h> #include <math. Date de iesire: Nk f ( ) valoarea calculata cu precizia ceruta (k m este gradul polinomului pentru care s-a atins aceasta precizie) sau un mesaj de eroare in care se speci…ca faptul ca in conditiile date nu s-a putut calcula o aproximatie cu precizia dorita. k = 0. STOP. b] punctul in care se aproximeaza valoarea functiei f: II. Nk f ( ) := Nk 1 f ( ) + ( a0 ) ::: ( ak 1 ) [a0 . Pasii algoritmului: Pasul 1. k = 0. ak ) : Insa gradul maxim al polinomului generat de algoritmul de mai jos este m. Programul in limbajul C #include <stdio. STOP. :::. m utilizand procedura din paragraful 1. m si pentru k = 0. :::. nodurile de interpolare f expresia functiei. Altfel. m pentru j = 1. ak . Daca jNm f ( ) Nm 1 f ( )j < " atunci tipareste Nm f ( ). u := j.h> #include "stdafx.dll> . Date de intrare: m gradul maxim al polinomului de interpolare ak . adica Pentru k = 0.2 sau obtinând aici iterativ. m " eroarea absoluta maxima admisibila 2 [a. :::. adica la polinomul Nk f (x. N0 f ( ) = f (a0 ) Pasul 4. m j: Pasul 3. tipareste " Nu s-a putut calcula o aproximatie cu precizia dorita ". m Daca jak j > jaj j atunci k := u. k = 0. ak . f ] Daca jNk f ( ) Nk 1 f ( )j < " atunci tipareste Nk f ( ) : STOP. Cat timp k < m executa k := k + 1. f ] = Dk f0 . III. m.h> #include <iostream. m Pentru j = k + 1. Pasul 2. k := 0. Algoritmul polinomului lui Newton: I. Altfel.h> #include <conio. D0 fk := f (ak ) .h" #using <mscorlib. sau valorile ei pe nodurile de interpolare f (ak ) . a0 . Se ordoneaza nodurile in functie de distanta lor fata de punctul . si Dj fk := Dj 1 fk+1 ak+j Dj 1 fk ak pentru k = 0. k := k + 1.atunci algoritmul se opreste la ordinul k. Pasul 5.

k<=m. i<=m. int main() { double p[100]. j. int m. Valorile functiei f (x) = 3 x sunt date pe noduri in tabelul . } if (abs(p[m] -p[m-1]) < e) printf("f(x) este aproximat cu eroarea e=%lf de catre polinomul lui Newton prin p[%d]=%lf. scanf("%lf". j<=i-1. i). } for(i=0. printf("x="). scanf("%lf".m. &f[i]). printf("m="). double df[100][100]. j++) q = q * (x-a[j]). i). e. } Probleme propuse : 1. for(k=1.i++) df[k][i]=(df[k-1][i+1]-df[k-1][i])/(a[i+k]-a[i]).k++) for(i=0. for (i=0. &a[i]). return 0. e). i<=m.i<=m-k. &m). printf("e="). scanf("%lf". for (i=1. i++) { q = 1. q. scanf("%d". i++) { printf("a[%d]=". p[i] = p[i-1] + q * df[i][i]. a[100]. p[0] = f[0]. printf("f[%d]=".i<=m. x. &e). k. i. else printf("f(x) nu poate … aproximat cu eroarea e=%lf de catre polinomul lui Newton".p[m]).using namespace System.nn". &x).i++) df[0][i]=f[i]. f[100]. e. for (j=0. scanf("%lf". p 2.Sa se construiasca un program in limbajul Pascal pentru algoritmul lui Newton.

polinomul de grad minim Hn f care satisface conditiile de interpolare : Hn f (j) (ak ) = f (j) (ak ) . j = 0. cu ajutorul algoritmului lui Newton.175.4. 1.1 1 ju (x)j (n + 1)! f (n+1) C x 2 [a. b] daca f 2 C n+1 [a. b] (8) j! uk (t) j=0 k=0 iar in formula de interpolare a lui Hermite f (x) = Hn f (x) + Rn f (x) . sa se calculeze cu o precizie de 10 5 valorile functiei in punctele 1:134.x 1:0 1:1 1:3 1:5 1:6 f (x) 1 1:032 1:091 1:145 1:17 Folosind algoritmul lui Newton. 1:151. rk . 1:185: Sa se compare cu valorile obtinute prin algoritmul lui Aitken. 8k = 0. la nodurile ak . 1. pentru care sunt cunoscute pe nodurile ak [a. b].140. 1. m. obtinandu-se " #! rk m (j) X X (x ak )j f (t) Hn f (x) = uk (x) jt = ak . m. b]. Fie u (x) = (x si uk (x) = a0 )r0 +1 (x a1 )r1 +1 ::: (x am )rm +1 8j = 0. 8x 2 [a. unde rk 2 N si …e n = m + r0 + ::: + rm : De…nitia 1: Se numeste polinomul de interpolare al lui Hermite relativ la functia f . b] ! R.4 Polinomul de interpolare a lui Hermite Consideram functia f : [a. Valorile unei functii f sunt date pe noduri prin intermediul tabelului 1:00 1:08 1:13 1:20 1:27 1:31 1:38 x f (x) 1:17520 1:30254 1:38631 1:50946 1:21730 1:22361 1:23470 Folosind algoritmul lui Newton. m: (7) u (x) (x ak )rk +1 8k = 0. Formula lui Taylor Pentru m = 0 si n = r0 in formula (8) se obtine polinomul lui Taylor ca un polinom de interpolare cu un singur nod multiplu de ordinul n+1.195. k = 0. b]: 8x 2 [a. estimarea restului este jRn f (x)j 1. rk . m: Conditiile (7) determina in mod unic polinomul de interpolare a lui Hermite. k = 0. k = 0. rk . j = 0. sa se calculeze cu o precizie de 10 5 valorile functiei in punctele 1. k = 0. valorile f (j) (ak ) . m. si la valorile f (j) (ak ) . sa se calculeze f (1:15) cu o eroare absoluta maxima de 10 5 : 3. m. Tn f (x) = n X (x k=0 a0 )k (k) f (a0 ) k! (9) . Apoi.

b] punctul in care se aproximeaza valoarea functiei f II.2 Metoda lui Aitken pentru polinomul lui Hermite cu noduri duble 1 (u p (k) a)k fk 1) k Daca nodurile ak . k = 0. m: Polinomul lui Hermite cu noduri duble este H2m+1 f (x) = unde u (x) = (x si uk (x) = a0 )2 (x u (x) (x ak )2 a1 )2 ::: (x am )2 m X k=0 uk (x) f (ak ) + (x uk (ak ) ak ) f (t) uk (t) 0 jt = ak (10) 8k = 0. Date de intrare: n gradul polinomului de interpolare a nodul de interpolare (k) f (a) . …e T0 f (u) = f (a) si pentru k = 1. …e f0 := f (a) . k = 0. m: . m. 1. Date de iesire: Tn f (u) aproximatia lui f (u) prin polinomul lui Taylor III. a0 + h]: Din formula (9) se observa ca polinomul lui Taylor poate … obtinut recurent prin T0 f (x) = f (a0 ) Tk f (x) = Tk 1 f (x) + (x a0 )k (k) f (a0 ) . n fk := f (k) (a) p (k) := p (k Pasul 2. n: Astfel. n. Pasii algoritmului: Pasul 1. k = 0. p (0) := 1 si pentru k = 1. sunt duble atunci se presupun cunoscute valorile f (ak ) . Tipareste Tn f (u) : STOP.iar estimarea restului este jRn f (x)j 1 jx (n + 1)! a0 jn+1 f (n+1) C daca f 2 C n+1 [a0 h. n Tk f (u) = Tk 1 f (u) + Pasul 3. valorile pe nodul a u 2 [a. f 0 (ak ) . k! pentru k = 1. se obtine algoritmul urmator : Algoritm pentru polinomul lui Taylor I.4.

Q2i.1 si Qi. i calculeaza Qi.0 Q1. Date de iesire: coe…cientii Q0. m z2i+1 = ai . f 0 (ak ) . j = 2. 2m + 1 Pentru j = 2.0 + Q1. nodurile de interpolare f (ak ) . m i = 1. i: Rezulta urmatorul algoritm prin care se obtin coe…cientii din (11). z2i+1 := ai Q2i+1. Q2i+1. z2i = ai .j 1 Q2i+1. Metoda lui Aitken pentru polinomul lui Hermite cu noduri duble I. Tipareste Q0. Probleme propuse : 1.0 = z2i z2i 1 Qi 1. k = 0.0 z2i Q2i 1.2m+1 : STOP.1 = f 0 (ai ) . III. Pentru i = 0.1 := f 0 (ai ) Q2i+1.1 :::Q2m+1.0 Q1.j = Pasul 3. Pentru i = 2.2m+1 polinomului H2m+1 f (x) din (11). i = 0.j = Qi.j 1 Q2i.0 := f (ai ) . k = 0.0 = f (ai ) . Q2i.2m+1 (x a0 ) + Q2. Pentru i = 1. m calculeaza Q2i.1 (x +::: + Q2m+1. Pasii algoritmului: Pasul 1.1 := Pasul 2.Acest polinom poate … obtinut astfel.0 = f (ai ) . 2m + 1. m.0 Q2i 1.3 (x a0 )2 (x am ) a1 ) + (11) a1 )2 ::: (x am 1 )2 (x in care coe…cientii se determina recurent prin Q2i. m: i = 0. Q2i.j zi j 1 :::Q2m+1. .j zi j 1 zi i = 2. Date de intrare: m numarul de noduri-1 ak .1 Qi. Sa se construiasca un program in limbajele C si Pascal pentru algoritmele asupra polinomului lui Taylor si asupra metodei lui Aitken pentru polinomul lui Hermite cu noduri duble. m executa z2i := ai . m.2 (x a0 )2 (x a0 )2 + Q3.0 := f (ai ) . valorile functiei si ale derivatelor sale pe nodurile de interpolare II. H2m+1 f (x) = Q0.0 z2i 1 zi Qi 1.

1 1. 3.3855409 5.6 3.5 2.2314028 2. Fie f (x) = x + 1 si Tn f polinomul lui Taylor de gradul n corespunzator nodului a0 = 0.84023 .25108 0.3 1.64281 0.p 2.3.4 2.9121188 4.6801169 7. Sa se determine T0 f (u) pentru n=6 si u=0.24424 0.9682818 6.43656 0. Folosind algoritmul lui Aitken pentru polinomul lui Hermite cu noduri duble sa se aproximeze valoarea unei functii f (0:2) avand pe noduri valorile: x f (x) f 0 (x) 0.

n: .1 Interpolarea neteda pe portiuni de tip Hermite.2 Interpolarea neteda pe por¸iuni t Acest capitol este dedicat interpolarii netede a datelor experimentale prin interpolare Hermite cu noduri duble pe portiuni si prin functii spline polinomiale. se poate : a = x0 < x1 < ::: < xn 1 si valorile pe aceste noduri ale unei functii f 2 C 1 [a. xi ) pentru orice i = 1. xi ]. P (b) = f (b) . b] (12) C 8x 2 [a. 8i = 0. f 0 (xi ) . n si este un polinom de gradul intai. b] ! R. b]: < xn = b i = 0. construi o functie neteda F 2 C 1 [a. Atunci F 00 este continua pe portiuni si marginita pe [a. b]: In cele ce urmeaza vom nota yi = f (xi ) . b] atunci pentru estimarea erorii formulei de interpolare f (x) = P (x) + R (x) avem (b a)4 f (4) jR (x)j 7 3 2 Considerand o diviziune a intervalului [a. n cerând ca restrictia functiei F la …ecare subinterval [xi 1 . Metoda lui Akima Pentru f : [a. F 2 C 1 [a. b]: Prin urmare. polinomul de interpolare al lui Hermite cu doua noduri duble este unic determinat de conditiile P (a) = f (a) . b]. b] expresia P (x) = (b (b x)2 (x a) 0 f (a) (b a)2 a)] f (a) + (x (x a)2 (b x) 0 f (b) + (b a)2 a)2 [2 (b x) + (b (b a)3 a)] f (b) : P 0 (a) = f 0 (a) P 0 (b) = f 0 (b) + x)2 [2 (x a) + (b (b a)3 Daca f 2 C 4 [a. b] pentru care F (xi ) = f (xi ) . avand pe [a. 2. i = 1. 8i = 0. F 0 (xi ) = f 0 (xi ) . f 2 C 1 [a. n. b] \ L2 [a. b]. n sa …e Fi dat prin Fi (x) = (xi (xi x)2 (x xi 1 ) 0 f (xi 1 ) (xi xi 1 )2 xi 1 )] f (xi 1 ) + (x (x xi 1 )2 (xi x) 0 f (xi ) + (xi xi 1 )2 xi 1 )] (13) + x)2 [2 (x xi 1 ) + (xi (xi xi 1 )3 xi 1 )2 [2 (xi x) + (xi (xi xi 1 )3 f (xi ) : Se observa ca Fi00 exista pe intervalele deschise (xi 1 . f (xi ) .

Algoritmul lui Akima I.Algoritmul de mai jos realizeaza aproximarea valorii f ( ) a functiei f intr-un punct 2 [a. i = 0. b]. b] \ L2 [a. n prin valoarea F ( ) : De cele mai multe ori. f 0 (xi ) = jmi+2 mi+1 j mi 1 + jmi jmi+2 mi+1 j + jmi 1 1 mi 2 j mi+1 . 8i = 0. n 1 iar apoi. unde J (F ) = Zb a g (xi ) = yi . Akima in 1970 si este expusa in [13]. n punctul in care se realizeaza aproximarea II. mn = 2mn 1 mn 2 . n valorile yi = f (xi ) . i = 0. De aceea. n 3: (14) Formula (14) constituie un punct tare al metodei lui Akima. i = 0. mi 2 j i = 2. ceea ce constituie un punct slab al metodei. 8i = 0. Pe scurt. se calculeaza intai pantele mi = xi+1 ti+1 xi . a fost propusa de H. se aproximeaza valorile derivatelor pe unele dintre nodurile interioare prin. n 1: Daca F0 (x0 ) = Fn (xn ) = 0 atunci proprietatea (15) este indeplinita. i = 0. mn+1 = 3mn 1 2mn 2 00 00 si se extinde formula (14) pentru i = 1. ti i = 0. sunt cunoscute (prin masuratori experimentale) doar valorile f (xi ). i = 0. generata prin rationamente de natura geometrica. b] pentru a extinde formula (14). Date de intrare: nodurile xi . b]. Date de iesire: F( ) valoare ce aproximeaza pe f ( ) : III. 2 3 f 0 (xn ) = mn 2 1 1 0 f (xn 1 ) : 2 In continuare functia F este construita in baza formulei (13). macar pe primul si pe ultimul nod putem stabili valori pentru f 0 (x0 ) si f 0 (xn ) astfel incat functia F sa aiba urmatoarea proprietate de minim: J (F ) = minfJ (g) : g 2 C 1 [a. n. ceea ce va conduce la a propune 3 f 0 (x0 ) = m0 2 1 0 f (x1 ) . urmand ca valorile derivatei pe noduri sa …e aproximate. Pasii algoritmului: . n. dandu-se nodurile xi . 6= xi . ng. dar deoarece nu poate propune o formula si pentru primele doua si ultimele trei noduri conduce la necesitatea introducerii arti…ciale a unor pante corespunzatoare extremitatilor intervalului [a. n si valorile yi . (15) [F 00 (x)]2 dx: In baza metodei lui Akima se introduc atunci doar pantele suplimentare m 1 = 2m0 m1 . O metoda de aproximare.

spre exemplu in spitale la curba temperaturii pacientilor internati) si doua tipuri de functii spline cubice generate de conditii bilocale si respectiv. Consideram un interval [a. Calculeaza m 1 := 2m0 m1 . Sa se construiasca un program in limbajele C si Pascal pentru algoritmul lui Akima. Calculeaza 3 f 0 (x0 ) := m0 2 jmi+2 mi+1 j mi 1 + jmi jmi+2 mi+1 j + jmi 1 1 mi 2 j mi+1 mi 2 j 1 0 f (xn 1 ) : 2 1 0 f (x1 ) . 114. M. Probleme propuse: 1. 21. 2 3 f 0 (xn ) := mn 2 1 Pasul 5. 90 (masurate in mg/dl). ng pentru care xj Pasul 6. 10. obtinandu-se 130. 2. n f 0 (xi ) := Pasul 4.2 Interpolarea spline polinomial¼ a Se prezinta functia spline poligonala de interpolare a datelor experimentale (utilizata in multe domenii ca metoda empirica de trasare a gra…cului prin puncte. Pentru functia spline cubica generata de conditii bilocale s-a ales varianta mai usor programabila (fara expresii de forma (x ai )+ ) din [13]. Pentru i = 1. mn+1 := 3mn 1 2mn 2 Pasul 3. 138. Se determina indicele j 2 f1. Pentru i = 0. mn := 2mn 1 calculeaza 1 mn 2 . adica momentul 26) folosind algoritmul lui Akima. conditii initiale. La momentele 7. 96. n 1 calculeaza pantele mi := xi+1 ti+1 xi ti Pasul 2. 14. 128. 15. M. 122. 23 si 2 (a doua zi A. a doua zi) s-au masurat valorile glicemiei. Calculeaza F ( ) := (xj (xj )2 ( xj 1 ) 0 f (xj 1 ) (xj xj 1 )2 xj 1 )] f (xj 1 )+ ( ( xj 1 )2 (xj (xj xj 1 )2 ) f 0 (xj ) + xj 1 )] 1 < < xj : + )2 [2 ( xj 1 ) + (xj (xj xj 1 )3 xj 1 )2 [2 (xj ) + (xj (xj xj 1 )3 f (xj ) : Pasul.5 (ora 1030 ). 7 Tipareste F ( ) : STOP. Sa se aproximeze glicemia acestui pacient de la orele 12. b] si o diviziune a acestui interval : a = x0 < x1 < ::: < xn 1 < xn = b: . 24 si 27 (adica ora 3 A. :::. 2. 121. 18. 13.Pasul 1.5 (ora 1530 ).5 (adica ora 730 ).

i = 1. 121. i = 0.5 (ora 1030 ). (xn . Probleme propuse: 1.1 Fie n Spline poligonal de interpolare : a = x0 < x1 < ::: < xn < xn = b 1 s o diviziune a intervaluluii [a. b] (ii) restrictia lui s la …ecare subinterval Ii . 8i = 1. (x1 . n. 138. 14. b] ! R. :::. 13. s : [a.2. yn ): a a a s Functia D este o functie spline polinomiala de interpolare de gradul intai. 128. s 2 C 2 [a. b] ! R. 18. 8i = 1. 122. a doua zi) s-au masurat valorile glicemiei.5 (adica ora 730 ). n: s De…nitie: Functia s : [a. Sa se aproximeze glicemia acestui pacient de la orele 12. adica momentul 26) folosind functia spline poligonala de interpolare. (xn . yi 1 ) ¸i (xi . numit spline poligonal.Notam hi = xi xi 1 ¸i Ii = [xi 1 . s Di (x) = yi 1 + yi yi hi 1 (x xi 1 ). i = 1.2 Spline cubic generat de condi¸ii la limita t Consideram o functie f : [a.2. f 2 C 2 [a. b] ! R. y1 ):::. y1 . n: Daca y0. este polinom de gradul m (iii) s (xi ) = yi . Sa se construiasca un algoritm pentru functia spline poligonala de interpolare al c¼rei a gra…c este linia poligonal¼ ce une¸te punctele (x0 . yn astfel incat yi = f (xi ) . 24 si 27 (adica ora 3 A.5 (ora 1530 ). M. b]. 114. al c¼rei gra…c este linia poligonal¼ ce une¸te punctele (x0 . :::. se numeste spline polinomial de gradul m de interpolare a valorilor y0. 90 (masurate in mg/dl). 2. yn ) 2 R asociat diviziunii n . b] : a = x0 < x1 < ::: < xn 1 < xn = b: Deasemenea. Sa se compare rezultatele cu cele obtinute prin algoritmul lui Akima. :::. yn pe nodurile xi . xi ]. y1 ):::. atunci functia spline este de interpolare a functiei f pe nodurile diviziunii : 2. :::. 8i = 1. n se de…ne¸te Di : Ii ! R. 96. y0 ). n si notam hi = xi xi 1 . yi ): t s s Dac¼ construim D : [a. La momentele 7. M. y1 . astfel încât D jIi = Di . n: Un spline cubic pentru f : [a. 23 si 2 (a doua zi A. y1 . y0 ). b] ! R. b]. 8i = 0. (x1 . b]: Vom nota prin si restrictiile functiei s la subintervalele [xi 1 . 15. …e y0. 21. obtinandu-se 130. si diviziunea intervalului [a. yn sunt valorile pe nodurile xi . 8i = 0. b] ! R. Pentru …ecare i = 1. xi ]. 2. i = 0. 8x 2 Ii : Gra…cul func¸iei Di este segmentul ce une¸te punctele (xi 1 . 10. n ale unei functii f : [a. n ¸i sistemul de a s n+1 n + 1 numere reale. 8i = 1. yn ) si sa se programeze a s in limbajele C si Pascal. y1 . b]: Not¼m hi = xi xi 1 ¸i Ii = [xi 1 . atunci D este o func¸ie a t continu¼ pe [a. xi ]. este o functie spline polinomiala de gradul 3 de interpolare a functiei f pe nodurile diviziunii . n. b] ! R. y = (y0. n ale diviziunii : . n daca: (i) s 2 C m 1 [a.

s0 (xn ) = fn (in ipoteza ca sunt cunoscute f 0 (x0 ) = f0 si f 0 (xn ) = fn ). n 00 si se obtine si (x) = " (x xi 1 )3 6hi xi hi x yi 1 hi (x 6 + x xi 1 ) # yi . n 1 < 3 6 hi+1 i h1 M 0 M (17) + h16 1 = y1h1y0 f0 3 > hn M n 1 yn y n 1 : hn Mn + 3 = fn 6 hn din care se determina in mod unic M0. g (xi ) = yi . 8i = 1. mi = s0 (xi ) . J (s) = minfJ (g) : g 2 C 2 [a. i = 0. :::. ultimele doua conditii se obtine sistemul 8 hM > i 6i 1 + hi +hi+1 Mi + hi+1 Mi = yi+1 yi yi hyi 1 . b]. xi ] < si (x) = i hi si (xi 1 ) = yi 1 : si (xi ) = yi . M1 . n 1: Acestea conduc la un sistem liniar de n-1 ecuatii cu n+1 necunoscute Mi . n sunt functii polinomiale de gradul intai. 8i = 1. 8i = 1. n 1: La acestea se adauga inca doua conditii M0 = Mn = 0. 8i = 0. 8i = 1. xi ]. 8i = 0. in baza notatiilor de mai i sus se vor rezolva problemele bilocale 8 00 M (x xi 1 )+Mi 1 (xi x) . i = 0. 8i = 1. sau s0 (x0 ) = f0 . din conditia s 2 C 1 [a. b]. n hi Mi 6 1 + hi + hi+1 hi+1 Mi yi+1 yi Mi + = 3 6 hi+1 yi yi hi 1 . Adaugand de exemplu. n. ng: . i = 1. b] rezulta cerintele s0i (xi ) = s0i (xi+1 ) . Mi + " (xi x)3 6hi hi (xi 6 x) # Mi 1 + (16) + xi hi 1 8x 2 [xi 1 . Mn : Observam ca matricea acestui sistem este tridiagonala. x 2 [xi 1 . In [13] se arata ca functia spline cubica (16) ce indeplineste oricare din cele doua conditii suplimentare de mai sus are proprietatile : (i) Minimizarea functionalei Zb J (g) = [g 00 (x)]2 dx a adica (ii) Aproximare uniforma pentru orice functie f 2 C 2 [a. n: Pentru determinarea coe…cientilor Mi . Mi = s (xi ) .Pentru functiile spline cubice se folosesc notatiile yi = s (xi ) . n: Deoarece s00 . cu estimarea globala a erorii p p kf 0 s0 k b a kf 00 kC h p p kf sk b a kf 00 kC h h.

bn := 1 1 < < xj : ai := 2 Pasul 3. n 1 calculeaza bi := hi hi + hi+1 bi yi yi hi 1 ci = 1 di := Pasul 4. Se determina indicele j 2 f1. Executa 0 6 hi + hi+1 yi+1 yi hi+1 := c0 a0 Pentru i = 1. struieste urmatorul algoritm. Executa a0 := 2. II. b]. s0 (xn ) = fn se con- Algoritmul functiei spline cubice generata de conditii la limita I. n valorile yi = f (xi ) . f0 . fn punctul in care se aproximeaza f ( ) prin s ( ) 2 [a. i = 0. n valorile derivatei pe nodurile extreme. 8i = 0. Pentru i = 1. 6= xi . Executa d0 := 6 h1 y1 h1 y0 f0 . n calculeaza hi := xi xi 1 : c0 := 1. dn = 6 hn fn yn yn hn 1 Pentru i = 1. i = 0. ng pentru care xj Pasul 2. Date de iesire: s ( ) : III. Pasii algoritmului Pasul 1. n. :::. n 1 calculeaza ! i := ai i bi ci !i bn i 1 := Executa ! n := an n 1 .unde h = maxfhi : i = 1. Date de intrare: nodurile xi . ng: Pentru functia spline cubica (16) veri…cand conditiile s0 (x0 ) = f0 .

Pasul 5. Executa z0 := Pentru i = 1; n calculeaza zi := di

d0 2

bi zi !i

1

Pasul 6. Determinarea solutiei M0; M1 ; :::; Mn a sistemului (17) Executa Mn := zn Pentru i = n 1; 0 calculeaza Mi := zi Pasul 7. Calculeaza " ( xj 1 )3 s ( ) := 6hj #
1 i

Mi+1 : " #

hj ( 6 + xj hj

xj 1 )

Mj +

(xj 6hj
1

)3

hi (xj 6

)

Mj 1 +

yj

+

xj hj

yj

Pasul 8. Tipareste s ( ) : STOP. Programul in limbajul C #include "stdafx.h" #using <mscorlib.dll> using namespace System; #include <stdio.h> #include <math.h> #include <conio.h > void main() { int n,i,nri; double u,f0,fn,av,bv; double x[20],y[20],h[20],a[20],b[20],c[20],d[20],alfa[20],omega[20],z[20],M[20]; double s; printf("n=");scanf("%d",&n); printf("a=");scanf("%lf",&av); printf("b=");scanf("%lf",&bv); printf("u=");scanf("%lf",&u); printf("f0=");scanf("%lf",&f0); printf("fn=");scanf("%lf",&fn); for (i=0;i<=n;i++) {

printf("y[%d]=",i); scanf("%lf",&y[i]); } for (i=0;i<=n;i++) x[i]=av+i*((bv-av)/n); /*Pasul 1*/ for (i=1; i<=n; i++) h[i]=x[i]-x[i-1]; for (i=0; i<=n; i++) { a[i]=2; } for (i=1; i<=n-1; i++) { b[i]=h[i]/(h[i]+h[i+1]); } b[n]=1; c[0]=1; for (i=1; i<=n-1; i++) c[i]=1-b[i]; d[0]=(6/h[1])*((y[1]-y[0])/h[1]-f0); d[n]=(6/h[n])*(fn-(y[n]-y[n-1])/h[n]); for(i=1;i<=n-1;i++) d[i]=(6/(h[i]+h[i+1]))*((y[i+1]-y[i])/h[i+1]-(y[i]-y[i-1])/h[i]); /*Pasul 2*/ alfa[0]=c[0]/a[0]; for (i=1; i<=n-1; i++) { omega[i]=a[i]-alfa[i-1]*b[i]; alfa[i]=c[i]/omega[i]; } omega[n]=a[n]-alfa[n-1]*b[n]; /*Pasul 3*/ z[0]=d[0]/2; for(i=1; i<=n; i++) { z[i]=(d[i]-b[i]*z[i-1])/omega[i]; } /*Pasul 4*/ M[n]=z[n]; for (i=n-1;i>=0;i– ) M[i]=z[i]-alfa[i]*M[i+1]; /*Pasul 5*/ for (i=1; i<=n; i++) if((x[i-1]<u)&&(u<x[i]))

{ printf("i=%d ",i); nri=i; } /*Pasul 6*/

s=(M[nri]*pow((u-x[nri-1]),3))+(M[nri-1]*pow((x[nri]-u),3))/6*h[nri]+(y[nri-1]-(M[nri 1]*h[nri]*h[nri])/6)*((x[nri]-u)/h[nri])+ (y[nri]-M[nri]*h[nri]*h[nri]/6)*(u-x[nri-1])/h[nri]; printf("nns=%lf ",s); getch(); } Probleme propuse 1. Se se construiasca un program in limbajul Pascal pentru algoritmul functiei spline cubice generata de conditii la limita. 2. La momentele 7.5 (adica ora 730 ), 10.5 (ora 1030 ), 13, 15.5 (ora 1530 ), 18, 21, 24 si 27 (adica ora 3 A. M. a doua zi) s-au masurat valorile glicemiei, obtinandu-se 130, 121, 128, 96, 122, 138, 114, 90 (masurate in mg/dl). Sa se aproximeze glicemia acestui pacient de la orele 12, 14, 23 si 2 (a doua zi A. M, adica momentul 26) folosind algoritmul de la problema precedenta. Sa se compare rezultatele cu cele obtinute prin algoritmul lui Akima si prin interpolare spline poligonala. Se dau f0 = 2; f7 = 3: 2.2.3 Spline cubic generat de condi¸ii initiale t

Consideram o functie f : [a; b] ! R; f 2 C 2 [a; b]; si diviziunea intervalului [a; b] : a = x0 < x1 < ::: < xn
1

< xn = b:

Deasemenea, …e y0; y1 ; :::; yn astfel incat yi = f (xi ) ; 8i = 0; n si notam hi = xi xi 1 ; 8i = 1; n: Fie functia spline cubica de interpolare a functiei f pe nodurile diviziunii ; s : [a; b] ! R; s 2 C 2 [a; b]: Vom nota prin si restrictiile functiei s la subintervalele [xi 1 ; xi ]; i = 1; n ale diviziunii : In [14] se construieste o functie spline cubica de interpolare generata de conditii initiale. Astfel, restrictia sa la subintervalul [xi 1 ; xi ]; i = 1; n este determinata prin rezolvarea problemei Cauchy 8 00 1 < si (x) = Mi + hi (Mi Mi 1 )(x xi 1 ) si (xi 1 ) = yi 1 : s0i (xi 1 ) = mi 1 ; unde Mi = s00 (xi ) ¸i si = s j[xi 1 ;xi ] : s i Se obtine 1 Mi si (x) = (Mi Mi 1 )(x xi 1 )3 + (x xi 1 )2 +mi (x xi 1 )+yi 1 ; 8x 2 [xi 1 ; xi ]: (18) 6hi 2

Din condi¸ia s 2 C 2 [a; b] ¸i condi¸iile pe noduri : s(xi ) = yi ; s0 (xi ) = mi ; i = 1; n; se ob¸in t s t t rela¸iile, t ( Mi + 2Mi 1 = 6 yi yi 1h2mi 1 hi i (19) Mi + Mi 1 = 2(mi hmi 1 ) ; i = 1; n: i

y1 . respectiv f 2 C 1 [a. de obicei se determina y0. b]: Observatie: Valorile m0 si M0 sunt in general libere (experimental. b] cu f 0 2 Lip[a. n 1 1 mi = hi (yi yi 1 ) + 6 hi (4Mi + Mi 1 ) (20) ¸i s ( Mi = mi = 6 h2 i 3 hi (yi (yi yi 1 ) yi 1 ) 6mi hi 1 2Mi Mi 2 1 2mi 1 1 hi . yn ) si pot … date astfel incat functia spline corespunzatoare sa aiba proprietati suplimentare. cu o eroare estimat¼ global astfel : s a s a p 3 b a kf 00 kC h 2 kf sk p p kf 0 s0 k b a kf 00 kC h: (23) Pentru a avea Mn = 0 se poate obtine m0 astfel: 3 6 Se de…nesc a1 = 2. i = 1. yn si de la valorile primelor doua derivate pe primul nod. (21) unde hi = xi xi 1 . 8i = 1. m0 si M0 : Estimarea erorii in formula corespunzatoare de interpolare spline poate … gasita in [15] pentru cazurile f 2 Lip[a. :::. s ¸i s0 aproximeaz¼ pe f ¸i respectiv. n ai = bi = ¸i s ci = di = Punand M0 = 0 se va obtine Mn = 0: si m0 = 6(yi h2 i 2ci yi 1 ) 1 6 h2 1 1 (y1 y0 ) ¸i recurent se calculeaza s 2ai yi 1 ) 1 hi ci 2 2bi 1 3(yi hi hi di 2 1 1 (24) 6ai hi 6bi 1 hi 2di 1 : dn cn (25) (26) . c1 = h1 . b1 = h1 (y1 y0 ). b]. d1 = pentru i = 2. daca M0 = Mn = 0 atunci functia spline cubica cu restrictiile la subintervalele diviziunii date in (18) va avea proprietatea de minimizare a func¸ionalei t J(y) = Zb a [y 00 (x)]2 dx (22) pe mul¸imea func¸iilor de clas¼ C 2 [a. i = 1.care sunt echivalente cu oricare din urm¼toarele dou¼ sisteme de rela¸ii : a a t 1 1 mi 1 = hi (yi yi 1 ) 6 hi (Mi + 2Mi 1 ) . n. :::. b] ce interpoleaz¼ f pe nodurile diviziunii n : Deasemet t a a nea. n: Prin utilizarea rela¸iilor de recuren¸a (21) se ob¸ine in mod unic functia spline cubica t t¼ t de interpolare pornind de la valorile y0. Astfel. f 0 . y1 .

Pasii algoritmului Pasul 1. b]. Date de iesire: s ( ) : III.3. n calculeaza hi := xi mi := xi 1 1 < < xj : 3 Mi 1 hi (yi yi 1 ) 2mi 1 hi 2 6mi 1 6 2Mi 1 Mi := 2 (yi yi 1 ) hi hi Mj ( 2 Pasul 3. n valorile yi . Calculeaza s ( ) := 1 (Mj 6hj Mj 1 )( xj 1 )3 + xj 1 )2 + mj ( xj 1 ) + yj 1 : Pasul 4. h1 2. n m0 si M0 . punctul in care se aproximeaza f ( ) prin s ( ) II. i = 0. d1 := b1 := 3 (y1 h1 y0 ): y0 ) 6 (y1 h2 1 Pasul 1. Executa M0 := 0. Executa m0 := 1 hi ci 2 hi 6(yi 1 . n calculeaza ai := 2ai bi := di := Pasul 1. ci := 2bi 2ci 1 6ai hi 1 1 3(yi yi 1 ) yi 1 ) h2 i 1 hi di 2 6bi 1 hi dn : cn 2di 1 : . Tipareste s ( ) : STOP. n.Algoritmul functiei spline cubice generata de conditii initiale I. :::. c1 := a1 := 6 . ng pentru care xj Pasul 2. 8i = 0. Se determina indicele j 2 f1. Pentru i = 2. Date de intrare: nodurile xi .1. valorile primelor doua derivate pe primul nod 2 [a. i = 0. Observatie: Daca valorile m0 si M0 nu sunt date atunci se poate intercala intre pasii 1 si 2 subrutina urmatoare: Pasul 1. 6= xi .2. Pentru i = 1.

2 * m[i-1] . printf("nnnn").M[i]. } printf("u=").h[i]). u. scanf("%lf".x[i-1].(6 * m[i-1]) / h[i] . /* for (i=0. printf("n=").Prin acesta subrutina se vor determina m0 si M0 astfel incat functia spline cubica corespunzatoare sa minimizeze functionala (22) si sa aiba estimarea erorii (23). for (i=1.scanf("%f".scanf("%f". scanf("%lf". i++) h[i] = x[i] . //n=7. k. m[100]. printf("y[%d]=".M[0]=17. n.y[i-1]) . printf("nn"). scanf("%lf". printf("m[0]=").&M[0]).&u). printf("M[i]=%f m[i]=%f ". for (i=1.&n). } . printf("Functia splinenn______________nnnnnn"). i++) { printf("x[%d]=".(M[i-1] / 2) * h[i] .&y[i]).&x[i]). i++) printf("%f ". h[100].&u). i++) { m[i] = (3 / h[i]) * (y[i] .scanf("%d".m[i]).i). M[100]. Programul in limbajul C #include <conio. printf("M0=").&m[0]). scanf("%lf". //u=3. i<=n. printf("h[i]: "). x[100]. ‡ s.scanf("%f". printf("M[0]=").&m[0]). scanf("%lf". i<=n. i<=n.2 * M[i-1].m[0]=0. M[i] = (6 / (h[i] * h[i])) * (y[i] . y[100]. for (i=1. */ printf("u=").y[i-1]) . i<=n.3.i). printf("m0=").h> #include <stdio. oat int i.&M[0]).h> int main() { clrscr().

21.5 (adica ora 730 ).printf("* %d* ". 13. 128. 96. return 0. M. 121. obtinandu-se 130.x[k-1]) * (u .x[i-1]). i++) { printf("%f ".x[k-1]) + m[k-1] * (u . 10. La momentele 7. if ((x[i-1]<u) && (u<x[i])) {k = i. for (i=1. 18. 15. Sa se aproximeze glicemia acestui pacient de la orele 12. M. getch(). 90 (masurate in mg/dl).k).printf("nnnnu=%fnn ". 23 si 2 (a doua zi A. Sa se compare rezultatele cu cele obtinute prin algoritmul lui Akima si prin algoritmul de interpolare spline cubic generat de conditii bilocale. printf("nnS(%f)=%fnnnn".x[k-1]) * (u .} } s = ((M[k] . .x[k-1]) * (u .M[k-1]) / (6 * h[k] )) * (u . 14. 24 si 27 (adica ora 3 A.5 (ora 1530 ). i<=n.x[k-1]) + (M[k-1] / 2) * (u . a doua zi) s-au masurat valorile glicemiei. 114. Sa se construiasca un program in limbajul Pascal pentru algoritmul functiei spline cubice generata de conditii la limita.u. 138. 122. 2.s).5 (ora 1030 ).x[k-1]) + y[k-1]. } Probleme propuse 1. adica momentul 26) folosind algoritmul de interpolare spline cubic generat de conditii initiale cu m0 si M0 date in (26) prin folosirea subrutinei de mai sus.u).

formula f (x) = (Bm f ) (x) + (Rm f ) (x) . Proprietati: (1) Bm este un operator liniar si pozitiv. unde (Rm f ) (x) este restul formulei de aproximare. 1] ! R.k (x) = m k xk (1 x)m k .1]. daca f 0 . Polinoamele lui a t Berstein Fie functia f : [0. x (1 x) x (1 x) sup jf 00 (x)j = M2 (f ) 2m x2(0. Numim formula de aproximare a lui Bernstein. De…nitia 1. k = 0. (4) Daca f 2 C 2 [0. b) = (x (b a)m k=0 k a)k (b x)m k f a + (b a) k m : . Numim polinomul lui Bernstein de grad m relativ la functia f. 1] ! R este dat prin formula m X m 1 (Bm f ) (x. 1] atunci m !1 lim (Bm f ) (x) = f (x) . 2R si Bm f 0. adica Bm ( f + g) = Bm f + Bm g. m: De…nitia 2.1) 2m j(Rm f ) (x)j 1 M2 (f ): 8m (5) Polinomul lui Bernstein relativ la functia f : [0. 0 < 2m < 1. adica (Bm f ) (0) = f (0) si (Bm f ) (1) = f (1) : (3) Daca f 2 C[0. 1] atunci in formula de aproximare a lui Bernstein avem (Rm f ) (x) = j(Rm f ) (x)j si de asemenea x (1 x) 00 f ( ). (Bm f ) (x) = pm. a.3 Aproximarea uniform¼ a func¸iilor.k (x) f m k=0 unde pm.1]. . polinomul de…nit prin formula m X k . (2) Polinomul lui Bernstein interpoleaza functia f la capetele intervalului [0. uniform pe [0.

0. k k f m .0 (x) := xm Pasul 2: (Bm f ) (x) := pm.0 (x)f (0) Pasul 3: Pentru k = 1.k (x) = pm. sa se calculeze valoarea polinomului lui Bernstein (B5 f ) (x. m executa k+1 x Pasul 3. Pentru a reduce volumul de calcule.k (x) := pm. Probleme propuse 1.k 1 (x): k 1 x In acest mod nu vom … nevoiti sa calculam combinari si ridicari la putere nenecesare.k 1 (x) m k 1 x k Pasul 3. in punctul x = 2 : Sa se compare rezultatul cu e: . 1) p 1 unde f (x) = ex . valorile functiei in punctele m (sau expresia functiei) Iesiri: Bm f (x) Pasul 1: pm. pentru a‡ area lui pm. 1] ! R intr-un punct x 2 [0. Folosind procedura de la 1.k (x) am folosit relatia de recurenta: m k+1 x pm.2: (Bm f ) (x) := (Bm f ) (x) + pm.Algoritmul POLBERN Algoritmul calculeaza valoarea polinomului lui Bernstein Bm f asociat unei functii f : [0. m.k (x)f m Pasul 4: Tipareste (Bm f ) (x) : STOP.1: pm.. Sa se scrie un program in limbajul C pentru algoritmul POLBERN. 2. k = 0. 1]: Intrari: m-gradul polinomului lui Bernstein x-punctul in care dorim sa aproximam valoarea lui f. Observatia 1.

i = 0.. g (x) = ap xp + ::: + a1 x + a0 pentru care reziduul (de variabilele a0 .. i = 0. Daca forma norului statistic este asemanatoare unei drepte atunci se poate presupune ca legea de dependenta dintre x si y este liniara.. Determinarea acestui polinom va … astfel o aplicatie a metodei lui Sylvester pentru punctele de extrem local ale functiilor de mai multe variabile (a se vedea [21]).1 Metoda celor mai mici p¼trate : dreapta de regresie a Dorind sa stabilim legea de dependenta y = f (x) dintre doua marimi x si y se efectueaza masuratorile exprimate in tabelul x x0 x1 . y = ax + b cu coe…cientii a si b necunoscuti. n pot … obtinute doar cu aproximatie. Concret. se va cauta dreapta cea mai apropiata de punctele norului statistic. …ind date nodurile xi . yn : Punctele (x0 . n se cere sa se determine un polinom de grad p. b) = [f (xi ) g (xi )] = [yi axi b]2 : i=0 i=0 In acest scop se considera sistemul 8 n X > @R > = 2 (yi > > @a > < i=0 > > > > > : @R @b axi b) xi = 0 () = 2 n X i=0 (yi axi b) = 0 . problema interpolarii acestor valori îsi pierde justi…carea. Cel mai des folosite in deducerea empirica experimentala a legilor naturii suntdreapta si parabola patratica de regresie. O alternativa la aceasta situatie este obtinerea polinomului. Consideram functia g (x) = ax + b si vom determina coe…cientii ce minimizeaza reziduul (abatere patratica medie) n n X X 2 R (a. :::. p < n. i = 0. situat cel mai aproape de aceste valori. n si valorile unei functii obtinute experimental (prin masurare) yi . Deasemenea. Astfel.. Fie ecuatia carteziana a acestei drepte.. Gauss la inceputul secolului XIX.. R (a0 . ap ). 4. xn y y0 y1 . Un asemenea polinom se poate determina utilizand principiul celor mai mici patrate descoperit de K. :::. de un anumit grad …xat. Polinomul obtinut se numeste polinomul de regresie. F... principiul celor mai mici patrate poate … folosit si la constructia functiilor spline de ajustare a datelor experimentale. ap ) = n X i=0 [yi ap x p i ::: a1 x i a0 ] 2 se minimizeaza. y0 ). (x1 .4 Ajustarea in medie p¼tratic¼ a datelor experimentale a a Atunci cand valorile unei functii pe nodurile xi . y1 ):::. yn ) se reprezinta intr-un sistem de axe XOY. iar imaginea lor se numeste nor statistic. (xn ...

b coe…cientii din ecuatia carteziana a dreptei de regresie III. Algoritmul dreptei de regresie I. n.8 n n n X X X > 2 > a xi + b xi = xi yi > < Totodata. n. Probleme propuse: 1. determinantul sistemului (27) este strict pozitiv si solutia sistemului (27) este unicul punct de minim local pentru reziduul R (a. i = 0. b) : Rezolvand acest sistem se determina coe…cientii din ecuatia dreptei de regresie. Calculeaza x2 i n X i=0 n X i=0 xi yi yi n X i=0 n X i=0 xi xi yi n X i=0 n X i=0 yi xi a := d1 d d2 b := d Pasul 3. Sa se construiasca un program in limbajele C si Pascal pentru algoritmul dreptei de regresie. d1 := (n + 1) n X i=0 d2 := Pasul 2. b: STOP. Tipareste a. i = 0. Date de intrare: n numarul datelor xi . Atunci. n n X X > > a > xi + (n + 1) b = yi : : i=0 i=0 i=0 i=0 i=0 (27) si = @2R @a2 @2R @a@b @2R @a@b @2R @b2 in virtutea inegalitatii lui Jensen. Pasii algoritmului: Pasul 1. valorile marimii x yi . valorile marimii y II. (din [21]) Fie tabelul de valori ale functiei y = f (x) . 2. Date de iesire: a. Calculeaza !2 n n X X d := (n + 1) x2 xi i i=0 i=0 2 n X 24 = 4 (n + 1) i=0 X @2R =2 x2 > 0 i @a2 i=0 n 1 x2 n+1 i n X i=0 1 xi n+1 !2 3 5 > 0.

(x1 . y1 ):::... xn y y0 y1 ... b si c necunoscuti.x 1 3 4 6 8 9 y 1 2 4 4 5 3 Sa se determine dreapta de regresie de ecuatie y = ax + b ce ajusteaza datele din tabel. y0 ). Daca forma norului statistic este asemanatoare unei parabole patratice atunci se poate presupune ca legea de dependenta dintre x si y este de forma y = ax2 + bx + c cu coe…cientii a... 4. yn ) se reprezinta intr-un sistem de axe XOY. Consideram functia g (x) = ax2 + bx + c si vom determina coe…cientii ce minimizeaza reziduul (abatere patratica medie) R (a.. yn : Punctele (x0 . (xn .2 Metoda celor mai mici p¼trate : parabola de regresie a Dorind sa stabilim legea de dependenta y = f (x) dintre doua marimi x si y se efectueaza masuratorile exprimate in tabelul x x0 x1 . ( 399 95 Se gasesc a = 281 si b = 281 ). c) = n X i=0 [f (xi ) g (xi )] = 2 n X i=0 [yi ax2 i bxi + c]2 : In acest scop se considera sistemul 8 n X > @R > [yi ax2 bxi + c] x2 = 0 > @a = 2 i i > > > i=0 > > > > > > n < X @R = 2 [yi ax2 bxi + c] xi = 0 () i > @b > i=0 > > > > > > n > X > @R > > @c = 2 [yi ax2 bxi + c] = 0 : i i=0 Totodata.. iar imaginea lor se numeste nor statistic.. b.. 8 n n n n X X X > X 4 3 2 > a xi + b xi + c xi = x2 yi > i > > > i=0 i=0 i=0 i=0 > > n n n n < X X X X 3 2 a xi + b xi + c xi = xi yi > > i=0 i=0 i=0 i=0 > > n n n > X X X > > a > x2 + b xi + c (n + 1) = yi : : i i=0 i=0 i=0 (28) X @2R =2 x4 > 0. i @a2 i=0 n .

n. i = 0. i = 0. c) : Rezolvand acest sistem se determina coe…cientii din ecuatia carteziana a parabolei de regresie. Date de iesire: a. y = ax2 + bx + c: Algoritmul parabolei de regresie I. Pasii algoritmului: Pasul 1. valorile marimii x yi . b. Date de intrare: n numarul datelor xi . c) = @2R @a2 @2R @a@b @2R @a@b @2R @b2 2 n n X X 2 4 =4 xi x4 i i=0 i=0 @2R @a@c @2R @b@c @2R @c2 n X i=0 n X i=0 x3 i !2 3 @2R @a2 @2R @a@b @2R @a@c n X i=0 @2R @a@b @2R @b2 @2R @b@c =8 ! +8 +8 Atunci.= si HR (a. valorile marimii y II. Calculeaza ! ! ! ! n n n n X X X X d := (n + 1) x2 x4 + 2 xi x2 i i i i=0 i=0 i=0 i=0 n X i=0 n X i=0 x2 4 i " 2 n X i=0 xi x3 i n X i=0 xi ! n X i=0 n X i=0 x4 4(n + 1) i x3 i ! 2 5>0 n X i=0 n X i=0 x2 i xi !2 3 x2 i ! n X i=0 x2 i !2 3 5+ (n + 1) n X i=0 5+ # x3 > 0: i x2 i !3 x2 i d1 := (n + 1) n X i=0 ! n X i=0 xi !2 + n X i=0 n X i=0 x3 i ! n X i=0 x2 yi i ! n X i=0 x4 i ! n X i=0 x3 i ! (n + 1) ! x2 i n X i=0 + ! xi !2 n X i=0 xi ! yi n X i=0 n X x3 i xi x2 i ! i=0 !2 n X i=0 x2 i ! n X i=0 yi n X i=0 !2 (n + 1) n X i=0 x3 i ! n X i=0 n X i=0 yi ! n X i=0 xi yi + ! xi yi ! . n. c coe…cientii din ecuatia carteziana a parabolei de regresie III. b. b. determinantul sistemului (28) este strict pozitiv si solutia sistemului (28) este unicul punct de minim local pentru reziduul R (a.

. Calculeaza n X i=0 ! n X i=0 x3 i ! n X i=0 n X i=0 n X i=0 x2 yi i ! + n X i=0 !2 n X i=0 x3 i ! n X i=0 yi + ! yi (n + 1) n X i=0 yi ! xi ! n X i=0 x2 yi i ! n X i=0 xi yi ! x3 i n X i=0 xi yi ! n X i=0 xi yi n X i=0 ! x4 i ! n X i=0 x2 i !2 x3 i n X i=0 x2 yi i n X i=0 ! n X i=0 ! x3 i n X i=0 ! + x2 yi i ! n X i=0 !2 n X i=0 yi : ! a := d1 d d2 b := d d3 c := d Pasul 3. Tipareste a. c: STOP. Tema : Sa se scrie un program in limbajul C pentru parabola de regresie. b.d2 := (n + 1) n X i=0 + xi d3 := n X i=0 n X i=0 x4 i x4 i ! ! ! n X i=0 xi yi ! ! n X i=0 x4 i ! + ! n X i=0 x2 i ! x2 i + n X i=0 x2 i ! xi n X i=0 n X i=0 n X i=0 x2 i xi x2 i ! ! Pasul 2.

Formula trapezului. 4] si se gasesc tabelate in tratatele de calculul probabilitatilor. 1 (x) = p 2 Zx 0 e x2 2 e t2 2 dt. x > 0 in care integrala se poate calcula doar aproximativ. 5. [7] si [20]). putem mentiona densitatea de probabilitate normala a lui Gauss pe un interval compact si functiile ce conduc la integralele eliptice in sensul Legendre. x 2 [a. f (x) = p 2 conduce la functia integrala a lui Laplace. Estimarea erorii comise se poate realiza stabilind o margine superioara pentru restul jR(f )j al formulei de cuadratura.b] a unei formule de interpolare f (x) = P (x) + R(x). formula lui Simpson si in general formulele lui Newton-Cotes sunt formule de cuadratura de tip interpolator( a se vedea [4]. motivand astfel studiul si utilizarea formulelor de cuadratura numerica. b] ! R.1 Exemple de func¸ii continue cu primitiva f¼r¼ form¼ …nit¼ t a a a a Printre exemplele de functii continue (chiar analitice) ce au primitiva inexprimabila sub forma …nita. 1 f : R ! R. b] atunci se numeste formula de cuadratura de tip interpolator. Densitatea de probabilitate normala cu media zero si dispersia = 1. In general. Valorile functiei lui Laplace pentru x 2 [0. cand primitiva sa se poate calcula sub forma …nita. Daca o formula de cuadratura se poate obtine prin integrarea pe intervalul [a. . 4] sunt aproximate in 401 noduri echidistante din intervalul [0.5 Formule de cuadratur¼ a Pentru o functie continua f : [a. o formula de cuadratura este de forma Zb a f (x) dx = n X k=1 Ak f (xk ) + R(f ) in care Ak 2 R se numesc coe…cientii. formula lui Leibniz-Newton permite calculul integralei de…nite Zb a f (x) dx = F (b) F (a): Zb a Cand primitiva F nu se poate determina sub forma …nita. k = 1. atunci integrala de…nita f (x) dx se poate calcula doar aproximativ. b]. iar xk 2 [a. n nodurile formulei de cuadratura.

t 2 [0. b > 0. 2 ] se obtine l E 4 1 = a Z2 r 0 a2 + (b2 a2 ) sin2 t a cos tdt = cos2 t Z2 q = a2 + (b2 0 Z2 r a2 ) sin2 tdt = a 1 0 (a2 a2 b2 ) sin2 tdt = =a Z2 p 0 1 2 sin2 tdt: . a. a]. x 2 [0. a > b Ecuatiile parametrice ale elipsei sunt x = a cos t . a2 x 2 cu substitutia x = a sin t. E 4 = Za q 0 l 1 + [y 0 (x)]2 dx: Ambele integrale conduc la integrala eliptica E 4 Z2 p 0 l Spre exemplu. l E 4 = Za q 0 =a 1 2 sin2 tdt: 1 1 + [y 0 (x)]2 dx = a Za r 0 a4 + (b2 a2 )x2 dx. 2 ]: y = b sin t (E) : Incercand sa calculam lungimea arcului de elipsa cuprins in cadranul I putem folosi atat ecuatiile parametrice la calculul integralei E 4 a2 Z2 q 0 l b a = [x0 (t)]2 + [y 0 (t)]2 dt cat si ecuatia explicita y = la calculul integralei p x2 .Consideram elipsa de ecuatie implicita (E) : cu excentricitatea = p a2 b2 : a x2 y 2 + 2 a2 b 1 = 0. t 2 [0.

b]: a)3 kf 00 k : 12 . lungimea orbitei Pamantului in jurul Soarelui se determina prin calculul aproximativ al integralei l(P ) = 4aE( .Integralele eliptice de genul I. b] este cunoscuta estimarea clasic¼. ) = 4a 2 unde = 0. Liouville a aratat ca pentru nici o integrala eliptica in sensul lui Legendre primitiva nu se poate obtine sub forma …nita (este suma unei serii de puteri). 5. 1 2 sin2 tdt. a jR(f )j b 2 a $(f . 016729 si a = 149. integralele eliptice nu se pot calcula exact. 1). b] ! R. ') = Z' 0 E(k. are loc egalitatea. b] f 2 C 1 [a. b 2 a ): Pentru f 2 C 2 [a. Spre exemplu. daca 4 f 2 Lip[a. II si III in sensul lui Legendre sunt respectiv. a s t a f (x)dx = b 2 a [f (a) + f (b)] + R(f ): Pentru valoarea absolut¼ a restului R(f ) se pot stabili margini superioare. Z2 p 0 dt p 1 k 2 sin2 t . ') = Z' 0 Z' p 0 p dt 1 k 2 sin2 t k 2 sin2 tdt 1 1 + h sin2 t pentru k 2 (0. pentru o func¸ie continu¼ f : [a. Deci. In secolul al XIX-lea J. 6 106 km. Astfel. dac¼ f 2 C[a. b] atunci estimarea se face cu ajutorul modulului de continuitate. F (k. Corespunz¼tor cu a a propriet¼¸ile func¸iei f aceste margini superioare pot … mai apropiate sau mai îndep¼rtate de at t a jR(f )j. a jR(f )j (b În [9] s-au ob¸inut recent urm¼toarele estim¼ri : t a a 8 > L(b a)2 . h 2 R si ' > 0 constante. daca < 4 jR(f )j > (b a)2 kf 0 k : .2 Formula trapezului Zb a Dup¼ cum se ¸tie.

dac¼ a f 2 Lip[a. ¸i s n 1 1 < xn = b 1X In (f. b]. dac¼ a f 2 Lip[a. > dac¼ f 2 C[a. b] 4 > i=0 > > > P > L0 n 1 3 > hi . ) + Rn (f. b] 2 (b a)2 L . b] 12n2 (b a)3 kf 00 k . b] a > 2 2 i > i=0 i > > > n 1 > P 2 > L > hi . b] 4n (b a)3 L0 . ) = hi [f (xi ) + f (xi+1 )]: 2 i=0 Corespunz¼tor diviziunii de mai sus se ob¸ine : a t Teorema: (in [5] si [9]) Formula trapezului corespunz¼toare diviziunii a Zb a este f (x)dx = In (f. n 1. dac¼ a f 2 C 1 [a. b] > 12 > > i=0 > > n 1 > > kf 00 k P 3 > : hi . b] > 4 > > i=0 > < n 1 kf 0 k P 2 jRn (f. dac¼ a f 2 C[a. b]. b]: a 12 i=0 (29) Corolar: (in [5] si [9]) Dac¼ diviziunea a Zb a este echidistant¼ atunci. dac¼ a f 2 C 1 [a. dac¼ f 2 C 2 [a. dac¼ a f 2 C 2 [a. b]: 12n2 (31) . a i(b n a) f (x)dx = b 2n a [f (a) + 2 n 1 X i=1 f (a + ) + f (b)] + Rn (f ) (30) ¸i s jRn (f )j 8 > > > > > < > > > > > : b a $(f . atunci (b a)3 L0 : jR(f )j 12 Considerând o diviziune a intervalului [a. b2na ). dac¼ a f 0 2 Lip[a. iar L0 > 0 este constanta Lipschitz a pentru f 0 .Pentru func¸ii cu derivata Lipschitz are loc: t Teorema: (in [5]) Dac¼ f 2 C 1 [a. )j hi . ). iar pentru estimarea restului avem 8 n 1 > 1 P h $(f . 8i = 0. 1 h ). b] 4n (b a)2 kf 0 k . dac¼ a f 0 2 Lip[a. b] cu f 0 2 Lip[a. : a = x0 < x1 < ::: < xn not¼m hi = xi+1 a xi .

::: si se noteaza prin hp = Sp = f (a) + 2 cu b n a = b 2p a . n. a + kh].Observatie: Formula (30) se poate obtine si integrand formula de interpolare spline poligonala cu noduri echidistante. n. k = 1. ak = a + khp . 2 1) hp+1 ) . 2. ::: n 1 X k=1 f (ak ) + f (b). 1. Formula de cuadratura a trapezelor este Zb a f (x) dx = b 2n a " f (a) + 2 m 1 X k=1 f (a + kh) + f (b) + Rn (f ) : # 2. Numim formula de cuadratura generalizata a trapezelor formula de cuadratura obtinuta prin aplicarea formulei de cuadratura a trapezului pe …ecare subinterval [a + (k 1)h. unde h = b na : 1. a < 12 < b. 2. k = 0. Daca f 2 C 2 [a. atunci urmatoarele formule de recurenta au loc hp+1 = Sp+1 = Sp + 2 deci 2 X k=1 p hp . (b a)3 (b a) h2 M2 (f ) = M2 (f ): 12n2 12 3. 4. 1. Formula de cuadratura a trapezelor are gradul de exactitate 1. b] ! R cu valori cunoscute pe noduri echidistante din intervalul [a. 1. S0 = f (a) + f (b). Daca se considera in formula de cuadratura a trapezelor jRn (f )j n = 2p . ::: f (a + (2k Zb a f (x) dx hp Sp : 2 . Fie functia integrabila f : [a.b]. b] atunci restul in formula de cuadratura a trapezelor are expresia Rn (f ) = de unde (b a)3 00 f ( )= 12n2 (b a) h2 00 f ( ). p = 0. p = 0. De…nitia 1. p = 0.

i.Algoritmul (Trapez-repetat) Algoritmul calculeaza valoarea aproximativa a integralei trapezelor. scanf("%lf". b. . Programul in limbajul C #include "stdafx. for (i=0. s = 0. np := 1 Pasul 2: p := p + 1 Pasul 3: hp := hp2 1 Pasul 4: sum:=0 Pasul 5: Pentru i = 1.&n). i++) x[i] = a + i * (b-a) / n. scanf("%d". x[100].&b). np 1 executa sum:=sum+f (a + (2i 1) hp ) Pasul 6: sum:=hp sum Pasul 7: Sp := Sp2 1 +sum Pasul 8: np := 2np 1 Pasul 9: Daca jSp Sp 1 j atunci salt la pasul al doilea Pasul 10: Tipareste Sp : STOP. Sp := h2p [f (a) + f (b)] .b-limitele de integrare f-expresia functiei precizia dorita Zb Iesiri: f (x) dx valoarea aproximativa a Zb a f (x) dx prin formula repetata a Pasul 1: (Initializari) p := 0. hp := b a. printf("a="). printf("n=").h" double f(double x) { return 1/( x*x + 1 ). s. } int _tmain(int argc. double a. scanf("%lf". printf("b="). _TCHAR* argv[]) { int n. cu o precizie data : Intrari: a.&a). i<=n.

a se vedea ¸i [16]. a jR(f )j (b a)4 kf 000 k 160 (34) pentru f 2 C 3 [a. în [18] a t a (pentru alte moduri de ob¸inere a acestei formule si a restului.S. b]: Ulterior. [20]). printf("REZ: %lfnnnn".3 Formule de tip Euler-Mac Laurin. a se vedea [3]) : (b a)5 L000 jR(f )j : (35) 720 . Sa se utilizeze formula de cuadratura a trapezului pentru n=10 la calculul integralei Z 1:5 2 t e 2 dt: 0 5. în 2001. N.Dragomir au ob¸inut în [2] o s t estimare ce utilizeaz¼ derivata de ordinul trei. numit¯ ¸i a a a a as formula perturbat¼ a trapezului (în care mai apar pe noduri doar derivate de ordinul întâi) : a Zb a f (x)dx = b 2 a [f (a) + f (b)] (b a)2 0 [f (b) 12 f 0 (a)] + R(f ): (32) Estimarea restului acestei formule de cuadratur¼ a fost ob¸inut¼ de K.Barnett ¸i S.s). } Probleme propuse: 1. t s jR(f )j (b a)5 f IV 720 (33) pentru functii f 2 C 4 [a. s = (b-a) / (2 * n) * s. b]: Recent.for (i=1. Formula perturbat¼ a trapezua lui Uneori se utilizeaz¼ urm¼toarea formul¼ de cuadratur¼ de tip Euler-Mac Laurin. i<=n. au fost condu¸i la o estimare valabil¼ pentru func¸ii de s a t 3 ori derivabile cu derivata de ordinul 3 Lipschitz (având constanta Lipschitz L000 . Sa se utilizeze formula de cuadratura a trapezului pentru n=10 la calculul integralei Z 1 1 dx 0 x+1 si sa se compare rezultatul cu valoarea exacta a acestei integrale ln 2: 2. i++) s = s + f(x[i-1]) + f(x[i]).Petr în 1915. return 0. în 2002.

iar formula se Dac¼ diviziunea In este echidistant¼ atunci hi = h = a a simpli…ca (36) devenind. jRn (f )j (b a)4 kf 000 k : 160n3 (39) Observatie: Formula (32)-(33) se poate obtine si prin integrarea pe [a. Date de intrare: a. hi = xi+1 xi . In )j kf 000 k X 4 h: 160 i=0 i n 1 b a . n 1 se ob¸ine în [2] urm¼toarea formul¼ de cuadratur¼ ( numit¼ t a a a a formul¼ de cuadratur¼ trapezoidal¼ perturbat¼ ) : a a a a Zb a 1X f (x)dx = hi [f (xi ) + f (xi+1 )] 2 i=0 n 1 1 X 2 0 h [f (xi+1 ) 12 i=0 i n 1 f 0 (xi )] + Rn (f.b capetele intervalului de integrare n. Date de iesire : S. n 1. 8i = 0. b] a formulei de interpolare neteda pe portiuni generata pe …ecare subinterval de formula (13). Zb a f (x)dx = b 2n a [f (a) + 2 n 1 X i=1 f (xi ) + f (b)] (b a)2 0 [f (b) 12n2 f 0 (a)] + Rn (f ): (38) Estimarea restului este în acest caz ( conform cu [2]). iar formula (36) se poate obtine prin integrarea pe [a. In ) (36) pentru care restul satisface estimarea jRn (f. numarul nodurilor f functia ce se integreaza II. valoarea aproximativa a integralei III. b] : In : a = x0 < x1 < ::: < xn 1 < xn = b. n (37) 8i = 0. b] a formulei de interpolare Hermite cu doua noduri duble (12). Pasii algoritmului Rb a iar inegalitatile (35) si (33) ne conduc la estimarile 8 a)5 L000 > (b 720n4 < jRn (f )j > (b a)5 kf IV k : 720n4 (40) : f (x)dx . Formula (38) conduce la urmatorul algoritm : Algoritmul cuadraturii perturbate a trapezului I.Considerând o diviziune a intervalului [a.

4 Formula lui Simpson Zb a Formula de cuadratura a lui Simpson este f (x) dx = b 6 a f (a) + 4f a+b 2 + f (b) + R (f ) . si sa se compare cu rezultatul de la paragraful precedent si cu cel dat in tabelele de valori ale functiei integrale a lui Laplace. b]. Probleme propuse : 1. unde restul formulei. 2k k = 1. n calculeaza T := T + [f (xi 1 ) + f (xi )] Pasul 3. De…nitia 1. cand f 2 C 4 [a. Pentru i = 0. Numim formula de cuadratura a lui Simpson repetata formula de cuadratura obtinuta prin aplicarea formulei de cuadratura a lui Simpson pe …ecare subinterval [a + 2 (k 1) h. Sa se utilizeze formula de cuadratura a perturbata a trapezului pentru n=10 la calculul integralei Z 1:5 e t2 2 dt.Pasul 1. Tipareste S. unde h = b2na : . (b 2n a) T (b a)2 [f 0 (b) 12n2 f 0 (a)]: b n a STOP. Calculeaza T := 0 Pentru i = 1. n calculeaza xi := a + i Pasul 2. n. Calculeaza S := Pasul 4. a < 2880 < b. 2. 0 5. Sa se scrie un program in limbajele C si Pascal pentru algoritmul cuadraturii perturbate a trapezului. este R (f ) = astfel pentru evaluarea erorii avem jR (f )j (b a)5 M4 (f ): 2880 (b a)5 (iv) f ( ).

1. Formula de cuadratura repetata a lui Simpson are gradul de exactitate 3. ::: (2) Sp = (2) n 1 X k=1 f (a + 2khp ) . ::: cu S0 = 0. b] atunci restul in formula de cuadratura repetata a lui Simpson are expresia (b a) h4 (iv) (b a)5 (iv) f ( ) . atunci au loc relatiile de recurenta 1 hp+1 = hp . 4. 2. ::: si se noteaza prin hp = cu S0 = f (a) + f (b). 2 (2) (1) Sp+1 = Sp + Sp . p = 0. 1. Daca f 2 C 4 [a. a < < b. p = 0.1. ::: 2p+1 = f (a + (2k 1) hp ) . Formula de cuadratura repetata a lui Simpson este Zb a f (x) dx = b 6n a " f (a) + 4 n X k=1 f (a + (2k 1) h) + 2 n 1 X k=1 f (a + 2kh) + f (b) + Rn (f ) : # 2. 2. p = 0. 1. (2) deci Zb a f (x) dx hp (2) (1) S0 + 2Sp + 4Sp : 3 Algoritmul (Simpson-repetat) Zb a Algoritmul calculeaza valoarea aproximativa a integralei f (x) dx prin formula repetata a . f ( )= Rn (f ) = 2880n4 180 de unde (b a)5 (b a) h4 jRn (f )j M4 (f ) = M4 (f ): 2880n4 180 3. (1) Sp n X k=1 b 2n a = b a . p = 0. 2. 1. 2. Daca se considera in formula de cuadratura repetata a lui Simpson n = 2p .

cu o precizie data : Intrari: a. b. (2) (1) (2) (1) (2) (1) . scanf("%d". x[1000].i. i++) x[i] = a + i * (b-a) / n. scanf("%lf".&a). n0 := 1.b-limitele de integrare f-expresia functiei precizia dorita Zb Iesiri: f (x) dx-valoarea aproximativa a Pasul 1: (Initializari) p := 0. printf("b="). s = 0.h" double f(double x) { return 1 /( x + 1 ).&b). np executa (1) (1) Sp := Sp + f (a + (2k 1) hp ) Pasul 8: Ip := h3p S0 + 2Sp + 4Sp Pasul 9: Daca jIp Ip 1 j atunci salt la pasul al doilea Pasul 10: Tipareste Ip : STOP. _TCHAR* argv[]) { int n. scanf("%lf". S0 := f (a) + f (b). S0 := f (a + h0 ). printf("a="). I0 := h S0 + 2Sp + 4Sp 3 Pasul 2: p := p + 1 Pasul 3: hp := 1 hp 1 2 Pasul 4: np := 2np 1 (2) (2) (1) Pasul 5: Sp := Sp 1 + Sp 1 (1) Pasul 6: Sp := 0 Pasul 7: Pentru k := 1. for (i=0. double a. i<=n. printf("n="). Programul in limbajul C #include "stdafx. S0 := 0. } int _tmain(int argc. s.lui Simpson. hp := b 2 a .&n).

= 10 2 . s = (b-a) / (6 * n) * s. i<=n. 1 2.20lfnnnn". i++) s = s + f(x[i-1]) + f(x[i]) + 4 * f( (x[i]+x[i-1])/2 ). folosind formulele repetate ale Z1 0 trapezului. Sa se scrie un program in limbajul Pascal pentru algoritmul lui Simpson. . printf("REZ: %22.for (i=1. cu o precizie = 10 1 . = 10 3 . } Probleme propuse 1.s). respectiv a lui Simpson. return 0. Se considera functia f (x) = 1+x : Sa se calculeze valoarea aproximativa a integralei f (x) dx.

Intrari: n-ordinul matricei A-matricea careia i se calculeaza determinantul Iesiri: det (A) Pasul 1: det := 1 Pasul 2: Pentru p := 1. ng : Daca acest element nu exista atunci det := 0: STOP. elemente nule sub diagonala principala. si a inversei A 1 : Calculul determinantului detA se poate face prin mai multe metode. Una dintre cele mai e…ciente metode.2 : Cauta un element ajp 6= 0. cu j 2 fp + 1.3 Pasul 2. cu ajutorul transformarilor.1: Pentru i := p + 1. n pp (p) (p) 1. consta in a face.6 6. n 1 executa Pasul 2.4 : det := det app Pasul 3: det := det ann Pasul 4: Tipareste: det: STOP.1 : Daca app 6= 0 salt la pasul 2. ::: ::: (n) : : : ann (1) deci (n) detA = a11 a22 ::: ann : (1) (2) Transformarile necesare sunt date de relatiile: aij := aij .3. j = p + 1. n: In caz contrar sunt necesare unele interschimbari de linii si/sau coloane. n: Conditia de realizare a metodei este app 6= 0. p = 1. p = 1. detA. Algoritmul (DET) Algoritmul calculeaza determinantul unei matrici A. . n executa aip aij := aij apj app Pasul 2. i. Pasul 2. :::. altfel det := det: Schimba linia p cu linia j.j=1. aij (p+1) (1) := aij (p) apj (p) aip =a(p) .1 Metode numerice in algebra liniara Calculul determinantului A = (aij )i. pentru i. adica a11 a21 ::: an1 a12 a22 ::: an2 ::: ::: ::: ::: a1n a2n ::: ann a11 a12 (2) 0 a22 ::: ::: 0 0 (1) (1) detA := = : : : a1n (2) : : : a2n . j = 1. din punct de vedere al volumului de calcul. n.n Fie A o matrice patratica de ordinul n cu detA 6= 0: Se pune problema calculului determinantului.

1 : Pentru i = 1. i = 1. n.5. ng : Daca un astfel de element nu exista atunci tipareste: ” este nesingulara” STOP. n 1) (p) (p 1) apj aip . 2n executa aij := aij apj c Pasul 3: Pentru i = 1. 2n executa Pasul 1.1: c := aip Pasul 2. 2n.3 : c := app Pasul 2. A . n. j 2 fp + 1.j=1.5 : Pentru i = 1. n + i = j 0.1 : Daca i 6= p atunci Pasul 2. i 6= p (n) (n) 1 a1. p = 1.1. :::. n executa Pasul 2.2 : Se cauta un element ajp 6= 0.5.n+1 : : : a1.5. 2n aij := aij (p) (p apj := apj =app .2 Calculul inversei unei matrici Fie A o matrice patratica de ordinul n A = (aij )i.n Transformarile folosite sunt: aij := aij . n + i 6= j. n. j = n + 1.1 : Daca app 6= 0 se trece la pasul 2. i. Intrari: n-ordinul matricei A-matricea careia i se calculeaza inversa Iesiri: A 1 sau un mesaj de eroare daca A este nesingulara Pasul 1: Pentru j = n + 1.6. i = 1. n executa Pasul 2. 2n executa apj := apj =c Pasul 2. n executa Daca n + i = j atunci aij := 1 altfel aij := 0 Pasul 2: Pentru p = 1. aij = ( (p) (p 1) (0) (0) 1.2: Pentru j = p. j = p + 1.n+1 : : : an.1. j = 1. n executa . 2n . altfel schimba linia p cu linia j in intreaga matrice (avand 2n coloane) Pasul 2.2n ::: ::: A: = @ ::: (n) (n) an.4 : Pentru j = p.2n (p 1) La sfarsitul acestor calcule obtinem: A 1 0 Algoritmul (INV) Algoritmul calculeaza inversa unei matrici A.3 Pasul 2. j = p + 1.

p = 1. se poate folosi o pivotare (p) partiala. :::. Asigurarea conditiilor app 6= 0. Observatia 2. (b) @ 3 3 2 A . p = 1. A = (aij )i. Astfel.n . Astfel.p = max aip . p = 1. n : (p) . aij bi (p+1) (1) (1) := aij := bi (p) apj (p) aip =a(p) . p (p) pentru p = 1. 2. pentru a asigura ca app 6= 0. Sa se scrie cate un program in limbajul C pentru algoritmii DET si INV. n: (p) Observatia 1. n. in ipoteza ca app 6= 0. n 1. cu det (A) 6= 0: Metoda lui Gauss consta din doua etape: 1) transformarea sistemului dat intr-un sistem triunghiular echivalent: n X i=p apj xj = b(p) . bi := bi . n executa aij1 := aij+n Pasul 4: Tipareste A 1 : STOP.1 : Pentru j = 1. Pentru a evita unele schimbari de coloane. se schimba linia p cu linia ip pentru care avem n o (p) aip . daca app = 0. (p) elementele matricei acestui sistem …ind date de relatiile: aij := aij . Sa se calculeze determinantul si (daca este posibil) 1 inversa urmatoarelor matrici: 0 0 1 0 1 1 4 2 5 3 2 1 2 1 3 B 3 C C: @ 2 1 0 A . n. elementul aip jp va ocupa pozitia (p. se determina. Sa se compare rezultatele obtinute cu cele furnizate de procedurile DET si INV. elementul cu valoarea absoluta maxima. se poate face prin procedeul (p) (p) pivotului maxim.j=1. iar i. pp (p) (p) (p+1) (p) (p) b(p) aip =app . (c) det 0 0: = 1 0 1 1 5 7 0 0 1 1 5 A 2 A si A 1 = 1 @ 1 A 1=@ 0 1 6 3 3 3 1 2 1 3. j = p + 1. b = (b1 . n. Fie acesta aip jp : Schimband intre ele liniile p si ip respectiv coloanele p si jp . (b) det = 6. bn )T . 6. n. Probleme propuse 1. (p) i. dintre elementele aij . i = p + 1.3 Metoda lui Gauss pentru sisteme liniare Fie sistemul Ax = b. j = 1.Pasul 3. Matricea A …ind nesingulara.p). n. i. j = p. (c) B 2 1 4 (a) @ 3 2 1 1 A 1 0 0 1 2 1 3 1 0 5 R: (a) det = 1. acest element este diferit de zero.

3: Schimba linia i cu linia k din matricea A Pasul 2. k + 1. Pasul 4: Pentru i = 1. Pasul 2. STOP. q = k. ng astfel incat: jaij j = max jar. Sa se rezolve sistemele: . n ! executa n X 1 xi = aii bi aij xj j=i+1 Pasul 5: Ordoneaza in mod crescator componentele vectorului P si corespunzator elementele vectorului x Pasul 6: Tipareste x. 1: Algoritmul rezolva sistemul liniar Ax = b prin metoda lui Gauss. sau un mesaj de eroare. Sa se scrie un program in limbajele C si Pascal pentru algoritmul lui Gauss. in cazul in care sistemul nu e compatibil determinat Pasul 1: Pentru k = 1.7.3: bi := bi bk temp Pasul 3: Daca ann = 0 atunci Tipareste:” Sistemul nu este compatibil determinat” STOP. n Pasul 2. j 2 fk. n executa aij := aij temp akj Pasul 2. r. nn # n X (p) apj xj . executa: pk := k Pasul 2: Pentru k = 1.7.6: Schimba componentele i si k ale vectorului P. alegandu-se drept varianta de implementare aceea a pivotului maxim. i = p.In cazul in care aip = 0.7: Pentru i = k + 1. 2.7. executa Pasul 2. .1: determina i. p = n j=p+1 (p) xp = Algoritmul (Gauss) 1 (p) app " b(p) p 1. n. n. n 1.5: Schimba coloana j cu coloana k in matricea A Pasul 2.4: Schimba componentele i si k in vectorul b Pasul 2. .2: Daca aij = 0 atunci Tipareste:” Sistemul nu este compatibil determinat” STOP. Intrari: n-ordinul matricei A-matricea sistemului b. n executa aik Pasul 2. :::.. se va face uz si de schimbarea coloanelor. 2) rezolvarea sistemului triunghiular folosind metoda substitutiei inverse: (n) xn = bn =a(n) .q j .vectorul termenilor liberi Iesiri: x-vectorul solutiilor. Pasul 2.2: Pentru j = k + 1.1: temp:= akk Pasul 2. Probleme propuse 1.

n: Astfel. 2x1 + 4x2 + 3x3 = 9 x1 + 2x2 + 2x4 = 5 2x1 + 2x2 + 2x3 = 6 x1 x2 = 2 : 3x1 + x2 + 2x3 = 8 6. 8i = 1. t x= B =B @ ::: an1 ann 0 ::: an2 ann ::: ::: ::: ::: ::: 0 1 C C A ¸i s 1 1 b1 + ab11 = @ ::::: A n bn + abnn (42) x+ : Dac¼ exist¼ un aii = 0. n) se pot exprima în func¸ie de A ¸i b: Aceasta se poate realiza întotdeauna astfel : t s Dac¼ aii 6= 0. unde =( ij )i.j=1. n. 8i = 1. atunci se rearanjeaz¼ ecua¸iile ¸i se renumeroteaz¼ necunoscutele a a a t s a a s astfel încât sistemul s¼ poat¼ … adus la forma în care aii 6= 0. odat¼ ajun¸i a a . n: 0 a21 a22 ob¸inem forma sistemului. aii i = 1. =( 1 .(a) 8 > > < (b) (c) > > : 8 < : > > : 8 > > < 2x1 + x2 4x3 + x4 = 0 4x1 + 3x2 + 5x3 2x4 = 10 . atunci împ¼r¸ind …ecare ecua¸ie de ordin i cu aii . ob¸inem sistemul a at t t echivalent fxi = Notând bi aii ai1 x1 aii 0 ::: ai.4 Metoda iterativ¼ a lui Jacobi pentru sisteme liniare a 8 < a11 x1 + ::: + a1n xn = b1 :::::::::::::::::::::::::: : an1 x1 + ::: + ann xn = bn 0 Consider¼m sistemul liniar a (41) 1 0 1 a11 ::: a1n x1 ce poate … scris sub forma vectorial¼ A x = b.n . unde A = @ ::: ::: ::: A . x1 x2 + x3 x4 = 3 x1 + 3x2 3x3 + 3x4 = 1 2x1 + 4x3 + x4 = 7 2x2 + 4x3 + x4 = 7 .i 1 xi aii a12 a11 1 ai. :::.i+1 xi+1 aii a1n a11 a2n a22 ::: 0 ain x n + bi . x = @ ::: A a an1 ::: ann xn 0 1 b1 ¸i b = @ ::: A : Presupunem c¼ det A 6= 0: s a bn Putem scrie sistemul (41) sub forma echivalent¼ x = a x + .

2. 1 k k1 8k 2 N : (45) Ax = b. :::. x(0) = @ ::: A : Astfel. n: 0 (44) x Se considera sistemul x(k) 1 k kk 1 k k1 . atunci pe componente (43) devine (k+1) xn (k+1) fxi = (0) 1 x1 Itera¸iile (43) vor porni de la un vector ini¸ial arbitrar. 1. k = 1. a s a t ce este limita ¸irului de…nit prin recuren¸a în (43) indiferent de vectorul ini¸ial x(0) : Dac¼ s t¼ t a (0) x = atunci are loc urm¼toarea estimare a erorii : a n X j=1 ij xj (k+1) + i . i = 1. se va putea aplica sistemului liniar metoda aproxima¸iilor t succesive. sirul x(k) . metoda se numeste convergenta.la forma (42) a sistemului (41). k = 1. 2. ::: (43) (k+1) 1 x1 = @ ::: A . Obtinerea unei metode iterative are la baza scrierea matricei A sub forma A=P +Q si a sistemului sub forma P x = Qx + b: Daca x(0) este valoarea de pornire. ob¸inând itera¸iile t t x(k+1) = Dac¼ not¼m x(k+1) a a 0 x(k) + .j=1. b = (b1 . ::: converge la x . Aplicând principiul de punct …x al lui Banach vom ob¸ine condi¸ii t t su…ciente de convergen¸a a acestui proces. 2. ::: Proprietatea 1.n . k = 0. este de…nit t t (0) xn un proces iterativ Picard. A = (aij )i. 1. exista in mod unic x(m+1) daca si numai daca exista P si avem: x(m+1) = P 1 Qx(m) + P 1 b: (47) 1 (46) . Pentru x(m) dat. ::: de aproximatii ale solutiei x : Daca sirul x(k) . ::: poate … generat astfel: P x(m+1) = Qx(m) + b. k = 1. Elementul x(k) al sirului se numeste aproximatie de rang k. 2. atunci sistemul (41) are o unic¼ solu¸ie x 2 Rn . : t¼ Teorema: Dac¼ det A 6= 0 ¸i k k1 < 1. bn )T : pentru care construim o metoda iterativa de aproximare a solutiei x a sistemului este o metoda care plecand de la o aproximatie initiala x(0) (valoare de pornire) genereaza un sir x(k) . m = 0.

Convergenta metodei iterative este asigurata daca kP 1 Qk < 1. conditia de convergenta pentru orice valoare de pornire x(0) . scrierea sub forma (46) a matricei A trebuie sa tina seama de conditia ca sa existe P 1 : Proprietatea 2. Conditia de oprire a calculului aproximatiilor succesive ale solutiei este x(k) x(k 1) 1 kP 1 Qk eps.j6=i ! .Prin urmare. este de exemplu: ( n ) X aij In PJ 1 A 1 = max = c < 1. Intrari: n-ordinul matricei A-matricea sistemului b. cea prezentata 0 a11 B 0 P := PJ = B @ ::: 0 1 = aii la inceputul acestui paragraf. kP 1 Qk trebuie sa …e <1 pentru ca metoda sa convearga. n: ::: ::: ::: A 0 : : : ann n X Relatia (47) poate … scrisa sub forma detaliata: (m+1) xi bi aij (m) xj j=1. i = 1. n: In acest caz. i = 1. kP 1 Qk k k …ind una dintre normele pentru indice.matricea termenilor liberi eps-precizia norma kP 1 Qk (daca nu. n executa . Algoritmul metodei lui Jacobi Calculeaza o aproximatie a solutiei sistemului Ax = b cu precizia eps folosind metoda lui Jacobi. 1 i n aii j=1. Metoda lui Jacobi. k k …ind una dintre normele unei matrice. aii 6= 0. In functie de alegerea matricei P avem diverse metode iterative. se obtine pentru 1 0 ::: 0 a22 : : : 0 C C .j6=i adica matricea A sa …e strict diagonal dominanta. se poate calcula in program) x(0) -aproximatia initiala Iesiri: x(m) -aproximatia …nala Pasul 0: m := 0 Pasul 1: m := m + 1 Pasul 2: Pentru i = 1.

(2) Stiind ca valoarea exacta a solutiei este x = 1 . A = 0 1 2 1 (1) Sa se determine o solutie aproximativa a sistemului folosind: (a) Metoda lui Jacobi cu 3 pasi. 1. 0 1 0 1 2 1 0 1 @ 1 2 A si b = @ 0 A : 1 3. 2. 1.j6=i Pasul 3: Daca x x altfel mergi la Pasul 1. Fie sistemul Ax = b. Probleme propuse (m 1) n X aij xj 1 kP (m 1) ! eps atunci STOP kP 1Q 1 Qk k 1. 0001: Comparati rezultatele. Ca si aproximatie initiala se va folosi x(0) = 0: Precizia cu care se cer solutiile este = 0. b = B 2 C: A=B B 1 0 C B 2 C 0 4 1 0 C B B C @ 1 A @ 0 1 0 1 4 1 A 0 0 1 0 1 4 2 T Acest sistem are solutia exacta x = (1. studiati erorile ce apar.. Sa se scrie un program in limbajele C si Pascal pentru algoritmul lui Jacobi. 1. Se0 urmatorul sistem liniar. Ax = b : 0 1 da 1 4 1 0 1 0 0 2 B 1 4 C B 1 C 1 0 1 0 C B B C B 0 B C 1 4 0 0 1 C C.Pasul 2. 0 1 1 @ 1 A . 1.1: xi (m) = 1 aii (m) bi j=1. 1) : Sa se rezolve sistemul folosind metoda iterativa a lui Jacobi.

pentru solutia x . b0 ] [a1 . b) a ecuatiei f (x) = 0. Intrari: functia f capetele intervalului: a.1 Metode numerice pentru ecua¸ii neliniare t Metoda injum¼t¼tirii intervalului a a¸ Metoda injumatatirii pentru aproximarea solutiei izolate x 2 (a. Observatia 3.b] ecuatia are doar o singura solutie (una din conditii e f (a) f (b) < 0). bn+1 ] = [an . Pasul 3: Daca f (b) f (c) 0 atunci a := c altfel b := c Pasul 4: Mergi la Pasul 1. etc. Se poate intampla ca in construirea sirului de intervale sa avem an = x sau bn = x . daca f (a)f 2 [ a+b . . b]. Sturm. consta in construirea unui sir de intervale [a0 . b]. Observatia 4.7 7. Inainte de aplicarea acestui algoritm trebuie sa ne asiguram ca in intervalul [a. Aceasta se poate face folosind una din metodele de izolare a radacinilor unei ecuatii: sirul lui Rolle. b0 ] = [a. xj b 2n a . STOP. avem ca jxn daca xn = an sau xn = bn : Algoritmul (Metoda injumatatirii) Algoritmul aproximeaza solutia izolata x 2 [a. an +bn ]. prin metoda injumatatirii intervalului. f 2 C[a. respectiv prin adaos. bn ] ::: astfel incat x 2 [an . f 2 C[a. a+b ]. daca f (an )f 2 [ an +bn . b] a ecuatiei f (x) = 0. b]. bn ] : Pentru aceasta se considera [a0 . b precizia dorita: eps Iesiri: Aproximarea radacinii ecuatiei: SOL Pasul 1: Fie c := a+b 2 Pasul 2: Daca b c eps atunci SOL:=c. Deoarece bn an = b2na . > 0: Observatia 1. b1 ] ::: [an . daca f (a)f 2 a+b 2 a+b 2 < 0. Observatia 2. b]: In continuare se ia [a1 . b1 ] = In general avem [an+1 . Sirurile (an )n 0 si (bn )n 0 reprezinta siruri de aproximatie prin lipsa. > 0: < 0. caz in care procedeul se incheie. daca f (an )f 2 an +bn 2 an +bn 2 [a. bn ].

notând cu " eroarea absolut¼ maxim¼ admis¼. În plus. cea mai mare radacina a ecuatiei: x6 x 1 = 0: 3. atunci ecua¸ia (48) are în J o unic¼ solu¸ie s a t a t x . continu¼. adic¼ jxn x j ".2 Metoda aproxima¸iilor succesive pentru ecuatii scalare t ' (x) = x (48) R. din (51) se ob¸ine a a a a t jxn xn 1 j 1 q q ". Pentru x0 2 J ( unde J a prin recuren¸a ¸irul aproxima¸iilor succesive t¼ s t xn+1 = ' (xn ) . condi¸ie care constituie un criteriu de oprire a calculului.b]. Folositi programul pentru a calcula cea mai mica radacina pozitiva a ecuatiei x tgx = 0: 7. 2..b]. iar (xn )n2N ¸irul aproxima¸iilor succesive generat s t 1 0 de ' pentru un x0 dat. t Observatia 2: Condi¸ia de convergen¸a a procedurii iterative Picard este dat¼ de inet t¼ a 0 galitatea k' k1 < 1: R¼sturnarea acestei inegalit¼¸i poate conduce la divergen¸a itera¸iilor a at t t . care converge la x : Dac¼ ' 2 C (V (x )) ¸i j' (x)j < q. astfel încât ' (x) 2 J. Probleme propuse 1. Folosind procedura de la 1. Sa se scrie un program in C pentru algoritmul prezentat. interval compact ¸i ' : J ! R. este interval ) …xat se construie¸te s n 2 N: (49) Consider¼m ecua¸ia a t cu ' : R ! R. Utilizand principiul de punct …x al lui Banach se obtine: Teorema 1: Fie J R. 8x 2 J. are loc estimarea erorii : s jxn xj qn 1 q jx1 x0 j . a s atunci q jxn x j jxn xn 1 j . 8n 2 N : (51) 1 q Observatia 1: Propozi¸ia precedent¼ precizeaz¼ o estimare a posteriori ¸i d¼ posibilitatea t a a s a stabilirii unui criteriu de oprire a procedurii iterative Picard.Observatia 5. 8x 2 V (x ) . 8x 2 J s 1 0 ¸i ' 2 C (J) : Dac¼ j' (x)j q < 1. care este limita ¸irului (49). sa se aproximeze cu 4 zecimale exacte. algoritmul de mai sus va converge spre una din radacinile ce se a‡ in a [a. Astfel. 8n 2 N : (50) Folosind teorema lui Lagrange a cresterilor …nite se poate demonstra: Teorema 2: Fie x un punct …x al lui '. Chiar daca nu ne-am asigurat ca f (x) = 0 are o singura solutie in [a. daca f (a) f (b) < 0.

ecua¸ia f (x) = 0 se pune sub forma echivalent¼ a t a x = x f (x) . c¼ci ecua¸ia f (x) = 0 a s a t poate … pus¼ sub forma f (x) = 0 ).Picard. 8x 2 J ( acest lucru se poate realiza dac¼ f 0 (x) 6= 0 ¸i atunci când f 0 (x) < 0. Dac¼ k'0 k1 < 1 ¸i '0 (x) > 0. Pentru n 2 N. Apoi. M1 > 0 astfel încât a 0 < m1 f 0 (x) M1 . Date de iesire: xn ultima iteratie ce aproximeaza solutia cu eroarea admisa III. ¸i se va pune a s ' (x) = x f (x) : Pentru a determina constanta > 0 pornim de la inegalitatea 0 '0 (x) = 1 f 0 (x) q<1 m 1 s t ceea ce va conduce la a alege = M1 ¸i atunci vom ob¸ine q = 1 M1 < 1: 1 Observatia 4: Dac¼ intervalul compact J nu con¸ine originea ¸i func¸ia ' este bijectiv¼. atunci ¸irul (49) converge monoton c¼tre x . Calculeaza x1 = ' (x0 ) Pasul 2. Cat timp jxn Pentru n 0 Calculeaza xn+1 = ' (xn ) Pasul 3. iar procedura iterativa Picard corespunz¼toare este s t t a convergent¼. a s s a 0 0 descresc¼tor dac¼ x0 > x ¸i cresc¼tor dac¼ x0 < x : Dac¼ k' k1 < 1 ¸i ' (x) < 0. dac¼ f 2 C 1 (J) ¸i presupunând c¼ a a t a s a exist¼ m1 . unde > 0 se alege astfel încât s¼ avem k'0 k1 < 1. De aceea se pune ecua¸ia (48) sub forma echivalent¼ x = ' 1 (x) = (x) : t a Vom … condu¸i la solu¸ia ecua¸iei (48). pentru care jxn Tipareste xn : STOP. a a s a a a s atunci ¸irul (49) converge oscilant c¼tre x : s a Observatia 3: Ecua¸ia f (x) = 0 poate … pus¼ sub forma (48) ¸i se poate g¼si func¸ia ' t a s a t astfel încât s¼ …e îndeplinit¼ condi¸ia k'0 k1 < 1: Astfel. xn 1 j < " xn+1 j " . 8x 2 J. Pasii algoritmului Pasul 1. 8x 2 J. Date de intrare: x0 iteratia initiala ' functia contractie " > 0 eroarea admisa II. deoarece a 1 1 = q < 1: j 0 (x)j = 0 ' ( (x)) k Algoritmul metodei aproximatiilor succesive I. a t s t a 0 atunci ecua¸ia (48) poate … rezolvat¼ ¸i când j' (x)j k > 1: În acest caz procesul iterativ ar t as not deveni divergent.

xn ) :::::::::::::::: . atunci ecua¸ia (53) are jjn a s t D o solu¸ie unic¼ x astfel încât ¸irul de itera¸ii Picard (54) este convergent ¸i pentru orice t a s t s (0) x 2 D. x(1) . j = 1. x 2 D. :::. (53) unde x = (x1 . Folosind metoda aproximatiilor succesive sa se aproximeze solutia din intervalul (1. 'n (x1 . :::. xn ) 2 D: Acest sistem poate … pus sub forma vectorial¼ a x = ' (x) . xn ). xn ) unde D (x1 . 8i = 1.3 Metoda aproxima¸iilor succesive pentru sisteme neliniare t Consider¼m sistemul de ecua¸ii : a t 8 < x1 = '1 (x1 . '0 = @ xj . n ¸i t a a @ 'i s¼ g¼sim constanta de contrac¸ie cu ajutorul normei matricii Jacobi a lui '.Probleme propuse : 1. n = max 1 i n max x2D @'i (x) : @xj Aplicând principiul de punct …x al lui Banach si varianta pe Rn a teoremei cre¸terilor s …nite a lui Lagrange se ob¸ine : t Teorema 1: Dac¼ 'i 2 C 1 (D) . 2. k' k1 = 0 n X j=1 @'i @xj . i. :::. m 2 N: (54) Convergen¸a acestui ¸ir este asigurat¼ de calitatea de contrac¸ie a func¸iei ': Pentru a ob¸ine t s a t t t s calitatea de contrac¸ie pentru ' va … su…cient s¼ presupunem c¼ 'i 2 C 1 (D) . :::. 'i : D ! R sunt func¸ii continue pe D astfel încât t ('1 (x1 . :::. : xn = 'n (x1 . în spa¸iul de matrici putem considera norma Cebî¸ev.2) a ecuatiei x4 x 1 = 0: 7. a a t t s j = 1. n: Astfel. (52) Rn este un domeniu. i. n ¸i k'0 k1 q < 1. 8i = 1. :::. xn ) ¸i ' = ('1 . x(m) . xn )) 2 D. Sa se construiasca un program in limbajele C si Pascal pentru metoda aproximatiilor succesive. ::: ce porne¸te de la o valoare aleas¼ x(0) ¸i se construie¸te prin recuren¸a : s a s s t x(m+1) = ' x(m) . :::. xn ) 2 D. 8(x1 . :::. lim x(m) = x : m!1 . 'n ) : s În conformitate cu metoda aproxima¸iilor succesive expus¼ în capitolul precedent se ob¸ine t a t ¸irul de itera¸ii Picard : s t x(0) . :::. :::.

G : D ! R. iar atunci matricea M se va determina astfel încoot '0 x(0) = 0.În plus. y0 ) 2 D: Daca sirul (xn . yn ) yn+1 = G(xn . . G sunt continue pe D. G : D ! D sunt continue. r cccond x 2 S x . y). Notând ' (x) = x + M f (x) aceast¼ ecua¸ie devine x = ' (x) : Matricea a a t M se va determina astfel încât metoda generat¼ de operatorul I + M f s¼ convearg¼. deoarece acesta poate … adus¼ la forma x = x + M f (x). yn ). cu derivatele partiale de ordinul intai continue pe D si kW k = M < 1. s Observatia 1: Dac¼ aplica¸ia ' este de…nit¼ pe o submul¸ime compact¼ a lui Rn . domeniul D R2 continand solutia izolata (x . y ) : @F @x @G @x @F @y @G @y . yn )n 0 este convergent si F. y ) a sistemului. consta in construirea sirului de puncte (xn . Daca F. yn )n 0 dupa regula xn+1 = F (xn . a a adic¼ M = (f 0 x(0) ) 1 : Dac¼ det(f 0 x(0) ) = 0. unde M este o a matrice nesingular¼. r : Observatia 2: Metoda aproxima¸iilor succesive poate … aplicat¼ ¸i ecua¸iilor vectoriale t as t de forma f (x) = 0. cu (x0 . În acest a a a 0 1 0 (0) scop. are loc estimarea apriori a erorii de aproximare : x(m) x qm 1 1 q x(0) x(1) 1 . y ) : Proprietatea 1. (55) unde k k1 este norma Cebî¸ev din Rn : s Observam c¼ o estimare a posteriori este a x(m) x q 1 1 q x(m) x(m 1) 1 ceea ce va furniza ¸i un criteriu de oprire a procesului iterativ Picard. y) y = G(x. atunci se va alege o alt¼ valoare de a pornire x(0) : Observatia 3: Fie sistemul de dou¼ ecua¸ii scris sub forma a t x = F (x. unde F. atunci limita sirului este solutia (x . ca de a t a t a exemplu S x(0) . yn ) ! (x . vom avea s 0 0 ' (x) = I + M f (x) . y) = atunci (xn . r > 0g atunci pentru convergen¸a procesului iterativ trebuie îndeplinit¼ ¸i condi¸ia x(0) ' x(0) t as t (m) (0) (m) (0) (1 ) r ce va asigura c¼ ' x a 2 S x . 8m 2 N . r = fx 2 Rn : x x(0) r. în baza condi¸iei k' k1 t q < 1. când f 2 C (D) ¸i det(f x ) 6= 0. W (x.

y0 ) y1 := G(x0 . y0 ).h> #include <conio. atunci au loc evaluarile jxn xj Mn jx1 1 M x0 j si jyn y j Mn jy1 1 M y0 j : Algoritmul metodei aproximatiilor succesive pentru sistem neliniar I. yn : STOP.h> double x[1000]. pentru care jxn xn 1 j < " si jyn yn 1 j < " Tipareste xn . yn ) yn+1 := G(xn . Calculeaza x1 := F (x0 . int i.y[1000]. Programul in limbajul C #include "stdafx. yn ). max + max D D D @x @y @x @y : Proprietatea 2.Observatia 4. Pasii algoritmului Pasul 1. Pentru n 2 N. } . Pasul 3.h> #include <math.h" #include <stdio. ‡ F(‡ v) oat oat { return 5-v.epsilon. Date de iesire: xn si yn ultima iteratie ce aproximeaza solutia cu eroarea admisa III. Cat timp jxn xn+1 j " sau jyn yn+1 j " Pentru n 0 Calculeaza xn+1 := F (xn . Pasul 2. Date de intrare: x0 si y0 iteratia initiala F si G functiile din sistem " > 0 eroarea admisa II. Un exemplu de norma ce poate … considerata este kW kM = max max D @F @F @G @G + max . Daca sunt satisfacute conditiile dinainte cu norma k km .

} int main(int argc. i=0.&x[0]).&epsilon). getch(). printf("x0="). char* argv[]) { printf("epsilon="). Presupunem ca ecuatia are o solutie unica x 2 (a. atunci limita sirului este x : Observatia 2. dupa regula f (xn ) xn+1 = xn f 0 (xn ) cu x0 = a sau x0 = b. ). } Tema : Sa se rezolve sistemul x2 + y 2 = 10 p : x+y =2 7. x[1]=F(y[0]). De…nitia 1. while ((abs(x[i+1]-x[i])>=epsilon)&&(abs(y[i+1]-y[i])>=epsilon)) { i++.y[i+1]). scanf("%lf". Daca sirul (xn )n 0 este convergent si f 2 C 1 [a. b) ( . unde f : ( . pentru solutia x 2 (a. y[i+1]=G(x[i]). Aproximanta initiala x0 2 [a. ) ! R. b] astfel incat f (x0 ) f 00 (x0 ) > 0: . scanf("%lf". spunem ca se utilizeaza metoda tangentei (Newton) pentru aproximarea solutiei x : Observatia 1. b) . printf("y0=").x[i+1].4 Metoda tangentei a lui Newton Fie ecuatia algebrica sau transcendenta f (x) = 0. y[1]=G(x[0]). Daca se construieste sirul de aproximante (xn )n 0 . } printf("%lf %lf". adica x este izolata. b].‡ G(‡ v) oat oat { return 6/v.&y[0]). return 0. x[i+1]=F(y[i]). scanf("%lf".

b] Observatia 3.b] [a. f (a) f 00 (c) < 0 sau f (b) f 00 (c) > 0 unde c = a+b si f 00 (x) 6= 0.b]. iar functiile f 0 si f 00 au semn constant pe acest interval. Daca f 2 C 2 [a. STOP altfel mergi la Pasul 3. 2m1 (f ) unde m1 (f ) = inf jf 0 (x)j si M2 (f ) = sup jf 00 (x)j : [a. Observatia 4. atunci xn ! x : Proprietatea 2. f (a) f 00 (c) > 0 sau f (b) f 00 (c) < 0 x0 = b. b]: 2 In cazul general. b] si f 0 . iar alegerea lui x0 la pasul 1 este evidenta. b] a ecuatiei f (x) = 0. f 2 C[a. . b) . eroarea absoluta comisa se poate evalua prin jf (xn )j . prin metoda lui Newton. Daca M2 (f ) jxn 2m1 (f ). In conditiile proprietatii precedente. cand nu avem informatii despre functia f se ia o valoare oarecare. xn := xn 1 f (xn 1 )=df (xn 1 ) Pasul 4: Daca jxn xn 1 j < eps atunci SOL:=xn . Intrari: a. f 00 au semn constant pe (a. Algoritmul a fost dat pentru cazul in care solutia ecuatiei a fost izolata in intervalul [a. atunci are loc evaluarea xj (xn xn 1 )2 : Algoritmul metodei tangentei (Newton) Algoritmul calculeaza o aproximatie a solutiei izolate x 2 [a.b-capetele intervalului f-expresia functiei f df-expresia derivatei functiei f (f 0 ) eps-precizia dorita valoarea derivatei a doua in a (f 00 (a)) Iesiri: SOL-aproximatia dorita a solutiei ecuatiei Pasul 1: Daca f (a)f 00 (a) > 0 atunci x0 := a altfel x0 := b Pasul 2: n := 0 Pasul 3: n := n + 1. jxn x j m1 (f ) sau M2 (f ) jxn x j (xn xn 1 )2 . iar daca dupa un numar …xat de iteratii nu ajungem la precizia dorita se reia procedeul cu o alta valoare de pornire.Proprietatea 1. Exista si alte modalitati de determinare a valorii initiale de pornire: a. b]. x 2 [a.

eroarea absoluta comisa se evalueaza prin jxn sau jxn unde m1 (f ) = inf jf 0 (x)j si M1 (f ) = sup jf 0 (x)j : [a. In conditiile proprietatii 1.Probleme propuse 1. atunci xn ! x : Proprietatea 2. xj M1 (f ) m1 (f ) jxn m1 (f ) Observatia 3. 1 = 0: 3. Sa se scrie un program in C pentru algoritmul metodei tangentei. unde f : ( . f 00 au semn constant pe [a. b) . pentru solutia x 2 (a. Daca sirul (xn )n 0 este convergent si f 2 C[a. atunci limita sirului este x : Observatia 2. x0 = b. b].. 2. Daca f 2 C 2 [a. Aproximarea initiala x0 se alege dupa cum urmeaza x0 = a. Sa se aproximeze cu 4 zecimale corecte solutia reala a ecuatiei f (x) := x3 + x 0. ). spunem ca se utilizeaza metoda secantei pentru aproximarea solutiei x : Observatia 1. dupa una din formulele xn+1 = xn sau xn+1 = xn f (xn ) (b f (b) f (xn ) f (xn ) (a f (a) f (xn ) xn ) . b) ( . Presupunem ca ecuatia are o solutie unica x 2 (a.b]. xn ) . daca f (b)f 0 (b) < 0: Proprietatea 1. Daca M1 (f ) 2m1 (f ) atunci are loc evaluarea jxn xj jxn xn 1 j : . b] si f 0 . daca f (a)f 0 (a) < 0 b. m1 (f ) xn 1 j .b] xj jf (xn )j . x0 = a. adica x este izolata. ) ! R. Folosind metoda tangentei sa se calculeze cea mai mica radacina pozitiva a ecuatiei x tgx = 0: 7.b] [a. Daca se construieste sirul de aproximante (xn )n 0 . De…nitia 1.5 Metoda coardei Fie ecuatia algebrica sau transcendenta f (x) = 0.

b-extremitatile intervalului f-expresia functiei f df-expresia derivatei functiei f (f 0 ) sign(f 00 )-semnul derivatei a doua a functiei f eps precizia dorita Iesiri: SOL-aproximatie a solutiei ecuatiei. xt := b. dar n n exista si o alta posibilitate xs + xt n : SOL:= n 2 . O alta posibilitate de alegere a xs si xt este cea data de Observatia 4. cu precizia ceruta Pasul 1: Daca f (a)sign(f 00 ) < 0 atunci xs := a. 0 0 Observatia 5. xt x s . xt ::: (56) 0 0 1 1 n n sau x t . in care nu e necesara 0 0 cunoasterea semnului derivatei a doua a functiei f.b] folosind metoda combinata secantatangenta. Reamintim ca algoritmul a fost dat pentru cazul in care f (a)f (b) < 0 (exista o solutie in intervalul [a. xs 0 0 astfel incat x 2 (xs .De…nitia 2. Observatia 6. b] a ecuatiei f (x) = 0.b]. xt ) . Daca xn = xt sau xn = xs avem evaluarea n n jxn xj xt n xs : n Algoritmul pentru : Metoda Combinata Secanta-Tangenta Algoritmul determina un sir de aproximatii ale solutiei izolate x 2 [a. caz in care se obtine sirul (57). f 0 (xt ) n xs : n f (xs ) n xt n t) s) f (xn f (xn Observatia 4. Intrari: a. xs 1 1 ::: x t . iar daca f (b)f 0 (b) < 0 se ia xs = b si xt = a. xt := a. Spunem ca avem metoda combinata secanta-tangenta. n := 0 0 0 altfel xs := b. Daca f (a)f 0 (a) < 0 se ia xs = a si xt = b. daca se construieste sirul de intervale x s . xt ::: x s . Ca aproximatie a solutiei ecuatiei se poate considera xs sau xt . Observatia 7. xs n n iar ::: (57) respectiv x 2 (xt . n n x t . b] .. xs ) . f 00 are semn constant pe [a. n := 0 0 0 Pasul 2: xt = xt f (xt ) =df (xt ) n+1 n n n (xs Pasul 3: xs = xs f (xtf) n ) s ) (xt xs ) n n n+1 n f (xn n Pasul 4: n := n + 1 Pasul 5: Daca jxt xs j < eps atunci SOL:=xt : STOP n n n altfel mergi la Pasul 2. caz in care se obtine sirul 0 0 (56).b]) si semnul functiei f 00 e constant pe intervalul [a. n n xt = xt n n+1 xs n+1 = xs n f (xt ) n . f 2 C [a.

Probleme propuse 1. jxn xn 1 j nu implica intotdeauna jxn x j < : De aceea. ea a‡ andu-se mereu intre 2 aproximante succesive: xs n x xd . eroarea de aproximare poate … direct controlata. 2. eroarea este precizata prin distanta intre 2 aproximatii succesive jxn xn 1 j : In general insa. Un astfel de exemplu il n n constituie metoda combinata secanta-tangenta. ::: n In aceste cazuri. Folosind metoda secantei sa se aproximeze cu 4 zecimale corecte solutia reala a ecuatiei: x3 x 0. cu eroare precizata. De obicei. In aplicatii se cere aproximarea unei solutii pentru o ecuatie data.Observatia 8. 1 = 0: 3. n = 1. Sa se aproximeze cu 4 zecimale exacte cea mai mare radacina a ecuatiei: x6 x 1 = 0: . 2. eroarea comisa in aproximarea x xs + xd =2 nu depaseste marimea n n xd xs =2: Deci. Sa se implementeze in C algoritmul pentru metoda combinata secanta-tangenta. sunt foarte utile metodele combinate prin care solutia x este aproximata din ambele parti.

8129 Sa se calculeze valoarea lui f 0 (50) prin metoda de derivare numerica Gregory-Newton. 1 h2 2 hf m X i=0 Ai f (ai ) + Rm (f ). i = 0.. Numim formula de derivare numerica. f (a + h). 7404 1. De…nitia 2. m. Intrari: m-ordinul formulei de tip interpolator f-expresia functiei. …xat. b] ! R pe nodurile distincte ai 2 [a. ale carei valori sunt date in tabelul de mai jos: x 50 55 60 65 : f (x) 1. Probleme propuse 1. Formula de derivare numerica este de tip interpolator daca se obtine prin derivarea unei formule de interpolare. pentru care exista f (k) ( ). STOP. b].. m executa j 1 df := df + h ( 1)j 1 1 h f (a) j Pasul 4: Tipareste df. m. Sa se scrie un program in limbajele C si Pascal pentru algoritmul Derivgn. Se considera functia f (x) = lg x. 1 hk k hf (a) k 2 k+1 h f (a) + k (3k + 5) 24 k+2 h f (a) ::: . 7782 1. k = 0. 2. 6990 1. aproximand-o pornind de la formula lui Gregory-Newton.8 8. 1 h hf (a) 1 2 2 hf (a) + 1 3 3 hf 3 hf (a) ::: + ( 1)m 11 12 1 1 m m hf (a) (a) (a) + 4 hf (a) ::: : . :::..f (a + mh)-valorile functiei pe punctele a + kh.1 Metode numerice pentru ecua¸ii diferen¸iale t t Derivarea numeric¼ a Fie cunoscute valorile functiei f : [a. sau f (a). formula f (k) ( )= unde 2 [a. m f (a) n Pasul 2: df:=0 Pasul 3: Pentru j := 1. Formula de derivare numerica Gregory-Newton pentru = a este (Nm f )(k) (a) = de unde f 0 (a) si respectiv f 00 (a) Algoritmul (Derivgn) Algoritmul calculeaza valoarea derivatei unei functii f intr-un punct a.. iar Rm (f ) este restul formulei. h = bma a-punctul in care este ceruta valoarea aproximativa a functiei Iesiri: (Nn f )0 (a) f 0 (a)-valoarea aproximativa a derivatei lui f in a Pasul 1: Se determina sirul diferentelor …nite n f (a) . yi = f (ai ) : De…nitia 1. b].

f ] = y 00 (x) + p (x) y 0 (x) + q (x) y (x) = f (x) . se obtin aproximari ale derivatelor succesive ale unei functii pe un nod x0 f 0 (x0 ) = [x0 . n: 1 si se obtine i = 1. cu conditiile la limita y (a) = A. n y (xi 1 ) 1 se obtine (65) (66) y (xi+1 ) . folosind forma data de Newton polinomului lui Lagrange. qi = q (xi ) . Astfel. n (b a) si se fac notatiile pi = p (xi ) . f ] = f 0 (x0 ) = f 000 (x0 ) = 2[x0 f (x0 + h) f (x0 + h) h f (x0 h) f (x0 ) (58) (59) 2f (x0 ) + f (x0 h) (60) h2 si in general. x0 + h. f 2 C[a. b] prin nodurile xi = a + i h. n i = 0. y (x0 ) = A. y (xn ) = B: Folosind formulele (59) si (60) pe nodurile xi y 0 (xi ) = y 00 (xi ) = y (xi+1 ) 2h 2y (xi ) + y (xi 1 ) : h2 i = 1. n 1 (64) Se scrie ecuatia (62) cu conditiile (63) pe nodurile xi y 00 (xi ) + p (xi ) y 0 (xi ) + q (xi ) y (xi ) = f (xi ) . y (b) = B (63) si p. folosind formula de legatura dintre diferentele divizate cu noduri echidistante si diferentele …nite. fi = f (xi ) . b]: Se considera o diviziune echidistanta a intervalului [a. cu h = 1 n 2h f (x0 + h) x 2 [a. se obtine n f (x0 ) : (61) f (n) (x0 ) = h n h Consideram ecuatia diferentiala liniara de ordinul II h. x0 + h. i = 1. x0 . b]: Presupunem ca problema bilocala (62)+(63) are solutie unica pe [a.2 Metoda re¸elelor t Metoda retelelor aplicata la ecuatii diferentiale liniare utilizeaza diferentele divizate in aproximarea derivatelor succesive ale unei functii pe noduri si conduce la rezolvari de sisteme algebrice de ecuatii liniare. b] (62) i = 0.8. q.

Sa se construiasca un program in limbajele C si Pascal pentru algoritmul metodei retelelor. Pasul 3. f functiile coe…cienti ai ecuatiei A. 1 h2 i = 0. din (64). n. Executa fi := f (xi ) yn := B + (2h2 qi 4) yi + (2 + h pi ) yi+1 = 2h2 fi . 1] . Probleme propuse 1. n 1 (67) Rezolvand sistemul (67) de n-1 ecuatii cu n-1 necunoscute y1 . Folosind metoda retelelor sa se rezolve problema bilocala y 00 (x) + xy 0 (x) + x2 y (x) = 1. Pentru i = 1. Rezolva sistemul (2 h pi ) yi 1 pi := p (xi ) . Pentru i = 0. yn 1 . Pasul 4. yn = B: i = 1. yn = B: i = 1. y (0) = y (1) = 1 folosind 6 puncte ale retelei. STOP. Algoritmul metodei retelelor I. :::. b capetele intervalului p. yn 1 aproximatia solutiei pe nodurile interioare III. Pasii algoritmului Pasul 1. x 2 [0. q. y0 := A.Notand yi = y (xi ) . B valorile bilocale II. y0 = A. Tipareste y1 . Date de iesire: y1 . Date de intrare: n numarul de noduri h pasul diviziunii a. (65) si (66) se obtine sistemul liniar pi (yi+1 y0 = A. :::. n 1 executa qi := q (xi ) . yn 1 se obtine aproximatia solutiei problemei bilocale (62)+(63) pe nodurile diviziunii considerate. :::. 1 2h (yi+1 2yi + yi 1 ) + yi 1 ) + qi yi = fi . 2. n 1 Pasul 5. n calculeaza xi := a + i h Pasul 2.

y0 ) + ::: (70) ::: + f (p unde f (j) este derivata totala de ordinul j a functiei f (x. 2. y): (71) h (1) hk 1 (k f (x. Introducand polinomul lui Taylor (Tk f ) (x. se poate evalua solutia y in punctul x1 := x0 + h: Mai departe.8. In felul acesta. calculand derivatele y 0 . k = 1. y(x) = y0 + x 1! (x x0 f (x0 . Prin transcrierea seriei (70) si alegerea unui pas de lungime h. . :::. ::: in punctul x1 . ::: Algoritmul seriei Taylor . x2 := x1 + h: Continuand in acest mod se obtine o multime discreta de valori yk care aproximeaza solutia y in punctele xk := x0 + kh. y (x)) in raport cu x. y0 ) + x0 )p p! 1 (x 1) x0 )2 (1) f (x0 . @x @x@y se obtine y0 = f y 00 = fx + fy y 0 = fx + fy f 2 y 000 = fxx + 2fxy f + fyy f 2 + fx fy + fy f: Deci. y) + ::: + f 2! k! 1) (x. x x0 = h. si yk y (xk ) . y). k = 1. y) = f (x. se poate aproxima y(x2 ).3 Metoda lui Euler y 0 = f (x. suntem condusi la o metoda iterativa de aproximare discreta a solutiei y a problemei (68). y) y(x0 ) = y0 (68) Se considera problema Cauchy Presupunand ca solutia y a problemei considerate satisface conditiile de diferentiabilitate necesare. y) + formula (70) se scrie sub forma: y(x) = y0 + h (Tk f ) (x. y0 ) + ::: 2! (x0 .. fxy = . 2.. y 00 . functia y poate … dezvoltata in serie Taylor in vecinatatea punctului x0 : y(x) = y(x0 ) + x 1! x0 y (x0 ) + 0 (x x0 )2 00 y (x0 ) + ::: 2! (69) Avand in vedere (68) si folosind pentru derivatele lui f notatiile @f @2f fx = .

::: . 2 1) (x. 3. 10 Sa se aproximeze valorile solutiei y in punctele xi = 1 + Euler.1. cea aproximata. n 1. 1 .4 Metode de tip Runge Kutta h (1) hk 1 (k f (x.se obtine din (71) pentru k = 1. f si y0 2. i = 0. yi+1 := yi + hf (xi . n 2 N. 10 folosind metoda lui 8. y) + si formula y(x) = y0 + h (Tk f ) (x. yi ): Probleme propuse 1.2. x 2 [0. 16 : Pentru …ecare valoare a lui h sa se tipareasca solutia 4 8 adevarata. Se alege pasul h. yi ) 3. Date initiale: a. y). se executa xi := a + ih yi+1 := yi + h (Tk f ) (xi . i = 1. Solutia exacta a problemei Cauchy este y(x) = x2 2x + 2 e x : Sa se analizeze rezultatele obtinute. k = 1. 4] y(0) = 1 1 luand pe rand pasul h = 1 . n: Metoda lui Euler. b 2 R. 4: Pentru k = 1 se obtine metoda lui Euler (Runge-Kutta de ordinul I). y) + ::: + f 2! k! Polinomul lui Taylor (Tk f ) (x. 3. Sa se scrie un program in C pentru metoda lui Euler. 2. n 2 N. 2. y) genereaza metodele de tip Runge-Kutta pentru k = 1. Pentru i = 0.1. Sa se rezolve problema lui Cauchy y 0 = x2 y . y) = f (x. eroarea la nodurile luate in considerare. de exemplu h := b na : 2. Date …nale: yi . Pentru k = 2 se obtine metoda Runge-Kutta de ordinul al II-lea data recurent prin yn+1 = yn + 1 (K0 + K1 ) . 2. Se considera problema Cauchy y y 0 = 1+x2 y(+1) = 2 : 4 1 .

1 xi := x0 + ih 2. y0 dat. n: Observatia 1. h 2 R. n 1. Se considera problema Cauchy y y 0 = 1+x2 y(+1) = 2 : 4 . Metoda Runge-Kutta este descrisa de urmatorul algoritm: 1. Sa se scrie un algoritm pentru metoda lui Kutta si sa se implementeze in limbajele C si Pascal. y0 dat. n 2 N. yn + K1 . n 2 N si f 2. Date initiale: x0. i = 0. In cazul in care functia f nu depinde de y. yi ) K2 := hf xi + 1 h. y0 . yn + 2K1 K0 ): Cea mai des folosita (pentru k = 4) este metoda Runge-Kutta de ordinul al IV-lea generata recurent prin 1 yn+1 = y0 + (K0 + 2K1 + 2K2 + K3 ) . yn ). 6 K0 = hf (xn . yn + K0 ). se executa 2. yn + K0 ). procedeul lui Kutta se reduce la regula de integrare a lui Simpson. yn ).unde K0 = hf (xn . 2 2 K2 = hf (xn + h. Date …nale: yi . n 2 N. K1 = hf (xn + h. 6 K0 = hf (xn . yi + 1 K1 2 2 1 K3 := hf (xi + 1 h. yn + K2 ): Ordinul de marime al erorii de trunchiere in metodele Runge-Kutta este de hk+1 :(a se vedea [8]). y0 dat.2 K1 := hf (xi . yi + 2 K2 ) 2 K4 := hf (xi + h. Probleme propuse 1. 2. yn + K0 ). yn ). Pentru i = 0. 1 1 K1 = hf (xn + h. Pentru k = 3 se obtine metoda Runge-Kutta de ordinul al III-lea generata recurent prin yn+1 = yn + 1 (K0 + 4K1 + K2 ) . yi + K3 ) : 2. 2 2 1 1 K2 = hf xn + h. yi+1 := yi + 1 (K1 + 2K2 + 2K3 + K4 ) 6 3.3. 2 2 K3 = hf (xn + h. 1 1 K1 = hf (xn + h.

Stiind ca solutia exacta a problemei lui Cauchy este y = 1+x2 . 10 i = 1. . 3. x 2 [0. sa se compare rezultatele obtinute cu valorile reale. folosind 4 x metoda lui Kutta. iar i = 16.Sa se aproximeze valorile solutiei y in punctele xi = 1 + Kutta. Fie problema Cauchy 1 . 10 folosind metoda lui 1 y 0 = 1+x2 2y 2 . 4]: y 0 (0) = 0 Sa se aproximeze valorile solutiei y in punctele xi = hi. unde h = 1 .

Blaga. [3] N. Ed. 221-233. Cluj-Napoca. Gh.2 (2001).Dragomir. Bucur.Barnett.9. Mathematica. The Korean J.Blaga. Preprint 4. Tehnic¼..Stancu. Oradea 1998.Ionescu. Stanasila. [5] A. Editura Didactica si Pedagogica Bucuresti 1981.Clujean¼. Survey on the numerical methods for ODE’ using the sequence of succesive s approximations. 1-16.S. S. 1983. Cluj-Napoca. Clujean¼. P. Pop.1.S. 52-71. Bica. [16] D. Sever Groze.1. [8] C.A. S. Bica.Bibliogra…e [1] O.). a a [20] D. [4] A. Washington DC. Uber eine Formel fur numerische Berechnung der bestimen Integrale. Gh.Clujean¼.1. Revue d’ analyse numérique et de théorie de l’ approximation.Trîmbi¸a¸. Presa Univ. O. No1. C. 2005.Barnett. 2005. Litogra…a a t Univ. Simion.4. A perturbed trapezoid inequality in terms of the fourth derivative. Tehnica. 2000. Presa a a¸ a Univ. Moscow. G.Must¼¸a. no. Mat. 2002.Dragomir. The error estimation in terms of the …rst derivative in a numerical method for the solution of a delay integral equation from biomathematics.Bica.V. Aplicarea metodei aproximatiilor succesive in integrarea numerica a ecuatiilor diferentiale. a [21] O. vol. Matematici speciale.Coman. Analiza numerica. Elements de calcul numerique. 1957.2. Cluj-Napoca. 1994.Coman. 1995. M.33-39. Anastassiou ed. Gh. Ed. Ed. A. Dragomir.Coman.S. Analiza numerica : lucrari de laborator.D. Cluj-Napoca.V. of Computational & Applied Math. Gal.Iacob (coord. article 7. Gh. (1915). 44.S. On the cubic spline of interpolation. Cluj-Napoca. Litogra…a Univ. .4. Chapman&Hall/CRC Press.1. vol. New York . . Cuadraturi numerice. a [14] C.Iancu. vol. [17] D. vol. Analiz¼ numeric¼ si teoria aproxt s a a¸ im¼ rii. R. Trapezoidal and Midpoint-Type Rules from Inequalities Point of View. [18] K. vol. Bucure¸ti. R.. Calcul numeric. 45-60. 1979. Analiz¼ numeric¼ . 23-36. Libris. partea a doua. [13] C.D. Analiz¼ numeric¼ si teoria aproxt s a a¸ im¼ rii. 2002. [11] Gh. [6] A. Trîmbi¸a¸. 454-455. Bucuresti.8.3. 11. [7] P.Cerone. [19] D. Popeea. RGMIA Research Report Collection. Error estimation in the approximation of functions by interpoat lation cubic splines. [15] C. Universitatea Babes-Bolyai Cluj-Napoca. no. Gh. Presa Univ.Demidovitch. RGMIA Research Report Collection.Iancu. Bucuresti. vol. Studii si Cerc.Agratini. Ed. 2001. S. Handbook of Analytic Computational Methods in Applied Mathematics ( G. (1987). 1983. Didactic¼ ¸i Ped. vol.). Chiorean. 34.S. (1960). 2002. I. a a [12] B. [10] Gh. S. Agratini. M. A perturbed trapezoid inequality in terms of the third derivative and applications. Coman.Maron. S. London. Boca Raton. Matematici clasice si moderne. I. Rezolvarea numeric¼ a ecua¸iilor operatoriale. Analiz¼ numeric¼ si teoria aproxim¼ rii. Cluj-Napoca. Tome29 (52). Gh. no. Analiza matematica. Mir. ”Babes-Bolyai ” 1981. Casopis propestovani Matematiky a Fysiky. a a [2] N. no. as s [9] P. (1981). vol. Metode numerice. Ed. 273-286.Coman.Petr.Ionescu. Seminar of Functional Analysis and Numerical Methods.. Coman. C.Stancu.

Sign up to vote on this title
UsefulNot useful