Day30_0.1基础学习MATLAB学习小技巧总结(30)——优化工具箱及

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。

参考书目:

1、《MATLAB基础教程 (第三版) (薛山)》

2、《MATLAB R2020a完全自学一本通》

3、《MATLAB官方帮助文档》

声明:文章内的代码和内容可以引用复制,只要标注出处即可

在本章中的代码,会以资源的形式发在我的博客里供大家免费下载学习

最优化方法专门研究如何从多个方案中科学合理地提取出最佳方案。这一方法在生活中非常常见,人们通常会针对同一个问题提出多种解决方案,并通过各种论证和比较来选择最佳方案。由于优化问题无处不在,最优化方法的应用和研究已深入到土木工程、机械工程、化学工程、运输调度、生产控制、经济规划和经济管理等多个领域,并取得了显著的经济效益和社会效益。

用最优化方法解决优化问题的技术被称为最优化技术,主要包含两个方面的内容:

1. 建立数学模型:使用数学语言描述优化问题。模型中的数学关系式反映最优化问题所追求的目标及各种约束条件。

**2. 数学求解:**在建立数学模型后,选择合适的优化方法进行求解。

1 优化工具箱中的常用函数

首先介绍优化工具箱中的几个常用函数。利用optimset函数,可以创建和编辑参数结构;利用optimget函数,可以获得options优化参数。

1.1 optimset函数

optimset函数用于创建或编辑优化选项参数结构。其调用格式如下:

**options=optimset(Name,Value):**返回options,其中包含使用一个或多个名称-值对组参数设置的指定参数。

**optimset(不带输入或输出实参):**显示完整的形参列表及其有效值。

**options=optimset(不带输入参数):**创建options 结构体options,其中所有参数设置为[]。

**options=optimset(optimfun)**创建options,其中包含与优化函数optimfun相关的所有参数名称及其默认值。

**options=optimset(oldopts,Name,Value):**创建oldopts的副本,并使用一个或多个名称-值对组参数修改指定的参数。

**options=optimset(oldopts,newopts):**合并现有options结构体oldopts和新options结构体newopts。newopts中拥有非空值的任何参数将覆盖oldopts中对应的参数。

1.2 optimget函数

optimget函数用于获取优化选项参数值。其调用格式如下:

**val=optimget(options,'param'):**返回优化options结构体options中指定参数的值。用户只需键入参数唯一定义名称的几个前导字符即可。参数名称忽略大小写。

如果优化 options 结构体options 中未定义指定的参数,则val=optimget(options,'param',default)返回。default。请注意,这种形式的函数主要由其他优化函数使用。

(1)下面的语句创建一个名为options的优化选项结构,其中显示参数设置为iter,TolFun参数设置为 1e-8。

Matlab 复制代码
options = optimset('Display','iter','TolFun',1e-8)

(2)下面的语句创建一个名为options的优化结构的备份,用于改变TolX参数的值,将新值保存到optnew参数中。

Matlab 复制代码
options = optimset(options,'Tolx',1e-4)

(3)下面的语句返回options优化结构,其中包含所有的参数名和与fminbnd函数相关的默认值。

Matlab 复制代码
options = optimset('fminbnd')

(4)若只希望看到fminbnd函数的默认值,则只需要简单地输入下面的语句就可以了。

Matlab 复制代码
optimset fminbnd
optimset('fminbnd')

(5)可以使用下面的命令获取TolX参数的值:

Matlab 复制代码
Tol = optimget(options,'Tolx')

还有其他的最优化函数,如下表所示:

|--------------------|--------------|
| 函数 | 描述 |
| fgoalattain | 多目标达到问题 |
| fminbnd | 有边界的标量非线性最小化 |
| fmincon | 有约束的非线性最小化 |
| fminimax | 最大最小化 |
| fminsearch,fminunc | 无约束非线性最小化 |
| fserminf | 半无限问题 |
| linprog | 线性课题 |
| quadprog | 二次课题 |
| solve | 线性方程求解 |
| fsolve | 非线性方程求解 |
| fzero | 标量非线性方程求解 |

相关推荐
ac-er8888几秒前
PHP网络爬虫常见的反爬策略
开发语言·爬虫·php
翔云API5 分钟前
PHP静默活体识别API接口应用场景与集成方案
人工智能
爱吃喵的鲤鱼10 分钟前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++
浊酒南街11 分钟前
吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.9-4.10
人工智能·深度学习·神经网络·cnn
Tony聊跨境27 分钟前
独立站SEO类型及优化:来检查这些方面你有没有落下
网络·人工智能·tcp/ip·ip
懒惰才能让科技进步33 分钟前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
DARLING Zero two♡37 分钟前
关于我、重生到500年前凭借C语言改变世界科技vlog.16——万字详解指针概念及技巧
c语言·开发语言·科技
Gu Gu Study39 分钟前
【用Java学习数据结构系列】泛型上界与通配符上界
java·开发语言
Qspace丨轻空间43 分钟前
气膜场馆:推动体育文化旅游创新发展的关键力量—轻空间
大数据·人工智能·安全·生活·娱乐
没有不重的名么44 分钟前
门控循环单元GRU
人工智能·深度学习·gru