Advertisement
VXP

ASD08_Approx

VXP
May 8th, 2015
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. // ASD08_Approx.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. using namespace std;
  7.  
  8. double sum(double X[10])
  9. {
  10. double s = 0;
  11. for(int i = 0; i < 10; i++)
  12. {
  13. s += X[i];
  14. }
  15. return s;
  16. }
  17.  
  18. double sumXY(double X[10], double Y[10])
  19. {
  20. double s = 0;
  21. for(int i = 0; i < 10; i++)
  22. {
  23. s += X[i] * Y[i];
  24. }
  25. return s;
  26. }
  27.  
  28. double A1(double X[10], double Y[10], int n)
  29. {
  30. return (sum(Y) * sum(X) - n*sumXY(X, Y))/
  31. (sum(X) * sum(X) - n*sumXY(X, X));
  32. }
  33.  
  34. double A0(double X[10], double Y[10], int n)
  35. {
  36. return (sum(Y) - A1(X, Y, n) * sum(X)/n);
  37. }
  38.  
  39. double f(double x, double X[10], double Y[10], int n)
  40. {
  41. return A0(X, Y, n) + A1(X, Y, n)*x; // Линейный многочлен
  42. }
  43.  
  44. int _tmain(int argc, _TCHAR* argv[])
  45. {
  46. double X[10] = {0, 5, 8, 9, 10, 15, 18, 20, 21, 23};
  47. double Y[10] = {4, 10, 5, -8, 7, 15, 24, 30, 21, 20};
  48. int n = 10;
  49. double x = 1.6;
  50.  
  51. double result = f(x, X, Y, n);
  52. cout << result << endl;
  53.  
  54. system("PAUSE");
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement