diff --git a/2025.04.18/04Ex/solve.c b/2025.04.18/04Ex/solve.c index bfcfd88..c9f282b 100644 --- a/2025.04.18/04Ex/solve.c +++ b/2025.04.18/04Ex/solve.c @@ -25,21 +25,24 @@ double t4_solve ( return DBL_MAX; Y[i+1] = (y_j - y_i) / (x_j - x_i); -// printf ("I = %d, f(x%d, ... , x%d) = %lf\n", i, i-k+1, i+2, Y[i+1]); + printf ("I = %d, f(x%d, ... , x%d) = %lf\n", i, i+1, i+2, Y[i+1]); y_j = y_i; x_j = x_i; } + for (int i = 1; i < n; ++i) + printf ("f(x%d, x%d) = %lf\n", i-1, i, Y[i]); + for (int k = 0; k < n-1; ++k) { double f_j = D[n-1]; -// printf ("------- K = %d -------\n", k); + printf ("------- K = %d -------\n", k); - for (int l = n*2-2; l >= k; --l) + for (int l = n*2-3; l >= k; --l) { - const int i = l>1; + const int i = l >> 1; const double x_i = X[i-k]; double f_i; x_j = X[i+1]; @@ -51,10 +54,12 @@ double t4_solve ( { f_i = D[i]; Y[i+1] = (f_j - f_i) / (x_j - x_i); + printf ("f(x%d, x%d, ..., x%d) = %lf\n", i-k, i-k, i+1, Y[i+1]); } else { f_i = Y[i]; D[i+1] = (f_j - f_i) / (x_j - x_i); + printf ("f(x%d, ..., x%d, x%d) = %lf\n", i-k, i+1, i+1, D[i+1]); } f_j = f_i; @@ -66,6 +71,14 @@ double t4_solve ( start_value = 1; value = 0; + printf("------- Y -------\n"); + for (int i = 0; i < n; ++i) + printf("Y[%d] = %lf\n", i, Y[i]); + + printf("------- D -------\n"); + for (int i = 0; i < n; ++i) + printf("D[%d] = %lf\n", i, D[i]); + for (int i = 0; i < n; ++i) { const double x_i = X[i];