---
title: KIPL_Cs1gd
description: "计算三次样条拟合函数的导数值。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC2/accel/kunpengaccel_kml_16_0789.html
sourcePath: /source/zh/kunpengboostkithistory/240RC2/accel/kunpengaccel_kml_16_0789.html
indexId: b8d5d3cad44056f2a3142abb29dabec42b95cf4b11e0df1943bd7b384ff876d376
---
# KIPL_Cs1gd

计算三次样条拟合函数的导数值。

#### 接口定义

void KIPL_Cs1gd(int ideriv, int nVec, float *xVec, int initv, float *xData, float *coef, float *derValue)


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| ideriv | 整型数 | 需要计算的导数阶数。 | 输入 |
| nVec | 整型数 | 数组xVec的长度。 | 输入 |
| xVec | 单精度浮点数组 | 长度为nVec的数组，包含要计算三次样条的点。 | 输入 |
| initv | 整型数 | 表示拟合得到三次多项式个数，等于nData\-1。 | 输入 |
| xData | 单精度浮点数组 | 长度为initv+1的数组，表示数据点的横坐标。 | 输入 |
| coef | 单精度浮点数组 | 长度为4\*(initv+1)的数组，表示生成的系数序列。 | 输入 |
| derValue | 单精度浮点数组 | 长度为nVec的数组，包含三次样条在xVec各点的ideriv阶导数的值。 | 输出 |


#### 依赖

#include "kipl.h"


#### 示例

```
#include <stdio.h>
#include <math.h>
#include "kipl.h"
int
main
()
{
int data_n = 11;
float data_x[data_n];
float data_y[data_n];
for (int i = 0; i < data_n; i++) {
data_x[i] = (float)(i) / (data_n - 1);
data_y[i] = sin(15.0 * data_x[i]);
}
int test_n = 2 * data_n - 1;
float test_x[test_n];
float test_y[test_n];
for (int i = 0; i < test_n; i++) {
test_x[i] = (float)(i) / (test_n - 1);
test_y[i] = sin(15.0 * test_x[i]);
}
float b[data_n], cscoef[4 * data_n];
KIPL_Csint
(data_n, data_x, data_y, cscoef);
int nintv = data_n - 1;
int ideriv = 0;
float derValue[test_n];
KIPL_Cs1gd(ideriv, test_n, test_x, nintv, data_x, cscoef, derValue);
return 0;
}
```
