产品中心

致力于为用户提供创新的解决方案和高品质的产品

Optimization Toolbox

求解线性、二次、锥、整数及非线性优化问题

您可以用函数和矩阵来定义优化问题,也可以通过指定反映底层数学关系的变量表达式来定义。使用目标函数和约束函数自动微分,更快、更准确地求解。

您可以使用该工具箱提供的求解器求连续与离散问题的最优解、执行权衡分析,并将优化方法整合到算法和应用中。该工具箱能够执行设计优化任务,包括参数估计、分量选择和参数调整。它能帮助您在投资组合优化、能源管理和交易以及生产规划等各种应用中求最优解。

 

定义优化问题

将设计或决策问题建模为优化问题。将设计参数或决策方案设置为优化变量。使用它们定义要优化的目标函数,并使用约束来限定可能的变量值。

建模

通过定义变量、目标和约束,将问题描述转换为数学表达,从而运用优化方法求解。

基于问题的优化 

将目标和约束写作优化变量表达式。对非线性表达式运用自动微分,更快、更稳健地求解。应用自动选择的求解器。使用实时编辑器中的“优化”任务以交互方式创建并求解问题,然后生成代码,以便与他人共享或整合到应用。

基于求解器的优化

将非线性目标和约束写作函数,将线性目标和约束写作系数矩阵。使用实时编辑器中的“优化”任务以交互方式创建并求解问题,然后生成代码,以便与他人共享或整合到应用。

求解优化问题

应用求解器处理优化问题,确定最优解,即一组优化变量值,可实现目标函数最优值(如有)且满足约束(如有)。

选择求解器

通过基于问题或基于求解器方法使用“优化”实时编辑器任务来帮助选择适合问题类型的求解器。

设置选项

设置优化选项以调整优化过程,例如选择求解器使用的优化算法,或设置终止条件。设置选项以监控并绘制优化求解器进度。

查看并改进结果

查看退出消息、最优性度量和迭代输出,对解进行评估。提高求解器处理非线性问题的性能,可以使用自动微分、直接提供梯度,或使用并行计算估计梯度。

非线性规划

求解具有非线性目标或非线性约束的优化问题。

求解器

应用拟牛顿法、信赖域法或 Nelder-Mead 单纯形算法求解无约束问题。应用内点、序列二次规划 (SQP) 或信赖域反射算法求解约束问题。

应用

将非线性优化用于变量间存在非线性关系的各种应用,如估计和调整参数、寻找最优设计、计算最优轨迹、构建稳健投资组合等。

线性、二次和锥规划

求解具有线性或二次目标且具有线性或二阶锥约束的凸优化问题。

线性规划求解器

应用对偶单纯形或内点算法求解线性规划。

二次和二阶锥规划求解器

应用内点、活动集或信赖域反射算法来求解二次规划。应用内点法求解二阶锥规划。

应用

使用线性规划求解问题,如资源分配、生产规划、配料及投资规划。使用二次和二阶锥规划,求解设计优化、投资组合优化及水电站大坝的控制等问题。

混合整数线性规划

求解具有线性目标和线性约束、且另有约束规定部分或全部变量必须为整数值的优化问题。

求解器

使用分支定界算法求解混合整数线性规划问题,包含预处理、使用启发式方法生成可行点,以及割平面。

基于混合整数线性规划的算法

使用混合整数线性规划求解器构建专用算法。

应用

使用整数变量建模,求解开/关决策、逻辑约束以及其他变量值必须为整数的问题。路由、调度、规划、分配及资本预算问题均为典型应用。

多目标优化

求解具有多个目标函数和一组约束的优化问题。

求解器

将问题构造为目标达到问题或极小化极大问题。当每个目标均有权重可选的加权目标值时,使用目标达到。需要最小化一组目标函数的最差情形值时,使用极小化极大。

应用

当需要对冲突目标做出权衡时,使用多目标优化算法。例如,结构设计中的重量与强度,以及投资组合优化中的风险与回报。

最小二乘和方程求解

求解线性和非线性最小二乘问题,以及具有边界、线性和非线性约束的非线性方程组。

求解器

应用 Levenberg-Marquardt、信赖域、活动集或内点算法。

线性最小二乘应用

使用线性最小二乘求解器,您可以对采集的数据进行线性模型拟合,或者求解线性方程组,包括参数具有边界和线性约束的情形。

非线性最小二乘应用

使用非线性最小二乘求解器,您可以对采集的数据进行非线性模型拟合,或者求解非线性方程组,包括参数具有边界、线性和非线性约束的情形。

部署

构建基于优化的决策支持和设计工具,与企业系统进行集成,并将优化算法部署到嵌入式系统中。

MATLAB Compiler 支持

使用 MATLAB Compiler™ 和 MATLAB Compiler SDK™,可将 MATLAB® 优化模型部署为独立可执行文件、Web App、C++ 共享库、Microsoft® .NET 程序集、Java® 类和 Python® 包。

代码生成

使用 MATLAB Coder™ 生成可移植且可读的 C 或 C++ 代码,以求解优化问题。为包括嵌入式系统在内的各种硬件编译生成的代码。

 

Global Optimization Toolbox

求解多个极大值、多个极小值和非光滑优化问题

您可以通过调整选项,或者对于适用的求解器,通过自定义创建、更新和搜索函数,从而提高求解器效率。可以使用自定义数据类型,配合遗传算法和模拟退火求解器,来描绘采用标准数据类型不容易表达的问题。利用混合函数选项,可在第一个求解器之后应用第二个求解器来改进解。

解决优化问题

选择求解器,定义您的优化问题,设置算法行为、容差、停止准则、可视化和自定义选项。

建模并选择优化方法

将问题描述转换为数学形式,以便使用优化方法来求解问题。选择基于问题的方法,将目标和约束写作优化变量表达式。然后应用自动选择的求解器。或者,选择基于求解器的方法,使用函数和系数矩阵定义目标和约束。

指定求解器和问题

通过基于问题或基于求解器方法使用“优化”实时编辑器任务来帮助选择适合问题类型的求解器。

设置常用选项

设置适用于选定求解器的停止准则。设置最优性和约束的容差。通过并行计算加速。

评估中间结果

使用绘图函数,获得关于优化进度的实时反馈。编写您自己的函数,或者使用所提供的函数。使用输出函数创建您自己的停止准则,将结果写入文件,或编写您自己的应用程序来运行求解器。

GlobalSearch 和 MultiStart

应用基于梯度的求解器,从多个初始点中查找局部极小值以搜索全局极小值。返回其他局部或全局极小值。求解光滑的无约束和有约束问题。

比较求解器

使用 GlobalSearch 生成多个初始点,并在启动非线性求解器之前进行筛选,通常可得到高质量解。使用 MultiStart 可以选择局部求解器和各种创建初始点的方法。

选择 GlobalSearch 选项

指定试验点的数量并调整搜索。

选择 MultiStart 选项

指定非线性求解器。选择生成初始点的方法或使用用户自定义集。通过并行计算加速。

替代优化

搜索拥有耗时的目标函数问题的全局极小值。求解器对可快速估算并求极小值的函数建立一个近似。

指定问题

应用于存在有限边界约束的问题。目标函数不需要可微分或连续。

选择选项

提供一组初始点和可选目标值,用于构造初始替代。设置要供替代使用的点数和最小抽样距离。通过并行计算加速。

模式搜索

从当前点开始,添加一组向量以获得新试验点。计算试验点上的目标函数值,并使用该信息来更新当前点。重复该过程直到当前点成为最佳点。

指定问题

应用于无约束问题、有边界的线性或非线性约束问题。目标函数和约束函数不需要可微分或连续。

选择选项

在算法选项中进行选择以获得最高效的解。选择绘图函数以监控优化。通过并行计算加速。

遗传算法

模仿生物进化的理论,根据生物繁殖的基因组合规律模型反复修改一个种群的各个个体,从而搜索全局极小值。

指定问题

应用于无约束问题、有边界的线性、非线性或整数约束问题。目标函数和约束函数不需要可微分或连续。

选择选项

选择用于创建、适应度缩放、选择、交叉和变异的选项。指定种群小、优良子代数量和交叉片段。通过并行计算加速。

自定义

提供您自己的函数,用于创建、选择和变异。使用自定义数据类型,更容易表达您的问题。应用第二个优化器改善解。

粒子群

使用受昆虫群居行为启发的算法搜索全局极小值。每个粒子移动的速度和方向受到它目前发现的最佳位置和群体已经发现的最佳位置的影响。

指定问题

应用于无约束问题或有边界约束的问题。目标函数不需要可微分或连续。

选择选项

通过设置惯性及自我调节和社会调节权重来优化速度计算。设置邻域大小。通过并行计算加速

自定义

提供您自己的函数,用于创建初始群。应用第二个优化器改善解。

模拟退火

使用模拟物理退火过程的概率搜索算法来搜索全局极小值,在退火过程中材料先被加热,然后缓慢降温以减少缺陷,从而尽量减小系统能量。

指定问题

应用于无约束问题或有边界约束的问题。目标函数不需要可微分或连续。

选择选项

选择用于自适应模拟退火、Boltzmann 退火或快速退火算法的选项。

自定义

创建函数来定义退火过程、接受准则和温度调度。使用自定义数据类型,更容易表达您的问题。应用第二个优化器改善解。

多目标优化

找出有多个目标和边界、线性或非线性约束的问题的帕雷托前沿 — 非支配解集。使用模式搜索或遗传算法求解器。

比较求解器

与多目标遗传算法相比,使用多目标模式搜索算法产生帕雷托前沿所用的函数评估次数较少。遗传算法可以产生间隔更宽的点。

选择模式搜索选项

提供一组初始点。指定期望的帕雷托解集大小、最小轮询片段和体积变化容差。自动绘制 2D 和 3D 帕雷托前沿。通过并行计算加速。

设置遗传算法选项

指定个体的分布率以继续保持顶级的帕雷托前沿。自动绘制 2D 帕雷托前沿。通过并行计算加速。

 

Symbolic Math Toolbox

执行符号数学计算

Symbolic Math Toolbox 支持您以解析方式执行微分、积分、化简、变换和方程求解。您可以进行量纲计算并对单位进行转换。您可以采用解析法或者可变精度算术进行计算,并以数学排版呈现结果。

您可以将符号计算成果作为实时脚本共享给其他 MATLAB 用户,也可将其转换为 HTML、Word、LaTex 或 PDF 文档进行发布。您可以从直接符号表达式生成 MATLAB 函数、Simulink® 函数模块和 Simscape™ 方程。

微积分

计算定积分和不定积分的精确解析解,计算符号表达式或函数的导数,并使用级数展开式逼近函数。

求解、化简和代换

使用解析法求解线性和非线性代数方程与微分方程,化简并重写符号表达式,同时使用代换法计算符号表达式。

线性代数

对符号矩阵进行分析、变换和分解,研究线性方程的属性,进行线性代数运算,并求解矩阵或方程形式的线性方程组。

可视化

借助扩展的 MATLAB 图形功能,使用内置函数绘制符号表达式和函数,同时使用动画直观呈现符号表达式的行为。

可变精度算术 (VPA)

显式设置有效位数以避免隐藏的舍入误差。使用可变精度算术降低精度,从而提高计算速度。

单位和量纲分析

进行量纲分析并验证符号计算中单位的量纲兼容性和一致性。创建自定义单位制,以及在现有单位制之间转换。

文档和共享

交互式更新和显示符号数学计算,跟随 MATLAB 实时编辑器提供的下一步操作建议完成符号工作流。以实时脚本形式分享您的工作成果,或发布代码以创建包括 HTML、Word、LaTeX 以及 PDF 在内的格式化文档。

代码生成

直接从符号表达式生成 MATLAB 函数、Simulink 函数模块、基于方程的自定义 Simscape 组件以及 C 或 Fortran 代码。

 

Mapping Toolbox

分析和可视化地理信息 

Mapping Toolbox 支持地理数据管理的整套工作流。您可以从各种 Web 地图服务器导入多种文件格式的矢量和光栅数据。该工具箱支持您使用删减、插值、重采样、坐标变换和其他方法来处理和自定义数据。您可以在单个地图显示中组合数据与多种来源的底图图层。您可以将数据导出为 shapefile、GeoTIFF 或 KML 等文件格式。


 

 

地理数据导入和导出

将矢量和光栅 GIS 和地理空间数据导入 MATLAB® 环境中。将光栅数据导出为标准格式,并与地理信息系统和其他地理空间应用程序共享。

二维和三维地图显示

在单个地图显示中组合矢量和光栅数据集,并创建等高线显示和其他类型的专题地图。

地形和高程分析

可视化和分析三维数据,如数字地形、海洋测深和其他网格化数据产品。计算梯度、斜率、坡向、视距可见性和视域。

地理空间数据处理

执行大地测量计算,支持地球和其他行星体的曲率。

 

Partial Differential Equation Toolbox

利用有限元法 (FEM) 求解偏微分方程

您可以执行线性静力分析以计算形变、应力和应变。对于结构动力学和振动的建模,该工具箱提供了直接时间积分求解器。您可以通过执行模态分析确定自然频率和振型,从而分析组件的结构特性。您可以对以传导为主的热传递问题进行建模,以计算温度分布、热通量和通过表面的热流率。您可以执行静电和静磁分析,也可以使用自定义 PDE 求解其他标准问题。

Partial Differential Equation Toolbox 允许您从 STL 或网格数据导入二维和三维几何结构。您可以自动生成包含三角形和四面体单元的网格。您可以使用有限元方法求解 PDE,并对结果进行后处理以进行探索和分析。

结构力学

解决线性静态、瞬态、模态分析和频率响应问题。

线性静态分析

计算载荷和边界条件下的位移、应力和应变,并评估组件的机械强度和行为。

模态和频率响应分析

确定自然频率和振型,以识别并防止潜在共振,同时利用其频率响应对结构的动态行为进行仿真。

瞬态分析

计算时变载荷下的位移、速度、加速度、应力和应变。

热传递

分析组件的温度分布以应对热管理难题。

稳态热分析

确定恒定热载荷下的温度分布和其他热特性。

瞬态热分析

确定时变热载荷下的温度分布和其他热特性,并使用降阶模型逼近动态特性。

耦合热应力分析

分析热载荷和机械载荷耦合下的机械行为。

电磁

对电子电气元件的设计进行电磁分析。

静电和静磁

求解模拟静电和静磁问题的麦克斯韦方程组。

一般 PDE

求解工程和科学常见应用中的 PDE。

二阶 PDE

求解平稳、时间相关和特征值问题的二阶线性和非线性 PDE。

几何结构与网格划分

定义几何结构并将其离散化以建立有限元模型。

导入/创建几何结构

根据导入的 STL 或网格数据重构二维和三维几何结构,或者使用几何图元创建简单的参数化形状。

生成网格

在二维域中使用三角形单元生成有限元网格,在三维域中使用四面体单元生成有限元网格。检查并分析网格质量,以评估结果的准确性。

可视化和后处理

从结果中计算派生和插值数据,并创建绘图和动画

绘图和动画解决方案

利用强大的 MATLAB 图形创建几何结构、网格、结果以及派生和插值量的绘图和动画,从而可视化模型和解。创建多个子图并轻松自定义图属性。

后处理

分析解及其在网格节点和其他插值位置的梯度。借助 Statistics and Machine Learning Toolbox 和 Optimization Toolbox,您还可以利用多种 MATLAB 功能进一步开展统计后处理和数据分析。

FEA 工作流程的自动化、集成和共享

在 MATLAB 中实现有限元分析 (FEA) 工作流程的自动化、集成和共享。

FEA 工作流程

在 MATLAB 中创建典型的 FEA 工作流程:导入或创建几何结构,生成网格,定义具有载荷、边界和初始条件的物理模型,求解,最终可视化结果,并且所有这些都可以在一个用户界面内完成。

数学和优化