matlab min函数_数学建模与MATLAB非线性规划

2e28aa76a0c5fc58ba5ac4560e27a57f.gif c08c44b1e6deb6eef5e4e07382f58dd7.png b5ebca803a2ed506e449b80369145a9a.gif快点击上方 蓝字关注我们吧! 2bfc2ad7b7542c70775fad27a1ea4532.gif 2e28aa76a0c5fc58ba5ac4560e27a57f.gif c08c44b1e6deb6eef5e4e07382f58dd7.png 2e28aa76a0c5fc58ba5ac4560e27a57f.gif f32bbc62dd80f1aae5cb3c2666398d46.png 本文简单介绍了非线性规划相关的问题,此类问题较为复杂,不仅有传统的方法,也有新的方法,文中也参考了网络的一些博客讲解。希望对大家有所帮助。 444bc060f653809d34105b78c00d9d8a.gif eb730b453f48cfc0cead4747d7c575c0.png 93707f8af3f70f5019bdd15101b12fc9.png 一、什么是非线性规划
1、非线性规划定义
如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。
2、非线性规划特性
求解非线性规划的难度相对于线性规划要更难,没有一种通用的方法可以求解所有的此类问题,各种相应的算法都有各自的适应范围。

如果线性规划的最优解存在,其最优解只能在其可行域的边界上达到 (特别是可行域顶点),非线性规划的最优解若存在,则有可能在其可行域的任意一点达到。

93707f8af3f70f5019bdd15101b12fc9.png 93707f8af3f70f5019bdd15101b12fc9.png 二、规划问题(约束极值问题)

1、极值问题分类

d537699a6dbe02aa0f6cc19050303d7d.png

2、约束问题(规划问题)的求解

(1)二次规划
若某非线性规划的目标函数为自变量 x 的二次函数,约束条件又全是线性的,就称为二次规划。

Matlab 中二次规划的数学模型可表述如下:

7caeba1173dae7fb3bbc607669de1391.png

求解函数quadprog 函数用法 : (提示:MATLAB中命令行中输入“help quadprog"即可查看此函数调用格式)  [x,favl]  = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)

示例:

3b2a43bb1f1ad945eafc51c11cf22b4c.png

将上题与二次规划的数学模型对照:

ac204ad7d9dc43a59a66ea8565ba2860.png

对于H、f向量有疑问的可以去看下面这篇博客,作者详细介绍了二次规划的解法及H、f矩阵: https://blog.csdn.net/jbb0523/article/details/50598641 MATLAB求解代码:

h=[4,-4;-4,8];
f=[-6;-3];
a=[1,1;4,1];  %a为约束条件式左x的系数矩阵
b=[3;9];      %b为约束条件式右x的系数矩阵
[x,value]=quadprog(h,f,a,b,[],[],zeros(2,1))

计算结果:

x =1.95001.0500value =-11.0250

(2)罚函数法
对于一些简单的问题可以直接进行求解,一般来说为了简化优化的工作,可以采用下面三种方法来是实现计算的简化:
  • 将约束问题转化为无约束问题

  • 将非线性规划问题转化为线性规划问题

  • 将复杂问题变换为较简单问题的其它方法

罚函数法,可将非线性规划问题的求解,转化为求解一系列无约束极值问题,这种方法为序列无约束最小化技术,简记为 SUMT 

(Sequential Unconstrained Minization Technique)。

使用函数:fminunc

调用方法:[x,fval] =fminunc(fun,x0,options)

MATLAB求解代码:

[x,y]=fminunc('test',rand(2,1))

调用函数:test.m

function g=test(x)
M=50000;
f=x(1)^2+x(2)^2+8;
g=f-M*min(min(x),0)-M*min(x(1)^2-x(2),0)+M*(-x(1)-x(2)^2+2)^2;

求解结果:

x =1.00011.0001
y =10.0049

(3)MATLAB优化工具箱
MATLAB中有专门解决优化问题的优化工具箱,在命令行窗口输入optimtool回车即可看到此工具箱的图形界面。

702d6ea83f4793ebe52dafc84dc3d21e.png

Solver中可以看到优化工具箱中所有的函数。

4e9a46c6d6acbfab3b13cd236fc4330b.png

对于上述函数大家可以在官网Mathworks上查看函数的详细用法MATLAB 后续的版本中可能会将此工具箱的图形界面去掉。

d4c7c4726899f242e62eb5d4ba2aaea8.png

因此大家需要掌握具体函数如何调用,使用与什么问题的求解。

3、无约束问题求解概述

此类问题的求解可按照用到的函数分为两类,一用到函数的一二导数或二阶导数,此类方法称为解析法。二仅仅用到函数值,此法称为直接法。

3b34c8329d984b5d322d7ac208d52336.png

93707f8af3f70f5019bdd15101b12fc9.png

下面是一些相关的博客链接,讲解的非常详细,可以参考学习:

无约束最优化问题的一般结构与规划方法:https://blog.csdn.net/philthinker/article/details/78191864

Matlab 求解约束极值问题

 https://blog.csdn.net/qq_29831163/article/details/89485908

文中部分示例来源于网络,只用于学习交流!由于能力有限,部分地方难免出现错误,请大家批评指正!8046665402e5de29784c6c9c03926acc.png8046665402e5de29784c6c9c03926acc.png

MATLAB学习
大家可以关注我们的知乎专栏–数据可视化和数据分析中matlab的使用

链接:

https://zhuanlan.zhihu.com/c_1131568134137692160

MATLAB学习交流群:953314432


2870db8192959ab1324012a2d4e00c92.png 2e5eb81436fdd054696f960e8287dfa4.png 2e28aa76a0c5fc58ba5ac4560e27a57f.gif扫码关注我们更多精彩等待你发现 出品: Asoul水云天课堂工作室 2e28aa76a0c5fc58ba5ac4560e27a57f.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值