此示例显示如何使用基于问题的方法来制定线性最小二乘问题。
问题是找到距离原点的最短距离(该点[0,0,0]
)到飞机
。换句话说,这个问题是最小化
受约束
。功能F(X)被称为目标函数和
是一个平等约束。更复杂的问题可能包含其他平等约束,不等式约束和上限或下限约束。
要使用基于问题的方法制定此问题,请创建一个调用的优化问题对象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
垂直于飞机
。所以解决方案点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.
那解决
发现。