我对excel的求解器有一些奇怪的问题 . 基本上我要做的是曲线拟合我的数据 . 我有两条不同的线,一条是我的校准线,另一条是我试图匹配校准线的派生线 . 我的行取决于19个不同的变量参数(也许这个太多了?我没有结果就尝试过更少)我正在使用求解器调整这些参数以使两条线尽可能接近 .
例如:
QP列包含我想要更改的变量,更改这些变量将使我更接近或远离校准曲线 . QP的每个后续值必须大于第一个值 .
Col=B Col=C
Power .QP_'
1 ..... 57000
2 ..... 65000
3 ..... 70000
4 ..... 80000
5 ..... 80000
因此我的excel求解器参数如下所示: C1:C19>=0,C1:C19<=100000
和 C2>=C1, C3>=C2,C4>=C3
...我还尝试在每个值之间创建另一列差异,然后说这些必须是 diff>=0
.
为了将其与我的校准曲线进行比较,我获取了校准曲线数据,并从 QP
中减去了我的数据,然后将其平方以创建平方误差的总和 . 例如:
(Calibration-DerivedQP)^2=SS(x) <- where x represents the row number
Sum(SS(x))=SSE
SSE
是我设置的求解器最小化 . 更改 QP
后,所有内容都会自动更新 . 没有使用if语句,也没有使用数据透视表 .
如果我删除类似于 C2>=C1
的参数,一切都很完美,除了派生值不可行 . 但是当使用这些参数运行求解器时,没有任何改变,无论我用哪个猜测作为起始值(这样我就可以确保我没有平稳(我不认为)我过去和现在这样做了似乎有些东西被打破 . 任何想法都表示赞赏!非常感谢!如果我遗漏了任何重要信息,请抱歉 . 如果这些语言有更好的方法,我也熟悉matlab和R.
1 回答
我找到了解决问题的方法 . 我不知道这对其他人是否有帮助,因为我的问题模糊而且非常具体 . 话虽这么说,我的问题是在约束 . 我更改了我的Excel工作表上的一些数据,以减少约束 . 示例可能如下所示:
猜猜..........平方......添加.................. Q
-12 ..............( - 12)^ 2 ....... 0
-16 ..............( - 16)^ 2 ....... =( - 16)^ 2 0 ............. 256
7 .................(7)^ 2 .......... =(7)^ 2(-16)^ 2 0 .... 305
现在我允许求解器猜测任何受限制最小的数字 . 从本质上讲,现在正在发生的事情是excel表允许求解器使其起作用的任何猜测 . 通过对数字求平方,它给出了正值,并且添加的列确保每个连续值等于或大于第一个值 . 这意味着限制很少 . 我还将解算器选项从evolutionary改为GRG Nonlinear .
让求解器工作的提示:尝试并使用电子表格来设置约束(除了边界,边界似乎很好),我在解算器中设置的约束越多,我的解决方案就越不可能工作 .
希望有所帮助,对不起,如果我提供了任何不正确的信息 .