【お知らせ】この部分は英語原文のみでの提供となります。何卒ご了承ください。
2.1.17.5.3 ocmath_1d_spline_evaluate
Contents
Description
Evaluates a cubic spline from its B-spline representation.
Syntax
int ocmath_1d_spline_evaluate( double dX, double * pY, ocmath_Spline * spline )
Parameters
- dX
- [input]the value of the independent variable (abscissa) x
- pY
- [output]pointer to the value of the dependent variable (ordinate) y
- spline
- [input] pointer to the structure ocmath_Spline, usually returned by function ocmath_1d_spline_fit
Return
NE_NOERROR (code 0) --- success
NE_INT_ARG_LT (error code 11) --- spline->n < 8
NE_ABSCI_OUTSIDE_KNOT_INTVL (error code 247) --- dX not satisfy spline->lamda[3] <= dX <= spline->lamda[spline->n - 4]
Examples
EX1
//Evaluate at 9 equally-spaced points in the interval [1.0, 9.0] the cubic spline with //(augmented) knots 1.0, 1.0, 1.0, 1.0, 3.0, 6.0, 8.0, 9.0, 9.0, 9.0, 9.0 and normalised //cubic B-spline coefficients 1.0, 2.0, 4.0, 7.0, 6.0, 4.0, 3.0. void ocmath_1d_spline_evaluate_ex1() { double a, b,ncap7; int m =9; int ncap = 4; int r; double lamda[11] = {1.00, 1.00, 1.00, 1.00, 3.00, 6.00, 8.00, 9.00, 9.00, 9.00, 9.00}; double c[11] = {1.00, 2.00, 4.00, 7.00, 6.00, 4.00, 3.00}; double s; double x; int i, j; ocmath_Spline spline; ncap7 = ncap +7; spline.n = ncap7; spline.lamda = lamda; spline.c = c; a = spline.lamda[3]; printf("a = %f\n",a); b = spline.lamda[ncap+3]; printf("b = %f\n",b); printf("Augmented set of knots stored in spline.lamda:\n"); for(j = 0; j < ncap7-1; j++) printf("%10.4f",lamda[j]); printf("\nB-spline coefficients stored in spline.c\n\n"); for(j = 0; j< ncap+3; j++) printf("%10.4f",c[j]); printf("\n x Value of cubic spline\n\n"); for (r=1; r<=m; ++r) { x = 1.0*((m-r) * a + (r-1) * b) /(m-1); s= 0; ocmath_1d_spline_evaluate(x, &s, &spline); printf("%10.4f%15.4f\n",x,s); } } //The output: //a = 1.000000 //b = 9.000000 //Augmented set of knots stored in spline.lamda: // 1.0000 1.0000 1.0000 1.0000 3.0000 6.0000 8.0000 9.0000 9.0000 9.0000 //B-spline coefficients stored in spline.c // 1.0000 2.0000 4.0000 7.0000 6.0000 4.0000 3.0000 //x Value of cubic spline // 1.0000 1.0000 // 2.0000 2.3779 // 3.0000 3.6229 // 4.0000 4.8327 // 5.0000 5.8273 // 6.0000 6.3571 // 7.0000 6.1905 // 8.0000 5.1667 // 9.0000 3.0000
Remark
See Also
Header to Include
origin.h
Reference
nag_1d_spline_evaluate(e02bbc)nag_1d_spline_evaluate(e02bbc), NAG Manual