# 数学函数 - 灰色系统与小波分析

文档类型：函数事实页
是否可直接用于生成代码：是；本页函数条目均包含参数表
遇到不确定时：回到 [../math.md](../math.md)、[../../index.md](../../index.md)

本页收录灰色系统初始化、灰色关联分析、累加生成和灰色预测函数。

## 服务器灰色系统函数

### `gm_Initial(values, method, unit_values)`

用途：对灰色系统输入矩阵做初始化转换。

参数个数：3
返回值：数值矩阵

| 参数位置 | 参数名        | 必填 | 接收类型 | 说明                                                        |
| -------- | ------------- | ---- | -------- | ----------------------------------------------------------- |
| 1        | `values`      | 是   | 数值矩阵 | 原始序列矩阵                                                |
| 2        | `method`      | 是   | 字符串   | 初始化方式；可用 `"ini"`、`"mean"`、`"rrange"`、`"norm"`    |
| 3        | `unit_values` | 是   | 数值数组 | `method` 为 `"norm"` 时传归一化基准；其它方式可传 `array()` |

### `gm_Corr(values, target_index)`

用途：计算灰色关联分析结果。

参数个数：2
返回值：数值数组

| 参数位置 | 参数名         | 必填 | 接收类型 | 说明           |
| -------- | -------------- | ---- | -------- | -------------- |
| 1        | `values`       | 是   | 数值矩阵 | 待分析序列矩阵 |
| 2        | `target_index` | 是   | 整数     | 参考序列下标   |

### `gm_AGO(values, method, order)`

用途：执行灰色系统累加生成或还原运算。

参数个数：3
返回值：数值数组

| 参数位置 | 参数名   | 必填 | 接收类型 | 说明                            |
| -------- | -------- | ---- | -------- | ------------------------------- |
| 1        | `values` | 是   | 数值数组 | 原始序列                        |
| 2        | `method` | 是   | 字符串   | 运算方式；可用 `"add"`、`"sub"` |
| 3        | `order`  | 是   | 整数     | 生成或还原阶数                  |

### `gm_Icorr(values, target_index)`

用途：计算灰色关联分析结果。

参数个数：2
返回值：数值数组

| 参数位置 | 参数名         | 必填 | 接收类型 | 说明           |
| -------- | -------------- | ---- | -------- | -------------- |
| 1        | `values`       | 是   | 数值矩阵 | 待分析序列矩阵 |
| 2        | `target_index` | 是   | 整数     | 参考序列下标   |

### `gm_Scorr(values, method)`

用途：计算灰色绝对、相对或综合关联度矩阵。

参数个数：2
返回值：数值矩阵

| 参数位置 | 参数名   | 必填 | 接收类型 | 说明                                       |
| -------- | -------- | ---- | -------- | ------------------------------------------ |
| 1        | `values` | 是   | 数值矩阵 | 待分析序列矩阵                             |
| 2        | `method` | 是   | 字符串   | 关联度类型；可用 `"abs"`、`"ret"`、`"com"` |

### `gm_Estimate(values, step_count)`

用途：按灰色模型估计后续序列值。

参数个数：2
返回值：数值数组

| 参数位置 | 参数名       | 必填 | 接收类型 | 说明               |
| -------- | ------------ | ---- | -------- | ------------------ |
| 1        | `values`     | 是   | 数值数组 | 原始序列           |
| 2        | `step_count` | 是   | 整数     | 需要估计的后续步数 |

## 小波分析

### `wavedec(data, level, wname)`

用途：对序列进行小波分解，返回系数向量与长度向量。

参数个数：3
返回值：数组；`result[0]` 为分解向量 C，`result[1]` 为记录向量 L

| 参数位置 | 参数名  | 必填 | 接收类型 | 说明     |
| -------- | ------- | ---- | -------- | -------- |
| 1        | `data`  | 是   | 数组     | 输入序列 |
| 2        | `level` | 是   | 整数     | 分解层数 |
| 3        | `wname` | 是   | 字符串   | 小波名称 |

### `wrcoef(mode, c, l, wname, level)`

用途：基于 `wavedec` 的结果重构近似或细节信号。

参数个数：5
返回值：重构后的序列

| 参数位置 | 参数名  | 必填 | 接收类型 | 说明           |
| -------- | ------- | ---- | -------- | -------------- |
| 1        | `mode`  | 是   | 字符串   | 指定近似或细节 |
| 2        | `c`     | 是   | 数组     | 分解系数       |
| 3        | `l`     | 是   | 数组     | 长度向量       |
| 4        | `wname` | 是   | 字符串   | 小波名称       |
| 5        | `level` | 是   | 整数     | 分解层数       |

### `wavelet(data, wname, n, options)`

用途：对序列进行小波变换或去噪，常与 `wavedec`、`wrcoef` 配合使用。

参数个数：4
返回值：处理后的序列

| 参数位置 | 参数名    | 必填 | 接收类型 | 说明     |
| -------- | --------- | ---- | -------- | -------- |
| 1        | `data`    | 是   | 数组     | 输入序列 |
| 2        | `wname`   | 是   | 字符串   | 小波名称 |
| 3        | `n`       | 是   | 整数     | 层数     |
| 4        | `options` | 是   | 数组     | 去噪选项 |
