主要内容

到飞机的最短距离

问题

此示例显示如何使用基于问题的方法来制定线性最小二乘问题。

问题是找到距离原点的最短距离(该点[0,0,0])到飞机 X 1 + 2 X 2 + 4. X 3. = 7. 。换句话说,这个问题是最小化 F X = X 1 2 + X 2 2 + X 3. 2 受约束 X 1 + 2 X 2 + 4. X 3. = 7. 。功能FX)被称为目标函数 X 1 + 2 X 2 + 4. X 3. = 7. 是一个平等约束。更复杂的问题可能包含其他平等约束,不等式约束和上限或下限约束。

设置问题

要使用基于问题的方法制定此问题,请创建一个调用的优化问题对象Pointtoplane.

PointToplane = OptimProbled;

创建一个问题变量X作为三个组件的连续变量。

x = Optimvar('X',3);

创建目标函数并将其放入客观的财产Pointtoplane.

obj = sum(x。^ 2);pointtoplane.objective = obj;

创建线性约束并将其放在问题中。

v = [1,2,4];Pointtoplane.Constraints = Dot(x,v)== 7;

问题配方完成。要检查错误,请查看问题。

展示(Pointtoplane)
优化问题:求解:x最小化:总和(x。^ 2)受以下:x(1)+ 2 * x(2)+ 4 * x(3)== 7

制剂是正确的。

解决这个问题

通过呼叫来解决问题解决

[SOL,FVAL,EXITFLAG,输出] =求解(Pointtoplane);
使用LSQLIN解决问题。最低发现满足约束。优化完成,因为目标函数在可行的方向上不降低,到在最优性公差的值内,并且对约束公差的值满足约束。
disp(sol.x)
0.3333 0.6667 1.3333

验证解决方案

要验证解决方案,分析解决问题。回想一下,对于任何非零T.,矢量t * [1,2,4] = t * v垂直于飞机 X 1 + 2 X 2 + 4. X 3. = 7. 。所以解决方案点XOPT.电视为了价值T.满足了方程式点(t * v,v)= 7

t = 7 / dot(v,v)
t = 0.3333.
xopt = t * v
Xopt =.1×3.0.3333 0.6667 1.3333

的确,向量XOPT.相当于点sol.x.解决发现。

相关话题