✨ feat(tsl-api-reference): add class and framework API lookup
This commit is contained in:
+278
@@ -0,0 +1,278 @@
|
||||
# 数学函数 / 数值计算 / 插值
|
||||
|
||||
## `chckxy(x, y)`
|
||||
|
||||
声明:function
|
||||
|
||||
合并x,y后对x列正序排列
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---- | ----- | -------- |
|
||||
| `x` | array | 一维数组 |
|
||||
| `y` | array | 一维数组 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
uses interp_unit;
|
||||
x := array(5, 1, 19, 8);
|
||||
y := array(2, 3, 1, 7);
|
||||
chckxy(x, y);
|
||||
return x | y;
|
||||
// 输出:array((1,3),(5,2),(8,7),(19,1))
|
||||
```
|
||||
|
||||
## `histc2(a, b)`
|
||||
|
||||
声明:function
|
||||
|
||||
记录a中的元素在b中第几个区间的位置
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---- | ----- | -------- |
|
||||
| `a` | array | 一维数组 |
|
||||
| `b` | array | 一维数组 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
uses interp_unit;
|
||||
a := 1->10;
|
||||
b := 3->7;
|
||||
return histc2(a, b);
|
||||
// 输出:array(0,0,1,1,2,3,4,0,0,0)
|
||||
```
|
||||
|
||||
## `nearest(x, y, xi)`
|
||||
|
||||
声明:function
|
||||
|
||||
最邻近插值
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---- | ----- | ------------------- |
|
||||
| `x` | array | 一维数组 横坐标序列 |
|
||||
| `y` | array | 一维数组 纵坐标序列 |
|
||||
| `xi` | array | 一维数组 插值点序列 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
uses interp_unit;
|
||||
x := array(5, 1, 19, 8);
|
||||
y := array(2, 3, 1, 7);
|
||||
xi := array(4, 12);
|
||||
return nearest(x, y, xi);
|
||||
// 输出:array(3,1)
|
||||
```
|
||||
|
||||
## `pchip(x, y, xx)`
|
||||
|
||||
声明:function
|
||||
|
||||
分段三次hermite插值
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---- | ----- | ------------------- |
|
||||
| `x` | array | 一维数组 横坐标序列 |
|
||||
| `y` | array | 一维数组 纵坐标序列 |
|
||||
| `xx` | array | 一维数组 插值点序列 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
uses interp_unit;
|
||||
x := array(5, 1, 19, 8);
|
||||
y := array(2, 3, 1, 7);
|
||||
xx := array(4, 12);
|
||||
return pchip(x, y, xx);
|
||||
// 输出:array(3.34030621353744,6.93450987255447)
|
||||
```
|
||||
|
||||
## `ppval(pp, xx)`
|
||||
|
||||
声明:function
|
||||
|
||||
对插值点列的值数据区间中计算出插值
|
||||
|
||||
<!-- tags: 计算 求解 -->
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---- | ----- | ----------------------------- |
|
||||
| `pp` | array | 二维数组,包含列 "x"、"coefs" |
|
||||
| `xx` | array | 一维数组 插值点序列 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
uses interp_unit;
|
||||
x := array(1, 5, 8, 19);
|
||||
y := array(3, 2, 7, 1);
|
||||
s := array(0, 0, 0, 0);
|
||||
dx := array(4, 3, 11);
|
||||
divdif := array(-0.25, 1.66666666666667, -0.545454545454545);
|
||||
pp := pwch(x, y, s, dx, divdif);
|
||||
xx := array(4, 12);
|
||||
return ppval(pp, xx);
|
||||
// 输出:array(2.15625,5.19684447783622)
|
||||
```
|
||||
|
||||
## `pwch(x, y, s, dx, divdif)`
|
||||
|
||||
声明:function
|
||||
|
||||
计算下x,y所对应的不同间隔区间
|
||||
|
||||
<!-- tags: 计算 求解 -->
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| -------- | ----- | -------- |
|
||||
| `x` | array | 一维数组 |
|
||||
| `y` | array | 一维数组 |
|
||||
| `s` | array | 一维数组 |
|
||||
| `dx` | array | 一维数组 |
|
||||
| `divdif` | array | 一维数组 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
uses interp_unit;
|
||||
x := array(1, 5, 8, 19);
|
||||
y := array(3, 2, 7, 1);
|
||||
s := array(0, 0, 0, 0);
|
||||
dx := array(4, 3, 11);
|
||||
divdif := array(-0.25, 1.66666666666667, -0.545454545454545);
|
||||
return pwch(x, y, s, dx, divdif);
|
||||
// 输出:array("x":(1,5,8,19),"coefs":
|
||||
// ((0.03125,-0.1875,0,3),
|
||||
// (-0.370370370370371,1.66666666666667,0,2),
|
||||
// (0.00901577761081892,-0.148760330578512,0,7)))
|
||||
```
|
||||
|
||||
## `interp(x, y, xi, method)`
|
||||
|
||||
声明:function
|
||||
|
||||
分段插值函数,根据给定的数据 x,y 对数据xv进行分段插值,可选择方法
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| -------- | ------------- | ------------------------------------------------------------- |
|
||||
| `x` | array of real | 实型一维数组,长度为N。存放给定N个点的值Xi,要求X0<X1...<Xn-1 |
|
||||
| `y` | array of real | 实型一维数组,长度为N。存放N个给定点上的函数值Yi |
|
||||
| `xi` | array of real | 实数或者一维实数数组,存放指定插值点的值 |
|
||||
| `method` | string | 方法选择,具体取值如下: |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:使用三次样条插值生成一组插值点
|
||||
|
||||
```tsl
|
||||
x := array(0, 0.01)->1;
|
||||
y := x^2-x;
|
||||
xi := array(0.005, 0.01)->1;
|
||||
yi := interp(x, y, xi, 'spline');
|
||||
return yi;
|
||||
```
|
||||
|
||||
范例02:最近邻插值
|
||||
|
||||
```tsl
|
||||
x_ := array(5, 1, 19, 8);
|
||||
y_ := array(2, 3, 1, 7);
|
||||
xi := array(4, 12);
|
||||
return interp(x_, y_, xi, "nearest");
|
||||
// 输出:array(2,7)
|
||||
```
|
||||
|
||||
范例03:分段线性插值
|
||||
|
||||
```tsl
|
||||
x_ := array(5, 1, 19, 8);
|
||||
y_ := array(2, 3, 1, 7);
|
||||
xi := array(4, 12);
|
||||
return interp(x_, y_, xi, "linear");
|
||||
// 输出:array(2.25,4.8182)
|
||||
```
|
||||
|
||||
范例04:三次样条插值
|
||||
|
||||
```tsl
|
||||
x_ := array(5, 1, 19, 8);
|
||||
y_ := array(2, 3, 1, 7);
|
||||
xi := array(4, 12);
|
||||
return interp(x_, y_, xi, "spline");
|
||||
// 输出:array(1.1407,13.9444)
|
||||
```
|
||||
|
||||
范例05:分段三次 Hermite 插值
|
||||
|
||||
```tsl
|
||||
x_ := array(5, 1, 19, 8);
|
||||
y_ := array(2, 3, 1, 7);
|
||||
xi := array(4, 12);
|
||||
return interp(x_, y_, xi, "pchip");
|
||||
// 输出:array(2.0156,6.7115)
|
||||
```
|
||||
|
||||
## `linear(x, y, xi)`
|
||||
|
||||
声明:function
|
||||
|
||||
线性插值
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ---- | ----- | ------------------- |
|
||||
| `x` | array | 一维数组 横坐标序列 |
|
||||
| `y` | array | 一维数组 纵坐标序列 |
|
||||
| `xi` | array | 一维数组 插值点序列 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
uses interp_unit; // 置顶
|
||||
x := array(5, 1, 19, 8);
|
||||
y := array(2, 3, 1, 7);
|
||||
xi := array(4, 12);
|
||||
return interp_unit.linear(x, y, xi);
|
||||
// 输出:array(2.66666666666667,1.77777777777778)
|
||||
```
|
||||
|
||||
## `spline(x1, y1, xx1)`
|
||||
|
||||
声明:function
|
||||
|
||||
三次样条插值
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| ----- | ----- | ----------------------- |
|
||||
| `x1` | array | 一维数字数组 横坐标序列 |
|
||||
| `y1` | array | 一维数字数组 纵坐标序列 |
|
||||
| `xx1` | array | 实数或一维数字数组 插值 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
x := array(5, 1, 19, 8);
|
||||
y := array(2, 3, 1, 7);
|
||||
xx := array(4, 12);
|
||||
return spline(x, y, xx);
|
||||
// 输出:array(1.1407,13.9444)
|
||||
```
|
||||
Reference in New Issue
Block a user