IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数学建模如何用Matlab工具箱偷懒? OptimizationToolbox官方文档解读与快速上手,轻松解决优化问题。 -> 正文阅读

[数据结构与算法]数学建模如何用Matlab工具箱偷懒? OptimizationToolbox官方文档解读与快速上手,轻松解决优化问题。

前言

Matlab 中有很多工具箱是可以通过简单操作实现很多很强大的功能的,熟练使用Matlab的工具箱可以极大地便利我们日常的学习生活,在数学建模比赛中更是可以节约敲代码、debug的时间,在前期也能降低学习成本。本篇文章将重点介绍OptimizationToolbox工具箱的功能,以及通过实例教大家如何快速上手这个工具箱。本文基于的是Matlab的官方文档,使用的Matlab版本为R2021a本文不涉及任何数学原理或公式推导,这里不教如何制冷,只教如何使用冰箱!
未下载好工具箱的同学可以通过点击任意门中的工具箱下载学习如何下载。

Optimization Toolbox工具箱功能介绍

  • 本工具箱提供寻找满足让目标函数在限制条件下最大或最小时的参数。该工具箱可以解决以下问题,线性规划(linear programming/LP)混合整数线性规划(mixed-integer linear programming /MILP)二次规划( quadratic programming/QP)二阶锥规划(second-order cone programming/SOCP)nonlinear programming /非线性规划(NLP)约束线性最小二乘/constrained linear least squares非线性最小二乘/nonlinear least squares非线性方程/nonlinear equations,注意:本工具箱的求解器中包含遗传算法,因此也可以很轻松地实现遗传算法(翻译可能有错,以英文为准).
  • 可以用函数和矩阵或指定反映基础数学的变量表达式来定义优化问题,通过选择目标和约束函数的类型可以自动列出一些更快和更准确的解决方案。
  • 工具箱求解器可以解决连续离散问题,执行权衡分析,并将优化方法合并到算法和应用程序中。该工具箱允许自行执行设计优化任务,包括参数估计、组件选择和参数调优,在投资组合优化能源管理贸易以及生产计划等应用中找到最佳的解决方案。

界面介绍

如何打开工具箱

  • 命令行输入optimtool
    在这里插入图片描述
    回车键确认后会弹出一个提示框(如下)
    在这里插入图片描述
    点击中间的按钮即可。

工具箱界面详细介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

简单实例(快速上手)

明确优化的目标函数以及约束条件

接下来我将以下面这个例子来简单介绍如何使用这个工具箱
寻找最优解使得F = 100*(y-x^2 )^2 -(1-x)^2取最小值
约束条件为
x^2+ y^2 ≤2
-2 ≤ x,y ≤ 2

输入参数

将初始点为x0(0,0)以及R = 2(将使用的参数)保存到工作区

  • 在红色框输入后同时按下CTRLENTER 即可保存到工作区,保存成功时右侧工作区可以见到这两个参数(蓝色框)这里我选择使用一个矩阵来代替x,y.在这里插入图片描述

选择求解器(优化器)

  • 根据自己的实际情况选择即可,选择完目标函数和约束条件后,工具箱会自动选择一个求解器(优化器).
    在这里插入图片描述

编写目标函数以及约束函数

  • 注意: 函数的返回值不能更改,只更改形参以及内容即可.
  • 注意约束函数中的不等式的书写方式
    在这里插入图片描述

确定目标和约束函数的参数

  • Objective function中选择Local function并选择你编写好的目标函数如果有多个点击new即可
  • 选择参数初值 Intial point
  • 选择约束函数方法和第一点一样
  • 选择函数输入
  • 选择需要画图展示的内容(工具箱执行优化后展示的内容),这里展示的是目标函数在每次迭代中的值
    在这里插入图片描述
    在这里插入图片描述

执行优化

在以上最好后选中Optimize Live Editor Task部分,然后同时按下CTRLENTER 即可,或在空白处点击鼠标右键选择Run Section即可
在这里插入图片描述

  • 点击后工具箱开始优化,并将结果展示出来(展示的为你前面选择需要展示的图)
    在这里插入图片描述

查看结果

除了在自动画出的图中查看结果也可以通过运行Results部分查看结果

  • 选中这个部分后同时按下CTRLENTER 即可.
    在这里插入图片描述

工具箱下载

  • 首先点击工具栏中的Apps,然后点击Gets More Apps,等待弹出的窗口。
    在这里插入图片描述

  • 在搜索框中输入 Optimization Toolbox
    在这里插入图片描述

  • 在搜索结果中点击蓝字进入详情页(这两个工具箱都下载)
    在这里插入图片描述

  • 进入详情页后点击Add,然后选择Add to matlab ,按提示安装即可。(由于我已经安装了,所以这没有显示Add按钮)
    在这里插入图片描述

总结

Matlat的工具箱有着强大的能力,而或许会有部分同学在看到全是英文的就放弃研究了,而学习这种最佳的方式应该是看官方文档,而官方文档也是全英的,所以希望通过这篇文章能够帮助有需要的同学简单了解如何使用这个工具箱,同时可以借助这篇文章研究下官方文档,本文并没有介绍完全工具箱所有的功能(功能太多)!还想学习什么工具箱可以评论下噢!都看到这了,要个赞不过分吧

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:25:47  更:2022-02-14 21:28:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:26:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码