% データを与えて回帰直線を求めるプログラムのための雛形

n=input("the number of data = ? ");  % データ数の入力

for k=1:n  % k=1 から k=n までループを回す
  k
  x(k)=input("x = ? "); % x(k) の値の入力
  y(k)=input("y = ? "); % y(k) の値の入力
end

%-----------

xbar=0;
for k=1:n
  xbar=xbar+x(k);
end
xbar=xbar/n;

ybar=0;
for k=1:n
  ybar=ybar+y(k);
end
ybar=ybar/n;

xysum=0;
xxsum=0;
for k=1:n
  xysum=xysum+(x(k)-xbar)*(y(k)-ybar);
  xxsum=xxsum+(x(k)-xbar)**2
end

a=xysum/xxsum
b=ybar-a*xbar
%-----------

% 以下, グラフ出力(入力点と回帰直線両方)

plot(x,y,'*',x,a*x+b)

