szmelu

interN

Mar 13th, 2018
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cmath>
  4. using namespace std;
  5. void Interpol(int x, int iloscpkt, int *xi, int *yi)
  6. {
  7. /*int suma = 0;
  8. for (int i = 1; i <iloscpkt; i++)
  9. suma += i;
  10. cout << suma << endl;
  11. int *tab = new int[suma];
  12. for (int j = 0; j < iloscpkt - 1; j++)
  13. {
  14. if (j == 0)
  15. {
  16. for (int i = 0; i < iloscpkt - 1; i++)
  17. {
  18. tab[i] = (yi[i + 1] - yi[i]) / (xi[i + 1] - xi[i]);
  19. }
  20. }
  21. else
  22. {
  23. for(int i=j;i<=iloscpkt)
  24. }
  25. }*/
  26. int rzad = iloscpkt - 1;
  27. int pr[4];
  28. int dr[3];
  29. int tr[2];
  30. int cr;
  31. for (int i = 0; i < iloscpkt - 1; i++)
  32. {
  33. pr[i] = (yi[i + 1] - yi[i]) / (xi[i + 1] - xi[i]);
  34. }
  35. for (int i = 0; i < iloscpkt - 2; i++)
  36. {
  37. dr[i] = (pr[i + 1] - pr[i]) / (xi[i + 2] - xi[i]);
  38. }
  39. for (int i = 0; i < iloscpkt - 3; i++)
  40. {
  41. tr[i] = (dr[i + 1] - dr[i]) / (xi[i + 3] - xi[i]);
  42. }
  43. cr = (tr[1] - tr[0]) / (xi[4] - xi[0]);
  44. int W = yi[0] + (pr[0] * (x - xi[0])) + (dr[0] * (x - xi[0])*(x - xi[1])) + (tr[0] * (x - xi[0])*(x - xi[1])*(x - xi[2])) + (cr*(x - xi[0])*(x - xi[1])*(x - xi[2])*(x - xi[3]));
  45. cout <<"Interpolacja wynosi: "<< W << endl;
  46. }
  47. int main()
  48. {
  49. int x = 1;
  50. int iloscpkt = 5;
  51. int *xi = new int[iloscpkt];
  52. int *yi = new int[iloscpkt];
  53. xi[0] = -2;
  54. xi[1] = -1;
  55. xi[2] = 0;
  56. xi[3] = 2;
  57. xi[4] = 4;
  58. yi[0] = -1;
  59. yi[1] = 0;
  60. yi[2] = 5;
  61. yi[3] = 99;
  62. yi[4] = -55;
  63. Interpol(x, iloscpkt, xi, yi);
  64.  
  65. system("pause");
  66. }
Add Comment
Please, Sign In to add comment