uses crt, graph;
function Func(x:real):real;
begin
Func:= -1.6 * x + 4.6;
end;
const
a = 0.5;
b = 5;
dx = 0.5;
N = 10;
mm = 30;
var
M: array[1..10]of real;
C, x: real;
i, j: integer;
b0, b1: real;
sumx, summ, sumxm, sumsqrx: real;
gd, gm:integer;
begin
clrscr;
randomize;
sumx:=0;
summ:=0;
sumxm:=0;
sumsqrx:=0;
x:=a;
i:=1;
while (x<=b) do
begin
C:=random(11);
M:=Func(x)+(C-5)/10;
x:=x+dx;
inc(i);
end;
for i:=1 to N do
writeln(M);
writeln;
for i:=1 to N do
begin
summ:=summ + M;
sumx:=sumx + dx*i;
sumxm:=sumxm + M*dx*i;
sumsqrx:=sumsqrx + sqr(dx*i);
end;
b0:=(summ/sumx*sumsqrx-sumxm)/(N/sumx*sumsqrx - sumx);
b1:=(summ - b0*N)/sumx;
writeln(b1);
writeln(b0);
readln;
gd:=Detect;
InitGraph(gd,gm,'e:\coding\BP\BGI');
MoveTo(0,300);
LineTo(300,300);
MoveTo(0,0);
LineTo(0,300);
MoveTo(round(dx*mm),round(300-mm*(b0+b1*dx)));
for i:=2 to N do
begin
LineTo(round(dx*i*mm), round(300-mm*(b0+b1*dx*i)));
MoveTo(round(dx*i*mm), round(300-mm*(b0+b1*dx*i)));
end;
for i:=1 to N do
begin
Circle(round(dx*i*mm),round(300-mm*Func(dx*i)),2);
end;
readln;
CloseGraph;
end.
Линейный регрессионный анализ Pascal
.
Шаг аргумента x - 0,5, дельта Ci - случайное отклонение, определяемое с помощью функции случайных чисел RANDOM в интервале от - 0.5 до +0.5.. Вычислить значения коэффициентов b1 и b0 для линейной регрессии 10 пар значений xi и yi, используя метод наименьших квадратов по приведенным ниже формулам:
b1=сумма(xi)*сумма(Mi) - N*сумма (xi*Mi)/(сумма (xi))^2 - N*сумма (xi^2)
b0= (сумма(Mi) - b1*сумма(xi))/N
(i=1…N)
В декартовой системе координат построить график полученной линейной регрессии и отметить рассчитанные по формуле точки с координатами xi и yi.
Функция : -1,6x+4.6
Помогите с задачей
вроде так: