Matlab 非线性规划fmincon

文章目录

基本知识

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意

在这里插入图片描述

练习

在这里插入图片描述

  1. 例1
  • 定义函数

function f = fun1(x)
%UNTITLED2 此处显示有关此函数的摘要
%   此处显示详细说明
f = -x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2;
end

  • 使用fmincon函数进行非线性规划的求解
%%
clc;clear;
x0 = [1; 1];
A=[2 3 ;1 4];
b=[6;5];
Aeq=[];beq=[];
VLB=[0;0]; VUB=[];
[x,fval]=fmincon('fun1',x0,A,b,Aeq,beq,VLB,VUB)

  1. 例2
    在这里插入图片描述

目标函数

function  f = fun2( x )
%   非线性约束的目标函数
f = exp(x(1))*(4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(1) + 1);
end

非线性约束函数

function [ g, ceq ] = con2( x )
%   定义非线性约束
% g表达式小于等于0
g = [1.5 + x(1)*x(2) - x(1) - x(2);-x(1)*x(2) - 10];  % 小于等于0的不等式条件
ceq = [];
end

求解

%%
%2
clc; clear;
x0 = [-1; 1];
A = [];
b = [];
Aeq = [1 1]; beq = [0]; % x1 + x2 == 0的条件
vlb = [];
vub = [];
[x, fval] = fmincon('fun2', x0, A, b, Aeq, beq, vlb, vub, 'con2')
CONSOLE:
x =

   -1.2247
    1.2247


fval =

    0.4556

  1. 例3

在这里插入图片描述

极小值目标函数

function f = fun3( x )
%   目标函数 min
f = -2*x(1) - x(2);
end

非线性约束

function [ g, ceq ] = con3( x )
% 小于等于非线性约束 g
g = [x(1)^2 + x(2)^2 - 25; x(1)^2 - x(2)^2 - 7];
ceq = [];
end

求解

%%

%3
clear;clc;
x0 = [3; 2.5];
vlb = [0 0];
vub = [5 10];
[x, fval. exitflag, output] = fmincon('fun3', x0, [], [], [], [], vlb, vub, 'con3')
CONSOLE:
x =

    4.0000
    3.0000


fval = 

  包含以下字段的 struct:

    exitflag: -11.0000


output =

     1


  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值