当前位置: 首页 > news >正文

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

 

cd84740785ae4c4fb388987c8a83e8b3.png 

 

 

http://www.lryc.cn/news/100402.html

相关文章:

  • 赛效:如何将PDF文件免费转换成Word文档
  • java 8 的Stream API
  • TypeChat,用TypeScript快速接入AI大语言模型
  • Dcoker compose单机容器集群编排管理
  • P5635 【CSGRound1】天下第一(记忆化搜索)
  • 如何维护你的电脑:提升性能和延长使用寿命
  • Docker续集+Docker Compose
  • k8s deployment(k8s经典版)|PetaExpress
  • uni-app如何生成正式的APK
  • 低代码开发平台源码:可视化敏捷开发工具,拖拽式自定义表单界面
  • 利用读时建模等数据分析能力,实现网络安全态势感知的落地
  • 六、代理模式
  • Easy Glide
  • ppt怎么压缩到10m以内?分享好用的压缩方法
  • VBA技术资料MF35:VBA_在Excel中过滤数据
  • Debian12中为python3配置虚拟环境及在Pycharm中使用虚拟环境
  • android app控制ros机器人一
  • 二十章:基于弱监督语义分割的亲和注意力图神经网络
  • webpack5 学习之路
  • VSCode C++ 调试方法
  • Java设计模式-命令模式
  • Linux编译宏BUILD_BUG_ON_ZERO
  • 从Arweave开始:4EVERLAND存储签入挑战开始
  • 数据结构—链表
  • windows 10/11 修改右键新建菜单
  • 6.修饰符
  • 【leetcode难题】2569. 更新数组后处理求和查询【线段树实现01翻转和区间求和模版】
  • 练习时长两年半的入侵检测
  • 【弹力设计篇】聊聊隔离设计
  • MFC 透明窗体