Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <cmath>
- using namespace std;
- void Interpol(int x, int iloscpkt, int *xi, int *yi)
- {
- /*int suma = 0;
- for (int i = 1; i <iloscpkt; i++)
- suma += i;
- cout << suma << endl;
- int *tab = new int[suma];
- for (int j = 0; j < iloscpkt - 1; j++)
- {
- if (j == 0)
- {
- for (int i = 0; i < iloscpkt - 1; i++)
- {
- tab[i] = (yi[i + 1] - yi[i]) / (xi[i + 1] - xi[i]);
- }
- }
- else
- {
- for(int i=j;i<=iloscpkt)
- }
- }*/
- int rzad = iloscpkt - 1;
- int pr[4];
- int dr[3];
- int tr[2];
- int cr;
- for (int i = 0; i < iloscpkt - 1; i++)
- {
- pr[i] = (yi[i + 1] - yi[i]) / (xi[i + 1] - xi[i]);
- }
- for (int i = 0; i < iloscpkt - 2; i++)
- {
- dr[i] = (pr[i + 1] - pr[i]) / (xi[i + 2] - xi[i]);
- }
- for (int i = 0; i < iloscpkt - 3; i++)
- {
- tr[i] = (dr[i + 1] - dr[i]) / (xi[i + 3] - xi[i]);
- }
- cr = (tr[1] - tr[0]) / (xi[4] - xi[0]);
- 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]));
- cout <<"Interpolacja wynosi: "<< W << endl;
- }
- int main()
- {
- int x = 1;
- int iloscpkt = 5;
- int *xi = new int[iloscpkt];
- int *yi = new int[iloscpkt];
- xi[0] = -2;
- xi[1] = -1;
- xi[2] = 0;
- xi[3] = 2;
- xi[4] = 4;
- yi[0] = -1;
- yi[1] = 0;
- yi[2] = 5;
- yi[3] = 99;
- yi[4] = -55;
- Interpol(x, iloscpkt, xi, yi);
- system("pause");
- }
Add Comment
Please, Sign In to add comment