Vous êtes sur la page 1sur 1

%enme 303 hw 7

clf; %clears any previous figures


fprintf('%s\n','enter two matricies, a and b, to derive the regression');
fprintf('%s\n','curve y = ao+a1*x');
prompta = input('enter vector a: ');
a = prompta;
promptb = input('enter vector b: ');
b = promptb;
[o p] = size(a);
[m n] = size(b);
if p~=n & o~=m
fprintf('%s\n','matricies are not equivalent; cannot continue');
break
end
%graph
hold on
plot(a,b,'squarer'); %plots a red square at each data point
xbar = sum(a)/p;
ybar = sum(b)/n;
sxy = sum(a.*b)-p*xbar*ybar;
sxx = sum(a.^2)-p*(xbar^2);
a1 = sxy/sxx;
ao = ybar-a1*xbar;
%linear least squares equation
y = ao+a1.*a;
plot(a,y,'g'); % plots a green line
hold off
fprintf('%s\n','*****************************************************');
fprintf('%s\n','the linear least squares regression equation is ');
fprintf('%s','y = ');
fprintf('%f',ao);
fprintf('%s','+');
fprintf('%f',a1);
fprintf('%s','*');
fprintf('%s\n','x')
fprintf('%s\n','*****************************************************');
ei = b-(ao+a1.*a); %residuals
avg2res = sum(ei.^2)/p; %average squared residual value
avgres = sqrt(avg2res);
fprintf('%s','the average residual value is ');
fprintf('%f\n',avgres);

Vous aimerez peut-être aussi