主要内容

到飞机的最短距离

问题

这个例子展示了如何使用基于问题的方法来描述线性最小二乘问题。

问题是找到距原点(点)的最短距离[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. . 功能F(x)被称为目标函数 x 1. + 2. x 2. + 4. x 3. = 7. 是一个平等约束. 更复杂的问题可能包含其他等式约束、不等式约束以及上限或下限约束。

设置问题

要使用基于问题的方法来描述此问题,请创建一个名为点平面.

pointtoplane=优化问题;

创建一个问题变量x作为包含三个分量的连续变量。

x=optimvar(“x”,3);

创建目标函数并将其放入客观的性质点平面.

obj=总和(x.^2);pointtoplane.Objective=obj;

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

v=[1,2,4];约束=点(x,v)==7;

问题公式已完成。若要检查错误,请查看问题。

表演(pointtoplane)
优化问题:求解:x最小化:求和(x.^2)服从:x(1)+2*x(2)+4*x(3)==7

这个公式是正确的。

解决问题

打电话解决问题解决.

[sol,fval,exitflag,output]=求解(pointtoplane);
使用lsqlin解决问题。发现满足约束的最小值。优化完成是因为目标函数在可行方向上不递减,在最优性公差值范围内,且约束满足在约束公差值范围内。
显示(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/点(v,v)
t=0.3333
xopt=t*v
xopt=1×30.3333 0.6667 1.3333

事实上,向量xopt这一点是等价的溶胶x那个解决发现。

相关话题