10 January 2014 1:23:48.716 PM BERNSTEIN_POLYNOMIAL_PRB FORTRAN77 version Test the BERNSTEIN_POLYNOMIAL library. TEST01: BERNSTEIN_POLY_01 evaluates the Bernstein polynomials based on the interval [0,1]. BERNSTEIN_POLY_01_VALUES returns some exact values. N K X Exact BP01(N,K)(X) 0 0 0.2500 1.00000 1.00000 1 0 0.2500 0.750000 0.750000 1 1 0.2500 0.250000 0.250000 2 0 0.2500 0.562500 0.562500 2 1 0.2500 0.375000 0.375000 2 2 0.2500 0.625000E-01 0.625000E-01 3 0 0.2500 0.421875 0.421875 3 1 0.2500 0.421875 0.421875 3 2 0.2500 0.140625 0.140625 3 3 0.2500 0.156250E-01 0.156250E-01 4 0 0.2500 0.316406 0.316406 4 1 0.2500 0.421875 0.421875 4 2 0.2500 0.210938 0.210938 4 3 0.2500 0.468750E-01 0.468750E-01 4 4 0.2500 0.390625E-02 0.390625E-02 TEST02 BERNSTEIN_POLY_AB evaluates Bernstein polynomials over an arbitrary interval [A,B]. Here, we demonstrate that BPAB(N,K,A1,B1)(X1) = BPAB(N,K,A2,B2)(X2) provided only that (X1-A1)/(B1-A1) = (X2-A2)/(B2-A2). N K A B X BPAB(N,K,A,B)(X) 10 0 0.0000 1.0000 0.3000 0.282475E-01 10 1 0.0000 1.0000 0.3000 0.121061 10 2 0.0000 1.0000 0.3000 0.233474 10 3 0.0000 1.0000 0.3000 0.266828 10 4 0.0000 1.0000 0.3000 0.200121 10 5 0.0000 1.0000 0.3000 0.102919 10 6 0.0000 1.0000 0.3000 0.367569E-01 10 7 0.0000 1.0000 0.3000 0.900169E-02 10 8 0.0000 1.0000 0.3000 0.144670E-02 10 9 0.0000 1.0000 0.3000 0.137781E-03 10 10 0.0000 1.0000 0.3000 0.590490E-05 N K A B X BPAB(N,K,A,B)(X) 10 0 1.0000 2.0000 1.3000 0.282475E-01 10 1 1.0000 2.0000 1.3000 0.121061 10 2 1.0000 2.0000 1.3000 0.233474 10 3 1.0000 2.0000 1.3000 0.266828 10 4 1.0000 2.0000 1.3000 0.200121 10 5 1.0000 2.0000 1.3000 0.102919 10 6 1.0000 2.0000 1.3000 0.367569E-01 10 7 1.0000 2.0000 1.3000 0.900169E-02 10 8 1.0000 2.0000 1.3000 0.144670E-02 10 9 1.0000 2.0000 1.3000 0.137781E-03 10 10 1.0000 2.0000 1.3000 0.590490E-05 N K A B X BPAB(N,K,A,B)(X) 10 0 2.0000 4.0000 2.6000 0.282475E-01 10 1 2.0000 4.0000 2.6000 0.121061 10 2 2.0000 4.0000 2.6000 0.233474 10 3 2.0000 4.0000 2.6000 0.266828 10 4 2.0000 4.0000 2.6000 0.200121 10 5 2.0000 4.0000 2.6000 0.102919 10 6 2.0000 4.0000 2.6000 0.367569E-01 10 7 2.0000 4.0000 2.6000 0.900169E-02 10 8 2.0000 4.0000 2.6000 0.144670E-02 10 9 2.0000 4.0000 2.6000 0.137781E-03 10 10 2.0000 4.0000 2.6000 0.590490E-05 TEST03: BERNSTEIN_POLY_01 evaluates the Bernstein polynomials based on the interval [0,1]. Here we test the partition of unity property. N X Sum ( 0 <= K <= N ) BP01(N,K)(X) 0 0.2184 1.00000 1 0.9563 1.00000 2 0.8295 1.00000 3 0.5617 1.00000 4 0.4153 1.00000 5 0.0661 1.00000 6 0.2576 1.00000 7 0.1100 1.00000 8 0.0438 1.00000 9 0.6340 1.00000 10 0.0617 1.00000 TEST04 BERNSTEIN_POLY_AB_APPROX evaluates the Bernstein polynomial approximant to a function F(X). N Max Error 0 0.768177 1 0.420370 2 0.213285 3 0.145598 4 0.110847 5 0.895699E-01 6 0.751733E-01 7 0.647756E-01 8 0.569106E-01 9 0.507517E-01 10 0.457974E-01 11 0.417253E-01 12 0.383189E-01 13 0.354271E-01 14 0.329415E-01 15 0.307819E-01 16 0.288883E-01 17 0.272142E-01 18 0.257236E-01 19 0.243879E-01 20 0.231841E-01 TEST05 BERNSTEIN_MATRIX returns a matrix A which transforms a polynomial coefficient vector from the power basis to the Bernstein basis. BERNSTEIN_MATRIX_INVERSE computes the inverse B. N ||A|| ||B|| ||I-A*B|| 5 25.2784 3.19613 0.00000 6 68.2129 3.58748 0.00000 7 187.534 3.95127 0.00000 8 522.336 4.29298 0.00000 9 1468.93 4.61646 0.00000 10 4161.71 4.92456 0.00000 11 11860.4 5.21942 0.461511E-14 12 33962.7 5.50273 0.456662E-12 13 97640.4 5.77585 0.148328E-12 14 281650. 6.03988 0.190921E-11 15 814761. 6.29574 0.114347E-11 TEST06 BERNSTEIN_MATRIX returns a matrix which transforms a polynomial coefficient vector from the the Bernstein basis to the power basis. We can use this to get explicit values of the 4-th degree Bernstein polynomial coefficients as B(4,K)(X) = C4 * x^4 + C3 * x^3 + C2 * x^2 + C1 * x + C0 * 1 K C4 C3 C2 C1 C0 1 1.00000 0.00000 0.00000 0.00000 0.00000 2 -4.00000 4.00000 0.00000 0.00000 0.00000 3 6.00000 -12.0000 6.00000 0.00000 0.00000 4 -4.00000 12.0000 -12.0000 4.00000 0.00000 5 1.00000 -4.00000 6.00000 -4.00000 1.00000 BERNSTEIN_POLYNOMIAL_PRB Normal end of execution. 10 January 2014 1:23:48.726 PM