lsqlin
解算器此示例显示如何使用优化实时编辑器任务,用于解决约束最小二乘问题。
本例中的问题是找到平面上的点x1.+ 2x2.+ 4x3.= 7最接近原点的。解决此问题的最简单方法是最小化与点之间距离的平方x= (x1.,x2.,x3.)在到原点的平面上,返回与最小化实际距离相同的最佳点。因为距离任意点的平方(x1.,x2.,x3.)到原点是 ,您可以将问题描述如下:
受约束
x1.+ 2x2.+ 4x3.= 7. | (1) |
功能F(x)是目标函数和x1.+ 2x2.+ 4x3.= 7是一个平等约束。更复杂的问题可能包含其他等式约束、不等式约束以及上限或下限约束。
将问题设置为lsqlin
中的解算器优化实时编辑器任务。
通过单击新的现场脚本按钮文件关于家标签。
插入优化实时编辑器任务。点击插入选项卡,然后,在密码节,选择任务>优化.
在指定问题类型在任务的第节中,选择目标>最小二乘法和约束>线性等式.
任务选择lsqlin
作为推荐的解算器。
获取数据C
和D
进入MATLAB®在工作区中,单击分段按钮插入选项卡。在新部分中,输入以下代码。
C=眼睛(3);d=零(3,1);
设置线性等式约束矩阵和向量。
Aeq=[1 2 4];beq=7;
按运行该部分Ctrl+Enter. 这会将变量放入工作区中。
在选择问题数据在任务的第节中,将条目设置为其相应的值。
按运行解算器Ctrl+Enter.查看退出消息。
要找到解决方案,请查看任务顶部。
求解器返回变量解决方案
和客观价值
转到MATLAB工作区。
在任务下方插入分节符。将这些行放在新的部分中。
显示(解决方案)显示(目标值)
按运行该部分Ctrl+Enter.