Excel解算器曲线拟合失败 - MatLab重铸

时间:2014-07-02 17:50:54

标签: excel matlab curve-fitting solver

我对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<=100000C2>=C1, C3>=C2,C4>=C3 ...我还尝试在每个值之间创建另一列差异,然后说这些必须是{{1} }。

为了将其与我的校准曲线进行比较,我采用了校准曲线数据并减去了从diff>=0得到的数据,然后将其平方以创建平方误差的总和。例如:

QP

(Calibration-DerivedQP)^2=SS(x) <- where x represents the row number

Sum(SS(x))=SSE是我设置的求解器最小化。更改SSE后,所有内容都会自动更新。没有使用if语句,也没有使用数据透视表。

如果我删除类似于QP的参数,一切都很有效,除了派生值不可行。但是当使用这些参数运行求解器时,没有任何改变,无论我使用哪个猜测作为起始值(这样我都可以确保我没有猜到局部最小值),求解器无法改进我的解决方案。这让我相信我的参数中的某些内容正在被破坏,因为我可以通过猜测和检查轻松改进我的解决方案。剩下的求解器设置是默认值,并且使用进化方法,因为我的曲线不平滑(我不认为)我过去有这个工作,现在似乎有些东西被打破了。任何想法都表示赞赏!非常感谢!对不起,如果我遗漏任何重要信息。如果在这些语言中有更好的方法,我也熟悉matlab和R.

1 个答案:

答案 0 :(得分: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。

让求解器工作的提示: 尝试并使用电子表格来设置约束(除了边界,边界似乎很好),我在解算器中设置的约束越多,我的解决方案就越不可能工作。

希望有帮助,对不起,如果我提供了任何不正确的信息。