这个例子展示了如何使用基于问题的方法来描述线性最小二乘问题。
问题是找到距原点(点)的最短距离[0,0,0]
)上飞机
换言之,这个问题是为了最小化
受约束
. 功能F(x)被称为目标函数和
是一个平等约束. 更复杂的问题可能包含其他等式约束、不等式约束以及上限或下限约束。
要使用基于问题的方法来描述此问题,请创建一个名为点平面
.
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
垂直于平面
. 因此,解决问题的关键是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
那个解决
发现。