使用求解器方法的建议
Recommendation on using solver method
我想使用非线性求解器来构建模型;附图说明了我的设置。
每个 P(P1 到 P4)都有一个“(tau 和 f)列表,需要由求解器求解。
约束是这样的,每个 P 的 "sum of f1 and f2 and f3 respectively etc." 应该 <=1。
非常感谢任何帮助。我完全迷失在这里!
添加了一张新图片。
"M"列是使用"B6:G6"和"C17:G17"计算得到的。 Qerror 基于 H17 和 M17。
即我需要通过更改 P1 的 "B6:G6" 来最小化该错误。同样,我为 P2 等做这件事。
enter image description here
您的更新更清楚地说明了您的问题所在。但是,我仍然在做一些假设......
- 我认为您有 114 行数据/计算类似于第 17 行。
- qError的计算还是有点迷。我认为它类似于(对于 I6)
=sum(M17:M130) - sum(H17:H130)
,以便考虑所有 114 个数据点。
- objective (I11) 的计算似乎是
=AVG(I6:I9)
。
如果我的假设大部分是正确的,我将进行以下修改并设置求解器:
- 将 qError 计算更改为 qError^2。这将涉及添加一列来计算每个数据点的平方误差。如果这是 Q 列,则 Q17 的计算结果为
=(M17-H17)^2
并且会被填满。然后,I6 中的计算将是 =SUM(Q17:Q130)
。 I7、8 和 9 需要类似的列和计算。
- 保持 I11 的计算不变,但经过之前的更改,现在是 SUM(e^2)。
在求解器对话框中
- "Set Objective" 是单元格
$I
.
- "To:" 是最小
- "By Changing Variable Cells:" 是
$B:$G
- "Subject to the Constraints:" 是
$C <= 1
、$D <= 1
、$E <= 1
、$F <= 1
、$G <= 1
- 勾选"Make Unconstrained Variables Non-Negative"
- "Select Solving Method:" 是 "GRG Nonlinear"
如果求解器没有找到解决方案,您可能需要调整 "Options"。由于您有大量参数,因此可能需要增加允许的迭代次数。
如果我的假设有重大错误,请告诉我。
我想使用非线性求解器来构建模型;附图说明了我的设置。
每个 P(P1 到 P4)都有一个“(tau 和 f)列表,需要由求解器求解。
约束是这样的,每个 P 的 "sum of f1 and f2 and f3 respectively etc." 应该 <=1。
非常感谢任何帮助。我完全迷失在这里!
添加了一张新图片。 "M"列是使用"B6:G6"和"C17:G17"计算得到的。 Qerror 基于 H17 和 M17。 即我需要通过更改 P1 的 "B6:G6" 来最小化该错误。同样,我为 P2 等做这件事。 enter image description here
您的更新更清楚地说明了您的问题所在。但是,我仍然在做一些假设......
- 我认为您有 114 行数据/计算类似于第 17 行。
- qError的计算还是有点迷。我认为它类似于(对于 I6)
=sum(M17:M130) - sum(H17:H130)
,以便考虑所有 114 个数据点。 - objective (I11) 的计算似乎是
=AVG(I6:I9)
。
如果我的假设大部分是正确的,我将进行以下修改并设置求解器:
- 将 qError 计算更改为 qError^2。这将涉及添加一列来计算每个数据点的平方误差。如果这是 Q 列,则 Q17 的计算结果为
=(M17-H17)^2
并且会被填满。然后,I6 中的计算将是=SUM(Q17:Q130)
。 I7、8 和 9 需要类似的列和计算。 - 保持 I11 的计算不变,但经过之前的更改,现在是 SUM(e^2)。
在求解器对话框中
- "Set Objective" 是单元格
$I
. - "To:" 是最小
- "By Changing Variable Cells:" 是
$B:$G
- "Subject to the Constraints:" 是
$C <= 1
、$D <= 1
、$E <= 1
、$F <= 1
、$G <= 1
- 勾选"Make Unconstrained Variables Non-Negative"
- "Select Solving Method:" 是 "GRG Nonlinear"
如果求解器没有找到解决方案,您可能需要调整 "Options"。由于您有大量参数,因此可能需要增加允许的迭代次数。
如果我的假设有重大错误,请告诉我。