【发布时间】:2021-05-21 22:24:34
【问题描述】:
在 MATLAB 中工作。我有以下等式:
S = aW + bX + cY + dZ
其中 S、W、X、Y 和 Z 都是已知的 n x 1 向量。我试图用基向量 W、X、Y 和 Z 的线性组合来拟合 S 的数据,其中常数(a、b、c、d)的约束大于 0。我已经设法做到了这在 Excel 的求解器中,并试图在 MATLAB 上解决它,针对 fmincon 之类的函数,但我对 MATLAB 并不太熟悉,觉得我误解了 fmincon。
我正在寻求帮助,以了解 fmincon 对我的问题的使用,或重定向到更有效的解决方法。
目前我有:
initials = [0.2 0.2 0.2 0.2];
fun = @(x)x(1)*W + x(2)*X + x(3)*Y + x(4)*Z;
lb = [0,0,0,0];
soln = fmincon(fun,initials,data,b,Aeq,beq,lb,ub);
我收到一条错误消息,指出“A 必须有 4 列”。其中 A 指的是我的变量数据,它对应于上述等式中的我的 S。我不明白为什么它需要 4 列。还要注意我上面的sn-p中没有明确定义的变量被定义为[],作为空间持有者。
【问题讨论】:
-
请说明您需要什么帮助。 “任何帮助表示赞赏”是too broad for Stack Overflow。如果您将您的尝试包含为minimal reproducible example 并描述它为什么不起作用,那将会有所帮助。如果相关,请记住包含完整的堆栈跟踪!这是一个有用的question checklist。请使用tour 并阅读How to Ask。欢迎来到 SO!
标签: matlab optimization solver data-fitting