Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- double t_4[4][2];
- double t_6[6][2];
- double t_11[11][2];
- double t_16[16][2];
- double t_21[21][2];
- 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[]) {
- extern double t_4[4][2];
- extern double t_6[6][2];
- extern double t_11[11][2];
- extern double t_16[16][2];
- extern double t_21[21][2];
- // populate our tables
- for (int i = 0; i < 4; i++) {
- t_4[i][0] = i / 3.0;
- t_4[i][1] = sqrt(t_4[i][0]);
- }
- for (int i = 0; i < 6; i++) {
- t_6[i][0] = i / 5.0;
- t_6[i][1] = sqrt(t_6[i][0]);
- }
- for (int i = 0; i < 11; i++) {
- t_11[i][0] = i / 10.0;
- t_11[i][1] = sqrt(t_11[i][0]);
- }
- for (int i = 0; i < 16; i++) {
- t_16[i][0] = i / 15.0;
- t_16[i][1] = sqrt(t_16[i][0]);
- }
- for (int i = 0; i < 21; i++) {
- t_21[i][0] = i / 20.0;
- t_21[i][1] = sqrt(t_21[i][0]);
- }
- FILE *f;
- f = fopen("p_3.dat", "w");
- for (double x = 0.0; x <= 1.0; x += 0.01) {
- printf("x = %g; P_3(x) = %e; sqrt(x) = %e; r(x) = %e\n", x, p(x, t_4, 3), sqrt(x), sqrt(x) - p(x, t_4, 3));
- fprintf(f, "%e\t%e\n", x, sqrt(x) - p(x, t_4, 3));
- }
- fclose(f);
- getchar();
- f = fopen("p_5.dat", "w");
- for (double x = 0.0; x <= 1.0; x += 0.01) {
- printf("x = %g; P_5(x) = %e; sqrt(x) = %e; r(x) = %e\n", x, p(x, t_6, 5), sqrt(x), sqrt(x) - p(x, t_6, 5));
- fprintf(f, "%e\t%e\n", x, sqrt(x) - p(x, t_6, 5));
- }
- fclose(f);
- getchar();
- f = fopen("p_10.dat", "w");
- for (double x = 0.0; x <= 1.0; x += 0.01) {
- printf("x = %g; P_10(x) = %e; sqrt(x) = %e; r(x) = %e\n", x, p(x, t_11, 10), sqrt(x), sqrt(x) - p(x, t_11, 10));
- fprintf(f, "%e\t%e\n", x, sqrt(x) - p(x, t_11, 10));
- }
- fclose(f);
- getchar();
- f = fopen("p_15.dat", "w");
- for (double x = 0.0; x <= 1.0; x += 0.01) {
- printf("x = %g; P_15(x) = %e; sqrt(x) = %e; r(x) = %e\n", x, p(x, t_16, 15), sqrt(x), sqrt(x) - p(x, t_16, 15));
- fprintf(f, "%e\t%e\n", x, sqrt(x) - p(x, t_16, 15));
- }
- fclose(f);
- getchar();
- f = fopen("p_20.dat", "w");
- for (double x = 0.0; x <= 1.0; x += 0.01) {
- printf("x = %g; P_20(x) = %e; sqrt(x) = %e; r(x) = %e\n", x, p(x, t_21, 20), sqrt(x), sqrt(x) - p(x, t_21, 20));
- fprintf(f, "%e\t%e\n", x, sqrt(x) - p(x, t_21, 20));
- }
- fclose(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment