freesky

task_sem3_1.5

Oct 10th, 2013
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.84 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include "spline.h"
  4.  
  5. double t_2[2][2];
  6. double t_3[3][2];
  7. double t_4[4][2];
  8. double t_5[5][2];
  9. double t_6[6][2];
  10. double t_spline_x[6];
  11. double t_spline_y[6];
  12. double t_spline_c[18];
  13.  
  14. double p(double x, double t[][2], int n) {
  15.     double s = 0.0;
  16.  
  17.     for (int k = 0; k <= n; k++) {
  18.         double m = t[k][1];
  19.         for (int j = 0; j <= n; j++)
  20.             if (j != k)
  21.                 m *= ((x - t[j][0]) / (t[k][0] - t[j][0]));
  22.         s += m;
  23.     }
  24.  
  25.     return s;
  26. }
  27.  
  28. int main(int argc, char *argv[]) {
  29.     double x = 23.0;
  30.  
  31.     /*** populate tables ***/
  32.  
  33.     // t_2
  34.     t_2[0][0] = 20.0; t_2[0][1] = sin(t_2[0][0] * M_PI / 180.0);
  35.     t_2[1][0] = 30.0; t_2[1][1] = sin(t_2[1][0] * M_PI / 180.0);
  36.    
  37.     // t_3
  38.     for (int i = 0; i < 3; i++) {
  39.         t_3[i][0] = 10.0 + 10.0 * i;
  40.         t_3[i][1] = sin(t_3[i][0] * M_PI / 180.0);
  41.     }
  42.  
  43.     // t_4
  44.     for (int i = 0; i < 4; i++) {
  45.         t_4[i][0] = 10.0 + 10.0 * i;
  46.         t_4[i][1] = sin(t_4[i][0] * M_PI / 180.0);
  47.     }
  48.  
  49.     // t_5
  50.     for (int i = 0; i < 5; i++) {
  51.         t_5[i][0] = 10.0 + 10.0 * i;
  52.         t_5[i][1] = sin(t_5[i][0] * M_PI / 180.0);
  53.     }
  54.  
  55.     // t_6
  56.     for (int i = 0; i < 6; i++) {
  57.         t_6[i][0] = 10.0 + 10.0 * i;
  58.         t_6[i][1] = sin(t_6[i][0] * M_PI / 180.0);
  59.     }
  60.  
  61.     // t_spline_x
  62.     for (int i = 0; i < 6; i++) {
  63.         t_spline_x[i] = 10.0 + 10.0 * i;
  64.         t_spline_y[i] = sin(t_spline_x[i] * M_PI / 180);
  65.     }
  66.  
  67.     /*** print result ***/
  68.  
  69.     printf("x = %.2lf\tsin(x) = %.9e\nP_1(x) = %.9e\tP_2(x) = %.9e\tP_3(x) = %.9e\tP_4(x) = %.9e\tP_5(x) = %.9e\t\nspline(x) = %.9e\n", x, sin(x * M_PI / 180), p(x, t_2, 1), p(x, t_3, 2), p(x, t_4, 3), p(x, t_5, 4), p(x, t_6, 5), seval(6, x, t_spline_x, t_spline_y, spline(6, t_spline_x, t_spline_y, t_spline_c)));
  70.  
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment