Advertisement
Guest User

Untitled

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