Migrate reference pages to declaration-line storage and rebuild the 13-column index. Add qualified member lookup plus regression and end-to-end coverage.
552 lines
16 KiB
Markdown
552 lines
16 KiB
Markdown
# Builtin - 数学 / 数值方法
|
||
|
||
## `any(data, n)`
|
||
|
||
声明:function
|
||
|
||
判断任意值或数组或数组其行列数据的真假,集合中只要有一个元素是真则为真。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ----------------------------------------------------------------------- |
|
||
| `data` | any | 当N缺省或取默认值0时,可以为任意数据,否则只能是数组。 |
|
||
| `n` | integer | 若取值0,对Data整体判断,如果Data是数组,则对所有元素进行判断,缺省值。 |
|
||
|
||
返回:real/table
|
||
|
||
### 示例
|
||
|
||
范例一:
|
||
|
||
```tsl
|
||
// 判断非数组的真假
|
||
return any('a', 0);
|
||
// 输出:
|
||
// 1
|
||
```
|
||
|
||
范例二:
|
||
|
||
```tsl
|
||
// 判断特殊数据类型的真假
|
||
return any(array(1, '', ' ', nan, nil, inf, -inf, array()), 1);
|
||
// 结果
|
||
```
|
||
|
||
范例三:
|
||
|
||
```tsl
|
||
// 判断二维数组的行
|
||
f := array('e': ('A': 1, 'B': 0), 'f': ('A': 2, 'B': ''), 'd': ('A': 3, 'B': nil));
|
||
return any(f, 1);
|
||
// 输出:’e’,’f’,’d’为行标,表示该行结果。其中,’d’行中,对集合(3,nil)判断为真,则该行值判断结果为1,’B’列中。
|
||
```
|
||
|
||
范例四:
|
||
|
||
```tsl
|
||
// 判断多维数组的行
|
||
t := array('e': ('A': 0, 'B': 0), 'f': ('A': 2, 'B': array(1, 0)));
|
||
return any(t, 1);
|
||
// 输出:’f’行中对集合(0,array(1,0))->(0,1)->1,则该列结果为1
|
||
```
|
||
|
||
范例五:
|
||
|
||
```tsl
|
||
// 判断多维数组的列
|
||
t := array('e': ('A': 1, 'B': 1), 'f': ('A': 2, 'B': array(1, 0)));
|
||
return any(t, 2);
|
||
// 结果
|
||
```
|
||
|
||
## `all(data, n)`
|
||
|
||
声明:function
|
||
|
||
所有为真,判断任意值或数组或数组其行列数据的真假,集合中只要有一个元素为假则为假。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ------- | ------------------------------------------------------------------------- |
|
||
| `data` | any | 当N缺省或取默认值0时,可以为任意数据,否则只能是数组。 |
|
||
| `n` | integer | 若值为0,则对Data整体判断,如果Data是数组,则对所有元素进行判断,缺省值。 |
|
||
|
||
返回:real/table
|
||
|
||
### 示例
|
||
|
||
范例一:
|
||
|
||
```tsl
|
||
// 判断数组中所有元素是否都为真
|
||
return all(array(1, 2, -1, 1, 9));
|
||
// 输出:
|
||
// 1
|
||
```
|
||
|
||
范例二:
|
||
|
||
```tsl
|
||
// 判断特殊数据类型的真假
|
||
return all(array(1, '', ' ', nan, nil, inf, -inf, array()), 1);
|
||
// 结果
|
||
```
|
||
|
||
范例三:
|
||
|
||
```tsl
|
||
// 判断二维数组的行
|
||
f := array('e': ('A': 1, 'B': 0), 'f': ('A': 2, 'B': 3), 'd': ('A': 3, 'B': nil));
|
||
return all(f, 1);
|
||
// 输出:’e’,’f’,’d’为行标,表示该行判断结果。其中,’d’行中,对集合(3,nil)判断为假,因为其中nil判断为假。
|
||
```
|
||
|
||
范例四:
|
||
|
||
```tsl
|
||
// 判断多维数组的行
|
||
t := array('e': ('A': 1, 'B': 1), 'f': ('A': 2, 'B': array(1, 0)));
|
||
return all(t, 1);
|
||
// 输出:’f’行中对集合(2,array(1,0))->(1,0)->0,则该行结果为0
|
||
```
|
||
|
||
范例五:
|
||
|
||
```tsl
|
||
// 判断多维数组的列
|
||
t := array('e': ('A': 1, 'B': 1), 'f': ('A': 2, 'B': array(1, 0)));
|
||
return all(t, 2);
|
||
// 输出:’B’列中对集合(1,array(1,0))->(1,0)->0,则该行结果为0
|
||
```
|
||
|
||
## `conv(a, b)`
|
||
|
||
声明:function
|
||
|
||
计算输入序列A、B的卷积
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----- | ------------ |
|
||
| `a` | array | 一维数字数组 |
|
||
| `b` | array | 一维数字数组 |
|
||
|
||
返回:array
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
a := array(0.4044, 0.32362, 0.38548, 0.17435, 0.08502, 0.41899, 0.02551, 0.46226);
|
||
b := array(0.82284, 0.7466, 0.17411, 0.85894, 0.7105, 0.51353, 0.30399, 0.01498, 0.0914, 0.36445, 0.14731, 0.1659, 0.98853, 0.44569, 0.11908);
|
||
return conv(a, b);
|
||
```
|
||
|
||
## `setSysParams(params)`
|
||
|
||
声明:function
|
||
|
||
一次性设置整个系统参数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | ----- | ---- |
|
||
| `params` | array | |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
s0 := getSysParams();
|
||
echo toStn(s0), '\r\n';
|
||
r := setSysParams(array("StockID": "SZ000001"));
|
||
s1 := getSysParams();
|
||
echo r, ':', toStn(s1), '\r\n';
|
||
// 打印结果:
|
||
```
|
||
|
||
## `GM_Icorr(values, target_index)`
|
||
|
||
声明:function
|
||
|
||
计算灰色关联分析结果。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ----- | -------------- |
|
||
| `values` | array | 待分析序列矩阵 |
|
||
| `target_index` | any | 参考序列下标 |
|
||
|
||
返回:array
|
||
|
||
## `se_Gauss(a, b, x)`
|
||
|
||
声明:function
|
||
|
||
用全选主元高斯消去法求解n阶线性方程组AX = B
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----- | ---- |
|
||
| `a` | array | |
|
||
| `b` | array | |
|
||
| `x` | array | |
|
||
|
||
返回:any
|
||
|
||
## `se_Gauss_Jordan(a, b, x)`
|
||
|
||
声明:function
|
||
|
||
用全主元高斯-约当(Gauss-Jordan)消去法同时求解系数矩阵相同而常数向量不同的m个n阶线性方程组AX = B
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----- | ---- |
|
||
| `a` | array | |
|
||
| `b` | array | |
|
||
| `x` | array | |
|
||
|
||
返回:any
|
||
|
||
## `se_Ldl(a, b, x)`
|
||
|
||
声明:function
|
||
|
||
用LU分解法求解系数矩阵为对称、右端具有m组常数向量的线性方程组 AX = B
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----- | ---------------------------------------------------------------------------- |
|
||
| `a` | array | 实型二维数组,大小为NN。存放方程组的系数矩阵,此系数矩阵必须为对称矩阵(即) |
|
||
| `b` | array | 实型二维数组,大小为NM。存放方程组右端的常数向量 |
|
||
| `x` | array | 实型一维数组,大小为NM。返回方程组的解向量 |
|
||
|
||
返回:any
|
||
|
||
## `se_Cholesky(a, b, x)`
|
||
|
||
声明:function
|
||
|
||
用乔列斯基(Cholesky)分解法(即平方根法)求解系数矩阵为对称正定、且右端具有m组常数向量的线性方程组AX = B
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----- | ---------------------------------------------------------------------------- |
|
||
| `a` | array | 实型二维数组,大小为NN。存放方程组的系数矩阵,此系数矩阵必须为对称矩阵(即) |
|
||
| `b` | array | 实型二维数组,大小为NM。存放方程组右端的常数向量 |
|
||
| `x` | array | 实型一维数组,大小为NM。返回方程组的解向量 |
|
||
|
||
返回:any
|
||
|
||
## `se_Gauss_Seidel(a, b, x)`
|
||
|
||
声明:function
|
||
|
||
用高斯-赛德尔迭代法求解系数矩阵具有主元占优的线性方程组AX = B
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----- | ------------------------------------------ |
|
||
| `a` | array | 实型二维数组,NN。存放方程组的系数矩阵 |
|
||
| `b` | array | 实型二维数组,NM。存放方程组右端的常数向量 |
|
||
| `x` | array | 实型一维数组,NM。返回方程组的解向量 |
|
||
|
||
返回:any
|
||
|
||
## `ip_SLQ(x, y, z, xv, yv, zv)`
|
||
|
||
声明:function
|
||
|
||
根据给定矩形域上的nXm个结点(i=0,1…..n-1;j = 0 , 1, ….., m-1)上的函数值Zij = Z(Xi,Yj),利用二元三点插值公式计算指定插值点(u,v)处的函数值w=Z(u,v)
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----- | --------------------------------------------------------------------------- |
|
||
| `x` | array | 实型一维数组,长度为N。存放给定nXm个点的X方向上的n个坐标,要求X0<X1...<Xn-1 |
|
||
| `y` | array | 实型一维数组,长度为N。存放给定nXm个点的X方向上的m个坐标,要求Y0<Y1...<Ym-1 |
|
||
| `z` | array | 实型二维数组,体积为为nXm。存放给定nXm个点上的函数值 |
|
||
| `xv` | float | 实型变量,插值点的X坐标 |
|
||
| `yv` | float | 实型变量,插值点的Y坐标 |
|
||
| `zv` | float | 实型变量,返回的插值结果 |
|
||
|
||
返回:any
|
||
|
||
## `ip_SLG(x, y, z, xv, yv, zv)`
|
||
|
||
声明:function
|
||
|
||
根据给定矩形域上的nXm个结点(i=0,1…..n-1;j = 0 , 1, ….., m-1)上的函数值Zij = Z(Xi,Yj),利用二元插值公式计算指定插值点(u,v)处的函数值w=Z(u,v)
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----- | --------------------------------------------------------------------------- |
|
||
| `x` | array | 实型一维数组,长度为N。存放给定nXm个点的X方向上的n个坐标,要求X0<X1...<Xn-1 |
|
||
| `y` | array | 实型一维数组,长度为N。存放给定nXm个点的X方向上的m个坐标,要求Y0<Y1...<Ym-1 |
|
||
| `z` | array | 实型二维数组,体积为为nXm。存放给定nXm个点上的函数值 |
|
||
| `xv` | float | 实型变量,插值点的X坐标 |
|
||
| `yv` | float | 实型变量,插值点的Y坐标 |
|
||
| `zv` | float | 实型变量,返回的插值结果 |
|
||
|
||
返回:any
|
||
|
||
## `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)
|
||
```
|
||
|
||
## `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;
|
||
// 输出:
|
||
// Execute script error at Line:4
|
||
// function:__main__:line 4:instruction:usercall: function:chckxy compile error or not found
|
||
// function:__main__:line 4:instruction:usercall: function execute error
|
||
```
|
||
|
||
## `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)
|
||
```
|
||
|
||
## `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 linear(x, y, xi);
|
||
// 输出:array(2.6667,1.7778)
|
||
```
|
||
|
||
## `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.3403,6.9345)
|
||
```
|
||
|
||
## `pwch(x, y, s, dx, divdif)`
|
||
|
||
声明:function
|
||
|
||
计算下x,y所对应的不同间隔区间。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------- | ----- | -------- |
|
||
| `x` | array | 一维数组 |
|
||
| `y` | array | 一维数组 |
|
||
| `s` | array | 一维数组 |
|
||
| `dx` | array | 一维数组 |
|
||
| `divdif` | array | 一维数组 |
|
||
|
||
返回:array
|
||
|
||
## `ppval(pp, xx)`
|
||
|
||
声明:function
|
||
|
||
对插值点列的值数据区间中计算出插值。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----- | ------------------------------- |
|
||
| `pp` | array | 二维数组 包含列"x","coefs" |
|
||
| `xx` | array | 一维数组 插值点序列 |
|
||
|
||
返回:array
|
||
|
||
## `ig_Trapezoid_1(a, b, call_back, v)`
|
||
|
||
声明:function
|
||
|
||
用变步长梯形求积法计算定积分
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------ |
|
||
| `a` | float | 实型变量。积分下限 |
|
||
| `b` | float | 实型变量。积分上限 |
|
||
| `call_back` | string | 计算被积函数值的回调 |
|
||
| `v` | float | 实型变量,返回的积分结果 |
|
||
|
||
返回:any
|
||
|
||
## `ig_Trapezoid_2(a, b, call_back, v)`
|
||
|
||
声明:function
|
||
|
||
用自适应梯形求积法计算定积分
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------ |
|
||
| `a` | float | 实型变量。积分下限 |
|
||
| `b` | float | 实型变量。积分上限 |
|
||
| `call_back` | string | 计算被积函数值的回调 |
|
||
| `v` | float | 实型变量,返回的积分结果 |
|
||
|
||
返回:any
|
||
|
||
## `ig_Simpson_1(a, b, call_back, v)`
|
||
|
||
声明:function
|
||
|
||
用变步长辛普森(Simpson)计算定积分
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------ |
|
||
| `a` | float | 实型变量。积分下限 |
|
||
| `b` | float | 实型变量。积分上限 |
|
||
| `call_back` | string | 计算被积函数值的回调 |
|
||
| `v` | float | 实型变量,返回的积分结果 |
|
||
|
||
返回:any
|
||
|
||
## `ig_Simpson_2(a, b, call_back1, call_back2, call_back3, v)`
|
||
|
||
声明:function
|
||
|
||
用变步长辛普森(Simpson)计算二重积分
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------------ | ------ | ------------------------------ |
|
||
| `a` | float | 实型变量。积分下限 |
|
||
| `b` | float | 实型变量。积分上限 |
|
||
| `call_back1` | string | 计算积分下限的回调 |
|
||
| `call_back2` | string | 计算积分上限的回调 |
|
||
| `call_back3` | string | 计算被积函数f(x,y)函数值的回调 |
|
||
| `v` | float | 实型变量,返回的积分结果 |
|
||
|
||
返回:any
|
||
|
||
## `ig_Romberg(a, b, call_back, v)`
|
||
|
||
声明:function
|
||
|
||
用龙贝格(Romberg)求积法计算定积分,
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ------ | ------------------------ |
|
||
| `a` | float | 实型变量。积分下限 |
|
||
| `b` | float | 实型变量。积分上限 |
|
||
| `call_back` | string | 计算被积函数值的回调 |
|
||
| `v` | float | 实型变量,返回的积分结果 |
|
||
|
||
返回:any
|
||
|
||
## `sendToClient(cmd_type, cmd_text, cmd_param, cmd_data, time_out)`
|
||
|
||
声明:function
|
||
|
||
发送命令到客户端执行。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ----------- | ----------- | -------------------------- |
|
||
| `cmd_type` | string | 命令类型。 |
|
||
| `cmd_text` | string | 命令串。 |
|
||
| `cmd_param` | any | 命令参数。 |
|
||
| `cmd_data` | any | 命令数据。 |
|
||
| `time_out` | integer=300 | 超时的秒数。默认是300s超时 |
|
||
|
||
返回:any
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
// 1)执行命令:return 100+1
|
||
return sendToClient("getdo", "return 100 + 1;", nil, nil);
|
||
// 输出:101
|
||
// 2)采用系统参数取得数据,将取得的数据相加,并设置超时时间为30s
|
||
return sendToClient("getdo", "return getsysparam('a') + getsysparam('b');", nil, array("a": 10, "b": 30), 30);
|
||
// 输出:40
|
||
```
|
||
|
||
## `setGlobalCache(name, value)`
|
||
|
||
声明:function
|
||
|
||
写入全局缓存。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------- | ------ | ------------ |
|
||
| `name` | string | 缓存键 |
|
||
| `value` | any | 写入缓存的值 |
|
||
|
||
返回:any
|