Sunteți pe pagina 1din 13

Software Computațional – Laborator 11

Polinoame în Matlab

conv Calculează produsul a două polinoame


deconv Calculează câtul şi restul împărţirii a două polinoame
poly Calculează coeficienţii unui polinom cu rădăcinile date
polyval Evaluează un polinom la valorile precizate ale variabilei
polyder Calculează derivata polinoamelor
residue Descompune în fracţii simple raportul a două polinoame
roots Calculează rădăcinile unui polinom

Fie polinoamele p(x)=3x3 - 2x + 4, q(x)=x2 + 3.

Exemplu 1: Se cere să se calculeze produsul polinoamelor p(x) și q(x)

>> p = [3,0,-2,4]; q = [1,0,3]; % q(x)=1*x2+0*x1+3*x0


>> c = conv(p,q)

c = 3 0 7 4 -6 12

Produsul a două polinoame este echivalent cu o operaţie de convoluţie c=conv(p,q). În c obţinem coeficienţii
polinomului produs.

Exemplu 2: Se cere să se calculeze polinoamele cât și rest al împărțirii lui p(x) la q(x)

>> p = [3,0,-2,4]; q = [1,0,3];


>> [cat,rest]= deconv(p,q)

cat = 3 0
rest = 0 0 -11 4

Împărţirea este echivalentă cu o operaţie de deconvoluţie [cat,rest]=deconv(p,q). În cat se obţin coeficienţii


polinomului cât, iar în rest coeficienţii polinomului rest. Spre deosebire de sumă şi produs, nu se admite ca
primii coeficienţi din polinomul q să fie 0.

Exemplu 3: Se cere să se calculeze valoarea polinomului p în punctul 3, p(3)

>> p = [3,0,-2,4]; x=3;


>> polyval(p,x)

ans = 79

Exemplu 4: Se cere să se determine polinoamele cu rădăcina 2, respectiv cu rădăcinile 2, 3

>> poly(2) % x-2


ans = 1 -2
>> % x2-5x+6
ans = 1 -5 6

Conf. dr. Laura Stoica 1


Software Computațional – Laborator 11

Exemplu 5: Se cere să se calculeze derivata polinomului p(x), derivata polinomului p(x)*q(x) şi derivata
polinomului p(x)/q(x)

>> p = [3 -2 4]; q = [1 0 3];


>> k = polyder(p) % p(x)’

k = 6 -2

>> d = polyder(p,q) % (p(x)q(x))’


d = 12 -6 26 -6

>> [n,d] = polyder(p,q) % (p(x)/q(x))’


n = 2 10 -6
d = 1 0 6 0 9

Exemplu 6: Se cere să se descompună în fracţii simple, fracția p(x)/q(x)

>> p = [3,0,-2,4]; q = [1,0,3];


>> residue(p,q)

ans =
-5.5000 - 1.1547i
-5.5000 + 1.1547i

>> [r,pol,k]=residue(p,q)

r =
-5.5000 - 1.1547i
-5.5000 + 1.1547i

pol =
0 + 1.7321i
0 - 1.7321i

k = 3 0

r1 r2 rj rj +1
Descompunerea este de forma: + + ... + + + ... + k ( x)
x − p1 x − p2 x − p j (x − p j )2
Rădăcinile numitorului se numesc poli, iar valorile de la numărător se numesc reziduuri.
Dacă polul pj este multiplu de ordinul m, el va introduce în descompunere m fracţii. Dacă gradul
numărătorului este mai mare decât al numitorului rezultă în plus un polinom k(x) care este câtul împărţirii
numărătorului la numitor.
Funcţia folosită este: [r,pol,k]=residue(p,q)
În r se obţin reziduurile, în p polii şi în k coeficienţii polinomului k.

−5.5000 − 1.1547𝑖 −5.5000 + 1.1547𝑖


Descompunerea este: 𝑥−0 + 1.7321𝑖
+ 𝑥−0 − 1.7321𝑖
+ 3𝑥

Conf. dr. Laura Stoica 2


Software Computațional – Laborator 11

Exemplu 7: Sa se calculeze rădăcinile polinomului p(x)

>> p = [3,0,-2,4]; roots(p)


ans =
-1.3007 + 0.0000i
0.6503 + 0.7760i
0.6503 - 0.7760i

Interpolarea funcţiilor şi aproximarea datelor

Interpolarea unui set discret de date [xi,yi] presupune determinarea unei funcţii f(x) astfel ca f(xi)=yi, în
vederea completării setului de date în orice alt punct x0xi.
Exemplu: Fie date punctele de coordonate (x1,y1) şi (x2,y2).
Se cere estimarea valorii y(x), unde x1<x<x2.
Dacă punctele:
- sunt unite printr-o dreaptă, interpolarea se numeşte liniară, iar
- dacă sunt unite printr-un polinom de gradul 3, interpolarea este spline sau cubică.

O altă problemă constă în aproximarea unui set de date cu o funcţie care constituie „cea mai bună
aproximare”. Metoda celor mai mici pătrate furnizează cea mai bună aproximare în sensul minimizării
pătratului distanţelor dintre punctele date şi funcţia de aproximare.

1. Interpolarea datelor

Funcţia interp1() poate interpola datele după o lege liniară, cubică sau spline cubică.

x,y sunt vectori, valorile din x monotone


z=interp1(x,y,x1) interp1 - caută în tabelul [x,y], valorile lui y1 care corespund lui
x1 şi dacă nu le găseşte le aproximează folosind interpolare liniară
z=interp1(y,x1) consideră că x=1:N, cu N=length(y)
z=interp1(x,y,x1, ‘metoda’) specifică metoda care se doreşte a se folosi pentru interpolare
Metode de interpolare
'linear' interpolare liniara
'spline' interpolare spline cubica
'cubic' interpolare cubica
'pchip' interpolarea spline cubică de tip Hermite

Interpolarea liniară:

Dacă funcţia dintre două puncte poate fi estimată printr-o dreaptă, atunci valoarea funcţiei în orice punct x
dintre cele două valori se deduce expresia:

Conf. dr. Laura Stoica 3


Software Computațional – Laborator 11

Exemplu 1:
x = 0:10;
y = sin(x);
xi = 0:.25:10;

subplot(1,2,1);
yi = interp1(x,y,xi);
plot(xi,yi,'-.or')
hold
plot(xi,sin(xi),'b')

subplot(1,2,2);
yi = interp1(x,y,xi,'spline');
plot(xi,yi,'-.or')
hold
plot(xi,sin(xi),'b')

Exemplu 2: Fie următoarele date ale unei funcţii de o singură variabilă.

x -2 -1 0 1 2
y=f(x) 6 2 3 1 7

Să se estimeze cu funcţia interp1 valoarea y ce corespunde lui x1=-1 şi x2=1.5, folosind cele trei metode de
la interpolarea funcţiei.

x=[-2,-1,0,1,2], y=[6,2,3,1,7]
x1=[-1,1.5]
y1L=interp1(x,y,x1,'linear')
y1S=interp1(x,y,x1,'spline')
y1C=interp1(x,y,x1,'pchip')
hold on
axis([-5,5,0,9]);
plot(x1,y1L,':pr');
plot(x1,y1S,':hg');
plot(x1,y1C,':*k');
hold off

2. Interpolarea spline

Curba spline este o curbă netedă, definită de un set de polinoame de gradul trei. Curba dintre fiecare
pereche este un polinom de gradul trei, calculat astfel încât să ducă la tranziţii netede de la un polinom de
gradul trei la altul.
Spre exemplu, şase puncte sunt conectate de cinci curbe diferite de gradul trei, ce constituie o funcţie
netedă.

YY = spline(X,Y,XX) utilizează o funcţie spline cubică pentru a găsi valorile


corespunzătoare valorilor XX
PP = spline(X,Y) returnează forma funcţiei spline cubica pentru a putea fi folosită
apoi cu funcţia ppval

Conf. dr. Laura Stoica 4


Software Computațional – Laborator 11

Evaluarea polinomului de interpolare spline, în nodurile reţelei, se face cu funcția ppval, apelată cu,
v=ppval(pp, xx) care restituie valoarea în punctele xx ale polinomului conținut de pp, așa cum este construit
de funcţia spline.

x = sort(rand(10,1));
y = exp(x);
pp = spline(x,y);
x = ppval(pp,y)

Răspuns:
x = 3.4283
4.1322
4.3897
5.7004
5.7945
6.2750
9.5575
10.0719
10.5138
12.4470

Observaţie: Dacă Y conţine cu două valori mai mult decât X, prima şi ultima valoare reprezintă valorile
impuse pe capetele intervalului

Exemplu 3:
x = 0:10;
y = sin(x);
xi = 0:.25:10;
yi = spline(x,y,xi)
plot(xi,yi,'--or')
hold
plot(xi,sin(xi),'b')

x = -4:4;
y = [0 .15 1.12 2.36 2.36 1.46 .49 .06 0];
cs = spline(x,[0 y 0]);
xx = linspace(-4,4,101);
plot(x,y,'o',xx,ppval(cs,xx),'-');

3. Interpolarea bidimensională

Funcţia interp2 interpolează datele funcţiilor de două variabile după lege biliniară sau bicubică.

ZI=interp2(X,Y,Z,XI,YI) ZI interpolează pentru a găsi valorile corespunzătoare lui XI,YI


ZI=interp2(Z,XI,YI) presupune X şi Y echidistante, cu pas 1
ZI=interp2(X,Y,Z,XI,YI, specifică metoda care se doreşte a se folosi pentru interpolare
‘metoda’) Metode de interpolare
'linear' interpolare biliniara
'cubic' interpolare bicubica
'spline' Interpolare spline

Conf. dr. Laura Stoica 5


Software Computațional – Laborator 11

Exemplu 4: Fie următorul tabel bidimensional:

y/x 1 2 3 4
1 2 6 6 5
2 3 4 8 6
3 4 6 9 5

Să se estimeze valorile care corespund perechii (x,y)=(3.5, 2.5), cu funcţia interp2, folosind cele două
metode de interpolare a funcţiei.
x=1:4; %vect linilor constante
y=[1:3]'; %vect coloanelor constante
z=[ 2,6,6,5; 3,4,8,6; 4,6,9,5 ];
x1=3.5; y1=2.5;
z1BL=interp2(x,y,z,x1,y1,'linear')
z1BC=interp2(x,y,z,x1,y1,'cubic')

Răspuns:
z1BL = 7
z1BC = 8.0625

4. Aproximarea prin metoda celor mai mici pătrate

Metoda se poate aplica pentru a face aproximarea unui set de date printr-o linie dreaptă (regresie liniară),
şi apoi prin aproximarea unui polinom (regresie polinomială). Pentru ca aproximarea să fie considerată
„cea mai bună” suma pătratelor distanţelor de la fiecare punct la linia aproximată (linie sau polinom)
trebuie să fie minimă.

polyfit(X,Y,N) găseşte coeficienţii polinomului P(X) de grad N care aproximează


datele X,Y folosind metoda celor mai mici pătrate
P(X(I))~=Y(I) returnează coeficienţii polinomului P si o structura S pentru a se
[P,S] = polyfit(X,Y,N) putea utiliza cu funcţia POLYVAL

Exemplu 5: Să se aproximeze în sensul celor mai mici pătrate cu o regresie liniară setul de date: x=[0 1 2 3 4
5], y=[0 20 60 68 77 110].

x=0:5;
y=[0 20 60 68 77 110];
c=polyfit(x,y,1);
y1=c(1)*x+c(2); % dreapta ax+b
plot(x,y1,x,y,'or')

plot(x,y1,'b',x,y,'or')
hold
c1=polyfit(x,y,2);
% polinom ax^2+bx+c
y2=c1(1)*x.^2+c1(2)*x+c1(3);
plot(x,y2,'g',x,y,'*k'), grid
hold off

Conf. dr. Laura Stoica 6


Software Computațional – Laborator 11

Integrarea numerică a funcţiilor

1. Integrala simplă (quad)

q = quad(fun,a,b) - aproximează integrala între limitele a şi b din funcţia fun cu o eroare de


10-6 utilizând metoda recursivă a lui Simpson. Funcţia fun are ca argument un vector x şi
returnează un vector y.
2
1
Exemplu 1: x
0
3
− 2x − 5
dx

Varianta 1: Utilizând un fișier funcție extern

function y=f(x)
y=1./(x.^3-2*x-5);

>> Q = quad(@f,0,2)

Varianta 2: Utilizând funcția inline()


f = inline('1./(x.^3-2*x-5)');
Q = quad(f,0,2)

Varianta 3: Utlizând funcția anonimă @(argumente) expr


fct = @(x) 1./(x.^3-2*x-5);
Q = quad(fct,0,2)

Exemplu 2: q = quad(fun,a,b,tol, trace) – afişează şi valorile intermediare


>> fct = @(x) 1./(x.^3-2*x-5);
>> Q = quad(fct,0,2,10^-3, 0) % trace=0

Q = -0.4628

>> Q = quad(fct,0,2,10^-3, 1) % trace  0

9 0.0000000000 5.43160000e-01 -0.0989460227


11 0.5431600000 9.13680000e-01 -0.1584111746
13 1.4568400000 5.43160000e-01 -0.2054245169

Q = -0.4628

Exemplu 3: [q,fcnt] = quad(fun,a,b,...) - returnează şi numărul iteraţiilor

>> fct = @(x) 1./(x.^3-2*x-5);


>> [Q,nr_iteratii] = quad(fct,0,2)

Q = -0.4605
nr_iteratii = 41

Conf. dr. Laura Stoica 7


Software Computațional – Laborator 11

2. Integrala dublă (dblquad)

q = dblquad(fun,xmin,xmax,ymin,ymax) - calculează integrala dublă pe un


dreptunghi. Funcţia fun are două argumente, x-vector şi y- scalar şi returnează un vector. Poate fi
dată ca o funcţie inline sau într-un fişier m.

Exemplu 4:  y sin( x) + x cos( y)dxdy, unde D dreptunghiul dat de   x  2 ,


D
0 y 

>> Q = dblquad(inline('y.*sin(x)+x.*cos(y)'), pi, 2*pi, 0, pi)

Q = -9.8696

Exemplu 5: Utilizând un fișier funcție extern

function z = f2(x, y)
z = y.*sin(x)+x.*cos(y);

>> Q = dblquad(@f2, pi, 2*pi, 0, pi)

3. Integrala triplă (triplequad)

triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax) – calculează integrala triplă pe


un domeniu paralelipipedic. Funcţia fun acceptă ca argumente un vector x şi doi scalari y şi z şi
returnează un vector. Funcţia fun poate fi dată ca o funcţie inline sau într-un fişier m.

Exemplu 6:  y sin( x) + z cos(x)dxdydz , unde T este dat de 0  x   ,


T
0  y  1, − 1  z  1 .

>> Q = triplequad(inline('y.*sin(x)+z.*cos(x)'),0,pi,0,1,-1,1)

Q = 2.0000

Exemplu 7:

function u = f3(x,y,z)
u = y.*sin(x)+z.*cos(x);

>> Q = triplequad(@f3,0,pi,0,1,-1,1)

Conf. dr. Laura Stoica 8


Software Computațional – Laborator 11

4. Metoda trapezelor (trapz)

trapz(...) - calculează integrala folosind metoda trapezelor pe o diviziune oarecare a intervalului


[a,b].

Z = trapz(Y) - Consideră că diviziunea este echidistantă şi de pas egal cu 1. Dacă Y e un


vector ce conţine valorile funcţiei pe punctele diviziunii, returnează valoarea aproximativă a
integralei. Dacă Y este o matrice, returnează un vector linie cu valorile integralelor ce corespund
fiecărei coloane de valori din Y. Dacă se doreşte o diviziune echidistantă cu un pas diferit de 1, se
înmulţeşte valoarea cu pasul.


Exemplu 8: Prin metoda trapezelor se calculează integrala I =  sin( x)dx pentru o diviziune
0


echidistantă de pas .
100
X = 0:pi/100:pi;
Y = sin(X);
% deoarece avem pas diferit de 1 se inmulteste diviziunea cu pasul
Z = pi/100*trapz(Y) % echivalent cu z = trapz(X,Y)

Z = 1.9998

Exemplu 9: trapz(X,Y) - calculează integrala lui Y în raport cu X.

X = 0:pi/100:pi;
Y = sin(X);
Z = trapz(X,Y)

Exemplul 10: Utilizarea unei diviziuni neechidistante (dar precizia obţinută e mai mică decât în
cazul diviziunii echidistante)

X = sort(rand(1,101)*pi);
Y = sin(X);
Z = trapz(X,Y)

Daca Y e o matrice, se caută prima dimensiune care are aceeaşi lungime cu X şi se face integrarea
în raport cu aceasta.

Aplicații de laborator: (Polinoame)

1. Se consideră polinomul p(x)=x5-6x4+2x2-7x+9.


a) Să se evalueze valoarea polinomului pe punctul x=7.45, folosind două metode
b) Să se evalueze valoarea polinomului pe 10 puncte echidistante din intervalul [-5,5],
folosind două metode.

Conf. dr. Laura Stoica 9


Software Computațional – Laborator 11

c) Să se reprezinte grafic polinomul pe intervalul [-10,10] folosind pentru evaluare un


vector de puncte, de pas egal cu 0.1.

Indicaţie: a) Met.1: p=x^5-6*x^4+2*x^2-7*x+9.


Met. 2 Se foloseşte funcţia polyval(p,s)
c) plot(x,polyval(p,x))

2. Fie polinoamele p1(x)= -2.45x5+0.4x4-4.5x2-32 şi p2(x)=0.4x4+6.8x3+4x2+2.3x-10.


Să se calculeze :
a) coeficienţii polinomului suma şi diferenţa a polinoamelor p1 şi p2
b) să se evalueze valoarea polinoamelor suma şi diferenţa în punctul x=1
c) să se reprezinte grafic polinoamele suma şi diferenţa, pe intervalul [-5, 5], în aceeaşi
fereastra în două subgrafice diferite.
d) să se reprezinte grafic într-o fereastră nouă, polinoamele suma şi diferenţa, pe
intervalul [-5,5], pentru 40 de puncte, pe acelaşi grafic, cu tipuri de linie diferite

3. Aceleaşi cerințe de la pb. 2 aplicate pentru polinoamele q1 = x3 - 7x2 + 5x -12 şi q2 = -x3


+8x2 -8x +13.

4. Pentru perechea de polinoame, p1 și p2, de la problema 2 să se


calculeze polinoamele produs, cât și rest. Să se reprezinte grafic
polinoamele produs, cât şi rest, pe intervalul [-5,5], pe acelaşi
grafic, cu culori diferite (albastru, roşu, negru). Să se adauge o
legendă. Într-o altă fereastră, pentru perechea q1 și q2, să se
reprezinte grafic polinoamele produs, cât şi rest, pe intervalul [-
5,5], în subgrafice diferite, cu culori diferite (albastru, roşu, negru).
Să se adauge o legendă.

5. Să se scrie un fișier funcţie care returnează coeficienţii polinomului p înmulțit de N ori.


Construind un fișier script, testați funcția pentru înmulțirea polinoamelor: p(x)=x+1;
q(x)=x2+2x+1 la puterile 2, 3 și 4.

x 4 + 5x 3 − 9 x 2 + 7 x + 8
6. Să se descompună în fracții simple expresia
x3 − x 2 + x −1

7. Fie polinoamele p1 și p2 date în problema 2. Să se


calculeze:
a) derivata polinomului p1 şi p2
b) derivata produsului polinoamelor p1 şi p2
c) derivata raportului polinomului p1 la p2 şi a
polinomului p2 la p1.
d) să se reprezinte grafic în aceeaşi fereastră,
în subgrafice diferite, polinoamele derivate,
obţinute la a)-c) în domeniul [-5,5]. Să se
adauge un titlu la fiecare subgrafic și o
legendă pentru subgraficele de la punctul c
(asemenea imaginii din dreapta).

Indicație: d) [N1,M1]=polyder(p1x,p2x); x=linspace(-5,5,40); [c,r]=deconv(N1,M1);


dr=polyval(r,x); dc=polyval(c,x); plot(x,dr,x,dc);

Conf. dr. Laura Stoica 10


Software Computațional – Laborator 11

8. Să se scrie un fișier funcţie care determină coeficienţii polinomului derivat de N ori. Să se


scrie un fișier script pentru apelul funcției și apoi să se reprezinte grafic în aceeaşi fereastră,
în subgrafice diferite, valoarea polinomului şi a derivatei polinomului de ordinul N, pe
intervalul [-5,5]. Să se adauge un titlu subgraficelor.

Indicaţie: Se derivează de n ori polinomul și se afișează coeficienții polinomului rezultat.


Afișarea titlului pentru al doilea subgrafic:
title(['dP(x) de ordin ',num2str(length(r)-1)]);

9. Se cere:
a) Să se determine rădăcinile polinoamelor p1,p2,q1,q2 de la problema 2, respectiv 3
b) Să se determine rădăcinile polinomului p(x)= (3+i)x3 -6x2 +7ix -4+6i

Indicaţie: Se foloseşte r=roots(p), unde p este polinomul şi r rădăcinile.

10. Să se determine coeficienţii polinoamelor care au rădăcinile date în vectorii:


v1=[2, -1, 4, 0. 6] , v2=[7i, 9+5i, -5, 8] şi v3=[9, 7, 8+i, 8-i].
Scrieți pe foi forma polinoamelor ca expresii matematice.

Indicaţie: p1=poly(v1), p1(x)=x5-11x4+32x3-4x2-48x

(Interpolare)

11. Se consideră următorii vectori corespunzători valorilor unei funcţii, y=f(x):


x=[3, 6, 12, 45, 67, 89, 100]
y=[-67,87,123,345,567, 670, 799]

a) Folosind interpolarea liniară să se aproximeze valoarea funcţiei pe punctul x0=70


b) Folosind interpolarea liniară să se aproximeze valoarea funcţiei pe vectorul v=[4,5,27,37,60]
c) Să se aproximeze valoarea funcţiei pe punctul x0 şi pe vectorul v folosind interpolarea spline şi
interpolarea spline cubică de tip Hermite
d) Să se reprezinte în acelaşi sistem de axe și în aceeași fereastră cu tipuri de linie diferită (stil,
culoare, marcator) funcţia obţinută pentru diferite tipuri de interpolare, pentru 20 de puncte în
intervalul [5,100]. Adăugați o legendă (în colțul stânga sus) cu graficele reprezentate.

12. Se consideră funcţiile f1(x)=cos(x), f2(x)=tan(x) şi f3(x)=exp(x) și 100 de puncte din x[-π,π]. Să
se reprezinte grafic în aceeași fereastră, în subgrafice diferite, funcţiile care aproximează pe f1, f2,
f3 folosind interpolarea liniară şi spline pe mulţimea de puncte w=0:π/10:π/2. Folosiți pentru
desenare marcatori diferiți și culori diferite. Adăugați câte o legendă pentru fiecare subgrafic știind
că acestea conțin 2 tipuri de interpolare pentru fiecare funcție. Adăugați un titlu fiecărui subgrafic.

13. Să se determine valoarea z de interpolare spline cubică pentru x0=2.6, unde x=[0,1,2,3,4,5],
y=[0,20,60,68,77,110]

14. Să se reprezinte grafic în același sistem de axe:


a) doar prin marcatori cele 3 perechi de puncte (x, f(x)) definite la problema 12. Să se determine
punctele yi, folosind interpolările spline pentru xi cu valori de la –pi/2 la pi-0.2 şi cu pas de creştere
0.1.

Conf. dr. Laura Stoica 11


Software Computațional – Laborator 11

b) Să se reprezinte grafic, într-o fereastră nouă, în același sistem de axe, doar prin linii de culori
diferite, curbele ce trec prin punctele (xi,yi) folosind interpolările liniare și spline pentru xi.
Adăugați câte o legendă pentru fiecare fereastră.

15. Fiind date x=[1,2,3,4,5,6,7,8,9,10], y= [2 4 3 5 6 1 8 9 7 1], 10 perechi de puncte în planul xOy, să


se traseze graficul rezultat pentru 10 puncte și în același sistem de axe și graficul obținut prin
interpolarea spline pe o reţea de patru ori mai fină.

16. Se consideră următorii vectori reprezentând valorile unei funcţii z=f(x,y)


x=[3, 6, 12, 45, 67, 89, 100], y=[-67,87,123,345,567, 670, 799], z=[345,78,123,45,987, 567,980]

a) Folosind interpolarea biliniară să se aproximeze valoarea funcţiei pe punctul x0=51, y0=412.


Să se traseze graficul dat de punctele (x,y,z) după interpolare și să se marcheze cu un marcator
de dimensiune 8pt, punctul (x0,y0,z0).
b) Folosind interpolarea biliniară să se aproximeze valoarea funcţiei pe vectorii
x1=[4,5,27,37,60], y1=[45, 67,120,456,234]. Să se reprezinte grafic funcţia obţinută prin
interpolarea biliniară, într-o fereastră nouă.

Indicație: Vectorul z se extinde la o matrice astfel: zz=meshgrid(z).


Desenarea se face cu plot3(x,y,z)

17. Se consideră funcția f(x,y)=ex+y. Să se aproximeze


această funcţie pentru 100 de puncte prin interpolare
liniară folosind valorile pe care funcția le ia pe
punctele x=-10:0.5:10, y=-10:0.5:10. Să se reprezinte
graficul funcției cu linie albastră și graficul aproximării
acesteia prin marcatori steluță și culoarea verde.

Indicație: pentru vizualizarea graficului 3D se


utilizează funcția view(3) după plot3()

18. a) Să se refacă problema 11 de la punctul (d) aplicând metoda celor mai mici pătrate și folosind un
polinom de gradul 2.
b) Să se refacă problemele 11 de la punctul (d) aplicând metoda celor mai mici pătrate și folosind
un polinom de gradul 4.

Indicaţie: c=polyfit(x,y,3); rx=polyval(c,x); plot(x,rx,'r')

19. Fie polinomul p(x)=x3-6x2+11x-6, peste care este suprapus un zgomot cu distribuţie normală.
Valoarea x aparține domeniului [0,4]. Aproximaţi în sensul celor mai mici pătrate datele rezultate
cu un polinom de gradul 3. Reprezentaţi gradele cu zgomot şi polinomul aproximant.

Indicaţie: y=polyval(p,x)+randn(size(x))
……………….
yc=polyval(c,x); plot(x,y,x,yc)

Conf. dr. Laura Stoica 12


Software Computațional – Laborator 11

(Integrale)

20. Să se calculeze prin metoda lui Simpson următoarele integrale:


pi / 2

 sin x  cos x dx
2
a)
0
10

 (x − 4 x + 7)dx
3
b)
1
0
c)  sin( x)dx
− pi / 2
cu evidenţierea tuturor valorilor intermediare

d)  ( x 2 y + y 2 x)dx dy , unde D este dreptunghiul dat de 0  x  5, 0  y  10


D

e)  ( xyz 2 + y ( x 2 + z 2 ))dx dy dz , unde T este dat de 0  x  2, 0  y  3, 0  z  4


T

21. Să se calculeze prin metoda trapezelor integralele :


3 6 2 pi / 3
x sin x
I1 =  e dx , I 2 =  ( x + 3x − 4)dx , I 3 =  2 dx , I 4 = 
2 x+4 2
dx
−2 x + 1
0 4 pi / 10
x

a) folosind o diviziune echidistantă şi funcţia trapz(Y)


b) folosind o diviziune echidistantă şi funcţia trapz(X,Y)
c) folosind o diviziune oarecare (neechidistantă) formată din 10 puncte obţinute printr-un
proces de generare aleatoare (Atenție la intervalul de integrare și la ordonare!)

Conf. dr. Laura Stoica 13

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