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