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);