07-Jan-2022 21:41:35 hermite_cubic_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 Test hermite_cubic(). HERMITE_CUBIC_TEST01: HERMITE_CUBIC_VALUE evaluates a Hermite cubic polynomial. Try out four sets of data: (F1,D1,F2,D2) = (1,0,0,0), (0,1,0,0), (0,0,1,0), (0,0,0,1) on [0,1] and [1.0,-2.0] (interval reversed) J X F D -3 -0.300000 0.676000 2.340000 -2 -0.200000 0.864000 1.440000 -1 -0.100000 0.968000 0.660000 *Data 0.000000 1.000000 0.000000 0 0.000000 1.000000 0.000000 1 0.100000 0.972000 -0.540000 2 0.200000 0.896000 -0.960000 3 0.300000 0.784000 -1.260000 4 0.400000 0.648000 -1.440000 5 0.500000 0.500000 -1.500000 6 0.600000 0.352000 -1.440000 7 0.700000 0.216000 -1.260000 8 0.800000 0.104000 -0.960000 9 0.900000 0.028000 -0.540000 10 1.000000 0.000000 0.000000 *Data 1.000000 0.000000 0.000000 11 1.100000 0.032000 0.660000 12 1.200000 0.136000 1.440000 J X F D -3 -0.300000 -0.507000 2.470000 -2 -0.200000 -0.288000 1.920000 -1 -0.100000 -0.121000 1.430000 *Data 0.000000 0.000000 1.000000 0 0.000000 0.000000 1.000000 1 0.100000 0.081000 0.630000 2 0.200000 0.128000 0.320000 3 0.300000 0.147000 0.070000 4 0.400000 0.144000 -0.120000 5 0.500000 0.125000 -0.250000 6 0.600000 0.096000 -0.320000 7 0.700000 0.063000 -0.330000 8 0.800000 0.032000 -0.280000 9 0.900000 0.009000 -0.170000 10 1.000000 0.000000 0.000000 *Data 1.000000 0.000000 0.000000 11 1.100000 0.011000 0.230000 12 1.200000 0.048000 0.520000 J X F D -3 -0.300000 0.324000 -2.340000 -2 -0.200000 0.136000 -1.440000 -1 -0.100000 0.032000 -0.660000 *Data 0.000000 0.000000 0.000000 0 0.000000 0.000000 0.000000 1 0.100000 0.028000 0.540000 2 0.200000 0.104000 0.960000 3 0.300000 0.216000 1.260000 4 0.400000 0.352000 1.440000 5 0.500000 0.500000 1.500000 6 0.600000 0.648000 1.440000 7 0.700000 0.784000 1.260000 8 0.800000 0.896000 0.960000 9 0.900000 0.972000 0.540000 10 1.000000 1.000000 0.000000 *Data 1.000000 1.000000 0.000000 11 1.100000 0.968000 -0.660000 12 1.200000 0.864000 -1.440000 J X F D -3 -0.300000 -0.117000 0.870000 -2 -0.200000 -0.048000 0.520000 -1 -0.100000 -0.011000 0.230000 *Data 0.000000 0.000000 0.000000 0 0.000000 0.000000 0.000000 1 0.100000 -0.009000 -0.170000 2 0.200000 -0.032000 -0.280000 3 0.300000 -0.063000 -0.330000 4 0.400000 -0.096000 -0.320000 5 0.500000 -0.125000 -0.250000 6 0.600000 -0.144000 -0.120000 7 0.700000 -0.147000 0.070000 8 0.800000 -0.128000 0.320000 9 0.900000 -0.081000 0.630000 10 1.000000 0.000000 1.000000 *Data 1.000000 0.000000 1.000000 11 1.100000 0.121000 1.430000 12 1.200000 0.288000 1.920000 J X F D -3 1.900000 0.676000 -0.780000 -2 1.600000 0.864000 -0.480000 -1 1.300000 0.968000 -0.220000 *Data 1.000000 1.000000 0.000000 0 1.000000 1.000000 0.000000 1 0.700000 0.972000 0.180000 2 0.400000 0.896000 0.320000 3 0.100000 0.784000 0.420000 4 -0.200000 0.648000 0.480000 5 -0.500000 0.500000 0.500000 6 -0.800000 0.352000 0.480000 7 -1.100000 0.216000 0.420000 8 -1.400000 0.104000 0.320000 9 -1.700000 0.028000 0.180000 10 -2.000000 0.000000 0.000000 *Data -2.000000 0.000000 0.000000 11 -2.300000 0.032000 -0.220000 12 -2.600000 0.136000 -0.480000 J X F D -3 1.900000 1.521000 2.470000 -2 1.600000 0.864000 1.920000 -1 1.300000 0.363000 1.430000 *Data 1.000000 0.000000 1.000000 0 1.000000 0.000000 1.000000 1 0.700000 -0.243000 0.630000 2 0.400000 -0.384000 0.320000 3 0.100000 -0.441000 0.070000 4 -0.200000 -0.432000 -0.120000 5 -0.500000 -0.375000 -0.250000 6 -0.800000 -0.288000 -0.320000 7 -1.100000 -0.189000 -0.330000 8 -1.400000 -0.096000 -0.280000 9 -1.700000 -0.027000 -0.170000 10 -2.000000 0.000000 0.000000 *Data -2.000000 0.000000 0.000000 11 -2.300000 -0.033000 0.230000 12 -2.600000 -0.144000 0.520000 J X F D -3 1.900000 0.324000 0.780000 -2 1.600000 0.136000 0.480000 -1 1.300000 0.032000 0.220000 *Data 1.000000 0.000000 0.000000 0 1.000000 0.000000 0.000000 1 0.700000 0.028000 -0.180000 2 0.400000 0.104000 -0.320000 3 0.100000 0.216000 -0.420000 4 -0.200000 0.352000 -0.480000 5 -0.500000 0.500000 -0.500000 6 -0.800000 0.648000 -0.480000 7 -1.100000 0.784000 -0.420000 8 -1.400000 0.896000 -0.320000 9 -1.700000 0.972000 -0.180000 10 -2.000000 1.000000 0.000000 *Data -2.000000 1.000000 0.000000 11 -2.300000 0.968000 0.220000 12 -2.600000 0.864000 0.480000 J X F D -3 1.900000 0.351000 0.870000 -2 1.600000 0.144000 0.520000 -1 1.300000 0.033000 0.230000 *Data 1.000000 0.000000 0.000000 0 1.000000 0.000000 0.000000 1 0.700000 0.027000 -0.170000 2 0.400000 0.096000 -0.280000 3 0.100000 0.189000 -0.330000 4 -0.200000 0.288000 -0.320000 5 -0.500000 0.375000 -0.250000 6 -0.800000 0.432000 -0.120000 7 -1.100000 0.441000 0.070000 8 -1.400000 0.384000 0.320000 9 -1.700000 0.243000 0.630000 10 -2.000000 0.000000 1.000000 *Data -2.000000 0.000000 1.000000 11 -2.300000 -0.363000 1.430000 12 -2.600000 -0.864000 1.920000 HERMITE_CUBIC_TEST02: HERMITE_CUBIC_VALUE evaluates a Hermite cubic polynomial. Try out data from a cubic function: on [0,10] and [-1.0,1.0] and [0.5,0.75] J X F D S T Exact -3.000000 -120.000000 79.000000 -32.000000 6.000000 -3 -3.000000 -120.000000 79.000000 -32.000000 6.000000 Exact -2.000000 -56.000000 50.000000 -26.000000 6.000000 -2 -2.000000 -56.000000 50.000000 -26.000000 6.000000 Exact -1.000000 -18.000000 27.000000 -20.000000 6.000000 -1 -1.000000 -18.000000 27.000000 -20.000000 6.000000 *Data 0.000000 0.000000 10.000000 Exact 0.000000 0.000000 10.000000 -14.000000 6.000000 0 0.000000 0.000000 10.000000 -14.000000 6.000000 Exact 1.000000 4.000000 -1.000000 -8.000000 6.000000 1 1.000000 4.000000 -1.000000 -8.000000 6.000000 Exact 2.000000 0.000000 -6.000000 -2.000000 6.000000 2 2.000000 0.000000 -6.000000 -2.000000 6.000000 Exact 3.000000 -6.000000 -5.000000 4.000000 6.000000 3 3.000000 -6.000000 -5.000000 4.000000 6.000000 Exact 4.000000 -8.000000 2.000000 10.000000 6.000000 4 4.000000 -8.000000 2.000000 10.000000 6.000000 Exact 5.000000 0.000000 15.000000 16.000000 6.000000 5 5.000000 0.000000 15.000000 16.000000 6.000000 Exact 6.000000 24.000000 34.000000 22.000000 6.000000 6 6.000000 24.000000 34.000000 22.000000 6.000000 Exact 7.000000 70.000000 59.000000 28.000000 6.000000 7 7.000000 70.000000 59.000000 28.000000 6.000000 Exact 8.000000 144.000000 90.000000 34.000000 6.000000 8 8.000000 144.000000 90.000000 34.000000 6.000000 Exact 9.000000 252.000000 127.000000 40.000000 6.000000 9 9.000000 252.000000 127.000000 40.000000 6.000000 Exact 10.000000 400.000000 170.000000 46.000000 6.000000 10 10.000000 400.000000 170.000000 46.000000 6.000000 *Data 10.000000 400.000000 170.000000 Exact 11.000000 594.000000 219.000000 52.000000 6.000000 11 11.000000 594.000000 219.000000 52.000000 6.000000 Exact 12.000000 840.000000 274.000000 58.000000 6.000000 12 12.000000 840.000000 274.000000 58.000000 6.000000 J X F D S T Exact -1.600000 -38.016000 40.080000 -23.600000 6.000000 -3 -1.600000 -38.016000 40.080000 -23.600000 6.000000 Exact -1.400000 -30.464000 35.480000 -22.400000 6.000000 -2 -1.400000 -30.464000 35.480000 -22.400000 6.000000 Exact -1.200000 -23.808000 31.120000 -21.200000 6.000000 -1 -1.200000 -23.808000 31.120000 -21.200000 6.000000 *Data -1.000000 -18.000000 27.000000 Exact -1.000000 -18.000000 27.000000 -20.000000 6.000000 0 -1.000000 -18.000000 27.000000 -20.000000 6.000000 Exact -0.800000 -12.992000 23.120000 -18.800000 6.000000 1 -0.800000 -12.992000 23.120000 -18.800000 6.000000 Exact -0.600000 -8.736000 19.480000 -17.600000 6.000000 2 -0.600000 -8.736000 19.480000 -17.600000 6.000000 Exact -0.400000 -5.184000 16.080000 -16.400000 6.000000 3 -0.400000 -5.184000 16.080000 -16.400000 6.000000 Exact -0.200000 -2.288000 12.920000 -15.200000 6.000000 4 -0.200000 -2.288000 12.920000 -15.200000 6.000000 Exact 0.000000 0.000000 10.000000 -14.000000 6.000000 5 0.000000 0.000000 10.000000 -14.000000 6.000000 Exact 0.200000 1.728000 7.320000 -12.800000 6.000000 6 0.200000 1.728000 7.320000 -12.800000 6.000000 Exact 0.400000 2.944000 4.880000 -11.600000 6.000000 7 0.400000 2.944000 4.880000 -11.600000 6.000000 Exact 0.600000 3.696000 2.680000 -10.400000 6.000000 8 0.600000 3.696000 2.680000 -10.400000 6.000000 Exact 0.800000 4.032000 0.720000 -9.200000 6.000000 9 0.800000 4.032000 0.720000 -9.200000 6.000000 Exact 1.000000 4.000000 -1.000000 -8.000000 6.000000 10 1.000000 4.000000 -1.000000 -8.000000 6.000000 *Data 1.000000 4.000000 -1.000000 Exact 1.200000 3.648000 -2.480000 -6.800000 6.000000 11 1.200000 3.648000 -2.480000 -6.800000 6.000000 Exact 1.400000 3.024000 -3.720000 -5.600000 6.000000 12 1.400000 3.024000 -3.720000 -5.600000 6.000000 J X F D S T Exact 0.425000 3.062391 4.591875 -11.450000 6.000000 -3 0.425000 3.062391 4.591875 -11.450000 6.000000 Exact 0.450000 3.173625 4.307500 -11.300000 6.000000 -2 0.450000 3.173625 4.307500 -11.300000 6.000000 Exact 0.475000 3.277797 4.026875 -11.150000 6.000000 -1 0.475000 3.277797 4.026875 -11.150000 6.000000 *Data 0.500000 3.375000 3.750000 Exact 0.500000 3.375000 3.750000 -11.000000 6.000000 0 0.500000 3.375000 3.750000 -11.000000 6.000000 Exact 0.525000 3.465328 3.476875 -10.850000 6.000000 1 0.525000 3.465328 3.476875 -10.850000 6.000000 Exact 0.550000 3.548875 3.207500 -10.700000 6.000000 2 0.550000 3.548875 3.207500 -10.700000 6.000000 Exact 0.575000 3.625734 2.941875 -10.550000 6.000000 3 0.575000 3.625734 2.941875 -10.550000 6.000000 Exact 0.600000 3.696000 2.680000 -10.400000 6.000000 4 0.600000 3.696000 2.680000 -10.400000 6.000000 Exact 0.625000 3.759766 2.421875 -10.250000 6.000000 5 0.625000 3.759766 2.421875 -10.250000 6.000000 Exact 0.650000 3.817125 2.167500 -10.100000 6.000000 6 0.650000 3.817125 2.167500 -10.100000 6.000000 Exact 0.675000 3.868172 1.916875 -9.950000 6.000000 7 0.675000 3.868172 1.916875 -9.950000 6.000000 Exact 0.700000 3.913000 1.670000 -9.800000 6.000000 8 0.700000 3.913000 1.670000 -9.800000 6.000000 Exact 0.725000 3.951703 1.426875 -9.650000 6.000000 9 0.725000 3.951703 1.426875 -9.650000 6.000000 Exact 0.750000 3.984375 1.187500 -9.500000 6.000000 10 0.750000 3.984375 1.187500 -9.500000 6.000000 *Data 0.750000 3.984375 1.187500 Exact 0.775000 4.011109 0.951875 -9.350000 6.000000 11 0.775000 4.011109 0.951875 -9.350000 6.000000 Exact 0.800000 4.032000 0.720000 -9.200000 6.000000 12 0.800000 4.032000 0.720000 -9.200000 6.000000 HERMITE_CUBIC_TEST03: HERMITE_CUBIC_INTEGRATE integrates a Hermite cubic polynomial from A to B. Exact Computed J A B Integral Integral -3 -1.000000 -3.000000 120.667 120.667 -2 -1.000000 -2.000000 35.0833 35.0833 -1 -1.000000 -1.000000 0 0 0 -1.000000 0.000000 -7.58333 -7.58333 1 -1.000000 1.000000 -4.66667 -4.66667 2 -1.000000 2.000000 -2.25 -2.25 3 -1.000000 3.000000 -5.33333 -5.33333 4 -1.000000 4.000000 -12.9167 -12.9167 5 -1.000000 5.000000 -18 -18 6 -1.000000 6.000000 -7.58333 -7.58333 7 -1.000000 7.000000 37.3333 37.3333 8 -1.000000 8.000000 141.75 141.75 9 -1.000000 9.000000 336.667 336.667 10 -1.000000 10.000000 659.083 659.083 11 -1.000000 11.000000 1152 1152 12 -1.000000 12.000000 1864.42 1864.42 Exact Computed J A B Integral Integral -3 -2.000000 -1.600000 -18.6709 -18.6709 -2 -2.000000 -1.400000 -25.5036 -25.5036 -1 -2.000000 -1.200000 -30.9163 -30.9163 0 -2.000000 -1.000000 -35.0833 -35.0833 1 -2.000000 -0.800000 -38.1696 -38.1696 2 -2.000000 -0.600000 -40.3303 -40.3303 3 -2.000000 -0.400000 -41.7109 -41.7109 4 -2.000000 -0.200000 -42.4476 -42.4476 5 -2.000000 0.000000 -42.6667 -42.6667 6 -2.000000 0.200000 -42.4849 -42.4849 7 -2.000000 0.400000 -42.0096 -42.0096 8 -2.000000 0.600000 -41.3383 -41.3383 9 -2.000000 0.800000 -40.5589 -40.5589 10 -2.000000 1.000000 -39.75 -39.75 11 -2.000000 1.200000 -38.9803 -38.9803 12 -2.000000 1.400000 -38.3089 -38.3089 Exact Computed J A B Integral Integral -3 -0.500000 0.425000 -0.82513 -0.82513 -2 -0.500000 0.450000 -0.747165 -0.747165 -1 -0.500000 0.475000 -0.666508 -0.666508 0 -0.500000 0.500000 -0.583333 -0.583333 1 -0.500000 0.525000 -0.497815 -0.497815 2 -0.500000 0.550000 -0.410123 -0.410123 3 -0.500000 0.575000 -0.320427 -0.320427 4 -0.500000 0.600000 -0.228892 -0.228892 5 -0.500000 0.625000 -0.135681 -0.135681 6 -0.500000 0.650000 -0.0409568 -0.0409568 7 -0.500000 0.675000 0.0551225 0.0551225 8 -0.500000 0.700000 0.1524 0.1524 9 -0.500000 0.725000 0.250721 0.250721 10 -0.500000 0.750000 0.349935 0.349935 11 -0.500000 0.775000 0.449891 0.449891 12 -0.500000 0.800000 0.550442 0.550442 HERMITE_CUBIC_TEST04: HERMITE_CUBIC_SPLINE_VALUE evaluates a Hermite cubic spline. I X F computed F exact Error 1 0.000000 0.000000 0.000000 0.00e+00 2 0.200000 0.198223 0.198669 4.46e-04 3 0.400000 0.388329 0.389418 1.09e-03 4 0.600000 0.563470 0.564642 1.17e-03 5 0.800000 0.716799 0.717356 5.57e-04 6 1.000000 0.841471 0.841471 0.00e+00 7 1.200000 0.931000 0.932039 1.04e-03 8 1.400000 0.983100 0.985450 2.35e-03 9 1.600000 0.997217 0.999574 2.36e-03 10 1.800000 0.972800 0.973848 1.05e-03 11 2.000000 0.909297 0.909297 0.00e+00 12 2.200000 0.807820 0.808496 6.76e-04 13 2.400000 0.674013 0.675463 1.45e-03 14 2.600000 0.514127 0.515501 1.37e-03 15 2.800000 0.334413 0.334988 5.75e-04 16 3.000000 0.141120 0.141120 0.00e+00 17 3.200000 -0.058066 -0.058374 3.08e-04 18 3.400000 -0.254758 -0.255541 7.83e-04 19 3.600000 -0.441648 -0.442520 8.72e-04 20 3.800000 -0.611432 -0.611858 4.26e-04 21 4.000000 -0.756802 -0.756802 0.00e+00 22 4.200000 -0.870567 -0.871576 1.01e-03 23 4.400000 -0.949306 -0.951602 2.30e-03 24 4.600000 -0.991375 -0.993691 2.32e-03 25 4.800000 -0.995129 -0.996165 1.04e-03 26 5.000000 -0.958924 -0.958924 0.00e+00 27 5.200000 -0.882672 -0.883455 7.83e-04 28 5.400000 -0.771066 -0.772764 1.70e-03 29 5.600000 -0.629636 -0.631267 1.63e-03 30 5.800000 -0.463909 -0.464602 6.93e-04 31 6.000000 -0.279415 -0.279415 0.00e+00 32 6.200000 -0.083253 -0.083089 1.63e-04 33 6.400000 0.116088 0.116549 4.61e-04 34 6.600000 0.310987 0.311541 5.54e-04 35 6.800000 0.493827 0.494113 2.87e-04 36 7.000000 0.656987 0.656987 0.00e+00 37 7.200000 0.792709 0.793668 9.59e-04 38 7.400000 0.896511 0.898708 2.20e-03 39 7.600000 0.965690 0.967920 2.23e-03 40 7.800000 0.997540 0.998543 1.00e-03 41 8.000000 0.989358 0.989358 0.00e+00 42 8.200000 0.939857 0.940731 8.73e-04 43 8.400000 0.852686 0.854599 1.91e-03 44 8.600000 0.732542 0.734397 1.86e-03 45 8.800000 0.584120 0.584917 7.97e-04 46 9.000000 0.412118 0.412118 0.00e+00 47 9.200000 0.222906 0.222890 1.57e-05 48 9.400000 0.024905 0.024775 1.30e-04 49 9.600000 -0.174102 -0.174327 2.25e-04 50 9.800000 -0.366338 -0.366479 1.42e-04 51 10.000000 -0.544021 -0.544021 2.22e-16 I X D computed D exact Error 1 0.000000 1.000000 1.000000 0.00e+00 2 0.200000 0.976527 0.980067 3.54e-03 3 0.400000 0.918821 0.921061 2.24e-03 4 0.600000 0.826882 0.825336 1.55e-03 5 0.800000 0.700709 0.696707 4.00e-03 6 1.000000 0.540302 0.540302 0.00e+00 7 1.200000 0.354531 0.362358 7.83e-03 8 1.400000 0.166001 0.169967 3.97e-03 9 1.600000 -0.025289 -0.029200 3.91e-03 10 1.800000 -0.219338 -0.227202 7.86e-03 11 2.000000 -0.416147 -0.416147 0.00e+00 12 2.200000 -0.593419 -0.588501 4.92e-03 13 2.400000 -0.739440 -0.737394 2.05e-03 14 2.600000 -0.854209 -0.856889 2.68e-03 15 2.800000 -0.937727 -0.942222 4.50e-03 16 3.000000 -0.989992 -0.989992 0.00e+00 17 3.200000 -0.995783 -0.998295 2.51e-03 18 3.400000 -0.965043 -0.966798 1.75e-03 19 3.600000 -0.897774 -0.896758 1.02e-03 20 3.800000 -0.793974 -0.790968 3.01e-03 21 4.000000 -0.653644 -0.653644 0.00e+00 22 4.200000 -0.482628 -0.490261 7.63e-03 23 4.400000 -0.303390 -0.307333 3.94e-03 24 4.600000 -0.115929 -0.112153 3.78e-03 25 4.800000 0.079755 0.087499 7.74e-03 26 5.000000 0.283662 0.283662 0.00e+00 27 5.200000 0.474253 0.468517 5.74e-03 28 5.400000 0.637199 0.634693 2.51e-03 29 5.600000 0.772500 0.775566 3.07e-03 30 5.800000 0.880158 0.885520 5.36e-03 31 6.000000 0.960170 0.960170 0.00e+00 32 6.200000 0.995108 0.996542 1.43e-03 33 6.400000 0.991950 0.993185 1.24e-03 34 6.600000 0.950696 0.950233 4.64e-04 35 6.800000 0.871347 0.869397 1.95e-03 36 7.000000 0.753902 0.753902 0.00e+00 37 7.200000 0.601066 0.608351 7.29e-03 38 7.400000 0.434707 0.438547 3.84e-03 39 7.600000 0.254826 0.251260 3.57e-03 40 7.800000 0.061424 0.053955 7.47e-03 41 8.000000 -0.145500 -0.145500 0.00e+00 42 8.200000 -0.345594 -0.339155 6.44e-03 43 8.400000 -0.522204 -0.519289 2.91e-03 44 8.600000 -0.675330 -0.678720 3.39e-03 45 8.800000 -0.804972 -0.811093 6.12e-03 46 9.000000 -0.911130 -0.911130 0.00e+00 47 9.200000 -0.974516 -0.974844 3.28e-04 48 9.400000 -0.999002 -0.999693 6.91e-04 49 9.600000 -0.984591 -0.984688 9.71e-05 50 9.800000 -0.931280 -0.930426 8.54e-04 51 10.000000 -0.839072 -0.839072 7.77e-16 HERMITE_CUBIC_TEST05: HERMITE_CUBIC_TO_POWER_CUBIC converts the Hermite data to the coefficients of the power form of the polynomial; POWER_CUBIC_TO_HERMITE_CUBIC converts the power form to Hermite form; Hermite data: X1, F1, D1: -1.000000 -18.000000 27.000000 X2, F2, D2: 1.000000 4.000000 -1.000000 Power form: p(x) = 0.000000 + 10.000000 * x + -7.000000 * x^2 + 1.000000 * x^3 X F (Hermite) F (power) -1.600000 -38.016000 -38.016000 -1.400000 -30.464000 -30.464000 -1.200000 -23.808000 -23.808000 -1.000000 -18.000000 -18.000000 -0.800000 -12.992000 -12.992000 -0.600000 -8.736000 -8.736000 -0.400000 -5.184000 -5.184000 -0.200000 -2.288000 -2.288000 0.000000 0.000000 0.000000 0.200000 1.728000 1.728000 0.400000 2.944000 2.944000 0.600000 3.696000 3.696000 0.800000 4.032000 4.032000 1.000000 4.000000 4.000000 1.200000 3.648000 3.648000 1.400000 3.024000 3.024000 Use POWER_CUBIC_TO_HERMITE_CUBIC to recover the original Hermite data: Original Recovered F1: -18.000000 -18.000000 D1: 27.000000 27.000000 F2: 4.000000 4.000000 D2: -1.000000 -1.000000 HERMITE_CUBIC_TEST06: HERMITE_CUBIC_INTEGRATE integrates a Hermite cubic polynomial from A to B. Use A, B vectors for the calculation. Exact Computed J A B Integral Integral 1 -1.000000 -3.000000 120.667 120.667 2 -1.000000 -2.000000 35.0833 35.0833 3 -1.000000 -1.000000 0 0 4 -1.000000 0.000000 -7.58333 -7.58333 5 -1.000000 1.000000 -4.66667 -4.66667 6 -1.000000 2.000000 -2.25 -2.25 7 -1.000000 3.000000 -5.33333 -5.33333 8 -1.000000 4.000000 -12.9167 -12.9167 9 -1.000000 5.000000 -18 -18 10 -1.000000 6.000000 -7.58333 -7.58333 11 -1.000000 7.000000 37.3333 37.3333 12 -1.000000 8.000000 141.75 141.75 13 -1.000000 9.000000 336.667 336.667 14 -1.000000 10.000000 659.083 659.083 15 -1.000000 11.000000 1152 1152 16 -1.000000 12.000000 1864.42 1864.42 HERMITE_CUBIC_TEST07: HERMITE_CUBIC_INTEGRAL integrates a Hermite cubic polynomial over the definition interval [X1,X2]. Exact Computed X1 X2 Integral Integral 0.000000 10.000000 666.667 666.667 -1.000000 1.000000 -4.66667 -4.66667 0.500000 0.750000 0.933268 0.933268 HERMITE_CUBIC_TEST08: HERMITE_CUBIC_SPLINE_INTEGRAL integrates a Hermite cubic spline over the definition interval [X1,XNN]. Exact Computed X1 XNN Integral Integral 0.000000 1.000000 -0.166667 -0.166667 0.000000 1.000000 -0.166667 -0.166667 0.000000 3.141593 2 1.99997 HERMITE_CUBIC_TEST09: HERMITE_CUBIC_SPLINE_INTEGRATE integrates a Hermite cubic spline from A to B. Exact Computed I A B Integral Integral 1 2.500000 -1.000000 3.02604 3.02604 2 2.500000 -0.500000 -3 -3 3 2.500000 0.000000 -4.55729 -4.55729 4 2.500000 0.500000 -3.58333 -3.58333 5 2.500000 1.000000 -1.64062 -1.64062 6 2.500000 1.500000 0.0833333 0.0833333 7 2.500000 2.000000 0.776042 0.776042 8 2.500000 2.500000 0 0 9 2.500000 3.000000 -2.30729 -2.30729 10 2.500000 3.500000 -5.83333 -5.83333 11 2.500000 4.000000 -9.89063 -9.89062 12 2.500000 4.500000 -13.4167 -13.4167 13 2.500000 5.000000 -14.974 -14.974 14 2.500000 5.500000 -12.75 -12.75 15 2.500000 6.000000 -4.55729 -4.55729 16 2.500000 6.500000 12.1667 12.1667 17 2.500000 7.000000 40.3594 40.3594 18 2.500000 7.500000 83.3333 83.3333 19 2.500000 8.000000 144.776 144.776 20 2.500000 8.500000 228.75 228.75 21 2.500000 9.000000 339.693 339.693 22 2.500000 9.500000 482.417 482.417 23 2.500000 10.000000 662.109 662.109 24 2.500000 10.500000 884.333 884.333 25 2.500000 11.000000 1155.03 1155.03 hermite_cubic_test10(): HERMITE_CUBIC_SPLINE_INTEGRAL integrates a Hermite cubic spline over the definition interval [X1,XNN]. If the subintervals are equally spaced, the derivative information has no effect on the result, except for the first and last values, DN(1) and DN(NN). Exact Computed X1 XNN Integral Integral Comment 0.000000 3.141593 2 1.99997 Equal spacing, correct DN 0.000000 3.141593 2 1.99997 Equal spacing, DN(2:N-1) random 0.000000 3.141593 2 2.0279 Equal spacing, DN(1:N) random 0.000000 3.141593 2 1.99935 Variable spacing, correct DN 0.000000 3.141593 2 1.44985 Variable spacing, a single internal DN randomized. HERMITE_CUBIC_TEST11: HERMITE_CUBIC_LAGRANGE_VALUE evaluates the four Lagrange basis functions associated with F1, D1, F2 and D2 such that P(X) = F1 * LF1(X) + D1 * LD1(X) + F2 * LF2(X) + D2 * LD2(X). The first, second and third derivatives of these four Lagrange basis functions are also computed. The Lagrange basis functions: I X LF1 LD1 LF2 LD2 1 0.0000 -4.0000 -4.0000 5.0000 -2.0000 2 0.2500 -1.5312 -2.2969 2.5312 -0.9844 3 0.5000 0.0000 -1.1250 1.0000 -0.3750 4 0.7500 0.7812 -0.3906 0.2188 -0.0781 5 1.0000 1.0000 0.0000 0.0000 -0.0000 6 1.2500 0.8438 0.1406 0.1562 -0.0469 7 1.5000 0.5000 0.1250 0.5000 -0.1250 8 1.7500 0.1562 0.0469 0.8438 -0.1406 9 2.0000 0.0000 0.0000 1.0000 0.0000 10 2.2500 0.2188 0.0781 0.7812 0.3906 11 2.5000 1.0000 0.3750 0.0000 1.1250 The derivative of the Lagrange basis functions: I X LF1 LD1 LF2 LD2 1 0.0000 12.0000 8.0000 -12.0000 5.0000 2 0.2500 7.8750 5.6875 -7.8750 3.1875 3 0.5000 4.5000 3.7500 -4.5000 1.7500 4 0.7500 1.8750 2.1875 -1.8750 0.6875 5 1.0000 -0.0000 1.0000 0.0000 -0.0000 6 1.2500 -1.1250 0.1875 1.1250 -0.3125 7 1.5000 -1.5000 -0.2500 1.5000 -0.2500 8 1.7500 -1.1250 -0.3125 1.1250 0.1875 9 2.0000 0.0000 0.0000 0.0000 1.0000 10 2.2500 1.8750 0.6875 -1.8750 2.1875 11 2.5000 4.5000 1.7500 -4.5000 3.7500 HERMITE_CUBIC_TEST12: HERMITE_CUBIC_LAGRANGE_INTEGRAL returns the integrals of the four Lagrange basis functions associated with F1, D1, F2 and D2 such that P(X) = F1 * LF1(X) + D1 * LD1(X) + F2 * LF2(X) + D2 * LD2(X). The Lagrange basis function integrals: X1 X2 LF1 LD1 LF2 LD2 -6.0000 1.0000 3.5000 4.0833 3.5000 -4.0833 -5.0000 1.0000 3.0000 3.0000 3.0000 -3.0000 -4.0000 1.0000 2.5000 2.0833 2.5000 -2.0833 -3.0000 1.0000 2.0000 1.3333 2.0000 -1.3333 -2.0000 1.0000 1.5000 0.7500 1.5000 -0.7500 -1.0000 1.0000 1.0000 0.3333 1.0000 -0.3333 0.0000 1.0000 0.5000 0.0833 0.5000 -0.0833 1.0000 1.0000 0.0000 0.0000 0.0000 -0.0000 2.0000 1.0000 -0.5000 0.0833 -0.5000 -0.0833 HERMITE_CUBIC_TEST13: HERMITE_CUBIC_LAGRANGE_INTEGRATE integrates a Hermite cubic Lagrange polynomial from A to B. Compute each result TWICE: First row computed using HERMITE_CUBIC_INTEGRATE. Second row computed using HERMITE_CUBIC_LAGRANGE_INTEGRATE. A B LF1 LD1 LF2 LD2 -1.0000 -3.0000 -1.7000 5.9333 -0.3000 1.0667 -1.7000 5.9333 -0.3000 1.0667 -1.0000 -2.0000 -0.9225 2.0042 -0.0775 0.2708 -0.9225 2.0042 -0.0775 0.2708 -1.0000 -1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -1.0000 0.0000 0.9895 -0.5692 0.0105 -0.0358 0.9895 -0.5692 0.0105 -0.0358 -1.0000 1.0000 1.9800 -0.1333 0.0200 -0.0667 1.9800 -0.1333 0.0200 -0.0667 -1.0000 2.0000 2.9175 0.9375 0.0825 -0.2625 2.9175 0.9375 0.0825 -0.2625 -1.0000 3.0000 3.7600 2.3333 0.2400 -0.7333 3.7600 2.3333 0.2400 -0.7333 -1.0000 4.0000 4.4775 3.8042 0.5225 -1.5292 4.4775 3.8042 0.5225 -1.5292 -1.0000 5.0000 5.0520 5.1600 0.9480 -2.6400 5.0520 5.1600 0.9480 -2.6400 -1.0000 6.0000 5.4775 6.2708 1.5225 -3.9958 5.4775 6.2708 1.5225 -3.9958 -1.0000 7.0000 5.7600 7.0667 2.2400 -5.4667 5.7600 7.0667 2.2400 -5.4667 -1.0000 8.0000 5.9175 7.5375 3.0825 -6.8625 5.9175 7.5375 3.0825 -6.8625 -1.0000 9.0000 5.9800 7.7333 4.0200 -7.9333 5.9800 7.7333 4.0200 -7.9333 -1.0000 10.0000 5.9895 7.7642 5.0105 -8.3692 5.9895 7.7642 5.0105 -8.3692 -1.0000 11.0000 6.0000 7.8000 6.0000 -7.8000 6.0000 7.8000 6.0000 -7.8000 -1.0000 12.0000 6.0775 8.0708 6.9225 -5.7958 6.0775 8.0708 6.9225 -5.7958 HERMITE_CUBIC_TEST14: HERMITE_CUBIC_SPLINE_QUAD_RULE returns a quadrature rule for Hermite cubic splines. Case 1: Random spacing I J X W Q 1 1 0.035712 0.424565 0.424565 1 2 0.884841 0.891561 0.891561 1 3 1.818834 0.806364 0.806364 1 4 2.497569 0.718238 0.718238 1 5 3.255310 0.750436 0.750436 1 6 3.998442 0.567680 0.567680 1 7 4.390669 0.523852 0.523852 1 8 5.046147 0.413332 0.413332 1 9 5.217334 0.438616 0.438616 1 10 5.923380 0.368939 0.368939 1 11 5.955213 0.015916 0.015916 2 1 0.035712 0.060085 0.060085 2 2 0.884841 0.012610 0.012610 2 3 1.818834 -0.034305 -0.034305 2 4 2.497569 0.009457 0.009457 2 5 3.255310 -0.001827 -0.001827 2 6 3.998442 -0.033200 -0.033200 2 7 4.390669 0.022984 0.022984 2 8 5.046147 -0.033362 -0.033362 2 9 5.217334 0.039100 0.039100 2 10 5.923380 -0.041457 -0.041457 2 11 5.955213 -0.000084 -0.000084 Case 2: Uniform spacing F(2:N-1) have equal weight. D(2:N-1) have zero weight. I J X W Q 1 1 1.000000 0.050000 0.050000 1 2 1.100000 0.100000 0.100000 1 3 1.200000 0.100000 0.100000 1 4 1.300000 0.100000 0.100000 1 5 1.400000 0.100000 0.100000 1 6 1.500000 0.100000 0.100000 1 7 1.600000 0.100000 0.100000 1 8 1.700000 0.100000 0.100000 1 9 1.800000 0.100000 0.100000 1 10 1.900000 0.100000 0.100000 1 11 2.000000 0.050000 0.050000 2 1 1.000000 0.000833 0.000833 2 2 1.100000 -0.000000 -0.000000 2 3 1.200000 0.000000 0.000000 2 4 1.300000 -0.000000 -0.000000 2 5 1.400000 0.000000 0.000000 2 6 1.500000 0.000000 0.000000 2 7 1.600000 -0.000000 -0.000000 2 8 1.700000 0.000000 0.000000 2 9 1.800000 -0.000000 -0.000000 2 10 1.900000 0.000000 0.000000 2 11 2.000000 -0.000833 -0.000833 HERMITE_CUBIC_TEST15: HERMITE_CUBIC_SPLINE_QUAD_RULE returns a quadrature rule for Hermite cubic splines. Random spacing Number of points N = 11 Interval = [0.276923,4.826100] Q = -10.539003 Q (exact) = -10.539003 hermite_cubic_test(): Normal end of execution. 07-Jan-2022 21:41:35