# 数学函数 - 优化与规划 文档类型:函数事实页 是否可直接用于生成代码:是;本页函数条目均包含参数表 遇到不确定时:回到 [../math.md](../math.md)、[../../index.md](../../index.md) 本页收录线性规划、二次规划、整数规划、0/1 规划和二次规划辅助求解函数。 ## 服务器优化函数 ### `prog_L(f, a, b, aeq, beq, lower_bounds, upper_bounds, x0, options, binary_indices, integer_indices)` 用途:求解带线性约束、边界约束、0/1 约束或整数约束的线性规划问题。 参数个数:11 返回值:数组表;包含 `X`、`Fval`、`Error_M`、`Iter` | 参数位置 | 参数名 | 必填 | 接收类型 | 说明 | | -------- | ----------------- | ---- | --------------- | -------------------------------- | | 1 | `f` | 是 | 数值数组 | 目标函数线性系数 | | 2 | `a` | 是 | 数值矩阵/空数组 | 线性不等式约束左侧矩阵 | | 3 | `b` | 是 | 数值数组/空数组 | 线性不等式约束右侧向量 | | 4 | `aeq` | 是 | 数值矩阵/空数组 | 线性等式约束左侧矩阵 | | 5 | `beq` | 是 | 数值数组/空数组 | 线性等式约束右侧向量 | | 6 | `lower_bounds` | 是 | 数值数组/空数组 | 变量下界 | | 7 | `upper_bounds` | 是 | 数值数组/空数组 | 变量上界 | | 8 | `x0` | 是 | 数值数组 | 初始解 | | 9 | `options` | 是 | 数组表/空数组 | 算法选项;使用默认设置时传空数组 | | 10 | `binary_indices` | 是 | 整数数组/空数组 | 按 0/1 约束处理的变量下标 | | 11 | `integer_indices` | 是 | 整数数组/空数组 | 按整数约束处理的变量下标 | ### `prog_Q(h, f, a, b, aeq, beq, lower_bounds, upper_bounds)` 用途:求解带线性约束和边界约束的二次规划问题。 参数个数:8 返回值:数组表;包含 `X`、`Fval`、`Error_M`、`Iter` | 参数位置 | 参数名 | 必填 | 接收类型 | 说明 | | -------- | -------------- | ---- | --------------- | ---------------------- | | 1 | `h` | 是 | 数值矩阵 | 二次项系数矩阵 | | 2 | `f` | 是 | 数值数组 | 一次项系数 | | 3 | `a` | 是 | 数值矩阵/空数组 | 线性不等式约束左侧矩阵 | | 4 | `b` | 是 | 数值数组/空数组 | 线性不等式约束右侧向量 | | 5 | `aeq` | 是 | 数值矩阵/空数组 | 线性等式约束左侧矩阵 | | 6 | `beq` | 是 | 数值数组/空数组 | 线性等式约束右侧向量 | | 7 | `lower_bounds` | 是 | 数值数组/空数组 | 变量下界 | | 8 | `upper_bounds` | 是 | 数值数组/空数组 | 变量上界 | ### `quadprog(h, f, a, b, aeq, beq)` 用途:求解标准二次规划问题。 参数个数:6 返回值:数组表;包含 `最优值`,并用整数键返回各变量解 | 参数位置 | 参数名 | 必填 | 接收类型 | 说明 | | -------- | ------ | ---- | --------------- | ---------------------- | | 1 | `h` | 是 | 数值矩阵 | 二次项系数矩阵 | | 2 | `f` | 是 | 数值数组 | 一次项系数 | | 3 | `a` | 是 | 数值矩阵/空数组 | 线性不等式约束左侧矩阵 | | 4 | `b` | 是 | 数值数组/空数组 | 线性不等式约束右侧向量 | | 5 | `aeq` | 是 | 数值矩阵/空数组 | 线性等式约束左侧矩阵 | | 6 | `beq` | 是 | 数值数组/空数组 | 线性等式约束右侧向量 | ### `linearProgramming(f, a, b, aeq, beq)` 用途:求解标准线性规划问题。 参数个数:5 返回值:数组表;包含 `最优值`,并用整数键返回各变量解 | 参数位置 | 参数名 | 必填 | 接收类型 | 说明 | | -------- | ------ | ---- | --------------- | ---------------------- | | 1 | `f` | 是 | 数值数组 | 目标函数线性系数 | | 2 | `a` | 是 | 数值矩阵/空数组 | 线性不等式约束左侧矩阵 | | 3 | `b` | 是 | 数值数组/空数组 | 线性不等式约束右侧向量 | | 4 | `aeq` | 是 | 数值矩阵/空数组 | 线性等式约束左侧矩阵 | | 5 | `beq` | 是 | 数值数组/空数组 | 线性等式约束右侧向量 | ### `quadLagR(h, f, aeq, beq)` 用途:用拉格朗日方法求解带等式约束的二次规划问题。 参数个数:4 返回值:数组表;包含 `最优值`,并用整数键返回各变量解 | 参数位置 | 参数名 | 必填 | 接收类型 | 说明 | | -------- | ------ | ---- | -------- | -------------------- | | 1 | `h` | 是 | 数值矩阵 | 二次项系数矩阵 | | 2 | `f` | 是 | 数值数组 | 一次项系数 | | 3 | `aeq` | 是 | 数值矩阵 | 线性等式约束左侧矩阵 | | 4 | `beq` | 是 | 数值数组 | 线性等式约束右侧向量 | ### `ozProg(f, a, b)` 用途:求解 0/1 规划问题。 参数个数:3 返回值:数组表;包含 `最优值`,并用整数键返回各变量解 | 参数位置 | 参数名 | 必填 | 接收类型 | 说明 | | -------- | ------ | ---- | -------- | ---------------------- | | 1 | `f` | 是 | 数值数组 | 目标函数线性系数 | | 2 | `a` | 是 | 数值矩阵 | 线性不等式约束左侧矩阵 | | 3 | `b` | 是 | 数值数组 | 线性不等式约束右侧向量 | ### `quadTrackRoute(h, f, a, b, aeq, beq, x0)` 用途:用路径跟踪法求解二次规划问题。 参数个数:7 返回值:数组表;包含 `最优值`,并用整数键返回各变量解 | 参数位置 | 参数名 | 必填 | 接收类型 | 说明 | | -------- | ------ | ---- | --------------- | ---------------------- | | 1 | `h` | 是 | 数值矩阵 | 二次项系数矩阵 | | 2 | `f` | 是 | 数值数组 | 一次项系数 | | 3 | `a` | 是 | 数值矩阵/空数组 | 线性不等式约束左侧矩阵 | | 4 | `b` | 是 | 数值数组/空数组 | 线性不等式约束右侧向量 | | 5 | `aeq` | 是 | 数值矩阵/空数组 | 线性等式约束左侧矩阵 | | 6 | `beq` | 是 | 数值数组/空数组 | 线性等式约束右侧向量 | | 7 | `x0` | 是 | 数值数组 | 初始解 | ### `intLinProg(f, a, b, aeq, beq, integer_indices)` 用途:求解整数线性规划问题。 参数个数:6 返回值:数组表;包含 `最优值`,并用整数键返回各变量解 | 参数位置 | 参数名 | 必填 | 接收类型 | 说明 | | -------- | ----------------- | ---- | --------------- | ------------------------------------------------------ | | 1 | `f` | 是 | 数值数组 | 目标函数线性系数 | | 2 | `a` | 是 | 数值矩阵/空数组 | 线性不等式约束左侧矩阵 | | 3 | `b` | 是 | 数值数组/空数组 | 线性不等式约束右侧向量 | | 4 | `aeq` | 是 | 数值矩阵/空数组 | 线性等式约束左侧矩阵 | | 5 | `beq` | 是 | 数值数组/空数组 | 线性等式约束右侧向量 | | 6 | `integer_indices` | 是 | 整数数组/空数组 | 按整数约束处理的变量下标;传空数组时按函数默认规则处理 |