这个函数返回插值函数对于给定点(x)的微分。计算中使用插值对象spline,加速器xacc。对于x在xarr的区间外,将返回报错信息。
int kml_float_spline_eval_deriv_e(const kml_float_spline *spline, float x,
kml_spline_accel *a, float *dydx)
float kml_float_spline_eval_deriv(const kml_float_spline *spline, float x,
kml_spline_accel *a)
int kml_double_spline_eval_deriv_e(const kml_double_spline *spline, double x, kml_interp_accel *a, double *dydx);
double kml_double_spline_eval_deriv(const kml_double_spline *spline, double x, kml_interp_accel *a);
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
spline |
kml_float_spline*, kml_double_spline* |
插值对象指针 |
输入 |
x |
float, double |
求解点x的值 |
输入 |
y |
float, double |
求解点y的值 |
输入 |
a |
kml_spline_accel * |
加速器对象指针 |
输入 |
#include "kipl.h"
const size_t xMin = 4; const size_t xMax = 2048; const size_t xSize = 4; const float xValLo = 1; const float xValHi = 2; float xArr[4] = {1,1.33,1.67,2}; float* yArr = (float*)malloc(xSize * sizeof(float)); float x = 1; float y = 0; kml_float_spline *spline = kml_float_spline_alloc(kml_float_interp_cspline, xSize); kml_interp_accel *xacc = kml_interp_accel_alloc(); kml_float_spline_init(spline, xSize, xArr, yArr); y = kml_float_spline_eval_deriv(spline, xArr, x, xacc); kml_float_spline_free(spline); kml_interp_accel_free(xacc); free_if_not_null(xArr);