Matlab求解非线性规划,fmincon函数的用法总结「建议收藏」

Matlab求解非线性规划,fmincon函数的用法总结「建议收藏」Matlab求解非线性规划,fmincon函数的用法总结1.简介在matlab中,fmincon函数可以求解带约束的非线性多变量函数(Constrainednonlinearmultivariablefunction)的最小值,即可以用来求解非线性规划问题matlab中,非线性规划模型的写法如下\[min\f(x)\\s.t.\begin{equation}…

大家好,又见面了,我是你们的朋友全栈君。

Matlab求解非线性规划,fmincon函数的用法总结

1.简介

在matlab中,fmincon函数可以求解带约束的非线性多变量函数(Constrained nonlinear multivariable function)的最小值,即可以用来求解非线性规划问题

matlab中,非线性规划模型的写法如下
\[ min\ f(x) \\ s.t. \begin{equation} \left\{ \begin{array}{**lr**} A \cdot x \leq b \\ Aeq\cdot x =beq\\ c(x)\leq0 \\ ceq(x)=0 \\ lb \leq x \leq ub \end{array} \right. \end{equation} \\ ~\\ f(x)是标量函数,x,b,beq是向量,A,Aeq是矩阵 \\ c(x)和ceq(x)是向量函数 \]

2.基本语法

[x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)

x的返回值是决策向量x的取值,fval的返回值是目标函数f(x)的取值

fun是用M文件定义的函数f(x),代表了(非)线性目标函数

x0是x的初始值

A,b,Aeq,beq定义了线性约束 ,如果没有线性约束,则A=[],b=[],Aeq=[],beq=[]

lb和ub是变量x的下界和上界,如果下界和上界没有约束,则lb=[],ub=[],也可以写成lb的各分量都为 -inf,ub的各分量都为inf

nonlcon是用M文件定义的非线性向量函数约束

options定义了优化参数,不填写表示使用Matlab默认的参数设置

3.实例

示例,求下列非线性规划:
\[ min\ f(x)=x_1^2+x_2^2+x_3^2+8\\ s.t. \begin{equation} \left\{ \begin{array}{**lr**} x_1^2-x_2+x_3^2\geq0\\ x_1+x_2^2+x_3^2\leq20\\ -x_1-x_2^2+2=0\\ x_2+2x_3^2=3\\ x_1,x_2,x_3\geq0 \end{array} \right. \end{equation} \]
(1)编写M函数fun1.m 定义目标函数:

function f=fun1(x);
f=x(1).^2+x(2).^2+x(3).^2+8;

(2)编写M函数fun2.m定义非线性约束条件:

function [g,h]=fun2(x);
g=[-x(1).^2+x(2)-x(3).^2
    x(1)+x(2).^2+x(3).^3-20];
h=[-x(1)-x(2).^2+2
    x(2)+2*x(3).^2-3];

(3)编写主程序函数

[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[],'fun2')

所得结果为:
\[ x_1=0.5522,x_2=1.2033,x_3=0.9478\\ 最小值y=10.651 \]

转载于:https://www.cnblogs.com/goodtwo/p/11146540.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134380.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab si单位,ansys中的单位问题

    matlab si单位,ansys中的单位问题关于ansys中的单位问题ansys中没有单位的概念,只要统一就行了。所以,很多人在使用时,不知道该统一用什么单位,用错单位造成分析结果严重失真!今综合相关资料,整理如下:一、在ansys经典中,的确没有单位区别,关键要看你的模型以什么样的单位去建,当然,对应的材料属性(杨氏模量,密度等)也要以你所建模型的单位去对应,着重需要注意的是在把模型由cad软件导入ansys中时,注意单位的对应就可以,当…

    2022年5月14日
    41
  • WINHTTP的API接口说明。

    WINHTTP的API接口说明。

    2021年12月4日
    125
  • android 游戏引擎_最简单的游戏引擎

    android 游戏引擎_最简单的游戏引擎随着Android系统的使用越来越广泛,了解一下Android平台下的游戏引擎就非常有必要。而同时因为基于Intelx86的移动设备越来越多,我也非常关注支持x86的移动游戏引擎。然而就目前为止游戏引擎的数量已经非常之多,每个引擎都有不同的特征、价格、成熟度等。通过一些调研之后,我发现有非常多的游戏引擎可用于开发运行在android移动设备端的游戏,其中有些还支持x86系统,另外还有些通过简单的修

    2022年9月19日
    1
  • Vba菜鸟教程[通俗易懂]

    Vba菜鸟教程[通俗易懂]文章目录Vba菜鸟教程编辑器宏vba基本语法运算符变量语句简写语句sub语句调用语句退出语句分支语句循环语句判断语句公式与函数在单元格输入公式利用单元格公式返回值调用工作表函数利用vba函数自定义函数操作对象操作工作簿操作工作表操作单元格事件工作簿事件工作表事件控件按钮弹窗输入框附表对齐方式字体格式填充Vba菜鸟教程官方文档:https://docs.microsoft.com/zh-cn/o…

    2022年6月3日
    116
  • ES6开发_php的开发环境

    ES6开发_php的开发环境ES6的开发环境搭建

    2022年4月21日
    37
  • 航天金税开票导入导出txt格式

    航天金税开票导入导出txt格式防伪开票文本接口软件接口文件格式说明一、接口文件格式1.文件种类接口文件为纯文本文件,各行尾以回车换行码(ASCII码13和10)或换行码(ASCII10)分隔均可,可用各种文本编辑器编写或通过应用程序生成。2.注释行文件中以两个斜杠(//)置于行首的行为注释行,系统读入文件时忽略注释行和空行。3.分隔符每行中各个项目之间以两个波浪号(“~~”)分隔,行尾各项目均省略时可省略相应的分隔符。4.日期格式日期以四位年份+两位月份+两位日期表示:YYYYMMDD,…

    2022年5月29日
    115

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号