到飞机的最短距离
这个问题
这个例子展示了如何使用基于问题的方法来表述线性最小二乘问题。
问题是求离原点(点)的最短距离(0, 0, 0)
)到飞机上
.换句话说,这个问题就是要最小化
受限于
.这个函数f(x)称为目标函数而且
是一个等式约束.更复杂的问题可能包含其他等式约束、不等式约束和上界或下界约束。
提出问题
要使用基于问题的方法来阐明这个问题,请创建一个优化问题对象pointtoplane
.
点到平面=优化问题;
创建一个问题变量x
作为一个有三个分量的连续变量。
X = optimvar(“x”3);
创建目标函数并将其放入客观的
的属性pointtoplane
.
Obj = sum(x.^2);pointtoplane。客观的=obj;
创建线性约束并将其放入问题中。
V = [1,2,4];pointtoplane。约束条件= dot(x,v) == 7;
问题的公式是完整的。要检查错误,请检查问题。
显示(pointtoplane)
优化问题:求解:x最小化:sum(x.^2)服从:x(1) + 2*x(2) + 4*x(3) == 7
这个公式是正确的。
解决问题
打电话解决问题解决
.
[sol,fval,exitflag,output] = solve(pointtoplane);
使用lsqlin解决问题。最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
disp (sol.x)
0.3333 0.6667 1.3333
验证方案
为了验证解决方案,分析解决问题。回想一下,对于任何非零t
,向量T *[1,2,4] = T *v
垂直于平面吗
.所以解点xopt
是t * v
的价值t
满足方程点(t*v,v) = 7
.
T = 7/ (v,v)
T = 0.3333
Xopt = t*v
xopt =1×30.3333 0.6667 1.3333
确实,向量xopt
等于这个点吗sol.x
那解决
发现。