25.10 matlab里面的10中优化方法介绍—— 函数fmincon(matlab程序)

1. 简述

关于非线性规划

非线性规划问题是指目标函数或者约束条件中包含非线性函数的规划问题。

前面我们学到的线性规划更多的是理想状况或者说只有在习题中,为了便于我们理解,引导我们进入规划模型的一种情况。相比之下,非线性规划会更加贴近实际的生活。那这节我们先通过一个类似于线性规划中linprog()函数的fmincon()来体会一下这类问题的解决过程。

一、fmincon()的基本形式

基本形式如下:x = fmincon('fun',x0,A,b,Aeq,beq,lb,ub,'nonlcon',options) ;

(1)'fun'为目标函数,注意需要单引号,或者@,或者直接在定义时写成匿名函数即可,后面的nonlcon为非线性约束(包括等式和不等式),形式要求同fun;

(2)x0表示决策变量的初始值,可以随机取一组符合约束条件的数据值,一般来讲没什么影响;

(3)A,b,Aeq,beq分别表示线性的不等式约束和等式约束,Ax<=b,Aeqx=beq;lb,ub同之前的linprog()函数,表示上下界的向量;

(4)使用 options 所指定的优化选项执行最小化。使用 optimoptions 可设置这些选项。如果没有非线性不等式或等式约束,请设置 nonlcon = []。

基本要求就是以上这些,下面我们以几个例子来具体实现一下。

2. 代码

例子1

%% 用函数fmincon求约束最优化问题

clear all

f=inline('exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1)','x');

x0=[-1 1];

x,fval\]=fmincon(f,x0,\[\],\[\],\[\],\[\],\[\],\[\],'fcon1212') **例子2** **%% 用fmincon解线性约束的最优化** clear all f=inline('-x(1)\*x(2)\*x(3)','x'); A=\[-1,-2,-2;1,2,2\]; %A\*x\<=b b=\[0;72\]; x0=\[10;10;10\]; \[x,fval\]=fmincon(f,x0,A,b) **3.** **运行结果** ![502fcaf5c6e94dd0a7c85cfe3e7f78c2.png](https://file.jishuzhan.net/article/1685501252793798657/f6d98b2782e24527b3640ae1a9dd0bc7.png) ![cd84740785ae4c4fb388987c8a83e8b3.png](https://file.jishuzhan.net/article/1685501252793798657/6390a085e871491eb8bd560a5f9d3869.png)

相关推荐
不惑_1 小时前
通俗理解经典CNN架构:VGGNet
人工智能·神经网络·cnn
没学上了1 小时前
MNIST
人工智能
漫随流水1 小时前
leetcode算法(111.二叉树的最小深度)
数据结构·算法·leetcode·二叉树
audyxiao0012 小时前
人工智能顶级期刊PR论文解读|HCRT:基于相关性感知区域的混合网络,用于DCE-MRI图像中的乳腺肿瘤分割
网络·人工智能·智慧医疗·肿瘤分割
零售ERP菜鸟2 小时前
IT价值证明:从“成本中心”到“增长引擎”的确定性度量
大数据·人工智能·职场和发展·创业创新·学习方法·业界资讯
Fcy6482 小时前
C++ set&&map的模拟实现
开发语言·c++·stl
童话名剑3 小时前
目标检测(吴恩达深度学习笔记)
人工智能·目标检测·滑动窗口·目标定位·yolo算法·特征点检测
木卫四科技3 小时前
【木卫四 CES 2026】观察:融合智能体与联邦数据湖的安全数据运营成为趋势
人工智能·安全·汽车
你怎么知道我是队长8 小时前
C语言---枚举变量
c语言·开发语言
李慕婉学姐8 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库