Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #include "spline.h"
- double t_2[2][2];
- double t_3[3][2];
- double t_4[4][2];
- double t_5[5][2];
- double t_6[6][2];
- double t_spline_x[6];
- double t_spline_y[6];
- double t_spline_c[18];
- double p(double x, double t[][2], int n) {
- double s = 0.0;
- for (int k = 0; k <= n; k++) {
- double m = t[k][1];
- for (int j = 0; j <= n; j++)
- if (j != k)
- m *= ((x - t[j][0]) / (t[k][0] - t[j][0]));
- s += m;
- }
- return s;
- }
- int main(int argc, char *argv[]) {
- double x = 23.0;
- /*** populate tables ***/
- // t_2
- t_2[0][0] = 20.0; t_2[0][1] = sin(t_2[0][0] * M_PI / 180.0);
- t_2[1][0] = 30.0; t_2[1][1] = sin(t_2[1][0] * M_PI / 180.0);
- // t_3
- for (int i = 0; i < 3; i++) {
- t_3[i][0] = 10.0 + 10.0 * i;
- t_3[i][1] = sin(t_3[i][0] * M_PI / 180.0);
- }
- // t_4
- for (int i = 0; i < 4; i++) {
- t_4[i][0] = 10.0 + 10.0 * i;
- t_4[i][1] = sin(t_4[i][0] * M_PI / 180.0);
- }
- // t_5
- for (int i = 0; i < 5; i++) {
- t_5[i][0] = 10.0 + 10.0 * i;
- t_5[i][1] = sin(t_5[i][0] * M_PI / 180.0);
- }
- // t_6
- for (int i = 0; i < 6; i++) {
- t_6[i][0] = 10.0 + 10.0 * i;
- t_6[i][1] = sin(t_6[i][0] * M_PI / 180.0);
- }
- // t_spline_x
- for (int i = 0; i < 6; i++) {
- t_spline_x[i] = 10.0 + 10.0 * i;
- t_spline_y[i] = sin(t_spline_x[i] * M_PI / 180);
- }
- /*** print result ***/
- 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)));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment