用matlab解优化问题
以前matlab针对优化问题有几种命令,新版本的matlab已经将各种命令统一了,主要是通过fmincon函数来实现规化问题,不论是线性规划还是非线性规划,都可以用该命令。
操作方法
- 01
fmincon作为优化问题的万能命令,既可以解决带约束的优化问题,有可以解决不带约束的优化问题。下面简单介绍一下。
- 02
fmincon命令的格式如下。
- 03
解释如下: 输出x为解的结果 输出fval为目标函数的最小值 输出exitflag为解的情况(大于0表示求解成功) 程序名用于写目标函数 x0为初始向量 A、AEQ为系数矩阵(A为不等式约束,AEQ为等式约束) B、BEQ为常数项向量(B为不等式约束的常量,BEQ为等式约束的常量) L为解的下限 U为解的上限 程序2用于非线性约束
- 04
下面用一个实例来说明。如下图
- 05
首先编写目标函数。在编辑器中编写好后,保存。
- 06
然后,将题目转换会命令语言。其中的 1 1 5 A=1 -2 ,B= 3; AEQ= -3 2, BEQ=8; -1 3 L= 4 ,U= 7; 初始值就随便填写符合上下限的数就行了,比如[1;1]
- 07
最后,在命令窗口中敲入命令。
- 08
或者这样写。
- 09
结果如下图。解释如下x=[0.4;4.6]表示x=0.4,y=4.6时目标函数在满足约束的情况下取得最小值fval=-19.16.其中exitflag=1>0表示结果正确。
赞 (0)