模型调整 - 每行优化各位,
我将首先尝试用一个例子来介绍我面临的问题。 想象一个有 100 行和 6 列(PAR1、PAR2、VAR、MOD、MEA、ERR)的表格。
列 MOD 包含依赖于 3 个参数 P1、P2 和 VAR 的模型(= 公式)。
P1 和 P2 列的值是固定的,并且每行都不同。
VAR 列包含第三个参数,它在开始时被初始化为默认值(假设为 1)。 举一个具体的例子,假设 MOD 包含以下公式:MOD[i] = 3.P1[i]^3+COS(2.P2[i]^2+VAR[i])。
MEA 列包含测量结果,每行不同。
最后,ERR 包含模型和测量值之间的二次误差,也就是说:ERR[i] = (MOD[i] - MEA[i])^2。
我的目标是为每一行确定 VAR[i] 的值,以便模型的值等于测量值。
在 Excel 中,我会使用规划求解来做到这一点。 我们还可以想象一个 JSL 脚本,其中对于每一行,一个算法(简单二分法、牛顿法、布伦特法等)将通过以下方式找到函数 F[i] = MOD[i] - MEA[i] 的根最小化数量 ERR[i]。
但是,我想知道是否有更简单的替代方法来做到这一点? 使用 JMP 平台?
等待您的友好答复。
斯蒂芬
PS:请原谅我在社区中的第一个贡献/问题! 
回复:模型调整 - 每行优化完美的! 我不知道这两个函数 - Minimize() 和 Constrained Minimize() - 已经存在。 非常感谢你的帮助
回复:模型调整 - 每行优化您可以对所需的成本函数使用 minimize() 以获得 VAR 的最佳值,从而优化循环中的每一行。以下是您可以如何设置类似的东西:
dt = Current Data Table();
cost = expr(abs(3 * :PAR1[i] ^ 3 + Cos( 2 * :PAR1[i] ^ 2 + VAR1 ) - :MEA[i]));
for(i=1, i<=N Row(dt), i++,
:VAR[i] = Minimize(cost,{VAR1(-5, 5)});
);由于您只优化 1 个误差(无需最小化误差平方和),因此您可以只使用更简单的误差成本函数而无需平方。
minimize() 可以使用更多的参数。另请查看受约束的最小化 ()。这似乎适用于我设置的测试表,只要我为 MEA 设置合理的值,错误就会最小化。