R:从Excel解算器转换为lpSolve

时间:2017-08-21 14:22:41

标签: r lpsolve

直到最近,我的R使用仅限于使用ggplot绘图等。目前,我正在尝试使用lpSolve解决R的线性问题,这被证明是相当挑战。我试图获得与MS Excel中的Solver相似的结果。

我得到了什么:

A:带有观察结果的20x6矩阵。

> head(Filtered)
    C1   C2    C3     C4     C5   C6
1 15.6 17.6  12.0   12.0   27.8 15.0
2 20.0 18.2  10.7    9.3   17.8 24.0
3 20.5 19.5  11.3   10.8   17.2 20.7
4 21.3 20.9  11.6   10.5   19.7 15.9
5 26.7 28.7  14.9   10.2    8.9 10.5
6 25.5 28.1  14.7    9.9    9.9 11.9

B:带有观察结果的20x1载体。

> measSSA
 [1] 19.4 29.3 29.5 33.9 51.0 45.0 30.8 39.9 31.3 41.3 33.1 32.6 36.9 35.6 41.3 27.7 35.0 27.8 34.6 13.4

c:具有约束决策变量的6x1向量

> c
[1] 0.95 2.79 3.91 5.74 5.29 5.64

d:具有约束决策变量的6x1向量

> d
[1]  0.0022  4.0000 10.7000 21.1000 44.5000 70.6000
然后,我根据A和向量c和d中的相应行计算B中每个元素的模拟值。

Constant = 0.00377
Result = t(t((Constant*A)%*%diag(c))/d)
Simulated = rowSums(Result)

我当时想要做的是最小化B和模拟矢量之间的均方误差,这将给我最佳拟合。

MSE = sum((B-Simulated)^2)/20

我想用lpSolve做的是改变向量c和d的值以最小化MSE。然而,虽然我能够将向量c和d作为约束变量放入lpSolve,但我无法将MSE设置为最小化目标。我该怎么做呢?

谢谢!

0 个答案:

没有答案