主要内容

使用优化实时编辑器任务lsqlin解算器

此示例显示如何使用优化实时编辑器任务,用于解决约束最小二乘问题。

本例中的问题是找到平面上的点x1.+ 2x2.+ 4x3.= 7最接近原点的。解决此问题的最简单方法是最小化与点之间距离的平方x= (x1.,x2.,x3.)在到原点的平面上,返回与最小化实际距离相同的最佳点。因为距离任意点的平方(x1.,x2.,x3.)到原点是 x 1. 2. + x 2. 2. + x 3. 2. ,您可以将问题描述如下:

x F ( x ) = x 1. 2. + x 2. 2. + x 3. 2. ,

受约束

x1.+ 2x2.+ 4x3.= 7. (1)

功能F(x)是目标函数x1.+ 2x2.+ 4x3.= 7是一个平等约束。更复杂的问题可能包含其他等式约束、不等式约束以及上限或下限约束。

使用优化

将问题设置为lsqlin中的解算器优化实时编辑器任务。

  1. 通过单击新的现场脚本按钮文件关于标签。

    新建实时脚本按钮

  2. 插入优化实时编辑器任务。点击插入选项卡,然后,在密码节,选择任务>优化

  3. 指定问题类型在任务的第节中,选择目标>最小二乘法约束>线性等式

    任务选择lsqlin作为推荐的解算器。

  4. 获取数据CD进入MATLAB®在工作区中,单击分段按钮插入选项卡。在新部分中,输入以下代码。

    C=眼睛(3);d=零(3,1);
  5. 设置线性等式约束矩阵和向量。

    Aeq=[1 2 4];beq=7;
  6. 按运行该部分Ctrl+Enter. 这会将变量放入工作区中。

  7. 选择问题数据在任务的第节中,将条目设置为其相应的值。

    选择变量C、d、Aeq和beq,不选择x0

  8. 按运行解算器Ctrl+Enter.查看退出消息。

    退出消息报告找到的满足约束的最小值

  9. 要找到解决方案,请查看任务顶部。

    返回的变量是solution和objectiveValue

    求解器返回变量解决方案客观价值转到MATLAB工作区。

  10. 在任务下方插入分节符。将这些行放在新的部分中。

    显示(解决方案)显示(目标值)
  11. 按运行该部分Ctrl+Enter

    解决方案=[1/3,2/3,4/3]。目标=7/3。

另见

|

相关的话题