Метод наименьших квадратов - Pascal ABC (12829)

Узнай цену своей работы

Формулировка задачи:

Привет всем. Нужно составить программу, которая будет вычислять методом наименьших квадратов. Также должен присутствовать коэффициент корреляции. Сделал программу, вычисляет коэффициенты a и b правильно, но коэффициент корреляции неправильно вычисляет. Формулу брал из "Википедии". (https://ru.wikipedia.org/wiki/Корреляция). Помогите пожалуйста разобраться. Заранее спасибо! Вот код:
Листинг программы
  1. Program MNK;
  2. Var x,y: array [1..100] of integer;
  3. l,w,e,t,u,a,b,r,xm,ym,sxy,sx,sy,px,py,Q:real;
  4. n,i:integer;
  5. begin
  6. writeln('введите количество точек');
  7. readln(n);
  8. For i:=1 to n Do begin
  9. Writeln('Введите координату х для точки, ',i,' ');
  10. Readln(x[i]);
  11. end;
  12. For i:=1 to n Do begin
  13. Writeln('Введите координату у для точки ',i,'');
  14. Readln(y[i]);
  15. end;
  16. for i:=1 to n do
  17. l:=l+n*x[i]*y[i];
  18. for i:=1 to n do
  19. w:=w+x[i];
  20. for i:=1 to n do
  21. e:=e+y[i];
  22. for i:=1 to n do
  23. t:=t+n*sqr(x[i]);
  24. for i:=1 to n do
  25. u:=u+x[i];
  26. u:=sqr(u);
  27. for i:=1 to n do
  28. a:=(l-w*e)/(t-u);
  29. writeln('коэффициент а=',a);
  30. for i:=1 to n do
  31. b:= (e-a*w)/n;
  32. writeln('коэффициент b=',b);
  33. for i:=1 to n do
  34. Q:=Q+sqr(y[i]-(a*x[i]+b));
  35. writeln('среднеквадратичная функция Q= ',Q);
  36. for i:=1 to n do begin
  37. xm:=xm+x[i]/n;
  38. ym:=ym+y[i]/n;
  39. sxy:=sxy+(x[i]-xm)*(y[i]-ym);
  40. px:=px+(sqr(x[i]-xm));
  41. py:=py+(sqr(y[i]-ym));
  42. r:=sqr((sxy)/(sqrt(px*py))) ;
  43. end;
  44. writeln('коэффициент корреляции r= ',r);
  45. end.

Решение задачи: «Метод наименьших квадратов»

textual
Листинг программы
  1. r:=sxy/sqrt(px*py);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы