关于使用求解器方法的建议

时间:2016-05-18 16:03:57

标签: c# solver

我想使用非线性求解器来构建模型;附图解释了我的设置。

每个P(P1到P4)都有一个" (tau和f' s)需要由求解器解决。

约束条件是" f1和f2和f3的总和等等。"对于每个P,应该< = 1。

非常感谢任何帮助。我完全迷失在这里! enter image description here

添加了新图片。 " M"列通过使用" B6:G6"来计算。和" C17:G17"。 Qerror基于H17和M17。 即我需要通过更改" B6:G6"来最小化该错误。对于P1。同样我也是为P2做的。 enter image description here

1 个答案:

答案 0 :(得分:2)

您的更新可以更清晰地说明您的问题所在。但是,我仍在做一些假设...

  • 我认为你有114行数据/计算类似于第17行。
  • qError的计算仍然有点神秘。我认为它类似于(对于I6)=sum(M17:M130) - sum(H17:H130),以便考虑所有114个数据点。
  • 目标(I11)的计算似乎是=AVG(I6:I9)

如果我的假设大多正确,我会进行以下修改并设置Solver:

  1. 将qError计算更改为qError ^ 2。这将涉及添加一列来计算每个数据点的平方误差。如果这是Q列,则Q17的计算结果为=(M17-H17)^2,这将被填充。然后,I6中的计算将是=SUM(Q17:Q130)。 I7,8和9将需要类似的列和计算。
  2. 保持I11的计算不变,但是之前的更改现在是SUM(e ^ 2)。
  3. 在求解器对话框中

    1. "设定目标"是单元格$I$11
    2. "到:"是Min。
    3. "通过改变可变单元格:"是$B$6:$G$9
    4. &#34;受制约约束:&#34;是$C$11 <= 1$D$11 <= 1$E$11 <= 1$F$11 <= 1$G$11 <= 1
    5. 检查&#34;使无约束变量非负面&#34;
    6. &#34;选择求解方法:&#34;是&#34; GRG Nonlinear&#34;
    7. 如果求解器没有找到解决方案,您可能需要调整&#34;选项&#34;。因为您有大量参数,所以可能需要增加允许的迭代次数。

      如果我的假设严重错误,请告诉我。