Advertisement
Guest User

Untitled

a guest
Apr 6th, 2020
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1.  
  2.  
  3. #include <iostream>
  4. #include <iterator>
  5. #include <math.h>
  6. #include <iomanip>
  7. double x[] = { 1,3,5,7 };
  8. double y[] = { 1,8,9,17 };
  9. double pochodnaY[2] = { 1,1 };
  10. int wielkosc = std::size(x);
  11. double bufor[std::size(x) + 2][std::size(x) + 3];
  12. double wynik[std::size(x) + 2];
  13.  
  14. /*
  15. double x[] = { -4,-2,0,2,4 };
  16. double y[] = { -116,-20,4,4,28 };
  17. double pochodnaY[2] = { 74,26 };
  18. */
  19. //tworzenie jednego sx' i wrzucenie w odpowiednei miejsce buforu
  20. void sxprym(double xo, int j)
  21. {
  22.     int i;
  23.     double wspolczynnik;
  24.     bufor[j][0] = 0;
  25.     bufor[j][1] = 1;
  26.     for (i = 2; i <= 3; i++)
  27.         bufor[j][i] =i* pow(xo, i-1);
  28.     for (int k = 0; i < wielkosc + 2; i++, k++)
  29.     {
  30.         if (k < j)
  31.         {
  32.             bufor[j][i] = 3*pow(xo - x[k + 1], 2);
  33.         }
  34.         else
  35.             bufor[j][i] = 0;
  36.  
  37.     }
  38.     bufor[j][i] = y[j];
  39. }
  40. //tworzenei jednego sx i wrzucenie w odpowiednie miejsce buforu
  41. void sx(double xo, int j)
  42. {
  43.     int i;
  44.     double wspolczynnik;
  45.     bufor[j][0] = 1;
  46.     for (i = 1; i <= 3; i++)
  47.         bufor[j][i] = pow(xo, i);
  48.     for (int k = 0; i < wielkosc + 2; i++, k++)
  49.     {
  50.         if (k < j )
  51.         {
  52.             bufor[j][i] = pow(xo - x[k+1], 3);
  53.         }
  54.         else
  55.             bufor[j][i] = 0;
  56.  
  57.     }
  58.     bufor[j][i] = y[j];
  59. }//uzupelnai bufor sx (zaleznie od ilosci elementow) plus sx'z pogodnych
  60. void uzupelnijWynik()
  61. {
  62.     for (int i = 0; i < wielkosc; i++)
  63.         sx(x[i], i);
  64.     sxprym(x[0], wielkosc);
  65.     sxprym(x[wielkosc-1], wielkosc+1);
  66.     //zastosowanei gaussa i przekopiowanei wyniku do drugiej tabeli
  67.     gauss(wielkosc+2);
  68. }
  69. double wx(double n)
  70. {
  71.     uzupelnijWynik();
  72.     //check na ekran
  73.     for (int j = 0; j < wielkosc+2; j++) {
  74.         for (int i = 0; i < wielkosc + 3; i++)
  75.             std::cout << bufor[j][i]<<"  ";
  76.         std::cout << std::endl;
  77.     }
  78.     std::cout << std::endl;
  79.     std::cout << std::endl;
  80.     for(int i =0;i<wielkosc+2;i++)
  81.         std::cout << wynik[i] << "  ";
  82.  
  83.     return 2;
  84. }
  85. int main()
  86. {
  87.     std::cout << wx(3);
  88.     std::cout << " " << std::endl;
  89.  
  90.  
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement