【发布时间】:2013-08-06 08:34:35
【问题描述】:
我想估计三个参数,同时使用 MATLAB 中的函数 fmincon 最小二乘二次误差。我的目标函数如下所示:
f = @(a,b,c) sum(sum(sum((M - a - b - c).^2)));
其中M 是尺寸为 20x7x16 的 3D 数组,估计参数 a, b, c 是尺寸分别为 20x1、7x1 和 16x1 的向量。为了估计它,我通过将向量 a 重复到数组 20x7x16 中来“制作”它们 3D,我对 b 和 c 做同样的事情。我需要向量 a 和 b 中的元素之和为 1 作为线性约束。我的问题有两个:
- 当 Aeq 是二维矩阵而 beq 是向量时,我应该如何指定线性约束?
- 如何设置
a,b,c的起点,以便 MATLAB 知道它们的估计值是在这个 3D 数组中重复的向量?
我想将 3D 数组 M 展开为 2D 矩阵并调整参数 a,b,c 但起点问题仍然存在,因为我必须将它们定义为向量而不是矩阵。
非常感谢您的想法和建议。可能我正在考虑复杂,还有另一种方法可以做到这一点。
提前谢谢你。
【问题讨论】: