Sunteți pe pagina 1din 20

Metode numerice

Laborator Nr. 5

29 martie 2017

Laborator Nr. 5 MNUM 29 martie 2017 1 / 20


Minimizarea funcțiilor

Funcția fminsearch se utilizează pentru determinarea minimului unei


funcții.
Se apelează cu una dintre sintaxele:
1 x = fminsearch('F', x0)
2 x = fminsearch('F', x0, optiuni)
3

și returnează valoarea lui x cea mai apropiată de x0 pentru care


funcția este minimă.

Laborator Nr. 5 MNUM 29 martie 2017 2 / 20


Minimizarea funcțiilor

Exercițiul 1
Să se determine coordonatele minimului funcției sin x în apropierea lui
x0 = 3.

Laborator Nr. 5 MNUM 29 martie 2017 3 / 20


Exercițiul 1

1 f = @(x) sin(x);
2 xmin = fminsearch(f, 4);
3 ymin = f(xmin);
4 disp(['xmin = ' num2str(xmin)]);
5 disp(['ymin = ' num2str(ymin)]);

Laborator Nr. 5 MNUM 29 martie 2017 4 / 20


Minimizarea funcțiilor

Exercițiul 2
Să se determine minimul funcției f(x) = (x − 3)2 − 1 în apropierea valorii
x0 = 2.

Laborator Nr. 5 MNUM 29 martie 2017 5 / 20


Exercițiul 2

1 f = @(x) (x-3).^2-1;
2 xmin = fminsearch(f, 2);
3 ymin = f(xmin);
4 disp(['xmin = ' num2str(xmin)]);
5 disp(['ymin = ' num2str(ymin)]);

Laborator Nr. 5 MNUM 29 martie 2017 6 / 20


Minimizarea funcțiilor

Funcția fminbnd se utilizează pentru determinarea minimului unei


funcții într-un anumit interval.
Se apelează cu una dintre sintaxele:
1 x = fminbnd('F', x1, x2)
2 x = fminbnd('F', x1, x2, optiuni)
3

și returnează valoarea lui x din intervalul (x1 , x2 ) pentru care funcția


este minimă.

Laborator Nr. 5 MNUM 29 martie 2017 7 / 20


Minimizarea funcțiilor

Exercițiul 3
Să se determine minimul funcției f(x) = (x − 3)2 − 1 în intervalul (0, 5).

Laborator Nr. 5 MNUM 29 martie 2017 8 / 20


Exercițiul 3

1 f = @(x) (x-3).^2-1;
2 xmin = fminbnd(f, 0, 5);
3 ymin = f(xmin);
4 disp(['xmin = ' num2str(xmin)]);
5 disp(['ymin = ' num2str(ymin)]);

Laborator Nr. 5 MNUM 29 martie 2017 9 / 20


Minimizarea funcțiilor

Exercițiul 4
Să se reprezinte grafic funcția f(x) = 2x − sin(x2 ) în intervalul [−4, −3] și
să se determine coordonatele minimului funcției din intervalul respectiv.

Laborator Nr. 5 MNUM 29 martie 2017 10 / 20


Exercițiul 4

1 f = @(x) 2*x-sin(x.^2);
2 x=-4:0.01:-3;
3 plot(x,f(x));
4 xmin = fminbnd(f, -4, -3);
5 ymin = f(xmin);
6 disp(['xmin = ' num2str(xmin)]);
7 disp(['ymin = ' num2str(ymin)]);

Laborator Nr. 5 MNUM 29 martie 2017 11 / 20


Minimul funcțiilor de mai multe variabile

Determinarea minimului unei funcții de mai multe variabile, cel mai


apropiat de estimarea inițială x0 , specificată ca argument, se face cu
funcția fminsearch.
1 x = fminsearch('F', x0)
2 x = fminsearch('F', x0, optiuni)
3

unde x și x0 sunt vectori.

Laborator Nr. 5 MNUM 29 martie 2017 12 / 20


Minimul funcțiilor de mai multe variabile

Exercițiul 5
Să se determine minimul funcției
( )2
f(x, y) = 100 y − x2 + (1 − x)2 + 2

cel mai apropiat de (x, y) = (−1.2, 1).

Laborator Nr. 5 MNUM 29 martie 2017 13 / 20


Exercițiul 5

1 f = @(x) 100*(x(2)-x(1)^2)^2 + (1-x(1))^2 + 2;


2 minimul = fminsearch(f, [-1.2,1]);
3 disp(minimul);
4 y=f(minimul);
5 disp(y);

Laborator Nr. 5 MNUM 29 martie 2017 14 / 20


Calcule numerice cu polinoame

În MATLAB polinoamele sunt reprezentate ca vectori de coeficienți,


unde primul element corespunde termenului care conține x la puterea
cea mai mare.
De exemplu x4 + 3x3 − 3x2 − 11x − 6 corespunde vectorului
[1, 3, −3, −11, −6].
Funcția polyval evaluează polinomul definit de vectorul p al
coeficienților polinomului în punctul s.
1 f = polyval(p, s)
2

Laborator Nr. 5 MNUM 29 martie 2017 15 / 20


Calcule numerice cu polinoame

Exercițiul 6
Să se evalueze polinomul

f(x) = 3x4 − x3 + x − 1

în 100 de puncte din intervalul [0, 5] așezate echidistant.

Laborator Nr. 5 MNUM 29 martie 2017 16 / 20


Exercițiul 6

1 p = [3,-1,0,1,-1];
2 s=0:0.5:5;
3 s
4 f=polyval(p,s);
5 f
6 %for k=1:length(f)
7 % disp(sprintf('%.2f', f(k)));
8 %end

Laborator Nr. 5 MNUM 29 martie 2017 17 / 20


Calcule numerice cu polinoame
Dacă funcția f(x) este un polinom de gradul N, atunci f(x) = 0 are N
rădăcini, care pot fi reale sau complexe.
Funcția MATLAB roots determină rădăcinile polinoamelor.
1 r = roots(c)
2

Funcția MATLAB poly determină coeficienții unui polinom ale cărui


rădăcini sunt cunoscute.
1 c = poly(r)
2

c este un vector linie care conține coeficienții polinomului, în ordine


descrescătoare a puterilor variabilei.
r este un vector coloană care conține rădăcinile polinomului.
Funcțiile roots și poly sunt funcții reciproce, realizând trecerea de la
coeficienți la rădăcini sau de la rădăcini la coefcienți.
Laborator Nr. 5 MNUM 29 martie 2017 18 / 20
Calcule numerice cu polinoame

Exercițiul 7
Determinați rădăcinile polinomului

f(x) = x3 − 2x2 − 3x + 10

și efectuați verificarea rezultatului folosind funcția polyval.

Exercițiul 8
Să se determine coeficienții polinomului care are rădăcinile r = [−1, 1, 3].

Laborator Nr. 5 MNUM 29 martie 2017 19 / 20


Exercițiile 7-8

Exercițiul 7
1 p = [1, -2, -3, 10];
2 r = roots(p);
3 disp(r);

1 p = [1, -2, -3, 10];


2 radacini = [2+i, 2-i, -2];
3 verif = polyval(p, radacini);
4 disp(verif);

Exercițiul 8
1 r = [-1; 1; 3];
2 c = poly(r);
3 disp(c);

Laborator Nr. 5 MNUM 29 martie 2017 20 / 20

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