---
source_url: https://docs.dolphindb.cn/zh/funcs/q/qclp.html
fetched_at: 2026-05-19T09:34:40Z
category: funcs
title: qclp
sha1: a6b198abc962c22ee2b95b6389f57b31294d77b3
---

# qclp

## 语法

`qclp(r, V, k, [A], [b], [Aeq], [beq], [x0], [c], [eps], [alpha])`

## 详情

用一个线性目标函数和一组包含二次约束的约束条件求解下列优化问题。

  
![image](../../images/qclp.png)  

结果是一个包含2个元素的元组。第一个元素是目标函数的最小值。第二个元素是目标函数值最小时的x值。

## 参数

**V**，**A** 和 **Aeq** 是列数相同的矩阵。

**r**，**b** 和 **beq** 是向量。

**k** 是一个正标量。

**x0** 向量绝对值不等式约束的系数向量。

**c** 一个非负数字，表示绝对值不等式约束的右侧常量系数。

**eps** 正浮点数，表示求解的精度。默认值为1e-6，范围为 [1e-4,
1e-9]。通过减小该参数值以获得更高精度的解。如果该参数设置值超过规定范围，则会自动调整为默认值。

**alpha** 正浮点数，表示松弛参数。默认值为1.5，范围为 (0, 2)。通过增加 alpha
的值来加快求解速度。如果该参数设置值超过规定范围，则会自动调整为默认值。

## 返回值

长度为2的元组。第一个元素是目标函数的最小值。第二个元素是使目标函数达到最小值的变量值。

## 例子

根据每只股票的预期收益与收益率协方差矩阵，以及如下限制 (1) 投资组合的收益率波动率不超过11% (2)
每只股票的权重在10%到50%之间，以决定最优投资组合。

```dolphindb
r = 0.18 0.25 0.36
V= 0.0225 -0.003 -0.01125 -0.003 0.04 0.025 -0.01125 0.025 0.0625 $ 3:3
k = pow(0.11, 2)
A = (eye(3) join (-1*eye(3))).transpose()
b = 0.5 0.5 0.5 -0.1 -0.1 -0.1
Aeq = (1 1 1)$1:3
beq = [1]

x = qclp(-r, V, k, A, b, Aeq, beq);

x[1];
//Output: [0.5,0.1763,0.3237]
```

在上例的基础上，添加绝对值约束：| x1 - 0.35| + | x2 - 0.35 | + | x3 - 0.35 | ≤ 0.3：

```dolphindb
x0 = [0.35, 0.35, 0.35];
c = 0.3;
y = qclp(-r, V, k, A, b, Aeq, beq, x0, c);

y[1]
//Output: [0.475,0.248,0.277]
```
