Laborator3 Aproximarea functiilor

Post on 07-Nov-2015

68 views 3 download

Transcript of Laborator3 Aproximarea functiilor

Lucrarea de laborator nr.3Tema lucrrii: Aproximarea funciilor

III.1. ENUNUL LUCRRII

ntr-un sistem de calcul, funciile numerice se pot prezenta prin:

a) cod indicnd algoritmul de de evaluare a valorilor funciei n fiecare punct al domeniului de definiie;

b) date ndicnd valorile funciei ntr-un numr finit de noduri (puncte) din domeniul de definiie; Scopul acestei lucrri este de a evidenia cele mai eficiente metode de determinare ale valorilor unei funcii numerice reprezentate tabelar, efortul de calcul, erorile nregistrate i limitele acestor metode de aproximare.

III.2. MODELUL MATEMATIC I METODE DE SOLUIONARE

Seconsider o funcie , pentru care se cunosc doar valorile sale i ale unor derivate ale sale ntr-un numr finit de puncte din domeniul de definiie

Problema fundamental a aproximrii funciilor const n determinarea unei funcii astfel nct ,

cu ajutorul creia s se poat evalua valorila funciei f ct i a unor derivate ale acestora n orice punct al domeniului de definiie, dar s se poat studia i proprietile necesare n diverse situaii practice ale funciei f. Funcia f se construiete sub forma , unde

este o mulime liniar independent de funcii simple aparinnd clasei de funcii aproximante aleas ( de cele mai multe ori, clasa funciilor polinomiale), iar

Determinarea coeficienilor se face astfel nct aproximarea funciei F prin funcia F s fie ct mai bun ( s fie minim) , unde

este o funcie pondere Cele mai importante metode ale unor funcii definite tabelar sunt:a) Interpolarea utilizat dac datele cunoscute sunt exacte (neafectate de erori)

se refer la aproximarea valorilor funciei f n punctele din , (pentru i , procedeul de aproximare se numete extrapolare)b) Regresia (ajustarea prin metoda celor mai mici ptrate) utilizat dac datele sunt afectate de erori.

presupune determinarea parametrilor astfel nct s fie asigurat minimizarea ; curba determinat n urma aplicrii regresieu nu trece prin punctele cunoscute ca n cazul interpolrii ci prin barele de eroare ale acestora.III.2.1. INTERPOLARE POLINOMIAL

Fie pentru care sunt cunoscute:

n aceast situaie, un polinom de grad , notat cu: numit polinom de interpolare asociat funciei f i noduri de interpolare astfel nct

EMBED Equation.DSMT4 Cele mai cunoscute forme de prezentare a polinomuluisunt:III.2.1.1. FORMA LAGRANGE

III.2.1.1.a. Pentru noduri oarecare

, unde

Practice, evaluarea valorii funciei f ntr-un punct se poate obine astfel:

x0x1x2...xn-1xnDiyi

...

D0y0

...

D1y1

...

D2y2

.

.

..

.

..

.

.....

.

..

.

..

.

..

.

..

.

.

...

Dn-1yn-1

...

Dnyn

S

unde

sau se obine prin nmulirea elementelor liniei i a tabelului:

iar

Procedeul Aitken:

Conform formulei, aplicarea acestui procedeu presupune construirea tuturor polinoamelor de interpolare sub forma Lagrange, de grad ,Rezultatele se pot aranja tabelar astfel:

...

...

.....................................

.....................................................

.....................

unde

III.2.1.1.b. Pentru noduri echidistante

, unde

( h este ales astfel nct )

III.2.1.2. FORME NEWTON

III.2.1.2.a. Pentru noduri oarecare

unde reprezint diferena divizat de ordinul i corespunztoare funciei f i nodurilor

innd cont de faptul c diferenele divizate sunt introduce recursive (), valorile acestora se pot obine tabelar astfel:

Dif div IDif div IIDif div III...Dif div n-1Dif div n

Diferenele divizate sunt cele marcate cu rou n tabelul anterior.

III.2.1.2.b. Pentru noduri echidistante

cu

unde ky0 reprezint diferena finit progresiv de ordin k corespunztoare funciei f calcult n x0 (i.e.:

N1 se numete forma Newton de spea I a polinomului de interpolare asociat funciei f i nodurilor , echidistante.

De regul ,dac (sau dac mai apropiat de x0 dect de xn; n aceast ituaie se scrie N1 pentru nodurile ).

cu

unde reprezint diferena finit regresiv de ordin k corespunztoare funciei f calcult n xn (i.e.:

N2 se numete forma Newton de spea II i se utilizeaz de obicei pentru aproximarea lui cu ( i pentru , cu mai apropiat de ;n aceast situaie de scrie N2 pentru nodurile ).

Avnd n vedere legtura existent ntre cele dou categorii de diferene finite (, calculul acestora se poate face folosind acelai table:

Dif finit I

Dif finit II

...

Observaii

Diferenele finite pentru N1 (respectiv N2) sunt cele marcate cu rou

Presupunem c pentru o fucie

, n punctele se cunosc

.

Conform teoremei fundamentale a interpolrii polinnomiale, un polinom de grad care are aceleai valori n punctelecu ale funciei f ; de asemenea, valorile derivatei de ordinul I n punctelecoincide cu valorile .

Vom prezenta forma Hrmite (pentru noduri duble) a acestui polinom:

, unde

III.2.2. INTERPOLARE POLINOMIAL PE PORIUNI (FUNCII SPLINE)

Interpolarea cu funcii polinomiale pe poriuni (funcii spline) permite obinerea unor aproximri netede, fr oscilaii nedorite i fr a pierde avantajul evalurii simple.III.2.2.1. INTERPOLAREA CU FUNCII DE BAZ

Interpolarea liniar pe poriuni se realizeaz prin intermediul unei funcii obinut ca o combinaie liniar de funcii de baz (ce sunt continue i liniare pe poriuni)

Dintre principalele seturi de funcii de baz remarcm:

1) Funciile ramp.

Atunci :

, unde

se obine din condiiile de interpolare

,

i prin convenie

2) Funciile clopot.

sunt funcii continue cu suportul n i atunci:

Principalul dezavantaj: F nu este derivabil n nodurile de interpolareIII.2.2.2. INTERPOLAREA CU FUNCII CUBICE

Pentru evaluarea valorilor funciei cu se poate utilize o funcie splin curb (i.e. satisface urmtoarele condiii:

a) ;

b) ;

c) ;

d) ;

e) - condiie de frontier liber

sau

e) i - condiie de frontier impuns.

Conform condiiilor pe care le are de satisfcut, determinarea funciei S revine la calcularea coeficienilor , ntre care exist urmtoarele legturi (n care ):

de unde se obine sistemul de ecuaii liniare

cu:

Ambele sisteme obinute au matricele simetrice i pozitiv definite, sunt compatibil determinate i se rezolv numeric folosind o metod direct de rezolvare a sistemelor de ecuaii liniare.

III.2.3. PSEUDOCODUL ALGORITMILOR

III.2.3.1.REZOLVAREA PRIN FORMA LAGRANGE

Procedura de interpolare Lagrange admite urmtoarea reprezentare n pseudocod:

funcia interp_L(n, x, y, xcrt);evalueaz forma Lagrange a polinomului

;de interpolare n punctul xcrt

ntreg n;gradul polinomului

tablou real x(n), y(n);reeaua de interpolare

real xcrt, ;variabil independent

ycrt,;valoarea polinomului n xcrt

p;variabil intermediar

ycrt = 0

pentru k = 0,n

p = 1

pentru j = 0,n

dac j/ = k atunci

p = p(xcrt xj)/(xk xj)

ycrt = ycrt + ykp

ntoarce ycrt

III.2.3.2.REZOLVAREA PRIN FORME NEWTON

Procedura de interpolare Newton (pentru noduri oarecare) este dependent de calculul tabelar al diferenelor divizate : i se poate reprezenta n pseudocod astfel:procedura prep_(n, x, y, c);determin coeficienii polinomului

ntreg n;gradul polinomului

tablou real x(n), y(n);reeaua de interpolare

c(n);coeficienii polinomului

pentru i = 0,n

ai0 = yi

pentru j = 1,n

pentru i = 0,n j

aij = (ai + 1, j 1 - ai , j 1 )/(xj + i xi)

pentru i = 0,n

ci = a0i

retur

funcia eval_N;evalueaz forma Neuton al polinomului de

;interpolare

tablou real x(n);abscisele reelei de interpolare

c(n);coeficienii polinomului

real xcrt, ;variabil independent

ycrt = cn

pentru k = n 1, 0, 1

ycrt = ck + (xcrt xk) ycrt

ntoarce ycrt

Interpolarea polinomial pe poriuni un rol important l joac algoritmul de identificare a intervalului n care se afl valoarea x . urmtoarea funcie folosete ca scop algortmul cutrii binare:funcia caut_seg(n, x,xcrt)

ntreg n;numr de segmente

tablou real x(n), ; abscisele nodurilor

real xcrt;valoarea variabilei independente

ntreg k;numr segment

dac xcrt xn 1 atunci ntoarce (n 1)

dac xcrt x 1 atunci ntoarce (0)

k1 = 1

k2 = n 1

repet

k = (k1 + k2)/2

dac xk > xcrt atunci

k2 = k

astfel

k1 = k

Pn cnd

ntoarce k1

Interpolarea liniar pe poriuni este evaluat de urmtoarea funcie:

funcia ilpp(n, x, y, xcrt)

ntreg n;numr de segmente

tablou real x(n),y(n) ; date de interpolare

real xcrt;valoarea variabilei independente

real ycrt;valoare interpolat

k = caut_seg(n, x, xcrt)

ycrt = yk + (yk+1 - yk)(x xk)/ (xk+1 - xk)

ntoarce ycrt

Interpolarea cu funcii spline cu condiii la limit naturale se realizeaz astfel:

procedura prep_spline(n, x, y, yd);pregtete datele yd, pentru interpolarea

;spline cu n intervale a unei funcii

;descris prin tabele x,y

pentru k = 0,n 1

pk = (xk+1 - xk);subdiagrama principal

qk = (yk+1 - yk)/pk

pentru k = 1,n 1 ; date de interpolare

sk = 3(qk-1pk + q1pk-1);termenul liber

s0 = 3q0

sn = 3qn-1

pentru k = 1,n 1

qk = 2(xk+1 - xk);diagonala principal

rk = pk-1;supradiagonala principal

q0 = 2

r0 = 1

pn = 1

qn = 2

trida(n, p, q, r, s, yd);rezolv sistemul tridiagonal i determin

;derivatele n noduri

retur

III.2.4. PROGRAM MATLAB

III.2.4.1. APROXIMAREA LAGRANGE

Acest pogram evalueaz valorile formei Lagrange a polinomului de interpolare corespunztoare funciei f i nodurile (unde )function [C,L]= lagran ( X,Y )

%Input X este un vector ce conine abcisele nodurilor

% Y este un vector ce conine valorile funciei n noduri

%Output C este o matrice ce conine coeficienii formei Lagrange a polinomului

%;de interpolare

% L este o matrice ce conine coeficienii Lagrange

w = leght (X);

n = w 1 ;

1 = zeros(w,w)

%Formeaz coeficienii polinomiali Lagrange

fork = 1: n + 1

v = 1;

for j = 1: n +1

if ~ = j

v = conv(v, poly(x(j)))/X(k) X(j));

end

end

L(k,: ) = v;

%Determin coeficienii formei Lagrange a polinomului de interpolare

C = Y*L;

III.2.4.2. APROXIMAREA NEWTON( cu diferene divizate)

Construiete i evalueaz forma Newton de grad a polinomului de interpolare corespunztor unei funcii f i punctelor function [C,D]= newpoly ( X,Y )

%Input X este un vector ce conine abcisele punctelor date

% Y este un vector ce conine ordonatele punctelor cunoscute

%Output C este un vector ce conine coeficienii formei Newton a polinomului de

%;de interpolare

% D este tabelul diferenelor divizate

n = leght (X);

O = zeros(n,n) ;

D (:,1) = X;

%Formeaz tabloul cu diferene divizate

forj = 2 : n

for k = j : n

D(k,j) = (D(k,j 1) D(k 1, j 1)/(X(k) X(k j + 1));

end

end

%Determin coeficienii formei Newton a polinomului de interpolare

C = D(n,n);

for k = (n 1): 1: 1

C = conv (C, poly(X(k)));

m = lenghth (C);

C(m) = C(m) + D(k,k);

end

III.2.4.3. APROXIMAREA CEBEV

Construiete i evalueaz polinomul de interpolare Cebev de grad pe , unde corespunztoare nodurilor function [C,X,Y]= cheby ( fun,n,a,b)

%Input fun este funcia band ce trebuie aproximat

% N este gradul polinomului de interpolare Cebev

% a este extremitatea stng

% b este extremitatea dreapt

%Output C este lista coeficienilor pentru polinom

% X conine abcisele

% Y conine ordonatele

if margin = = 2, a = -1; b = 1; end

d = pi/(2*n + 2);

C = zeros(i, n+i);

for k = 1 : n+1

X(k) = cos((2*k-1)*d);

end

X = (b a)*X/2 + (a + b)?2;

x = X;

Y = eval(fun);

for k = 1 : n + 1

z = (2*k-1)*d;

for j = 1 : n + 1

C(j) = C(j) + Y(k)*cos((j 1)*z));

end

end

C = 2*C n +1;

C(1) = C(1) 2;

III.2.4.4. APROXIMAREA CU FUNCII SPLINE CUBICE

Construiete i evalueaz un interpelant splin cubic pentru puncte function S= esfit ( X, Y, dx0, dxn)

%Input X este vectorul 1xn ce conine abscisele

% Y este vectorul 1xn ce conine abscisele

% este condiia de frontier impus

% este condiia de frontier impus

%Output S: liniile ale lui S sunt coeficienii, n ordine descresctoare, a polinomului cubic

N = length(X) 1;

H = diff(X);

D = dif(X)./H;

A = H(2:N 1);

B = R*(H(1:M 1) + H(2:N));

C = H(2:N);

U = 6*diff(D);

%Condiiile de frontier

B(1) = B(1) H(1)/2;

U(1) = U(1) 3*(D(1) + dxo);

B(N 1) = B(N 1) H(N)/2;

U(N 1) = U(N 1) 3*(dxn D(N));

for k = 2:N 1

temp = A(k 1)/B(k 1);

B(k) = B(k) temp*C(k 1);

U(k) = U(k) temp*U(k 1);

end

M(N) = U(N 1)/B(N 1);

for k = N 2: 1:1

M(k + 1) = (U(k) C(k)*M(k + 2))/B(k);

end

M(1) = 3*(D(1) dxo)/H(1) M(2)/2;

M(N + 1) = 3*(dxn - D(N)/H(N) M(N)/2;

for k = 0,N 1

S(k + 1,1) = (M(k +2) M(k + 1))/(6*H(k + 1));

S(k + 1,2) = M(k + 1)/2;

S(k + 1,3) = D(k +2) N(k + 1)*(2*N(k + 1) + M(k + 2))/6;

S(k + 1,4) = Y(k + 1);

end

_1309513705.unknown

_1309527610.unknown

_1309538646.unknown

_1309679726.unknown

_1309684901.unknown

_1309690685.unknown

_1309697893.unknown

_1309707196.unknown

_1309710765.unknown

_1309711734.unknown

_1309716222.unknown

_1310016310.unknown

_1310016419.unknown

_1309716197.unknown

_1309710818.unknown

_1309708974.unknown

_1309709043.unknown

_1309707269.unknown

_1309702722.unknown

_1309703932.unknown

_1309700591.unknown

_1309691310.unknown

_1309696096.unknown

_1309697463.unknown

_1309691436.unknown

_1309691029.unknown

_1309691076.unknown

_1309690881.unknown

_1309688153.unknown

_1309688824.unknown

_1309690391.unknown

_1309690448.unknown

_1309690293.unknown

_1309688620.unknown

_1309688664.unknown

_1309688273.unknown

_1309687314.unknown

_1309687881.unknown

_1309687963.unknown

_1309687734.unknown

_1309685567.unknown

_1309687200.unknown

_1309685023.unknown

_1309681121.unknown

_1309683191.unknown

_1309684294.unknown

_1309684719.unknown

_1309683222.unknown

_1309681494.unknown

_1309683056.unknown

_1309681267.unknown

_1309680274.unknown

_1309680502.unknown

_1309681070.unknown

_1309680353.unknown

_1309679985.unknown

_1309679986.unknown

_1309679768.unknown

_1309679811.unknown

_1309675229.unknown

_1309678583.unknown

_1309679629.unknown

_1309679681.unknown

_1309679704.unknown

_1309679652.unknown

_1309679241.unknown

_1309679399.unknown

_1309679435.unknown

_1309679257.unknown

_1309679327.unknown

_1309678992.unknown

_1309679125.unknown

_1309678930.unknown

_1309676152.unknown

_1309676295.unknown

_1309676448.unknown

_1309676259.unknown

_1309675751.unknown

_1309676108.unknown

_1309675594.unknown

_1309673493.unknown

_1309674933.unknown

_1309675203.unknown

_1309675213.unknown

_1309675031.unknown

_1309674529.unknown

_1309674608.unknown

_1309674716.unknown

_1309674386.unknown

_1309538752.unknown

_1309539895.unknown

_1309538668.unknown

_1309537585.unknown

_1309538606.unknown

_1309538618.unknown

_1309538633.unknown

_1309537796.unknown

_1309538040.unknown

_1309538271.unknown

_1309538586.unknown

_1309537892.unknown

_1309537599.unknown

_1309536233.unknown

_1309536257.unknown

_1309536278.unknown

_1309536286.unknown

_1309536269.unknown

_1309536236.unknown

_1309536249.unknown

_1309536235.unknown

_1309536234.unknown

_1309536037.unknown

_1309536133.unknown

_1309536232.unknown

_1309536097.unknown

_1309535520.unknown

_1309517330.unknown

_1309517953.unknown

_1309518534.unknown

_1309518806.unknown

_1309527199.unknown

_1309518638.unknown

_1309518242.unknown

_1309518321.unknown

_1309517954.unknown

_1309517621.unknown

_1309517672.unknown

_1309517783.unknown

_1309517826.unknown

_1309517630.unknown

_1309517387.unknown

_1309517545.unknown

_1309517602.unknown

_1309517396.unknown

_1309517351.unknown

_1309517375.unknown

_1309517341.unknown

_1309515264.unknown

_1309517281.unknown

_1309517300.unknown

_1309517312.unknown

_1309517290.unknown

_1309515887.unknown

_1309516717.unknown

_1309516784.unknown

_1309515604.unknown

_1309514789.unknown

_1309515046.unknown

_1309515119.unknown

_1309515011.unknown

_1309513820.unknown

_1309514681.unknown

_1309513818.unknown

_1309513819.unknown

_1309513817.unknown

_1309511182.unknown

_1309513013.unknown

_1309513297.unknown

_1309513326.unknown

_1309513351.unknown

_1309513536.unknown

_1309513316.unknown

_1309513177.unknown

_1309513284.unknown

_1309513285.unknown

_1309513283.unknown

_1309513282.unknown

_1309513166.unknown

_1309513167.unknown

_1309513049.unknown

_1309512638.unknown

_1309512829.unknown

_1309512931.unknown

_1309512960.unknown

_1309512982.unknown

_1309512947.unknown

_1309512871.unknown

_1309512687.unknown

_1309512709.unknown

_1309512730.unknown

_1309512673.unknown

_1309511916.unknown

_1309512328.unknown

_1309511764.unknown

_1309506998.unknown

_1309510498.unknown

_1309511000.unknown

_1309511099.unknown

_1309510645.unknown

_1309508434.unknown

_1309510159.unknown

_1309510469.unknown

_1309508399.unknown

_1309502482.unknown

_1309506280.unknown

_1309506535.unknown

_1309503267.unknown

_1309506073.unknown

_1309506212.unknown

_1309505926.unknown

_1309503054.unknown

_1309501750.unknown

_1309502385.unknown

_1309500072.unknown