Sunteți pe pagina 1din 75

INDRUMATOR DE LABORATOR DE ANALIZA

NUMERICA
ALEXANDRU MIHAI BICA
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.
1 Interpolarea polinomial¼
a a funcţiilor
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


Consideram intr-un interval I R, multimea de noduri echidistante

A = fak : ak = a + kh; k = 0; m; h 2 R; h 6= 0g 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) :

De…nitia 2: Se numeste diferenta …nita de ordinul k cu pasul h pe nodul ai , i = 0; m 1;


k = 1; m i; relativa la functia f; diferenta data recurent,
k k 1 k 1 k 1
hf (ai ) = h h f (ai ) = h f (ai+1 ) h f (ai ) :

Prin conventie, se considera ca 0h f (ai ) = f (ai ) ; 8i = 0; m:


Sunt cunoscute proprietatile de liniaritate
k k k
h ( f + g) = hf + h g; 8 ; 2 R;

si de comutativitate a compunerii
r s s r r+s
h( hf ) = h( hf ) = h f

ale operatorului de diferenta …nita kh :


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

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


k k 1 k 1
h fi = h fi+1 h fi ; k = 1; m; i = 0; m k:

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
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 :
m ordinul maxim al diferentelor …nite,
h pasul,
a punctul de plecare
fi ; i = 0; m; valorile functiei f pe noduri ( sau expresia functiei f ).
II. Date de iesire : tabloul cu diferentele …nite pina la ordinul m, adica valorile kh f (ai ) ;
k = 0; m; i = 0; m k: Uneori este solicitata numai valoarea m h f (a) :
III. Pasii algoritmului :
Pasul 1. Se calculeaza nodurile ak = a + kh; k = 0; m si pentru k = 0; m se calculeaza
0
h fk := f (a + kh)

Pasul 2. Pentru k = 1; m si pentru i = 0; m k calculeaza


k k 1 k 1
h fi := h fi+1 h fi :

Pasul 3. Scrie m
h f (a) :=
m
h f0 : A…seaza k
h fi ; k = 1; m; i = 0; m k; sau a…seaza
m
numai h f0 : 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 f (x) = x1 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.2 Diferenţe divizate


Consideram intr-un interval I R, multimea de noduri

A = fak : ak 2 R; k = 0; m; g I

si …e functia f : A ! R.
De…nitia 1: Se numeste diferenta divizata de ordinul intai cu nodurile ar si ar+1 relativa
la functia f , expresia

notatie f (ar+1 ) f (ar )


Df (ar ) = [ar ; ar+1 ; f ] = ; r = 0; m 1:
ar+1 ar
De…nitia 2: Se numeste diferenta divizata de ordinul k cu nodurile ar ; ar+1 ; :::; ar+k ;
relativa la functia f; expresia

notatie Dk 1 f (ar+1 ) Dk 1 f (ar )


Dk f (ar ) = [ar ; ar+1 ; :::; ar+k ; f ] = ; (1)
ar+k ar
r = 0; m 1; k = 1; m r:
Prin conventie, se noteaza D0 f (ar ) = f (ar ) ; r = 0; m: Deasemenea, este cunoscut
faptul ca operatorul Dk este liniar.
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, pentru diferentele divizate exista exprimarea :

Xk
f (ar+i )
[ar ; ar+1 ; :::; ar+k ; f ] =
i=0
u0 (ar+i )

unde
u (x) = (x ar ) (x ar+1 ) ::: (x ar+k ) :
Observatie: Pentru r = 0 si k = m
Xm
f (ak ) X
m
f (ak )
[a0 ; a1 ; :::; am ; f ] = =
k=0
u0 (ak ) k=0 uk (ak )

unde
u (x) = (x a0 ) (x a1 ) ::: (x am )
si
u (x)
; 8k = 0; m:
uk (x) =
x ak
In calcule, in special la constructia formulei de interpolare a lui Newton pentru polinomul lui
Lagrange, este util tabloul de diferente divizate.

x f Df D2 f D3 f ....... Dm 1 f Dm f
a0 f0 Df0 D2 f0 D3 f0 ....... Dm 1 f0 Dm f0
a1 f1 Df1 D2 f1 D3 f1 ....... Dm 1 f1
a2 f2 Df2 D2 f2 D3 f2 .......
:::: :::: :::::: :::::: :::::
am 2 fm 2 Dfm 2 D2 fm 2
am 1 fm 1 Dfm 1
am fm

unde fi = f (ai ) ; i = 0; m:
La constructia tabelului s-a folosit formula de recurenta
Dk 1 f (ai+1 ) Dk 1 f (ai )
Dk f (ai ) = ; k = 1; m; i = 0; m k:
ai+k ai
Aceeasi formula de recurenta o foloseste algoritmul de mai jos :

I. Date de intrare :
m ordinul maxim al diferentei divizate
ak ; k = 0; m nodurile diferentelor divizate
f (ak ) ; k = 0; m valorile functiei pe noduri.
II. Date de iesire : Tabloul diferentelor divizate pina la ordinul m, adica Dk f (ai ) ; k=
0; m; i = 0; m k; sau numai valoarea Dm f (a0 ) :
III. Pasii algoritmului :
Pasul 1. Pentru i = 0; m ataseaza
D0 fi := f (ai ) :
Pasul 2. Pentru k = 1; m;
Pentru i = 0; m k; calculeaza
Dk 1 fi+1 Dk 1 fi
Dk fi :=
ai+k ai
Pasul 3. A…seaza Dk fi ; k = 1; m; i = 0; m k; sau a…seaza numai Dm f0 : STOP.

Probleme propuse :
1. Sa se construiasca un program de calcul al tabloului de diferente divizate in limbajul
Pascal si in limbajul C.
1
2. Considerând functia f : R ! R, f (x) = 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 1 2
x
f : R ! R; f (x) = p e 2
2
sa se construiasca tabloul de diferente divizate pina la ordinul 5 cu nodurile echidistante
ak = a + kh; k = 0; 5; h = 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 f : [a; b] ! R; pe nodurile distincte ak 2 [a; b];
k = 0; m; yk = f (ak ) :
De…nitia 1: Se numeste polinomul de interpolare al lui Lagrange relativ la functia f si la
nodurile ak ; k = 0; m; polinomul de grad minim Lm f care satisface conditiile de interpolare
Lm f (ak ) = f (ak ) = yk ; 8k = 0; m:
Observatie: Gradul polinomului Lm f este m, 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,
polinomul de interpolare al lui Lagrange este unic determinat de aceste conditii de interpolare.
Se obtine expresia lui Lm f ,
X
m
u (x)
Lm f (x) = f (ak ) ; 8x 2 [a; b]; (2)
k=0
(x ak ) u0 (ak )
unde
u (x) = (x a0 ) (x a1 ) ::: (x am ) :
Este cunoscut faptul ca operatorul de interpolare al lui Lagrange Lm este liniar. Deasemenea,
in formula de interpolare a lui Lagrange

f (x) = Lm f (x) + Rm f (x) ; x 2 [a; b] (3)

are loc estimarea erorii :


ju (x)j [x; a0 ; :::; am ; f ]; 8x 2 [a; b]; daca f 2 C[a; b]
jRm f (x)j 1 (4)
(m+1)!
ju (x)j f (m+1) C 8x 2 [a; b]; daca f 2 C m+1 [a; b]:

Din punct de vedere practic, dându-se o fonctie f : [a; b] ! R; cunoscuta doar pe nodurile
ak 2 [a; b]; k = 0; m; si precizându-se o eroare admisa " > 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, presupunandu-se cunoscut un majorant Mm+1 (f ) ; pentru normele derivatelor f (k) C
se determina m astfel incat jRm f ( )j < "; adica

ju ( )j
Mm+1 (f ) < ":
(m + 1)!

Dar aici, cerinta cunoasterii majorantului Mm+1 (f ) 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 L0 f (x; aj ) = f (aj ) ; j = 0; m se obtine relatia de
recurenta
x ai
Lm f (x; a0 ; a1 ; :::; am ) = Lm 1 f (x; a0 ; :::; ai 1 ; ai+1 ; :::; am )
ak ai
x ak
Lm 1 f (x; a0 ; :::; ak 1 ; ak+1 ; :::; am ); k; i = 0; m; 8x 2 [a; b]:
ak ai
Metoda lui Aitken consta in generarea tabloului
a0 f00
a1 f10 f11
a2 f20 f21 f22
a3 f30 f31 f32 f33
.. .. .. .. ..
. . . . .
am fm0 fm1 fm2 fm3 ..... fmm
unde fi0 = f (ai ) ; i = 0; m, iar elementele celorlalte coloane sunt calculate prin

1 fjj aj x
fi;j+1 =
ai aj fij ai x
pentru i = 1; m si j = 0; i 1:
Observam ca
x a1 x a0
f11 = f (a0 ) + f (a1 ) = L1 f (x)
a0 a1 a1 a0
si analog se obtine pentru i = 2; m
fii = Li f (x)
adica polinomul de interpolare Lagrange relativ la nodurile a0 ; a1 ; :::; ai :
Astfel, sirul elementelor de pe diagonala tabloului f11 ; f22 ; :::; fii ; :::; fmm devine un sir de
aproximatii ale lui f (x) : Acest sir va converge catre f (x) atunci cand

lim Lm f (x) = f (x) ;


m!1

ceea ce in baza criteriului lui Cauchy este echivalent cu

lim jfii fi 1;i 1 j = 0:


i!1

De aici rezulta un criteriu de oprire a algoritmului lui Aitken dat de conditia

jfii fi 1;i 1 j <"

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 m, dar algoritmul se poate opri la
un grad mai mic (in urma atingerii preciziei dorite). Deoarece eroarea formulei de interpolare
depinde de ju (x)j ; rezulta ca pentru a opri acest algoritm cat mai repede este indicat sa se
ordoneze nodurile a0 ; :::; am dupa distanta lor fata de ; punctul in care dorim sa aproximam
pe f ( ) : Astfel, se ordoneaza nodurile pina este indeplinita conditia

jai xj jaj xj ; daca i < j; i = 0; m; j = 1; m:

Dupa cum se observa, metoda lui Aitken si criteriul sau de oprire necesita doar cunoasterea
valorilor f (ai ) ; i = 0; m. 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:
m gradul maxim al polinomului de interpolare
ai ; i = 0; m; nodurile de interpolare
f expresia functiei, sau valorile ei pe nodurile de interpolare f (ai ) ; i = 0; m
" eroarea absoluta maxima admisibila
2 [a; b] punctul in care se aproximeaza functia f:
II. 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.
III. Pasii algoritmului:
Pasul 1. Se ordoneaza nodurile in functie de distanta lor fata de punctul ; adica
Pentru i = 0; m
Pentru j = i + 1; m
Daca jai j > jaj j atunci u := a[i]; a[i] := a[j]; a[j] := u;
Altfel, i := i + 1;
Pasul 2. Pentru i = 0; m executa fi0 := f (ai ) ;
Pasul 3. Pentru i = 1; m si j = 0; i 1 calculeaza
1
fi;j+1 = [fjj (ai ) fij (aj )];
ai aj

Daca jfii fi 1;i 1 j < " atunci tipareste Li f ( ) = fii : STOP


Altfel, i := i + 1;
Pasul 4. Daca jfmm fm 1;m 1 j < " atunci tipareste Lm f ( ) = fmm :
Altfel, tipareste " Nu s-a putut calcula o aproximatie cu precizia dorita ". STOP.

Probleme propuse :
1. Sa se construiasca un program
p in limbajele C si Pascal pentru algoritmul lui Aitken.
2. Valorile functiei f (x) = x sunt date pe noduri in tabelul
3

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 Aitken, sa se calculeze f (1:15) cu o eroare absoluta maxima de
10 3 :
3. Valorile unei functii f sunt date pe noduri prin intermediul tabelului
x 1:00 1:08 1:13 1:20 1:27 1:31 1:38
f (x) 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

[x; a0 ; f ]; [x; a0 ; a1 ; f ]; :::; [x; a0 ; a1 ; :::; am ; f ]

exprimate cu ajutorul diferentelor de ordin inferior,

[x; a0 ; a1 ; :::; am 1 ; f ] [a0 ; a1 ; :::; am ; f ]


[x; a0 ; a1 ; :::; am ; f ] =
x am
[x; a0 ; a1 ; :::; am 2 ; f ] [a0 ; a1 ; :::; am 1 ; f ]
[x; a0 ; a1 ; :::; am 1 ; f ] =
x am 1
.....................................................................................
[x; a0 ; f ] [a0 ; a1 ; f ]
[x; a0 ; a1 ; f ] =
x a1
f (x) f (a0 )
[x; a0 ; f ] = :
x a0
Eliminând din aceste m + 1 relatii diferentele divizate [x; a0 ; :::; ak ; f ]; k = 0; m 1 , adica
inmultind a doua egalitate cu x 1am , pe a treia egalitate cu (x am 11)(x am )
si asa mai departe
pina ultima egalitate se inmulteste cu
1
(x a1 ) ::: (x am )
si adunând egalitatile obtinute membru cu membru si apoi exprimând f (x) se obtine
X
m
f (x) = f (a0 ) + (x a0 ) ::: (x ai 1 ) [a0 ; a1 ; :::; ai ; f ] + u (x) [x; a0 ; :::; am ; f ]:
i=1

Astfel, s-a obtinut tocmai formula de interpolare a lui Lagrange

f (x) = Nm f (x) + Rm f (x) ; x 2 [a; b] (5)

cu polinomul de interpolare dat prin formula lui Newton


X
m
Nm f (x) = f (a0 ) + (x a0 ) ::: (x ai 1 ) [a0 ; a1 ; :::; ai ; f ] = (6)
i=1

X
m
= f (a0 ) + (x a0 ) ::: (x ai 1 ) Di f0
i=1

iar restul dat cu ajutorul diferentelor divizate

Rm f (x) = u (x) [x; a0 ; :::; am ; f ]:

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 Lm f (x) = Nm f (x) ; 8x 2 [a; b]:
Observatie: Din formula (6) rezulta ca polinomul de interpolare al lui Newton veri…ca
relatia de recurenta

Nk f (x; a0 ; :::; ak ) = Nk 1 f (x; a0 ; :::; ak 1 ) + (x a0 ) ::: (x ak 1 ) [a0 ; :::; ak ; f ];

8k = 1; m; 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, 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, 2, ... intr-un mod asemanator cu generarea polinoamelor lui Lagrange prin metoda
lui Aitken. Criteriul de oprire este asemanator. Daca

jNk f ( ) Nk 1 f ( )j < "


atunci algoritmul se opreste la ordinul k, adica la polinomul Nk f (x; a0 ; :::; ak ) : Insa gradul
maxim al polinomului generat de algoritmul de mai jos este m.

Algoritmul polinomului lui Newton:


I. Date de intrare:
m gradul maxim al polinomului de interpolare
ak ; k = 0; m; nodurile de interpolare
f expresia functiei, sau valorile ei pe nodurile de interpolare f (ak ) ; k = 0; m
" eroarea absoluta maxima admisibila
2 [a; b] punctul in care se aproximeaza valoarea functiei f:
II. 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.
III. Pasii algoritmului:
Pasul 1. Se ordoneaza nodurile in functie de distanta lor fata de punctul ; adica
Pentru k = 0; m
Pentru j = k + 1; m
Daca jak j > jaj j atunci k := u; u := j;
Altfel, k := k + 1;
Pasul 2. Se calculeaza diferentele divizate [a0 ; :::; ak ; f ] = Dk f0 ; k = 0; m utilizand
procedura din paragraful 1.2 sau obtinând aici iterativ,

D0 fk := f (ak ) ; pentru k = 0; m

si
Dj 1 fk+1 Dj 1 fk
Dj fk := pentru j = 1; m si pentru k = 0; m j:
ak+j ak
Pasul 3. k := 0; N0 f ( ) = f (a0 )
Pasul 4. Cat timp k < m executa
k := k + 1;
Nk f ( ) := Nk 1 f ( ) + ( a0 ) ::: ( ak 1 ) [a0 ; :::; ak ; f ]
Daca jNk f ( ) Nk 1 f ( )j < " atunci tipareste Nk f ( ) : STOP.
Pasul 5. Daca jNm f ( ) Nm 1 f ( )j < " atunci tipareste Nm f ( ). 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>
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.nn", 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
p in limbajul Pascal pentru algoritmul lui Newton.
2. Valorile functiei f (x) = x sunt date pe noduri in tabelul
3
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, sa se calculeze f (1:15) cu o eroare absoluta maxima de
10 5 :
3. Valorile unei functii f sunt date pe noduri prin intermediul tabelului
x 1:00 1:08 1:13 1:20 1:27 1:31 1:38
f (x) 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 f : [a; b] ! R; pentru care sunt cunoscute pe nodurile ak [a; b]; k =
0; m; valorile f (j) (ak ) ; j = 0; rk ; k = 0; m; 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 ,
la nodurile ak ; k = 0; m; si la valorile f (j) (ak ) ; j = 0; rk ; k = 0; m; polinomul de grad
minim Hn f care satisface conditiile de interpolare :
Hn f (j) (ak ) = f (j) (ak ) ; 8j = 0; rk ; 8k = 0; m: (7)
Fie
u (x) = (x a0 )r0 +1 (x a1 )r1 +1 ::: (x am )rm +1
si
u (x)
uk (x) = 8k = 0; m:
(x ak )rk +1
Conditiile (7) determina in mod unic polinomul de interpolare a lui Hermite, obtinandu-se
rk
" #!
Xm X (x ak )j f (t)
(j)
Hn f (x) = uk (x) jt = ak ; 8x 2 [a; b] (8)
k=0 j=0
j! u k (t)

iar in formula de interpolare a lui Hermite


f (x) = Hn f (x) + Rn f (x) ; x 2 [a; b]
estimarea restului este
1
jRn f (x)j ju (x)j f (n+1) C
8x 2 [a; b]; daca f 2 C n+1 [a; b]:
(n + 1)!

1.4.1 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,
X
n
(x a0 )k (k)
Tn f (x) = f (a0 ) (9)
k=0
k!
iar estimarea restului este
1
jRn f (x)j jx a0 jn+1 f (n+1) C
daca f 2 C n+1 [a0 h; a0 + h]:
(n + 1)!

Din formula (9) se observa ca polinomul lui Taylor poate … obtinut recurent prin

T0 f (x) = f (a0 )

(x a0 )k (k)
Tk f (x) = Tk 1 f (x) + f (a0 ) ; pentru k = 1; n:
k!
Astfel, se obtine algoritmul urmator :
Algoritm pentru polinomul lui Taylor
I. Date de intrare:
n gradul polinomului de interpolare
a nodul de interpolare
(k)
f (a) ; k = 0; n; valorile pe nodul a
u 2 [a; b] punctul in care se aproximeaza valoarea functiei f
II. Date de iesire:
Tn f (u) aproximatia lui f (u) prin polinomul lui Taylor
III. Pasii algoritmului:
Pasul 1. …e f0 := f (a) , p (0) := 1 si pentru k = 1; n

fk := f (k) (a)

p (k) := p (k 1) k
Pasul 2. …e T0 f (u) = f (a) si pentru k = 1; n
1
Tk f (u) = Tk 1 f (u) + (u a)k fk
p (k)

Pasul 3. Tipareste Tn f (u) : STOP.

1.4.2 Metoda lui Aitken pentru polinomul lui Hermite cu noduri duble
Daca nodurile ak ; k = 0; m; sunt duble atunci se presupun cunoscute valorile f (ak ) ; f 0 (ak ) ;
k = 0; m: Polinomul lui Hermite cu noduri duble este
X
m
f (ak ) f (t)
0
H2m+1 f (x) = uk (x) + (x ak ) jt = ak (10)
k=0
uk (ak ) uk (t)

unde
u (x) = (x a0 )2 (x a1 )2 ::: (x am )2
si
u (x)
uk (x) = 8k = 0; m:
(x ak )2
Acest polinom poate … obtinut astfel,

H2m+1 f (x) = Q0;0 + Q1;1 (x a0 ) + Q2;2 (x a0 )2 + Q3;3 (x a0 )2 (x a1 ) + (11)

+::: + Q2m+1;2m+1 (x a0 )2 (x a1 )2 ::: (x am 1 )2 (x am )


in care coe…cientii se determina recurent prin

Q2i;0 = f (ai ) ; Q2i+1;0 = f (ai ) ; Q2i+1;1 = f 0 (ai ) ; i = 0; m

z2i = ai ; z2i+1 = ai ; i = 0; m
Q2i;0 Q2i 1;0
Q2i;1 = i = 1; m:
z2i z2i 1
si
Qi;j 1 Qi 1;j 1
Qi;j = i = 2; 2m + 1; j = 2; i:
zi zi j
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
ak ; k = 0; m; nodurile de interpolare
f (ak ) ; f 0 (ak ) ; k = 0; m; valorile functiei si ale derivatelor sale pe nodurile de
interpolare
II. Date de iesire: coe…cientii Q0;0 Q1;1 :::Q2m+1;2m+1 polinomului H2m+1 f (x) din (11).
III. Pasii algoritmului:
Pasul 1. Pentru i = 0; m executa

z2i := ai ; z2i+1 := ai

Q2i;0 := f (ai ) ; Q2i+1;0 := f (ai ) ; Q2i+1;1 := f 0 (ai )


Pentru i = 1; m calculeaza
Q2i;0 Q2i 1;0
Q2i;1 :=
z2i z2i 1

Pasul 2. Pentru i = 2; 2m + 1
Pentru j = 2; i calculeaza
Qi;j 1 Qi 1;j 1
Qi;j =
zi zi j
Pasul 3. Tipareste Q0;0 Q1;1 :::Q2m+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.
p
2. Fie f (x) = x + 1 si Tn f polinomul lui Taylor de gradul n corespunzator nodului
a0 = 0. Sa se determine T0 f (u) 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 f (0:2) avand pe noduri valorile:
x f (x) f 0 (x)
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
2 Interpolarea neteda pe porţiuni
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 f : [a; b] ! R; f 2 C 1 [a; b]; polinomul de interpolare al lui Hermite cu doua noduri
duble este unic determinat de conditiile
P (a) = f (a) ; P 0 (a) = f 0 (a)
P (b) = f (b) ; P 0 (b) = f 0 (b)

avand pe [a; b] expresia

(b x)2 (x a) 0 (x a)2 (b x) 0
P (x) = f (a) f (b) +
(b a)2 (b a)2

(b x)2 [2 (x a) + (b a)] (x a)2 [2 (b x) + (b a)]


+ f (a) + f (b) :
(b a)3 (b a)3
Daca f 2 C 4 [a; b] atunci pentru estimarea erorii formulei de interpolare

f (x) = P (x) + R (x) (12)

avem
(b a)4
jR (x)j 7
f (4) C
8x 2 [a; b]:
3 2
Considerand o diviziune a intervalului [a; b]

: a = x0 < x1 < ::: < xn 1 < xn = b

si valorile pe aceste noduri ale unei functii f 2 C 1 [a; b], f (xi ) ; f 0 (xi ) ; i = 0; n; se poate
construi o functie neteda F 2 C 1 [a; b] pentru care

F (xi ) = f (xi ) ; F 0 (xi ) = f 0 (xi ) ; 8i = 0; n

cerând ca restrictia functiei F la …ecare subinterval [xi 1 ; xi ]; i = 1; n sa …e Fi dat prin

(xi x)2 (x xi 1 ) 0 (x xi 1 )2 (xi x) 0


Fi (x) = f (xi 1 ) f (xi ) + (13)
(xi xi 1 )2 (xi xi 1 )2

(xi x)2 [2 (x xi 1 ) + (xi xi 1 )] (x xi 1 )2 [2 (xi x) + (xi xi 1 )]


+ f (xi 1 ) + f (xi ) :
(xi xi 1 )3 (xi xi 1 )3
Se observa ca Fi00 exista pe intervalele deschise (xi 1 ; xi ) pentru orice i = 1; n si este un
polinom de gradul intai. Atunci F 00 este continua pe portiuni si marginita pe [a; b]: Prin
urmare, F 2 C 1 [a; b] \ L2 [a; b]: In cele ce urmeaza vom nota yi = f (xi ) ; 8i = 0; n:
Algoritmul de mai jos realizeaza aproximarea valorii f ( ) a functiei f intr-un punct 2
[a; b]; 6= xi ; 8i = 0; n prin valoarea F ( ) : De cele mai multe ori, sunt cunoscute (prin
masuratori experimentale) doar valorile f (xi ), i = 0; n; 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 xi ; i = 0; n si valorile yi ; i = 0; n, se calculeaza intai pantele
xi+1 xi
mi = ; i = 0; n 1
ti+1 ti
iar apoi, se aproximeaza valorile derivatelor pe unele dintre nodurile interioare prin,

jmi+2 mi+1 j mi 1 + jmi 1 mi 2 j mi+1


f 0 (xi ) = ; i = 2; n 3: (14)
jmi+2 mi+1 j + jmi 1 mi 2 j

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 [a; b] 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 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; b] \ L2 [a; b]; g (xi ) = yi ; 8i = 0; ng; (15)

unde
Zb
J (F ) = [F 00 (x)]2 dx:
a

In baza metodei lui Akima se introduc atunci doar pantele suplimentare

m 1 = 2m0 m1 ; mn = 2mn 1 mn 2 ; mn+1 = 3mn 1 2mn 2

si se extinde formula (14) pentru i = 1; n 1: Daca F000 (x0 ) = Fn00 (xn ) = 0 atunci proprietatea
(15) este indeplinita, ceea ce va conduce la a propune
3 1 0 3 1 0
f 0 (x0 ) = m0 f (x1 ) ; f 0 (xn ) = mn 1 f (xn 1 ) :
2 2 2 2
In continuare functia F este construita in baza formulei (13).

Algoritmul lui Akima


I. Date de intrare:
nodurile xi ; i = 0; n
valorile yi = f (xi ) ; i = 0; n
punctul in care se realizeaza aproximarea
II. Date de iesire:
F( ) valoare ce aproximeaza pe f ( ) :
III. Pasii algoritmului:
Pasul 1. Pentru i = 0; n 1 calculeaza pantele
xi+1 xi
mi :=
ti+1 ti
Pasul 2. Calculeaza

m 1 := 2m0 m1 ; mn := 2mn 1 mn 2 ; mn+1 := 3mn 1 2mn 2

Pasul 3. Pentru i = 1; n 1 calculeaza


jmi+2 mi+1 j mi 1 + jmi 1 mi 2 j mi+1
f 0 (xi ) :=
jmi+2 mi+1 j + jmi 1 mi 2 j
Pasul 4. Calculeaza
3 1 0 3 1 0
f 0 (x0 ) := m0 f (x1 ) ; f 0 (xn ) := mn 1 f (xn 1 ) :
2 2 2 2
Pasul 5. Se determina indicele j 2 f1; :::; ng pentru care

xj 1 < < xj :

Pasul 6. Calculeaza
(xj )2 ( xj 1 ) 0 ( xj 1 )2 (xj )
F ( ) := f (xj 1 ) f 0 (xj ) +
(xj xj 1 )2 (xj xj 1 )2

(xj )2 [2 ( xj 1 ) + (xj xj 1 )] ( xj 1 )2 [2 (xj ) + (xj xj 1 )]


+ f (xj 1 )+ f (xj ) :
(xj xj 1 )3 (xj xj 1 )3
Pasul. 7 Tipareste F ( ) : 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 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 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 (x ai )+ ) din [13].
Consideram un interval [a; b] si o diviziune a acestui interval

: a = x0 < x1 < ::: < xn 1 < xn = b:


Notam hi = xi xi 1 şi Ii = [xi 1 ; xi ]; 8i = 1; n:
De…nitie: Functia s : [a; b] ! R; se numeste spline polinomial de gradul m de interpolare
a valorilor y0; y1 ; :::; yn pe nodurile xi ; i = 0; n daca:
(i) s 2 C m 1 [a; b]
(ii) restrictia lui s la …ecare subinterval Ii , i = 1; n; este polinom de gradul m
(iii) s (xi ) = yi ; 8i = 0; n:
Daca y0; y1 ; :::; yn sunt valorile pe nodurile xi ; i = 0; n ale unei functii f : [a; b] ! R;
atunci functia spline este de interpolare a functiei f pe nodurile diviziunii :

2.2.1 Spline poligonal de interpolare


Fie
n : a = x0 < x1 < ::: < xn 1 < xn = b
am hi = xi xi 1 şi Ii = [xi 1 ; xi ]; 8i = 1; n şi sistemul de
o diviziune a intervaluluii [a; b]: Not¼
n + 1 numere reale, y = (y0; y1 ; :::; yn ) 2 Rn+1 asociat diviziunii n . Pentru …ecare i = 1; n
se de…neşte Di : Ii ! R;
yi yi 1
Di (x) = yi 1 + (x xi 1 ); 8x 2 Ii :
hi
Gra…cul funcţiei Di este segmentul ce uneşte punctele (xi 1 ; yi 1 ) şi (xi ; yi ):
Dac¼a construim D : [a; b] ! R; astfel încât D jIi = Di ; 8i = 1; n, atunci D este o funcţie
continu¼
a pe [a; b], al c¼
arei gra…c este linia poligonal¼
a ce uneşte punctele (x0 ; y0 ); (x1 ; y1 ):::; (xn ; yn ):
Functia D 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şte punctele (x0 ; y0 ); (x1 ; y1 ):::; (xn ; yn ) si sa se programeze
in limbajele C si Pascal.
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 functia spline poligonala
de interpolare. Sa se compare rezultatele cu cele obtinute prin algoritmul lui Akima.

2.2.2 Spline cubic generat de condiţii la limita


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:
Un spline cubic pentru f : [a; b] ! R; este o functie spline polinomiala de gradul 3 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 :
Pentru functiile spline cubice se folosesc notatiile yi = s (xi ) ; mi = s0 (xi ) ; Mi =
00
s (xi ) ; 8i = 0; n:
Deoarece s00i ; i = 1; n sunt functii polinomiale de gradul intai, in baza notatiilor de mai
sus se vor rezolva problemele bilocale
8 00 M (x xi 1 )+Mi 1 (xi x)
< si (x) = i hi
; x 2 [xi 1 ; xi ]
si (xi 1 ) = yi 1
:
si (xi ) = yi ; 8i = 1; n

si se obtine
" # " #
(x xi 1 )3 hi (x xi 1 ) (xi x)3 hi (xi x)
si (x) = Mi + Mi 1 + (16)
6hi 6 6hi 6

xi x x xi 1
+ yi 1 + yi ; 8x 2 [xi 1 ; xi ]; 8i = 1; n:
hi hi
Pentru determinarea coe…cientilor Mi ; i = 0; n; din conditia s 2 C 1 [a; b] rezulta cerintele
s0i (xi ) = s0i (xi+1 ) ; 8i = 1; n 1: Acestea conduc la un sistem liniar de n-1 ecuatii cu n+1
necunoscute Mi ; i = 0; n
hi Mi 1 hi + hi+1 hi+1 Mi yi+1 yi yi yi 1
+ Mi + = ; 8i = 1; n 1:
6 3 6 hi+1 hi
La acestea se adauga inca doua conditii M0 = Mn = 0; sau s0 (x0 ) = f0 ; s0 (xn ) = fn (in
ipoteza ca sunt cunoscute f 0 (x0 ) = f0 si f 0 (xn ) = fn ). Adaugand de exemplu, ultimele doua
conditii se obtine sistemul
8 hM
>
<
i i 1
6
+ hi +h3 i+1 Mi + hi+16 Mi = yi+1
hi+1
yi y i yi 1
hi
; 8i = 1; n 1
h1 M 0 h1 M 1 y1 y 0
+ 6 = h1 f0 (17)
>
:
3
hn M n 1 hn Mn yn y n 1
6
+ 3 = fn hn

din care se determina in mod unic M0; M1 ; :::; Mn : 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
Zb
J (g) = [g 00 (x)]2 dx
a

adica
J (s) = minfJ (g) : g 2 C 2 [a; b]; g (xi ) = yi ; 8i = 0; ng:
(ii) Aproximare uniforma pentru orice functie f 2 C 2 [a; b]; 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;
unde h = maxfhi : i = 1; ng:
Pentru functia spline cubica (16) veri…cand conditiile s0 (x0 ) = f0 ; s0 (xn ) = fn se con-
struieste urmatorul algoritm.

Algoritmul functiei spline cubice generata de conditii la limita


I. Date de intrare:
nodurile xi ; i = 0; n
valorile yi = f (xi ) ; i = 0; n
valorile derivatei pe nodurile extreme, f0 ; fn
2 [a; b]; 6= xi ; 8i = 0; n; punctul in care se aproximeaza f ( ) prin s ( )
II. Date de iesire: s ( ) :
III. Pasii algoritmului
Pasul 1. Se determina indicele j 2 f1; :::; ng pentru care

xj 1 < < xj :

Pasul 2. Executa
a0 := 2; c0 := 1; bn := 1
Pentru i = 1; n calculeaza

hi := xi xi 1 :

ai := 2
Pasul 3. Executa
6 y1 y0 6 yn yn 1
d0 := f0 ; dn = fn
h1 h1 hn hn

Pentru i = 1; n 1 calculeaza
hi
bi :=
hi + hi+1
ci = 1 bi
6 yi+1 yi yi yi 1
di :=
hi + hi+1 hi+1 hi
Pasul 4. Executa
c0
0 :=
a0
Pentru i = 1; n 1 calculeaza

! i := ai bi i 1

ci
i :=
!i
Executa
! n := an bn n 1
Pasul 5. Executa
d0
z0 :=
2
Pentru i = 1; n calculeaza
di bi zi 1
zi :=
!i
Pasul 6. Determinarea solutiei M0; M1 ; :::; Mn a sistemului (17)
Executa
Mn := zn
Pentru i = n 1; 0 calculeaza

Mi := zi i Mi+1 :

Pasul 7. Calculeaza
" # " #
( xj 1 )3 hj ( xj 1 ) (xj )3 hi (xj )
s ( ) := Mj + Mj 1 +
6hj 6 6hj 6

xj xj 1
+ yj 1 + yj
hj hj
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


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 = s00i (xi ) şi si = s j[xi 1 ;xi ] :
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
relaţiile, (
Mi + 2Mi 1 = 6 yi yi 1h2mi 1 hi
i (19)
Mi + Mi 1 = 2(mi hm i
i 1)
; i = 1; n:
care sunt echivalente cu oricare din urm¼
atoarele dou¼
a sisteme de relaţii :

mi 1 = h1i (yi yi 1 ) 61 hi (Mi + 2Mi 1 )


; i = 1; n (20)
mi = h1i (yi yi 1 ) + 61 hi (4Mi + Mi 1 )

şi (
6 6mi 1
Mi = h2i
(yi yi 1 ) hi
2Mi 1
3 Mi 1 hi
; i = 1; n; (21)
mi = hi
(yi yi 1 ) 2mi 1 2

unde hi = xi xi 1 ; 8i = 1; n:
Prin utilizarea relaţiilor de recurenţ¼a (21) se obţine in mod unic functia spline cubica
de interpolare pornind de la valorile y0; y1 ; :::; yn si de la valorile primelor doua derivate pe
primul nod, m0 si M0 : Estimarea erorii in formula corespunzatoare de interpolare spline poate
… gasita in [15] pentru cazurile f 2 Lip[a; b]; respectiv f 2 C 1 [a; b] cu f 0 2 Lip[a; b]:
Observatie: Valorile m0 si M0 sunt in general libere (experimental, de obicei se determina
y0; y1 ; :::; yn ) si pot … date astfel incat functia spline corespunzatoare sa aiba proprietati
suplimentare. Astfel, daca M0 = Mn = 0 atunci functia spline cubica cu restrictiile la
subintervalele diviziunii date in (18) va avea proprietatea de minimizare a funcţionalei

Zb
J(y) = [y 00 (x)]2 dx (22)
a

a C 2 [a; b] ce interpoleaz¼
pe mulţimea funcţiilor de clas¼ a f pe nodurile diviziunii n : Deaseme-
0
nea, s şi s aproximeaz¼ a pe f şi respectiv, f 0 , cu o eroare estimat¼
a global astfel :
p 3
kf sk b a kf 00 kC h 2
p p
kf 0 s0 k b a kf 00 kC h: (23)
Pentru a avea Mn = 0 se poate obtine m0 astfel:
Se de…nesc a1 = 2; c1 = h61 ; b1 = h31 (y1 y0 ); d1 = 6
h21
(y1 y0 ) şi recurent se calculeaza
pentru i = 2; n
hi ci 1
ai = 2ai 1
2
3(yi yi 1 ) hi di 1
bi = 2bi 1 (24)
hi 2
şi
6ai 1
ci = 2ci 1
hi
6(yi yi 1 ) 6bi 1
di = 2di 1 : (25)
h2i hi
Punand
dn
M0 = 0 si m0 = (26)
cn
se va obtine Mn = 0:
Algoritmul functiei spline cubice generata de conditii initiale
I. Date de intrare:
nodurile xi ; i = 0; n
valorile yi ; i = 0; n
m0 si M0 , valorile primelor doua derivate pe primul nod
2 [a; b]; 6= xi ; 8i = 0; n; punctul in care se aproximeaza f ( ) prin s ( )
II. Date de iesire: s ( ) :
III. Pasii algoritmului
Pasul 1. Se determina indicele j 2 f1; :::; ng pentru care

xj 1 < < xj :

Pasul 2. Pentru i = 1; n calculeaza

hi := xi xi 1

3 Mi 1 hi
mi := (yi yi 1 ) 2mi 1
hi 2
6 6mi 1
Mi := 2 (yi yi 1 ) 2Mi 1
hi hi
Pasul 3. Calculeaza
1 Mj
s ( ) := (Mj Mj 1 )( xj 1 )3 + ( xj 1 )2 + mj ( xj 1 ) + yj 1 :
6hj 2
Pasul 4. Tipareste s ( ) : STOP.
Observatie: Daca valorile m0 si M0 nu sunt date atunci se poate intercala intre pasii 1
si 2 subrutina urmatoare:
Pasul 1.1. Executa
3
M0 := 0; a1 := 2; b1 := (y1 y0 )
h1
6 6
c1 := ; d1 := (y1 y0 ):
h1 h21

Pasul 1.2. Pentru i = 2; n calculeaza


hi ci 1 6ai 1
ai := 2ai 1 ; ci := 2ci 1
2 hi
3(yi yi 1 ) hi di 1
bi := 2bi 1
hi 2
6(yi yi 1 ) 6bi 1
di := 2di 1 :
h2i hi

Pasul 1.3. Executa


dn
m0 := :
cn
Prin acesta subrutina se vor determina m0 si M0 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 splinenn______________nnnnnn");
‡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("nn");
//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("nnnn");
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]);
}
printf("nnnnu=%fnn ",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("nnS(%f)=%fnnnn",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 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 interpolare spline
cubic generat de conditii initiale cu m0 si M0 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.
3 Aproximarea uniform¼
a a funcţiilor. Polinoamele lui
Berstein
Fie functia f : [0; 1] ! R.
De…nitia 1. Numim polinomul lui Bernstein de grad m relativ la functia f, polinomul
de…nit prin formula
Xm
k
(Bm f ) (x) = pm;k (x) f ;
k=0
m
unde
m
pm;k (x) = xk (1 x)m k
; k = 0; m:
k
De…nitia 2. Numim formula de aproximare a lui Bernstein, formula

f (x) = (Bm f ) (x) + (Rm f ) (x) ;

unde (Rm f ) (x) este restul formulei de aproximare.

Proprietati:

(1) Bm este un operator liniar si pozitiv, adica

Bm ( f + g) = Bm f + Bm g; ; 2R

si Bm f 0; daca f 0 .
(2) Polinomul lui Bernstein interpoleaza functia f la capetele intervalului [0,1], adica

(Bm f ) (0) = f (0) si (Bm f ) (1) = f (1) :

(3) Daca f 2 C[0; 1] atunci

lim (Bm f ) (x) = f (x) ;


m !1

uniform pe [0,1].
(4) Daca f 2 C 2 [0; 1] atunci in formula de aproximare a lui Bernstein avem
x (1 x) 00
(Rm f ) (x) = f ( ); 0 < < 1;
2m
x (1 x) x (1 x)
j(Rm f ) (x)j sup jf 00 (x)j = M2 (f )
2m x2(0;1) 2m
si de asemenea
1
j(Rm f ) (x)j M2 (f ):
8m
(5) Polinomul lui Bernstein relativ la functia f : [0; 1] ! R este dat prin formula

1 X
m
m k
(Bm f ) (x; a; b) = m (x a)k (b x)m k
f a + (b a) :
(b a) k=0 k m
Algoritmul POLBERN

Algoritmul calculeaza valoarea polinomului lui Bernstein Bm f asociat unei functii f :


[0; 1] ! R intr-un punct x 2 [0; 1]:
Intrari: m-gradul polinomului lui Bernstein
x-punctul in care dorim sa aproximam valoarea lui f;
k k
f m ; k = 0; m; valorile functiei in punctele m (sau expresia functiei)
Iesiri: Bm f (x)
Pasul 1: pm;0 (x) := xm
Pasul 2: (Bm f ) (x) := pm;0 (x)f (0)
Pasul 3: Pentru k = 1; m executa
Pasul 3.1: pm;k (x) := pm;k 1 (x) m kk+1 1 x x
k
Pasul 3.2: (Bm f ) (x) := (Bm f ) (x) + pm;k (x)f m
Pasul 4: Tipareste (Bm f ) (x) : STOP.

Observatia 1. Pentru a reduce volumul de calcule, pentru a‡area lui pm;k (x) am folosit
relatia de recurenta:
m k+1 x
pm;k (x) = pm;k 1 (x):
k 1 x
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
plui Bernstein (B5 f ) (x; 0; 1)
x 1
unde f (x) = e ; in punctul x = 2 : Sa se compare rezultatul cu e:
4 Ajustarea in medie p¼
atratic¼
a a datelor experimentale
Atunci cand valorile unei functii pe nodurile xi ; i = 0; n 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 xi ; i = 0; n si valorile unei functii obtinute experimental
(prin masurare) yi ; i = 0; n se cere sa se determine un polinom de grad p, p < n,
g (x) = ap xp + ::: + a1 x + a0
pentru care reziduul (de variabilele a0 ; :::; ap ),
X
n
R (a0 ; :::; ap ) = [yi ap xpi ::: a1 x i a0 ] 2
i=0
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 y = f (x) dintre doua marimi x si y se efectueaza
masuratorile exprimate in tabelul
x x0 x1 ...... xn
y y0 y1 ...... yn :
Punctele (x0 ; y0 ); (x1 ; y1 ):::; (xn ; yn ) 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 x si y este liniara. Astfel, se va cauta dreapta
cea mai apropiata de punctele norului statistic. Fie ecuatia carteziana a acestei drepte,
y = ax + b
cu coe…cientii a si b necunoscuti. Consideram functia g (x) = ax + b si vom determina
coe…cientii ce minimizeaza reziduul (abatere patratica medie)
Xn X
n
2
R (a; b) = [f (xi ) g (xi )] = [yi axi b]2 :
i=0 i=0
In acest scop se considera sistemul
8 Xn
>
> @R
> @a
> = 2 (yi axi b) xi = 0
>
< i=0
()
>
> X
n
>
>
>
:
@R
@b
= 2 (yi axi b) = 0
i=0
8 X
n X
n X
n
>
> 2
>
< a xi + b xi = xi yi
i=0 i=0 i=0
X
n X
n (27)
>
>
>
: a x i + (n + 1) b = yi :
i=0 i=0

Totodata,
@2R X n
= 2 x2i > 0
@a2 i=0

si 2 !2 3
@2R @2R
24
Xn
1 X
n
1
= @a2 @a@b = 4 (n + 1) x2 xi 5 > 0;
@2R @2R
@a@b @b2 i=0
n+1 i i=0
n+1

in virtutea inegalitatii lui Jensen. Atunci, determinantul sistemului (27) este strict pozitiv si
solutia sistemului (27) este unicul punct de minim local pentru reziduul R (a; b) : Rezolvand
acest sistem se determina coe…cientii din ecuatia dreptei de regresie.

Algoritmul dreptei de regresie


I. Date de intrare:
n numarul datelor
xi ; i = 0; n, valorile marimii x
yi ; i = 0; n, valorile marimii y
II. Date de iesire:
a; b coe…cientii din ecuatia carteziana a dreptei de regresie
III. Pasii algoritmului:
Pasul 1. Calculeaza !2
Xn Xn
d := (n + 1) x2i xi
i=0 i=0

X
n X
n X
n
d1 := (n + 1) xi yi xi yi
i=0 i=0 i=0

X
n X
n X
n X
n
d2 := x2i yi xi yi xi
i=0 i=0 i=0 i=0

Pasul 2. Calculeaza
d1
a :=
d
d2
b :=
d
Pasul 3. Tipareste a; b: 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 y = f (x)
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. (
95 399
Se gasesc a = 281 si b = 281 ).

4.2 Metoda celor mai mici p¼


atrate : parabola de regresie
Dorind sa stabilim legea de dependenta y = f (x) dintre doua marimi x si y se efectueaza
masuratorile exprimate in tabelul
x x0 x1 ...... xn
y y0 y1 ...... yn :
Punctele (x0 ; y0 ); (x1 ; y1 ):::; (xn ; yn ) 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 x si y este de forma

y = ax2 + bx + c

cu coe…cientii a; b si c necunoscuti. Consideram functia g (x) = ax2 + bx + c si vom determina


coe…cientii ce minimizeaza reziduul (abatere patratica medie)

X
n X
n
2
R (a; b; c) = [f (xi ) g (xi )] = [yi ax2i bxi + c]2 :
i=0 i=0

In acest scop se considera sistemul


8
> X n
>
> @R
= 2 [yi ax2i bxi + c] x2i = 0
>
> @a
>
> i=0
>
>
>
>
>
< X n
@R
@b
= 2 [yi ax2i bxi + c] xi = 0 ()
>
>
>
> i=0
>
>
>
>
>
> Xn
>
> @R
= 2 [yi ax2i bxi + c] = 0
: @c
i=0
8
> X n X n X n Xn
>
> a 4
xi + b 3
xi + c 2
xi = x2i yi
>
>
>
> i=0 i=0 i=0 i=0
>
< X n X n X n Xn
3 2
a xi + b xi + c xi = xi yi (28)
>
>
>
> i=0 i=0 i=0 i=0
>
> X n X n X n
>
> a x 2
+ b x + c (n + 1) = yi :
: i i
i=0 i=0 i=0

Totodata,
@2R X n
= 2 x4i > 0;
@a2 i=0
2 !2 3
@2R @2R Xn X
n X
n
= @a2 @a@b =4 4 2
xi x4i x3i 5>0
@2R @2R
@a@b @b2 i=0 i=0 i=0

si 2
@2R @2R @2R !2 3
@a2 @a@b @a@c X
n X
n X
n
HR (a; b; c) = @2R
@a@b
@2R
@b2
@2R
@b@c
=8 x4i 4(n + 1) x2i xi 5+
@2R @2R @2R i=0 i=0 i=0
@a@c @b@c @c2
2 ! ! !2 3
X
n X
n X
n X
n
+8 x2i 4 xi x3i x2i 5+
i=0 i=0 i=0 i=0
" ! ! #
X
n X
n X
n X
n
+8 x3i xi x2i (n + 1) x3i > 0:
i=0 i=0 i=0 i=0

Atunci, determinantul sistemului (28) este strict pozitiv si solutia sistemului (28) este unicul
punct de minim local pentru reziduul R (a; b; c) : Rezolvand acest sistem se determina coe…-
cientii din ecuatia carteziana a parabolei de regresie,

y = ax2 + bx + c:

Algoritmul parabolei de regresie


I. Date de intrare:
n numarul datelor
xi ; i = 0; n, valorile marimii x
yi ; i = 0; n, valorile marimii y
II. Date de iesire:
a; b; c coe…cientii din ecuatia carteziana a parabolei de regresie
III. Pasii algoritmului:
Pasul 1. Calculeaza
! ! ! ! !
X n Xn Xn X n X
n
d := (n + 1) x2i x4i + 2 xi x2i x3i
i=0 i=0 i=0 i=0 i=0

!3 !2 ! !2
X
n X
n X
n X
n
x2i xi x4i (n + 1) x3i
i=0 i=0 i=0 i=0
! ! ! ! !
X
n X
n X
n X
n X
n
d1 := (n + 1) x2i x2i yi + xi x2i xi yi +
i=0 i=0 i=0 i=0 i=0
! ! ! !2 !
X
n X
n X
n X
n X
n
+ x3i xi yi x2i yi
i=0 i=0 i=0 i=0 i=0
!2 ! ! !
X
n X
n X
n X
n
xi x2i yi (n + 1) x3i xi yi
i=0 i=0 i=0 i=0
! ! ! ! !
X
n X
n X
n X
n X
n
d2 := (n + 1) xi yi x4i + x2i x3i yi +
i=0 i=0 i=0 i=0 i=0
! ! ! !2 !
X
n X
n X
n X
n X
n
+ xi x2i x2i yi x2i xi yi
i=0 i=0 i=0 i=0 i=0
! ! ! ! !
X
n X
n X
n X
n X
n
x4i xi yi (n + 1) x2i yi x3i
i=0 i=0 i=0 i=0 i=0
! ! ! ! ! !
X
n X
n X
n X
n X
n X
n
d3 := x4i x2i yi + xi x2i yi x3i +
i=0 i=0 i=0 i=0 i=0 i=0
! ! ! !2 !
X
n X
n X
n X
n X
n
+ x2i x3i xi yi x2i x2i yi
i=0 i=0 i=0 i=0 i=0
! ! ! !2 !
X
n X
n X
n X
n X
n
xi xi yi x4i x3i yi :
i=0 i=0 i=0 i=0 i=0

Pasul 2. Calculeaza
d1
a :=
d
d2
b :=
d
d3
c :=
d
Pasul 3. Tipareste a; b; c: STOP.

Tema : Sa se scrie un program in limbajul C pentru parabola de regresie.


5 Formule de cuadratur¼
a
Pentru o functie continua f : [a; b] ! R, cand primitiva sa se poate calcula sub forma …nita,
formula lui Leibniz-Newton permite calculul integralei de…nite
Zb
f (x) dx = F (b) F (a):
a

Zb
Cand primitiva F nu se poate determina sub forma …nita, atunci integrala de…nita f (x) dx
a
se poate calcula doar aproximativ, motivand astfel studiul si utilizarea formulelor de cuadratura
numerica.
In general, o formula de cuadratura este de forma
Zb X
n
f (x) dx = Ak f (xk ) + R(f )
a k=1

in care Ak 2 R se numesc coe…cientii, iar xk 2 [a; b]; k = 1; n nodurile formulei de


cuadratura. Estimarea erorii comise se poate realiza stabilind o margine superioara pentru
restul jR(f )j al formulei de cuadratura.
Daca o formula de cuadratura se poate obtine prin integrarea pe intervalul [a,b] a unei
formule de interpolare
f (x) = P (x) + R(x); x 2 [a; b]
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ţii 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 = 1;
1 x2
f : R ! R, f (x) = p e 2
2
conduce la functia integrala a lui Laplace,
Zx
1 t2
(x) = p e 2 dt; x > 0
2
0

in care integrala se poate calcula doar aproximativ. Valorile functiei lui Laplace pentru
x 2 [0; 4] sunt aproximate in 401 noduri echidistante din intervalul [0; 4] si se gasesc
tabelate in tratatele de calculul probabilitatilor.
Consideram elipsa de ecuatie implicita

x2 y 2
(E) : + 2 1 = 0; a; b > 0; a > b
a2 b
p
a2 b2
cu excentricitatea = a
: Ecuatiile parametrice ale elipsei sunt

x = a cos t
(E) : ; t 2 [0; 2 ]:
y = b sin t

Incercand sa calculam lungimea arcului de elipsa cuprins in cadranul I putem folosi atat
ecuatiile parametrice la calculul integralei

Z2 q
E
l = [x0 (t)]2 + [y 0 (t)]2 dt
4
0

b
p
cat si ecuatia explicita y = a
a2 x2 ; x 2 [0; a];
la calculul integralei
Za q
E
l = 1 + [y 0 (x)]2 dx:
4
0

Ambele integrale conduc la integrala eliptica

Z2 p
E
l =a 1 2 sin2 tdt:
4
0

Spre exemplu,
Za q Za r
E 1 a4 + (b2 a2 )x2
l = 1 + [y 0 (x)]2 dx = dx;
4 a a2 x 2
0 0

cu substitutia x = a sin t; t 2 [0; 2 ] se obtine

Z2 r
E 1 a2 + (b2 a2 ) sin2 t
l = a cos tdt =
4 a cos2 t
0

Z2 q Z2 r
(a2 b2 )
= a2 + (b2 a2 ) sin2 tdt = a 1 sin2 tdt =
a2
0 0

Z2 p
=a 1 2 sin2 tdt:
0
Integralele eliptice de genul I, II si III in sensul lui Legendre sunt respectiv,
Z'
dt
F (k; ') = p
1 k 2 sin2 t
0

Z' p
E(k; ') = 1 k 2 sin2 tdt
0
Z'
dt
p ;
1 + h sin2 t 1 k 2 sin2 t
0

pentru k 2 (0; 1); h 2 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
Z2 p
l(P ) = 4aE( ; ) = 4a 1 2 sin2 tdt;
2
0

unde = 0; 016729 si a = 149; 6 106 km.

5.2 Formula trapezului


Dup¼
a cum se ştie, pentru o funcţie continu¼
a f : [a; b] ! R; are loc egalitatea,
Zb
b a
f (x)dx = [f (a) + f (b)] + R(f ):
2
a

Pentru valoarea absolut¼ a a restului R(f ) se pot stabili margini superioare. Corespunz¼ator cu
propriet¼aţile funcţiei f aceste margini superioare pot … mai apropiate sau mai îndep¼ artate de
jR(f )j. Astfel, dac¼ a f 2 C[a; b] atunci estimarea se face cu ajutorul modulului de continuitate,
b a b a
jR(f )j $(f ; ):
2 2
În [9] s-au obţinut recent urm¼atoarele estim¼ ari :
8
> L(b a)2
< 4
; daca f 2 Lip[a; b]
jR(f )j
>
: (b a)2 kf 0 k ;
4
daca f 2 C 1 [a; b]:

Pentru f 2 C 2 [a; b] este cunoscuta estimarea clasic¼


a,
(b a)3 kf 00 k
jR(f )j :
12
Pentru funcţii cu derivata Lipschitz are loc:
Teorema: (in [5]) Dac¼ a f 2 C 1 [a; b] cu f 0 2 Lip[a; b], iar L0 > 0 este constanta Lipschitz
pentru f 0 , atunci
(b a)3 L0
jR(f )j :
12
Considerând o diviziune a intervalului [a; b];

: a = x0 < x1 < ::: < xn 1 < xn = b

not¼
am hi = xi+1 xi ; 8i = 0; n 1; şi

1X
n 1
In (f; ) = hi [f (xi ) + f (xi+1 )]:
2 i=0

Corespunz¼
ator diviziunii de mai sus se obţine :
Teorema: (in [5] si [9]) Formula trapezului corespunz¼
atoare diviziunii este

Zb
f (x)dx = In (f; ) + Rn (f; );
a

iar pentru estimarea restului avem


8 n 1
> P
> 1
> hi $(f ; 12 hi ); dac¼
a f 2 C[a; b]
>
> 2
>
> i=0
>
> nP1
>
> L
h2i ; dac¼a f 2 Lip[a; b]
>
> 4
>
< i=0
kf 0 k P 2
n 1
jRn (f; )j hi ; dac¼a f 2 C 1 [a; b] (29)
>
>
4
i=0
>
> nP1
>
> L0
>
> h3i ; dac¼a f 0 2 Lip[a; b]
>
>
12
i=0
>
> kf 00 k P 3
> n 1
>
: hi ; dac¼a f 2 C 2 [a; b]:
12
i=0

Corolar: (in [5] si [9]) Dac¼


a diviziunea este echidistant¼
a atunci,

Zb X
n 1
b a i(b a)
f (x)dx = [f (a) + 2 f (a + ) + f (b)] + Rn (f ) (30)
2n i=1
n
a

şi 8 b a
>
> 2
$(f ; b2na ); dac¼
a f 2 C[a; b]
>
> (b a)2 L
>
< 4n
; dac¼a f 2 Lip[a; b]
(b a)2 kf 0 k
jRn (f )j 4n
; dac¼a f 2 C 1 [a; b] (31)
>
> (b a)3 L0
>
> ; dac¼
a f 0 2 Lip[a; b]
>
: 12n2
(b a)3 kf 00 k
12n2
; dac¼a f 2 C 2 [a; b]:
Observatie: Formula (30) se poate obtine si integrand formula de interpolare spline
poligonala cu noduri echidistante.
Fie functia integrabila f : [a; b] ! R cu valori cunoscute pe noduri echidistante din
intervalul [a,b].
De…nitia 1. 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; a + kh]; k = 1; n;

unde h = b na :
1. Formula de cuadratura a trapezelor este
Zb " #
b a X1
m
f (x) dx = f (a) + 2 f (a + kh) + f (b) + Rn (f ) :
2n k=1
a

2. Daca f 2 C 2 [a; b] atunci restul in formula de cuadratura a trapezelor are expresia

(b a)3 00 (b a) h2 00
Rn (f ) = f ( )= f ( ); a < < b;
12n2 12
de unde
(b a)3 (b a) h2
jRn (f )j M 2 (f ) = M2 (f ):
12n2 12
3. Formula de cuadratura a trapezelor are gradul de exactitate 1.
4. Daca se considera in formula de cuadratura a trapezelor

n = 2p ; p = 0; 1; 2; :::

si se noteaza prin
b a b a
hp = = ; p = 0; 1; 2; :::
n 2p
X
n 1
Sp = f (a) + 2 f (ak ) + f (b); ak = a + khp ; k = 0; n;
k=1
cu
S0 = f (a) + f (b);
atunci urmatoarele formule de recurenta au loc
hp
hp+1 = ;
2
p
X
2
Sp+1 = Sp + 2 f (a + (2k 1) hp+1 ) ; p = 0; 1; :::
k=1

deci
Zb
hp
f (x) dx Sp :
2
a
Algoritmul (Trapez-repetat)
Zb
Algoritmul calculeaza valoarea aproximativa a integralei f (x) dx prin formula repetata a
a
trapezelor, cu o precizie data :
Intrari: a,b-limitele de integrare
f-expresia functiei
precizia dorita
Zb
Iesiri: f (x) dx valoarea aproximativa
a
Pasul 1: (Initializari)
p := 0; hp := b a; Sp := h2p [f (a) + f (b)] ; np := 1
Pasul 2: p := p + 1
Pasul 3: hp := hp2 1
Pasul 4: sum:=0
Pasul 5: Pentru i = 1; 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.

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;
for (i=1; i<=n; i++)
s = s + f(x[i-1]) + f(x[i]);
s = (b-a) / (2 * n) * s;

printf("REZ: %lfnnnn",s);
return 0;
}

Probleme propuse:
1. 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. Sa se utilizeze formula de cuadratura a trapezului pentru n=10 la calculul integralei
Z 1:5 2
t
e 2 dt:
0

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ā şi
formula perturbat¼a a trapezului (în care mai apar pe noduri doar derivate de ordinul întâi) :

Zb
b a (b a)2 0
f (x)dx = [f (a) + f (b)] [f (b) f 0 (a)] + R(f ): (32)
2 12
a

Estimarea restului acestei formule de cuadratur¼ a a fost obţinut¼a de K.Petr în 1915, în [18]
(pentru alte moduri de obţinere a acestei formule si a restului, a se vedea şi [16], [20]),

(b a)5 f IV
jR(f )j (33)
720
pentru functii f 2 C 4 [a; b]: Recent, în 2001, N.Barnett şi S.S.Dragomir au obţinut în [2] o
estimare ce utilizeaz¼
a derivata de ordinul trei,

(b a)4 kf 000 k
jR(f )j (34)
160
pentru f 2 C 3 [a; b]: Ulterior, în 2002, au fost conduşi la o estimare valabil¼
a pentru funcţii de
3 ori derivabile cu derivata de ordinul 3 Lipschitz (având constanta Lipschitz L000 , a se vedea
[3]) :
(b a)5 L000
jR(f )j : (35)
720
Considerând o diviziune a intervalului [a; b] :

In : a = x0 < x1 < ::: < xn 1 < xn = b;

hi = xi+1 xi ; 8i = 0; n 1 se obţine în [2] urm¼


atoarea formul¼
a de cuadratur¼
a ( numit¼
a
formul¼
a de cuadratur¼
a trapezoidal¼
a perturbat¼
a):

Zb
1X 1 X 2 0
n 1 n 1
f (x)dx = hi [f (xi ) + f (xi+1 )] h [f (xi+1 ) f 0 (xi )] + Rn (f; In ) (36)
2 i=0 12 i=0 i
a

pentru care restul satisface estimarea

kf 000 k X 4
n 1
jRn (f; In )j h: (37)
160 i=0 i

b a
Dac¼
a diviziunea In este echidistant¼
a atunci hi = h = n
; 8i = 0; n 1; iar formula se
simpli…ca (36) devenind,

Zb X
n 1
b a (b a)2 0
f (x)dx = [f (a) + 2 f (xi ) + f (b)] [f (b) f 0 (a)] + Rn (f ): (38)
2n i=1
12n2
a

Estimarea restului este în acest caz ( conform cu [2]),

(b a)4 kf 000 k
jRn (f )j : (39)
160n3
iar inegalitatile (35) si (33) ne conduc la estimarile
8
(b a)5 L000
>
< 720n4
jRn (f )j (40)
>
: (b a)5 kf IV k
720n4
:

Observatie: Formula (32)-(33) se poate obtine si prin integrarea pe [a; b] a formulei de


interpolare Hermite cu doua noduri duble (12), iar formula (36) se poate obtine prin integrarea
pe [a; b] 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
f functia ce se integreaza
Rb
II. Date de iesire : S, valoarea aproximativa a integralei f (x)dx
a
III. Pasii algoritmului
Pasul 1. Pentru i = 0; n calculeaza
b a
xi := a + i
n
Pasul 2. Calculeaza
T := 0
Pentru i = 1; n calculeaza

T := T + [f (xi 1 ) + f (xi )]

Pasul 3. Calculeaza
(b a) (b a)2
S := T [f 0 (b) f 0 (a)]:
2n 12n2
Pasul 4. Tipareste S. 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 Z 1:5
t2
e 2 dt;
0
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
Zb
b a a+b
f (x) dx = f (a) + 4f + f (b) + R (f ) ;
6 2
a

unde restul formulei, cand f 2 C 4 [a; b]; este

(b a)5 (iv)
R (f ) = f ( ); a < < b;
2880
astfel pentru evaluarea erorii avem

(b a)5
jR (f )j M4 (f ):
2880
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 [a + 2 (k 1) h; 2k
k = 1; n; unde h = b2na :
1. Formula de cuadratura repetata a lui Simpson este
Zb " #
b a X
n X
n 1
f (x) dx = f (a) + 4 f (a + (2k 1) h) + 2 f (a + 2kh) + f (b) + Rn (f ) :
6n k=1 k=1
a

2. Daca f 2 C 4 [a; b] atunci restul in formula de cuadratura repetata a lui Simpson are
expresia
(b a)5 (iv) (b a) h4 (iv)
Rn (f ) = f ( ) = f ( ) ; a < < b;
2880n4 180
de unde
(b a)5 (b a) h4
jRn (f )j M 4 (f ) = M4 (f ):
2880n4 180
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

n = 2p ; p = 0; 1; 2; :::

si se noteaza prin
b a b a
hp = = ; p = 0; 1; 2; :::
2n 2p+1
cu
S0 = f (a) + f (b);
X
n
Sp(1) = f (a + (2k 1) hp ) ; p = 0; 1; 2; :::
k=1

X
n 1
Sp(2) = f (a + 2khp ) ; p = 0; 1; 2; :::
k=1
(2)
cu S0 = 0; atunci au loc relatiile de recurenta
1
hp+1 = hp ;
2
(2)
Sp+1 = Sp(2) + Sp(1) ;
deci
Zb
hp
f (x) dx S0 + 2Sp(2) + 4Sp(1) :
3
a

Algoritmul (Simpson-repetat)

Zb
Algoritmul calculeaza valoarea aproximativa a integralei f (x) dx prin formula repetata a
a
lui Simpson, cu o precizie data :
Intrari: a,b-limitele de integrare
f-expresia functiei
precizia dorita
Zb
Iesiri: f (x) dx-valoarea aproximativa
a
Pasul 1: (Initializari)
p := 0; hp := b 2 a ; S0 := f (a) + f (b); n0 := 1;
(2) (1) (2) (1)
S0 := 0; S0 := f (a + h0 ); I0 := h3 S0 + 2Sp + 4Sp
Pasul 2: p := p + 1
Pasul 3: hp := 12 hp 1
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; np executa
(1) (1)
Sp := Sp + f (a + (2k 1) hp )
(2) (1)
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.

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;
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.20lfnnnn",s);
return 0;
}
Probleme propuse

1. Sa se scrie un program in limbajul Pascal pentru algoritmul lui Simpson.


1
2. Se considera functia f (x) = 1+x : Sa se calculeze valoarea aproximativa a integralei
Z1
f (x) dx; cu o precizie = 10 1 ; = 10 2 ; = 10 3 ; folosind formulele repetate ale
0
trapezului, respectiv a lui Simpson.
6 Metode numerice in algebra liniara
6.1 Calculul determinantului
Fie A o matrice patratica de ordinul n

A = (aij )i;j=1;n

cu detA 6= 0: Se pune problema calculului determinantului, detA; si a inversei A 1 :


Calculul determinantului detA 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
(1) (1) (1)
a11 a12 ::: a1n a11 a12 : : : a1n
(2) (2)
a21 a22 ::: a2n 0 a22 : : : a2n
detA := = ;
::: ::: ::: ::: ::: ::: ::: :::
an1 an2 ::: ann (n)
0 0 : : : ann

deci
(1) (2)
(n)
detA = a11 a22 ::: ann :
Transformarile necesare sunt date de relatiile:
(1)
aij := aij ; i; j = 1; n;
(p+1) (p) (p) (p)
aij := aij apj aip =a(p)
pp ; p = 1; n 1;
(p)
pentru i; j = p + 1; n: Conditia de realizare a metodei este app 6= 0; p = 1; n:
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: det (A)
Pasul 1: det := 1
Pasul 2: Pentru p := 1; n 1 executa
Pasul 2.1 : Daca app 6= 0 salt la pasul 2.3
Pasul 2.2 : Cauta un element ajp 6= 0, cu j 2 fp + 1; :::; ng :
Daca acest element nu exista atunci det := 0: STOP.
altfel
det := det:
Schimba linia p cu linia j.
Pasul 2.3.1: Pentru i := p + 1; n executa
aip
aij := aij apj app
Pasul 2.4 : det := det app
Pasul 3: det := det ann
Pasul 4: Tipareste: det: STOP.
6.2 Calculul inversei unei matrici
Fie A o matrice patratica de ordinul n

A = (aij )i;j=1;n

Transformarile folosite sunt:


(0) (0) 1; n + i = j
aij := aij ; i; j = 1; n; aij =
0; n + i 6= j; i = 1; n; j = n + 1; 2n
(
(p) (p 1) (p 1)
apj := apj =app ; j = p + 1; 2n
(p) (p 1) (p) (p 1) ; p = 1; n
aij := aij apj aip ; j = p + 1; 2n; i = 1; n; i 6= p
La sfarsitul acestor calcule obtinem:
0
(n) (n) 1
a1;n+1 : : : a1;2n
A 1
= @ ::: ::: ::: A:
(n) (n)
an;n+1 : : : an;2n

Algoritmul (INV)
Algoritmul calculeaza inversa unei matrici A.
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; 2n executa
Pasul 1.1 : Pentru i = 1; n executa
Daca n + i = j atunci aij := 1
altfel aij := 0
Pasul 2: Pentru p = 1; n executa
Pasul 2.1 : Daca app 6= 0 se trece la pasul 2.3
Pasul 2.2 : Se cauta un element ajp 6= 0, j 2 fp + 1; :::; ng :
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 := app
Pasul 2.4 : Pentru j = p; 2n executa
apj := apj =c
Pasul 2.5 : Pentru i = 1; n executa
Pasul 2.5.1 : Daca i 6= p atunci
Pasul 2.5.1.1: c := aip
Pasul 2.5.1.2: Pentru j = p; 2n executa
aij := aij apj c
Pasul 3: Pentru i = 1; n executa
Pasul 3.1 : Pentru j = 1; n executa
aij1 := aij+n
Pasul 4: Tipareste A 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
0 este posibil) 1
inversa urmatoarelor matrici:
0 1 0 1 1 4 2 5
3 2 1 2 1 3 B 2 1 4 3 C
(a) @ A
2 1 0 ; (b) @ 3 3 2 A ; (c) B@ 3 2 1
C:
1 A
1 0 0 1 2 1
3 1 0 5
R: (a) det
0 = 1; (b) det 1 = 6; (c) det 0
= 0: 1
0 0 1 1 5 7
A 1=@ 0 1 2 A si A 1 = 16 @ 1 1 5 A
1 2 1 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 Ax = b; A = (aij )i;j=1;n ; b = (b1 ; :::; bn )T ; cu det (A) 6= 0:
Metoda lui Gauss consta din doua etape:
1) transformarea sistemului dat intr-un sistem triunghiular echivalent:

X
n
(p)
apj xj = b(p) ; p = 1; n;
i=p

elementele matricei acestui sistem …ind date de relatiile:


(1) (1)
aij := aij ; bi := bi ; i; j = 1; n;

(p+1) (p) (p) (p)


aij := aij apj aip =a(p)
pp ;

(p+1) (p) (p)


bi := bi b(p)
p
(p)
aip =app ;
(p)
pentru p = 1; n 1; iar i; j = p + 1; n; in ipoteza ca app 6= 0; p = 1; n:
(p)
Observatia 1. Asigurarea conditiilor app 6= 0; p = 1; n; se poate face prin procedeul
(p) (p)
pivotului maxim. Astfel, pentru a asigura ca app 6= 0; se determina, dintre elementele aij ;
(p)
i; j = p; n; elementul cu valoarea absoluta maxima. Fie acesta aip jp : Schimband intre ele
(p)
liniile p si ip respectiv coloanele p si jp , elementul aip jp 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
(p)
partiala. Astfel, daca app = 0, se schimba linia p cu linia ip pentru care avem
n o
(p)
aip ;p = max aip ; i = p + 1; n :
(p)
In cazul in care aip = 0; i = p; n; se va face uz si de schimbarea coloanelor.
2) rezolvarea sistemului triunghiular folosind metoda substitutiei inverse:

xn = bn(n) =a(n)
nn ;
" #
1 Xn
(p)
xp = (p)
b(p)
p apj xj ; p = n 1; 1:
app j=p+1

Algoritmul (Gauss)
Algoritmul rezolva sistemul liniar Ax = b 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 k = 1; n; executa: pk := k
Pasul 2: Pentru k = 1; n 1; executa
Pasul 2.1: determina i; j 2 fk; k + 1; :::; ng astfel incat:
jaij j = max jar;q j ; r; q = k; n
Pasul 2.2: Daca aij = 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 = k + 1; n executa
Pasul 2.7.1: temp:= aakkik

Pasul 2.7.2: Pentru j = k + 1; n executa


aij := aij temp akj
Pasul 2.7.3: bi := bi bk temp
Pasul 3: Daca ann = 0 atunci
Tipareste:”Sistemul nu este compatibil determinat”. STOP.
Pasul 4: Pentru i = 1; n ! executa
X n
xi = a1ii bi aij xj
j=i+1
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:
8
>
> 2x1 + x2 4x3 + x4 = 0
<
4x1 + 3x2 + 5x3 2x4 = 10
(a) ;
>
> x1 x2 + x3 x4 = 3
:
8 x1 + 3x2 3x3 + 3x4 = 1
>
> 2x1 + 4x3 + x4 = 7
<
2x2 + 4x3 + x4 = 7
(b) ;
>
> 2x1 + 4x2 + 3x3 = 9
:
8 x1 + 2x2 + 2x4 = 5
< 2x1 + 2x2 + 2x3 = 6
(c) x1 x2 = 2 :
:
3x1 + x2 + 2x3 = 8

6.4 Metoda iterativ¼


a a lui Jacobi pentru sisteme liniare
Consider¼
am sistemul liniar
8
< a11 x1 + ::: + a1n xn = b1
:::::::::::::::::::::::::: (41)
:
an1 x1 + ::: + ann xn = bn
01 0 1
a11 ::: a1n x1
a A x = b; unde A = @ ::: ::: ::: A ; x = @ ::: A
ce poate … scris sub forma vectorial¼
0 1 an1 ::: ann xn
b1
şi b = @ ::: A : Presupunem c¼ a det A 6= 0:
bn
Putem scrie sistemul (41) sub forma echivalent¼
ax= x + ; unde

=( ij )i;j=1;n ; =( 1 ; :::; n)

se pot exprima în funcţie de A şi b: Aceasta se poate realiza întotdeauna astfel :


Dac¼a aii 6= 0; 8i = 1; n; atunci împ¼ arţind …ecare ecuaţie de ordin i cu aii ; obţinem sistemul
echivalent
bi ai1 ai;i 1 ai;i+1 ain
fxi = x1 ::: xi 1 xi+1 ::: x n + bi ; i = 1; n:
aii aii aii aii aii
Notând 0 1
a12 a1n 0 1
0 :::
B a21
a11 a11
a2n C b1 + ab111
0 :::
=B
@
a22 a22 C
A şi = @ ::::: A
::: ::: ::: :::
an1 an2 bn + abnn
n

ann ann
::: 0
obţinem forma sistemului,
x= x+ : (42)
Dac¼a exist¼a un aii = 0; atunci se rearanjeaz¼ a ecuaţiile şi se renumeroteaz¼
a necunoscutele
astfel încât sistemul s¼ a … adus la forma în care aii 6= 0; 8i = 1; n: Astfel, odat¼
a poat¼ a ajunşi
la forma (42) a sistemului (41), se va putea aplica sistemului liniar metoda aproximaţiilor
succesive, obţinând iteraţiile

x(k+1) = x(k) + ; k = 0; 1; 2; ::: (43)


0 (k+1) 1
x1
Dac¼ am x(k+1)
a not¼ = @ ::: A ; atunci pe componente (43) devine
(k+1)
xn

(k+1)
X
n
(k+1)
fxi = ij xj + i , i = 1; n: (44)
j=1

(0) 1 0
x1
Iteraţiile (43) vor porni de la un vector iniţial arbitrar, x(0) = @ ::: A : Astfel, este de…nit
(0)
xn
un proces iterativ Picard. Aplicând principiul de punct …x al lui Banach vom obţine condiţii
su…ciente de convergenţ¼ a a acestui proces. :
Teorema: Dac¼ a soluţie x 2 Rn ,
a det A 6= 0 şi k k1 < 1; atunci sistemul (41) are o unic¼
ce este limita şirului de…nit prin recurenţ¼a în (43) indiferent de vectorul iniţial x(0) : Dac¼
a
(0)
x = atunci are loc urm¼ atoarea estimare a erorii :

k kk1
x x(k) 1
k k1 ; 8k 2 N : (45)
1 k k1

Se considera sistemul

Ax = b; A = (aij )i;j=1;n ; b = (b1 ; :::; 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) ; k = 1; 2; ::: de aproximatii ale solutiei x :
Daca sirul x(k) ; k = 1; 2; ::: converge la x ; metoda se numeste convergenta.
Elementul x(k) al sirului se numeste aproximatie de rang k. Obtinerea unei metode iterative
are la baza scrierea matricei A sub forma

A=P +Q (46)

si a sistemului sub forma


P x = Qx + b:
Daca x(0) este valoarea de pornire, sirul x(k) ; k = 1; 2; ::: poate … generat astfel:

P x(m+1) = Qx(m) + b; m = 0; 1; :::

Proprietatea 1. Pentru x(m) dat, exista in mod unic x(m+1) daca si numai daca exista
1
P si avem:
x(m+1) = P 1 Qx(m) + P 1 b: (47)
Prin urmare, scrierea sub forma (46) a matricei A trebuie sa tina seama de conditia ca sa
existe P 1 :
Proprietatea 2. Convergenta metodei iterative este asigurata daca
kP 1 Qk < 1; k k …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
0 1
a11 0 ::: 0
B 0 a22 : : : 0 C
P := PJ = B @ :::
C ; aii 6= 0; i = 1; n:
::: ::: ::: A
0 0 : : : ann

Relatia (47) poate … scrisa sub forma detaliata:


!
(m+1) 1 X
n
(m)
xi = bi aij xj ; i = 1; n:
aii j=1;j6=i

In acest caz, conditia de convergenta pentru orice valoare de pornire x(0) ; este de exemplu:
( n )
X aij
In PJ 1 A 1 = max = c < 1;
1 i n
j=1;j6=i
a ii

adica matricea A sa …e strict diagonal dominanta.

Algoritmul metodei lui Jacobi

Calculeaza o aproximatie a solutiei sistemului Ax = b cu precizia eps folosind metoda


lui Jacobi. Conditia de oprire a calculului aproximatiilor succesive ale solutiei este

1 kP 1 Qk
x(k) x(k 1)
eps;
kP 1 Qk

k k …ind una dintre normele pentru indice; kP 1 Qk trebuie sa …e <1 pentru ca metoda
sa convearga.
Intrari: n-ordinul matricei
A-matricea sistemului
b- matricea termenilor liberi
eps-precizia
norma kP 1 Qk (daca nu, 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; n executa
!
(m)
X
n
(m 1)
1
Pasul 2.1: xi = aii
bi aij xj
j=1;j6=i
(m) (m 1) 1 kP 1Q
k
Pasul 3: Daca x x kP 1 Qk eps 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. Se0da urmatorul sistem liniar, Ax1= b : 0 1
4 1 0 1 0 0 2
B 1 4 1 0 1 0 C C B C
B B 1 C
B 0 1 4 0 0 1 C B C
A=B C; b = B 2 C:
B 1 0 0 4 1 0 C C B 2 C
B B C
@ 0 1 0 1 4 1 A @ 1 A
0 0 1 0 1 4 2
T
Acest sistem are solutia exacta x = (1; 1; 1; 1; 1; 1) :
Sa se rezolve sistemul folosind metoda iterativa a lui Jacobi. Ca si aproximatie initiala se va
folosi x(0) = 0: Precizia cu care se
0cer solutiile este 0 Comparati
1 = 0; 0001: 1 rezultatele.
2 1 0 1
3. Fie sistemul Ax = b; A = @ 1 2 1 A si b = @ 0 A :
0 1 2 1
(1) Sa se determine o solutie aproximativa a sistemului folosind:
(a) Metoda lui Jacobi cu 3 pasi; 0 1
1
(2) Stiind ca valoarea exacta a solutiei este x = @ 1 A ; studiati erorile ce apar.
1
7 Metode numerice pentru ecuaţii neliniare
7.1 Metoda injum¼
at¼
aţirii intervalului
Metoda injumatatirii pentru aproximarea solutiei izolate x 2 (a; b) a ecuatiei f (x) = 0;
f 2 C[a; b]; consta in construirea unui sir de intervale

[a0 ; b0 ] [a1 ; b1 ] ::: [an ; bn ] :::

astfel incat x 2 [an ; bn ] :


Pentru aceasta se considera [a0 ; b0 ] = [a; b]: In continuare se ia

[a; a+b
2
]; daca f (a)f a+b
2
< 0;
[a1 ; b1 ] = a+b a+b
[ 2 ; b]; daca f (a)f 2
> 0:

In general avem

[an ; an +b
2
n
]; daca f (an )f an +bn
2
< 0;
[an+1 ; bn+1 ] = an +bn an +bn
[ 2 ; bn ]; daca f (an )f 2
> 0:

Observatia 1. Se poate intampla ca in construirea sirului de intervale sa avem an = x


sau bn = x ; caz in care procedeul se incheie.
Observatia 2. Sirurile (an )n 0 si (bn )n 0 reprezinta siruri de aproximatie prin lipsa,
respectiv prin adaos, pentru solutia x .
Observatia 3. Deoarece bn an = b2na ; avem ca

b a
jxn xj ;
2n
daca xn = an sau xn = bn :

Algoritmul (Metoda injumatatirii)


Algoritmul aproximeaza solutia izolata x 2 [a; b] a ecuatiei f (x) = 0; f 2 C[a; b]; prin
metoda injumatatirii intervalului.
Intrari: functia f
capetele intervalului: a, b
precizia dorita: eps
Iesiri: Aproximarea radacinii ecuatiei: SOL
Pasul 1: Fie c := a+b2
Pasul 2: Daca b c eps atunci SOL:=c. STOP.
Pasul 3: Daca f (b) f (c) 0 atunci a := c
altfel b := 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 f (a) f (b) < 0). Aceasta se poate
face folosind una din metodele de izolare a radacinilor unei ecuatii: sirul lui Rolle, Sturm, etc.
Observatia 5. Chiar daca nu ne-am asigurat ca f (x) = 0 are o singura solutie in [a,b],
daca f (a) f (b) < 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:
x6 x 1 = 0:
3. Folositi programul pentru a calcula cea mai mica radacina pozitiva a ecuatiei

x tgx = 0:

7.2 Metoda aproximaţiilor succesive pentru ecuatii scalare


Consider¼
am ecuaţia
' (x) = x (48)
cu ' : R ! R; continu¼ a. Pentru x0 2 J ( unde J R; este interval ) …xat se construieşte
prin recurenţ¼
a şirul aproximaţiilor succesive

xn+1 = ' (xn ) ; n 2 N: (49)

Utilizand principiul de punct …x al lui Banach se obtine:


Teorema 1: Fie J R; interval compact şi ' : J ! R; astfel încât ' (x) 2 J; 8x 2 J
şi ' 2 C 1 (J) : Dac¼
a j'0 (x)j q < 1; 8x 2 J; atunci ecuaţia (48) are în J o unic¼
a soluţie
x , care este limita şirului (49). În plus, are loc estimarea erorii :
qn
jxn xj jx1 x0 j ; 8n 2 N : (50)
1 q
Folosind teorema lui Lagrange a cresterilor …nite se poate demonstra:
Teorema 2: Fie x un punct …x al lui ', iar (xn )n2N şirul aproximaţiilor succesive generat
de ' pentru un x0 dat, care converge la x : Dac¼a ' 2 C 1 (V (x )) şi j'0 (x)j < q; 8x 2 V (x ) ;
atunci
q
jxn x j jxn xn 1 j ; 8n 2 N : (51)
1 q
Observatia 1: Propoziţia precedent¼ a precizeaz¼
a o estimare a posteriori şi 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 jxn x j "; din (51) se obţine
1 q
jxn xn 1 j ";
q
condiţie care constituie un criteriu de oprire a calculului.
Observatia 2: Condiţia de convergenţ¼ a a procedurii iterative Picard este dat¼ a de ine-
0
galitatea k' k1 < 1: R¼ asturnarea acestei inegalit¼aţi poate conduce la divergenţa iteraţiilor
Picard. Dac¼ a k'0 k1 < 1 şi '0 (x) > 0; 8x 2 J; atunci şirul (49) converge monoton c¼ atre x ;
0 0
descresc¼ator dac¼a x0 > x şi cresc¼ ator dac¼ a x0 < x : Dac¼
a k' k1 < 1 şi ' (x) < 0; 8x 2 J;
atunci şirul (49) converge oscilant c¼ atre x :
Observatia 3: Ecuaţia f (x) = 0 poate … pus¼ a sub forma (48) şi se poate g¼
asi funcţia '
astfel încât s¼a …e îndeplinit¼a condiţia k'0 k1 < 1: Astfel, dac¼
a f 2 C 1 (J) şi presupunând c¼ a
exist¼
a m1 ; M1 > 0 astfel încât

0 < m1 f 0 (x) M1 ; 8x 2 J

( acest lucru se poate realiza dac¼a f 0 (x) 6= 0 şi atunci când f 0 (x) < 0; c¼
aci ecuaţia f (x) = 0
poate … pus¼ a sub forma f (x) = 0 ). Apoi, ecuaţia f (x) = 0 se pune sub forma echivalent¼ a
x = x f (x) ; unde > 0 se alege astfel încât s¼ a avem k'0 k1 < 1; şi se va pune
' (x) = x f (x) : Pentru a determina constanta > 0 pornim de la inegalitatea

0 '0 (x) = 1 f 0 (x) q<1


m1
ceea ce va conduce la a alege = M11 şi atunci vom obţine q = 1 M 1
< 1:
Observatia 4: Dac¼ a intervalul compact J nu conţine originea şi funcţia ' este bijectiv¼
a,
0
atunci ecuaţia (48) poate … rezolvat¼ a şi când j' (x)j k > 1: În acest caz procesul iterativ ar
not
deveni divergent. De aceea se pune ecuaţia (48) sub forma echivalent¼ a x = ' 1 (x) = (x) :
Vom … conduşi la soluţia ecuaţiei (48), iar procedura iterativa Picard corespunz¼ atoare este
convergent¼a, deoarece
1 1
j 0 (x)j = 0 = q < 1:
' ( (x)) k

Algoritmul metodei aproximatiilor succesive


I. Date de intrare:
x0 iteratia initiala
' functia contractie
" > 0 eroarea admisa
II. Date de iesire:
xn ultima iteratie ce aproximeaza solutia cu eroarea admisa
III. Pasii algoritmului
Pasul 1. Calculeaza
x1 = ' (x0 )
Pasul 2. Cat timp
jxn xn+1 j "
Pentru n 0
Calculeaza
xn+1 = ' (xn )
Pasul 3. Pentru n 2 N; pentru care

jxn xn 1 j < "

Tipareste xn : STOP.
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
x4 x 1 = 0:

7.3 Metoda aproximaţiilor succesive pentru sisteme neliniare


Consider¼
am sistemul de ecuaţii :
8
< x1 = '1 (x1 ; :::; xn )
:::::::::::::::: ; (x1 ; :::; xn ) 2 D; (52)
:
xn = 'n (x1 ; :::; xn )

unde D Rn este un domeniu, 'i : D ! R sunt funcţii continue pe D astfel încât

('1 (x1 ; :::; xn ); :::; 'n (x1 ; :::; xn )) 2 D; 8(x1 ; :::; xn ) 2 D:

Acest sistem poate … pus sub forma vectorial¼


a

x = ' (x) ; x 2 D; (53)

unde x = (x1 ; :::; xn ) şi ' = ('1 ; :::; 'n ) :


În conformitate cu metoda aproximaţiilor succesive expus¼ a în capitolul precedent se obţine
şirul de iteraţii Picard :
x(0) ; x(1) ; :::; x(m) ; :::
a x(0) şi se construieşte prin recurenţa :
ce porneşte de la o valoare aleas¼

x(m+1) = ' x(m) ; m 2 N: (54)

Convergenţa acestui şir este asigurat¼


a de calitatea de contracţie a funcţiei ': Pentru a obţine
calitatea de contracţie pentru ' va … su…cient s¼ a presupunem c¼ a 'i 2 C 1 (D) ; 8i = 1; n şi
s¼ asim constanta de contracţie cu ajutorul normei matricii Jacobi a lui '; '0 = @@ 'xij ; i;
a g¼
j = 1; n: Astfel, în spaţiul de matrici putem considera norma Cebîşev,

@'i X
n
@'i (x)
0
k' k1 = ; i; j = 1; n = max max :
@xj 1 i n
j=1
x2D @xj

Aplicând principiul de punct …x al lui Banach si varianta pe Rn a teoremei creşterilor


…nite a lui Lagrange se obţine :
Teorema 1: Dac¼ a 'i 2 C 1 (D) ; 8i = 1; n şi k'0 k1 q < 1; atunci ecuaţia (53) are jjn
D o soluţie unic¼
a x astfel încât şirul de iteraţii Picard (54) este convergent şi pentru orice
(0)
x 2 D;
lim x(m) = x :
m!1
În plus, are loc estimarea apriori a erorii de aproximare :
qm
x(m) x 1
x(0) x(1) 1
; 8m 2 N ; (55)
1 q

unde k k1 este norma Cebîşev din Rn :


Observam c¼a o estimare a posteriori este
q
x(m) x 1
x(m) x(m 1)
1
1 q
ceea ce va furniza şi un criteriu de oprire a procesului iterativ Picard.
Observatia 1: Dac¼ a aplicaţia ' este de…nit¼ a a lui Rn ; ca de
a pe o submulţime compact¼
exemplu
S x(0) ; r = fx 2 Rn : x x(0) r; r > 0g
atunci pentru convergenţa procesului iterativ trebuie îndeplinit¼a şi condiţia x(0) ' x(0)
(1 a ' x(m) 2 S x(0) ; r cccond x(m) 2 S x(0) ; r :
) r ce va asigura c¼
Observatia 2: Metoda aproximaţiilor succesive poate … aplicat¼ a şi ecuaţiilor vectoriale
de forma f (x) = 0; deoarece acesta poate … adus¼ a la forma x = x + M f (x); unde M este o
matrice nesingular¼ a. Notând ' (x) = x + M f (x) aceast¼ a ecuaţie devine x = ' (x) : Matricea
M se va determina astfel încât metoda generat¼ a de operatorul I + M f s¼ a convearg¼ a. În acest
0 1 0 (0)
scop, în baza condiţiei k' k1 q < 1, când f 2 C (D) şi det(f x ) 6= 0; vom avea
' (x) = I + M f (x) ; iar atunci matricea M se va determina astfel încoot '0 x(0) = 0;
0 0

a M = (f 0 x(0) ) 1 : Dac¼
adic¼ a det(f 0 x(0) ) = 0, atunci se va alege o alt¼ a valoare de
pornire x(0) :
Observatia 3: Fie sistemul de dou¼ a ecuaţii scris sub forma

x = F (x; y)
y = G(x; y);

unde F; G : D ! R, domeniul D R2 continand solutia izolata (x ; y ) a sistemului,


consta in construirea sirului de puncte (xn ; yn )n 0 dupa regula

xn+1 = F (xn ; yn )
yn+1 = G(xn ; yn );

cu (x0 ; y0 ) 2 D:
Daca sirul (xn ; yn )n 0 este convergent si F; G sunt continue pe D, atunci limita sirului
este solutia (x ; y ) :
Proprietatea 1. Daca F; G : D ! D sunt continue, cu derivatele partiale de ordinul
intai continue pe D si
@F @F
@x @y
kW k = M < 1; W (x; y) = @G @G ;
@x @y

atunci (xn ; yn ) ! (x ; y ) :
Observatia 4. Un exemplu de norma ce poate … considerata este
@F @F @G @G
kW kM = max max + max ; max + max :
D @x D @y D @x D @y

Proprietatea 2. Daca sunt satisfacute conditiile dinainte cu norma k km ; atunci au


loc evaluarile
Mn Mn
jxn xj jx1 x0 j si jyn y j jy1 y0 j :
1 M 1 M

Algoritmul metodei aproximatiilor succesive pentru sistem neliniar


I. Date de intrare:
x0 si y0 iteratia initiala
F si G functiile din sistem
" > 0 eroarea admisa
II. Date de iesire:
xn si yn ultima iteratie ce aproximeaza solutia cu eroarea admisa
III. Pasii algoritmului
Pasul 1. Calculeaza
x1 := F (x0 ; y0 )
y1 := G(x0 ; y0 );
Pasul 2. Cat timp
jxn xn+1 j " sau jyn yn+1 j "
Pentru n 0
Calculeaza
xn+1 := F (xn ; yn )
yn+1 := G(xn ; yn );

Pasul 3. Pentru n 2 N; pentru care

jxn xn 1 j < " si jyn yn 1 j < "

Tipareste xn ; yn : 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;
}
‡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


x2 + y 2 = 10
p :
x+y =2

7.4 Metoda tangentei a lui Newton


Fie ecuatia algebrica sau transcendenta f (x) = 0; unde f : ( ; ) ! R. Presupunem ca
ecuatia are o solutie unica x 2 (a; b) ( ; ); adica x este izolata.
De…nitia 1. Daca se construieste sirul de aproximante (xn )n 0 ; pentru solutia x 2
(a; b) ; dupa regula
f (xn )
xn+1 = xn
f 0 (xn )
cu x0 = a sau x0 = b; spunem ca se utilizeaza metoda tangentei (Newton) pentru aproxi-
marea solutiei x :
Observatia 1. Daca sirul (xn )n 0 este convergent si f 2 C 1 [a; b]; atunci limita sirului
este x :
Observatia 2. Aproximanta initiala x0 2 [a; b] astfel incat f (x0 ) f 00 (x0 ) > 0:
Proprietatea 1. Daca f 2 C 2 [a; b] si f 0 ; f 00 au semn constant pe (a; b) ; atunci
xn ! x :
Proprietatea 2. In conditiile proprietatii precedente, eroarea absoluta comisa se poate
evalua prin
jf (xn )j
jxn x j ;
m1 (f )
sau
M2 (f )
jxn x j (xn xn 1 )2 ;
2m1 (f )
unde
m1 (f ) = inf jf 0 (x)j si M2 (f ) = sup jf 00 (x)j :
[a;b] [a;b]

Observatia 3. Daca M2 (f ) 2m1 (f ); atunci are loc evaluarea

jxn xj (xn xn 1 )2 :

Algoritmul metodei tangentei (Newton)

Algoritmul calculeaza o aproximatie a solutiei izolate x 2 [a; b] a ecuatiei f (x) = 0;


f 2 C[a; b]; prin metoda lui Newton.
Intrari: 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; xn := xn 1 f (xn 1 )=df (xn 1 )
Pasul 4: Daca jxn xn 1 j < eps atunci SOL:=xn ; 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 f 0 si f 00 au semn constant pe acest interval, iar alegerea
lui x0 la pasul 1 este evidenta. Exista si alte modalitati de determinare a valorii initiale de
pornire:
a; f (a) f 00 (c) > 0 sau f (b) f 00 (c) < 0
x0 =
b; f (a) f 00 (c) < 0 sau f (b) f 00 (c) > 0
unde c = a+b2
si f 00 (x) 6= 0; x 2 [a; b]:
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.
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

f (x) := x3 + x 0; 1 = 0:

3. Folosind metoda tangentei sa se calculeze cea mai mica radacina pozitiva a ecuatiei

x tgx = 0:

7.5 Metoda coardei


Fie ecuatia algebrica sau transcendenta f (x) = 0; unde f : ( ; ) ! R. Presupunem ca
ecuatia are o solutie unica x 2 (a; b) ( ; ); adica x este izolata.
De…nitia 1. Daca se construieste sirul de aproximante (xn )n 0 ; pentru solutia x 2
(a; b) ; dupa una din formulele

f (xn )
xn+1 = xn (b xn ) ; x0 = a;
f (b) f (xn )
sau
f (xn )
xn+1 = xn (a xn ) ; x0 = b;
f (a) f (xn )
spunem ca se utilizeaza metoda secantei pentru aproximarea solutiei x :
Observatia 1. Daca sirul (xn )n 0 este convergent si f 2 C[a; b], atunci limita sirului
este x :
Observatia 2. Aproximarea initiala x0 se alege dupa cum urmeaza

a; daca f (a)f 0 (a) < 0


x0 =
b; daca f (b)f 0 (b) < 0:

Proprietatea 1. Daca f 2 C 2 [a; b] si f 0 ; f 00 au semn constant pe [a,b], atunci


xn ! x :
Proprietatea 2. In conditiile proprietatii 1., eroarea absoluta comisa se evalueaza prin

jf (xn )j
jxn xj ;
m1 (f )
sau
M1 (f ) m1 (f )
jxn xj jxn xn 1 j ;
m1 (f )
unde
m1 (f ) = inf jf 0 (x)j si M1 (f ) = sup jf 0 (x)j :
[a;b] [a;b]

Observatia 3. Daca M1 (f ) 2m1 (f ) atunci are loc evaluarea

jxn xj jxn xn 1 j :
De…nitia 2. Spunem ca avem metoda combinata secanta-tangenta, daca se construieste
sirul de intervale
xs0 ; xt0 xs1 ; xt1 ::: xsn ; xtn ::: (56)
sau
xt0 ; xs0 xt1 ; xs1 ::: xtn ; xsn ::: (57)
astfel incat x 2 (xsn ; xtn ) ; respectiv x 2 (xtn ; xsn ) ; iar
f (xtn )
xtn+1 = xtn ;
f 0 (xtn )
f (xsn )
xsn+1 = xsn t s
xtn xsn :
f (xn ) f (xn )
Observatia 4. Daca f (a)f 0 (a) < 0 se ia xs0 = a si xt0 = b; caz in care se obtine sirul
(56), iar daca f (b)f 0 (b) < 0 se ia xs0 = b si xt0 = a; caz in care se obtine sirul (57).
Observatia 5. Daca xn = xtn sau xn = xsn avem evaluarea
jxn xj xtn xsn :

Algoritmul pentru : Metoda Combinata Secanta-Tangenta

Algoritmul determina un sir de aproximatii ale solutiei izolate x 2 [a; b] a ecuatiei


f (x) = 0; f 2 C [a; b] ; f 00 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 (f 0 )
sign(f 00 )-semnul derivatei a doua a functiei f
eps precizia dorita
Iesiri: SOL-aproximatie a solutiei ecuatiei, cu precizia ceruta
Pasul 1: Daca f (a)sign(f 00 ) < 0 atunci xs0 := a; xt0 := b; n := 0
altfel xs0 := b; xt0 := a; n := 0
Pasul 2: xtn+1 = xtn f (xtn ) =df (xtn )
s
Pasul 3: xsn+1 = xsn f (xtf)(xnf)(xs ) (xtn xsn )
n n
Pasul 4: n := n + 1
Pasul 5: Daca jxtn xsn j < eps atunci SOL:=xtn : STOP
altfel mergi la Pasul 2.

Observatia 6. Reamintim ca algoritmul a fost dat pentru cazul in care f (a)f (b) < 0
(exista o solutie in intervalul [a,b]) si semnul functiei f 00 e constant pe intervalul [a,b]. O
alta posibilitate de alegere a xs0 si xt0 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 xsn sau xtn , dar
exista si o alta posibilitate
xs + xtn
SOL:= n :
2
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
jxn xn 1 j : In general insa, jxn xn 1 j nu implica intotdeauna jxn x j < : De
aceea, sunt foarte utile metodele combinate prin care solutia x este aproximata din ambele
parti, ea a‡andu-se mereu intre 2 aproximante succesive:

xsn x xdn ; n = 1; 2; :::

In aceste cazuri, eroarea comisa in aproximarea x xsn + xdn =2 nu depaseste marimea


xdn xsn =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:

x3 x 0; 1 = 0:

3. Sa se aproximeze cu 4 zecimale exacte cea mai mare radacina a ecuatiei:

x6 x 1 = 0:
8 Metode numerice pentru ecuaţii diferenţiale
8.1 Derivarea numeric¼
a
Fie cunoscute valorile functiei f : [a; b] ! R pe nodurile distincte ai 2 [a; b]; i = 0; m;
yi = f (ai ) :
De…nitia 1. Numim formula de derivare numerica, formula
X
m
(k)
f ( )= Ai f (ai ) + Rm (f );
i=0

unde 2 [a; b]; …xat, pentru care exista f (k) ( ); iar Rm (f ) 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 = a este
1 k k (3k + 5)
(Nm f )(k) (a) = k
hf (a) k+1
h f (a) + k+2
h f (a) ::: ;
hk 2 24
de unde
1 1 1 1
f 0 (a) hf (a) 2
hf (a) + 3
hf (a) ::: + ( 1)m 1 m
hf (a)
h 2 3 m
si respectiv
1 11
f 00 (a) 2
hf (a) 3
hf (a) + 4
hf (a) ::: :
h2 12

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
f (a), f (a + h),...,f (a + mh)-valorile functiei pe punctele a + kh, k = 0; m; 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) ; :::; m n f (a)
Pasul 2: df:=0
Pasul 3: Pentru j := 1; m executa
j
df := df + h1 ( 1)j 1 1j h f (a)
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 f (x) = lg x, ale carei valori sunt date in tabelul de mai jos:
x 50 55 60 65
:
f (x) 1; 6990 1; 7404 1; 7782 1; 8129
Sa se calculeze valoarea lui f 0 (50) prin metoda de derivare numerica Gregory-Newton.
8.2 Metoda reţelelor
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 x0

f (x0 + h) f (x0 )
f 0 (x0 ) = [x0 ; x0 + h; f ] = (58)
h
f (x0 + h) f (x0 h)
f 0 (x0 ) = (59)
2h
f (x0 + h)
2f (x0 ) + f (x0 h)
f 000 (x0 ) = 2[x0 h; x0 ; x0 + h; f ] = (60)
h2
si in general, folosind formula de legatura dintre diferentele divizate cu noduri echidistante si
diferentele …nite, se obtine
n
f (x0 )
f (n) (x0 ) = h n : (61)
h
Consideram ecuatia diferentiala liniara de ordinul II

y 00 (x) + p (x) y 0 (x) + q (x) y (x) = f (x) ; x 2 [a; b] (62)

cu conditiile la limita
y (a) = A; y (b) = B (63)
si p; q; f 2 C[a; b]: Presupunem ca problema bilocala (62)+(63) are solutie unica pe [a; b]:
Se considera o diviziune echidistanta a intervalului [a; b] prin nodurile

xi = a + i h; i = 0; n
1
cu h = n
(b a) si se fac notatiile

pi = p (xi ) ; qi = q (xi ) ; fi = f (xi ) ; i = 0; n:

Se scrie ecuatia (62) cu conditiile (63) pe nodurile xi i = 1; n 1 si se obtine

y 00 (xi ) + p (xi ) y 0 (xi ) + q (xi ) y (xi ) = f (xi ) ; i = 1; n 1


(64)
y (x0 ) = A; y (xn ) = B:

Folosind formulele (59) si (60) pe nodurile xi i = 1; n 1 se obtine

y (xi+1 ) y (xi 1 )
y 0 (xi ) = (65)
2h
y (xi+1 ) 2y (xi ) + y (xi 1 )
y 00 (xi ) = : (66)
h2
Notand yi = y (xi ) ; i = 0; n, din (64), (65) si (66) se obtine sistemul liniar
1 1
h2
(yi+1 2yi + yi 1 ) + 2h
pi (yi+1 yi 1 ) + qi yi = fi ; i = 1; n 1
(67)
y0 = A; yn = B:

Rezolvand sistemul (67) de n-1 ecuatii cu n-1 necunoscute y1 ; :::; yn 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
p; q; f functiile coe…cienti ai ecuatiei
A; B valorile bilocale
II. Date de iesire:
y1 ; :::; yn 1 aproximatia solutiei pe nodurile interioare
III. Pasii algoritmului
Pasul 1. Pentru i = 0; n calculeaza

xi := a + i h

Pasul 2. Pentru i = 1; n 1 executa

pi := p (xi ) ; qi := q (xi ) ; fi := f (xi )

Pasul 3. Executa
y0 := A; yn := B
Pasul 4. Rezolva sistemul
(2 h pi ) yi 1 + (2h2 qi 4) yi + (2 + h pi ) yi+1 = 2h2 fi ; i = 1; n 1
y0 = A; yn = B:

Pasul 5. Tipareste y1 ; :::; yn 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

y 00 (x) + xy 0 (x) + x2 y (x) = 1; x 2 [0; 1]


y (0) = y (1) = 1

folosind 6 puncte ale retelei.


8.3 Metoda lui Euler
Se considera problema Cauchy
y 0 = f (x; y)
(68)
y(x0 ) = y0
Presupunand ca solutia y a problemei considerate satisface conditiile de diferentiabilitate
necesare, functia y poate … dezvoltata in serie Taylor in vecinatatea punctului x0 :

x x0 0 (x x0 )2 00
y(x) = y(x0 ) + y (x0 ) + y (x0 ) + ::: (69)
1! 2!
Avand in vedere (68) si folosind pentru derivatele lui f notatiile

@f @2f
fx = ; fxy = ; ...
@x @x@y
se obtine
y0 = f
y 00 = fx + fy y 0 = fx + fy f
y 000 = fxx + 2fxy f + fyy f 2 + fx fy + fy2 f:
Deci,
x x0 (x x0 )2 (1)
y(x) = y0 + f (x0 ; y0 ) + f (x0 ; y0 ) + :::
1! 2!
(x x0 )p 1
::: + f (p 1)
(x0 ; y0 ) + ::: (70)
p!
unde f (j) este derivata totala de ordinul j a functiei f (x; y (x)) in raport cu x.
Prin transcrierea seriei (70) si alegerea unui pas de lungime h, x x0 = h; se poate evalua
solutia y in punctul x1 := x0 + h: Mai departe, calculand derivatele y 0 ; y 00 ; ::: in punctul
x1 ; se poate aproxima y(x2 ); x2 := x1 + h: Continuand in acest mod se obtine o multime
discreta de valori yk care aproximeaza solutia y in punctele xk := x0 + kh; si yk y (xk ) ;
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

h (1) hk 1 (k 1)
(Tk f ) (x; y) = f (x; y) + f (x; y) + ::: + f (x; y); k = 1; 2; :::
2! k!
formula (70) se scrie sub forma:

y(x) = y0 + h (Tk f ) (x; y): (71)

Algoritmul seriei Taylor


1. Date initiale: a; b 2 R, n 2 N, f si y0
2.1. Se alege pasul h, de exemplu h := b na :
2.2. Pentru i = 0; n 1; se executa
xi := a + ih
yi+1 := yi + h (Tk f ) (xi ; yi )
3. Date …nale: yi ; i = 0; n:

Metoda lui Euler.se obtine din (71) pentru k = 1;


yi+1 := yi + hf (xi ; yi ):

Probleme propuse

1. Sa se scrie un program in C pentru metoda lui Euler.


2. Sa se rezolve problema lui Cauchy

y 0 = x2 y
; x 2 [0; 4]
y(0) = 1

luand pe rand pasul h = 14 ; 18 ; 16


1
: 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
y(x) = x2 2x + 2 e x :
Sa se analizeze rezultatele obtinute.
3. Se considera problema Cauchy
y2
y 0 = 1+x 2
:
y(+1) = 4

1
Sa se aproximeze valorile solutiei y in punctele xi = 1 + 10
; i = 1; 10 folosind metoda lui
Euler.

8.4 Metode de tip Runge Kutta


Polinomul lui Taylor

h (1) hk 1 (k 1)
(Tk f ) (x; y) = f (x; y) + f (x; y) + ::: + f (x; y); k = 1; 2; :::
2! k!
si formula
y(x) = y0 + h (Tk f ) (x; y)
genereaza metodele de tip Runge-Kutta pentru k = 1; 2; 3; 4:
Pentru k = 1 se obtine metoda lui Euler (Runge-Kutta de ordinul I).
Pentru k = 2 se obtine metoda Runge-Kutta de ordinul al II-lea data recurent prin
1
yn+1 = yn + (K0 + K1 ) ; n 2 N,
2
unde
K0 = hf (xn ; yn ); K1 = hf (xn + h; yn + K0 ); y0 dat.
Pentru k = 3 se obtine metoda Runge-Kutta de ordinul al III-lea generata recurent prin
1
yn+1 = yn + (K0 + 4K1 + K2 ) ; n 2 N, y0 dat,
6
K0 = hf (xn ; yn );
1 1
K1 = hf (xn + h; yn + K0 );
2 2
K2 = hf (xn + h; 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 ) ; n 2 N, y0 dat,
6
K0 = hf (xn ; yn );
1 1
K1 = hf (xn + h; yn + K0 );
2 2
1 1
K2 = hf xn + h; yn + K1 ;
2 2
K3 = hf (xn + h; yn + K2 ):
Ordinul de marime al erorii de trunchiere in metodele Runge-Kutta este de hk+1 :(a se vedea
[8]).
Metoda Runge-Kutta este descrisa de urmatorul algoritm:
1. Date initiale: x0; y0 ; h 2 R, n 2 N si f
2. Pentru i = 0; n 1; se executa
2.1 xi := x0 + ih
2.2 K1 := hf (xi ; yi )
K2 := hf xi + 12 h; yi + 12 K1
K3 := hf (xi + 12 h; yi + 21 K2 )
K4 := hf (xi + h; yi + K3 ) :
2.3. yi+1 := yi + 16 (K1 + 2K2 + 2K3 + K4 )
3. Date …nale: yi ; i = 0; n:

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
y2
y 0 = 1+x 2
:
y(+1) = 4
1
Sa se aproximeze valorile solutiei y in punctele xi = 1 + 10
; i = 1; 10 folosind metoda lui
Kutta.
3. Fie problema Cauchy
1
y 0 = 1+x 2 2y 2
; x 2 [0; 4]:
y 0 (0) = 0

Sa se aproximeze valorile solutiei y in punctele xi = hi; unde h = 14 ; iar i = 16; folosind


x
metoda lui Kutta. Stiind ca solutia exacta a problemei lui Cauchy este y = 1+x 2; sa se
compare rezultatele obtinute cu valorile reale.
Bibliogra…e
[1] O. Agratini, I. Chiorean, Gh. Coman, R. Trîmbiţaş, Analiz¼a numeric¼a şi 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 şi Ped., Bucureşti, 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ţiilor 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ţa, 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ţaş, Analiz¼a numeric¼a şi 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 şi teoria aproxim¼arii, vol.2, Presa
Univ.Clujean¼ a, Cluj-Napoca, 2002.
[21] O. Stanasila, Analiza matematica, Editura Didactica si Pedagogica Bucuresti 1981.

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