我想估计三个参数,同时使用 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 并且我对 and 做同样的b事情c。我需要向量中元素的总和为a1b作为线性约束。我的问题有两个:
- 当 Aeq 是二维矩阵而 beq 是向量时,我应该如何指定线性约束?
- 如何设置起点,
a,b,c以便 MATLAB 知道它们的估计值是在这个 3D 数组中重复的向量?
我想将 3D 数组展开M为 2D 矩阵并调整参数a,b,c,但起点的问题仍然存在,因为我必须将它们定义为向量而不是矩阵。
我将非常感谢您的想法和建议。可能我正在考虑复杂,还有另一种方法可以做到这一点。
先感谢您。