好的,所以我一直在使用lsqlin来解决由下面的矩阵A给出的约束线性最小二乘问题,其中A = M(:,1:end-1)和b = M(:,end),以及Pxyz = [0.5000,0.9000]。
M =
-0.9000 0 0.3600
0.9000 0 1.2600
0 -0.9000 0
0 0.9000 1.6200
[X_result,resnorm,residual,exitflag,output,lambda]=...
lsqlin(eye(2),Pxyz, M(:,1:end-1), M(:,end),[],[],[],[],Pxyz,...
optimoptions('lsqlin','Display','off','MaxIter',100));
我的问题是lambda.ineqlin似乎不正确(或者我不知道如何解释)。
从这个问题我怀疑x(第一个变量)被限制为-0.4&lt; = x&lt; = 1.4并且y(第二个变量)被限制为0 <= y <= 1.8,而lambda.ineqlin的结果是:
lambda.ineqlin =
0
0
0
0
我在这里失踪了什么?
答案 0 :(得分:0)
我正在回答我自己的问题,因为我认为这可能与某人有关。
lambda表示拉格朗日乘数而不是方程的直接界。在所给出的示例中,函数的全局最大值是X_result = Pxyz,其遵守约束Ax&lt; = b,导致没有活动约束并且因此导致拉格朗日乘数为空。
在另一个视图中,该结果也可以在无约束的线性最小二乘中获得,因为全局最大值遵守约束Ax <= b。