Sunteți pe pagina 1din 9

Metode numerice n ingineria electric- LUCRARI DE LABORATOR

FI DE LABORATOR

OPTIMIZAREA MODELELOR DE REGRESIE 2

Un model de regresie de ordinul al treilea are forma:


f ( x1, x 2) p30 x13 p21x12 x 2 p20 x12 p12 x1 x 22 ...
p11 x1 x 2 p10 x1 p03 x 23 p02 x 22 p01 x 2 p00

Coeficienii funciei f ( x1, x 2) se determin cu metoda celor mai mici ptrate.

1. ntr-o staie de epurare i tratare a apelor uzate, se msoar debitul de ieire al apei notat cu
Y, n funcie de nmolul extras din apa uzat notat cu X1 si debitul de intrate al apei notat cu X2.
Calculai modelul de regresie optim i aplicnd funcia pentru optimizare fmincon s se determine
maximul debitului Y n condiiile n care:
330 X1 950 i 7300 X2 20000
X1 513 521 746 721 765 340 560 425 401 841 754 810 841 722 748 811 726
(m /zi) 942 725 834 850 912 862 420 548 542 679 640 830 840 874
3

X2 17971 19768 14719 13740 14478 13272 13508 13259 7319 11608 12979 14324
(m /zi) 13267
3 12636 13318 13091 13191 13302 12701 13638 12631 13070 13200
13397 14328 11461 13239 13739 13478 13656 14523

Y 21324 23677 17835 16764 17753 14333 13122 9176 5554 11854 12650 13614
(m /zi) 16055 15167 15919 15827 15831 15771 15079 16307 15056 15345 15678
3
16078 17021 13726 15678 16008 15929 16312 17534

Introducerea datelor :
clc,clear all
X1=[513 521 746 721 765 340 560 425 401 841 754 810 841 722 748
811 726 942 725 834 850 912 862 420 548 542 679 640 830 840 874
];

X2=[17971 19768 14719 13740 14478 13272 13508 13259 7319 11608
12979 14324 13267 12636 13318 13091 13191 13302 12701 13638 12631
13070 13200 13397 14328 11461 13239 13739 13478 13656 14523
];

Y=[21324 23677 17835 16764 17753 14333 13122 9176 5554 11854
12650 13614 16055 15167 15919 15827 15831 15771 15079 16307 15056
15345 15678 16078 17021 13726 15678 16008 15929 16312 17534
];
X1=X1';
X2=X2';
Metode numerice n ingineria electric- LUCRARI DE LABORATOR

Y=Y';
n=length(X1)

Calcularea modelului polinomial de regresie de ordinul trei:

%Calcularea modelului polinomial de regresie


ordin=3; %Ordinul modelului polinomial de regresie

p = polyfitn([X1 X2],Y,ordin)

if exist('sympoly') == 2
model=polyn2sympoly(p)
end
if exist('sym') == 2
model=polyn2sym(p)
end

pretty(model)

Sarcini: - Verificai coeficientul de corelaie al modelului


Metode numerice n ingineria electric- LUCRARI DE LABORATOR

- Optimizai modelul de regresie prin omiterea unor termeni cu valoare


nesemnificativ.
- ncercai i discutai comanda ordin='x^3,x^2,x*y,x,y^2,y,constant'

- Verificai coeficientul de corelaie al noului model.


- Reprezentai grafic suprafaa de regresie
- Afiai termenii i coeficienii modelului de regresie final.
- Realizai optimizarea cu restriciile impuse.

Listing fiiere
Fiierul funcie funcoptim1 coninnd modelul de regresie:
function f=funcoptim1(x)

p1=0;
p2=0;
p3=0;
p4=0;
p5=0;
p6=0.0158;
p7=0;
p8=0;p9=-0.0006;p10=-1.3425;

f=p1*x(1)^3+p2*x(1)^2*x(2)+p3*x(1)^2+p4*x(1)*x(2)^2+p5*x(1)*x(2)+p6

end
Fiierul funcie coninnd restriciile:
function [c, ceq]=conoptim1(x)
% restrictii neliniare de inegalitate
c=[330-x(1);x(1)-950;7300-x(2);x(2)-20000];
% restrictii neliniare de egalitate
ceq=[];
end
Fiierul surs pentru problema de optimizare:
%Determinarea minimului

x0=[5 5]; %estimarea initiala


options=optimset('LargeScale','off');
Metode numerice n ingineria electric- LUCRARI DE LABORATOR

[xmin,fval]=fmincon('funcoptim1',x0,[],[],[],[],[],[],'conoptim1',options)

figure;
surf(xg,yg,reshape(zg,size(xg)))
hold on
plot3(xmin(1),xmin(2),fval,'ko','markersize',9,'MarkerFaceColor','black')
hold off
xlabel('Suma reclame TV');
ylabel('Suma reclame internet');
zlabel('Suma din vanzari');

Afisare rezultate

xmin =

1.0e+04 *

0.0330 2.0000

fval =

-8.1285
Metode numerice n ingineria electric- LUCRARI DE LABORATOR

2. La o firm ce se ocup cu aducerea din strinatate de maini second-hand, preul Y al unei


maini, n euro, depinde de capacitatea motorului i de anul de fabricaie al mainii.
X1 (capacitate motor) X2 (an fabricaie) Y (pre n )
1600 2002 2250
1900 2005 500
1800 1999 1550
2000 2007 3700
1600 2005 6900
1900 2002 2650
1900 2006 5690
2000 2006 5750
2000 2009 12100
1900 2001 2950
Metode numerice n ingineria electric- LUCRARI DE LABORATOR

2000 2009 5990


2000 2011 10650
1600 2012 9250
2500 2003 2800

S se determine minimul i maximul preului Y n condiiile n care:


1500 X1 2600 i 1998 X2 2013

Listing fiiere
clc,clear all
X1=[1600 1900 1800 2000 1600 1900 1900 2000 2000 1900 2000 2000 1600 2500];
X2=[2002 2005 1999 2007 2005 2002 2006 2006 2009 2001 2009 2011 2012 2003];
Y=[2250 500 1550 3700 6900 2650 5690 5750 12100 2950 5990 10650 950 2800];
X1=X1';
X2=X2';
Y=Y';
n=length(X1)
%Calcularea modelului polinomial de regresie
ordin=3; %Ordinul modelului polinomial de regresie

p = polyfitn([X1 X2],Y,ordin)

if exist('sympoly') == 2
model=polyn2sympoly(p)
end
if exist('sym') == 2
model=polyn2sym(p)
end

pretty(model)

p. ModelTerms

p. Coefficients

%reprezentarea grafica a suprafetei de regresie


intervale=10;
[xg,yg]=meshgrid(min(X1):(max(X1)-min(X1))/intervale:max(X1),min(X2):(max(X2)-min(X2))/
zg = polyvaln(p,[xg(:),yg(:)]);
figure;
surf(xg,yg,reshape(zg,size(xg)))
hold on
plot3(X1,X2,Y,'o')
hold off
xlabel('Capacitate cilindrica');
ylabel('An');
Metode numerice n ingineria electric- LUCRARI DE LABORATOR

zlabel('Pret');

function f=funcoptim1(x)

p1=0;
p2=0;
p3=0;
p4=0;
p5=0;
p6=0.0001;
p7=0;
p8=0;
p9=-0.0063;
p10=4.1834;

f=p1*x(1)^3+p2*x(1)^2*x(2)+p3*x(1)^2+p4*x(1)*x(2)^2+p5*x(1)*x(2)+p6

end
Fiierul funcie coninnd restriciile:
Metode numerice n ingineria electric- LUCRARI DE LABORATOR

function [c, ceq]=conoptim1(x)


% restrictii neliniare de inegalitate
c=[1500-x(1);x(1)-2600;1998-x(2);x(2)-2013];
% restrictii neliniare de egalitate
ceq=[];
end
Fiierul surs pentru problema de optimizare:
%Determinarea minimului

x0=[5 5]; %estimarea initiala


options=optimset('LargeScale','off');
[xmin,fval]=fmincon('funcoptim1',x0,[],[],[],[],[],[],'conoptim1',options)

figure;
surf(xg,yg,reshape(zg,size(xg)))
hold on
plot3(xmin(1),xmin(2),fval,'ko','markersize',9,'MarkerFaceColor','black')
hold off
xlabel('CC');
ylabel('An');
zlabel('Pret');

Afisare rezultate
ans =

3 0
2 1
2 0
1 2
1 1
1 0
0 3
0 2
0 1
0 0

ans =

1.0e+11 *

-0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0001 -0.0000 0.0000 -0.0063 4.1834

xmin =
Metode numerice n ingineria electric- LUCRARI DE LABORATOR

1.0e+03 *

1.5000 2.0130

fval =

-8.3485