Listing program
%Regresia liniara - Metoda celor mai mici patrate
function [a,b,mx,my,R]=regresialiniara(x,y)
%Calculul sumelor
n=length(x);
Sumax=sum(x);
Sumaxx=sum(x.^2);
Sumaxy=sum(x.*y);
Sumay=sum(y);
M=[Sumaxx Sumax;...
Sumax n];
T=[Sumaxy;...
Sumay];
X=inv(M)*T;
a=X(1);
b=X(2);
mx=Sumax/n;
my=Sumay/n;
Sx=sqrt(sum((x-mx).^2)/n);
Sy=sqrt(sum((y-my).^2)/n);
R=sum((x-mx).*(y-my))/(n*Sx*Sy);
%Datele experimentale
x=[30 33 34 35 39 44 45];
y=[1.10 1.21 1.25 1.23 1.30 1.40 1.42];
[a,b,mx,my,R]=regresialiniara(x,y)
a=
0.0192
b=
0.5605
mx =
37.1429
my =
1.2729
R=
0.9793
Metode numerice în ingineria electrică
>>
Aplicaţie laborator 2
Următorul tabel prezintă profiturile unei companii din ultimii şase ani. Să se determine parabola de regresie şi
parametrii modelării
Anul 2007 2008 2009 2010 2011 2012
Profitul (103 $) 236 214 207 250 300 375
%Calculul sumelor
n=length(x);
Sumax=sum(x);
Sumaxx=sum(x.^2);
Sumaxxx=sum(x.^3);
Sumaxxxx=sum(x.^4);
Sumayx=sum(y.*x);
Metode numerice în ingineria electrică
Sumayxx=sum(y.*x.^2);
Sumay=sum(y);
T=[Sumayxx;...
Sumayx;...
Sumay];
X=inv(M)*T;
a=X(1);
b=X(2);
c=X(3);
mx=Sumax/n;
my=Sumay/n;
Sx=sqrt(sum((x-mx).^2)/n);
Sy=sqrt(sum((y-my).^2)/n);
R=sum((x-mx).*(y-my))/(n*Sx*Sy);
%Datele experimentale
x=[2007 2008 2009 2010];
y=[236 214 207 250];
[a,b,c,mx,my,R]=parabola(x,y)
a=
16.2405
Metode numerice în ingineria electrică
b=
-6.4558e+04
c=
6.5509e+07
mx =
2.0085e+03
my =
226.7500
R=
0.2280
Aplicaţie laborator 3
Următorul tabel prezintă veniturile realizate din vanzarea de îngheţată în funcţie de temperatura de afară. Să se
reprezinte grafic datele şi să se realizeze un tip de modelare optim, calculând parametrii modelării
24.4 26
29.4 30
32 35
26.6 26
23.3 24
22.7 20
25 18
20 19
17.8 20
%Calculul sumelor
n=length(x);
Sumax=sum(x);
Sumaxx=sum(x.^2);
Sumaxxx=sum(x.^3);
Sumaxxxx=sum(x.^4);
Sumayx=sum(y.*x);
Sumayxx=sum(y.*x.^2);
Sumay=sum(y);
T=[Sumayxx;...
Sumayx;...
Sumay];
X=inv(M)*T;
a=X(1);
b=X(2);
c=X(3);
mx=Sumax/n;
my=Sumay/n;
Sx=sqrt(sum((x-mx).^2)/n);
Metode numerice în ingineria electrică
Sy=sqrt(sum((y-my).^2)/n);
R=sum((x-mx).*(y-my))/(n*Sx*Sy);
%Datele experimentale
x=[18.33 20 18.88 23.8 27 24.4 29.4 32 26.6 23.3 22.7 25
20 17.8];
y=[20 22 21 23 25 26 30 35 26 24 20 18 19 20];
[a,b,c,mx,my,R]=parabola(x,y)
a=
0.0887
b=
-3.4037
c=
52.9752
mx =
23.5150
Metode numerice în ingineria electrică
my =
23.5000
R=
0.8299
Aplicaţie laborator 4
Să se realizeze o aplicaţie pentru modelarea exponenţială a datelor următoare, calculând parametrii modelării.
x -1.3 -0.8 2 3.3
y e/3 e/2 e 2e
%Calculul sumelor
n=length(x);
Sumax=sum(x);
Sumaxx=sum(x.^2);
Sumaxy=sum(x.*y);
Sumay=sum(y);
M=[Sumaxx Sumax;...
Sumax n];
T=[Sumaxy;...
Sumay];
X=inv(M)*T;
a=X(1);
b=X(2);
mx=Sumax/n;
my=Sumay/n;
Sx=sqrt(sum((x-mx).^2)/n);
Sy=sqrt(sum((y-my).^2)/n);
R=sum((x-mx).*(y-my))/(n*Sx*Sy);
%Datele experimentale
e=2.71828182846;
x=[-1.3 -0.8 2 3.3];
y=[e/3 e/2 e 2*e];
[a,b,mx,my,R]=regresialiniara(x,y)
a=
0.8715
Metode numerice în ingineria electrică
b=
1.9078
mx =
0.8000
my =
2.6050
R=
0.9450
Metode numerice în ingineria electrică