加载中…
个人资料
徐文力
徐文力
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,514
  • 关注人气:45
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB函数:fmincon(非线性约束规划)

(2016-05-20 16:54:25)
标签:

徐文力

fmincon

matlab

非线性约束

约束条件

分类: MATLAB
MATLAB函数:fmincon

问题描述:

    min F(x)  subject to:  A*x <= b, Aeq*x = beq  线性约束条件

     x               c(x) <= 0, ceq(x) = 0  非线性约束条件

                      lb<= x <= ub        约束边界

常用格式:

x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)

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


实例1

Fmin=x1^2+4*x2^2-3*x2*x3+0.5*x3

其中:

3*x1+2*x2+x3<=12

2*x1+3*x2-x3<=15

-10<=x1<=10

-10<=x2<=10

-10<=x3<=10

 

function f=myfun2(x)

f=x(1)^2+4*x(2)^2-3*x(2)*x(3)+0.5*x(3);

MATLAB主程序:

clc

clear all

A=[3,2,1;2,3,-1];

b=[12;15];

Aeq=[];

beq=[];

lb=[-10;-10;-10];

ub=[10;10;10];

x= fmincon(@(x) myfun2(x),[1;1;1],A,b,Aeq,beq,lb,ub);

结果

x =

    -1.6500

    3.4750

   10.0000

>> f=x(1)^2+4*x(2)^2-3*x(2)*x(3)+0.5*x(3)

f =

  -48.2250


实例2

Fmin=m1*x1^2+m2*x2^2

n/x1-x2<=0;

其中,m1=1;m2=2;n=1.5;

 

function f = myfun(x,m)      

f = m(1)*x(1)^2 + m(2)*x(2)^2;       

                                       

function [c,ceq] = mycon(x,n)

c = n/x(1) - x(2);

ceq = [];

  

MATLAB主程序:

clc

clear all

m = [1,2]; n= 1.5;          

options = optimoptions('fmincon','Algorithm','interior-point');

A=[];b=[];Aeq=[];beq=[];lb=[];ub=[];          

x = fmincon(@(x) myfun(x,a),[1;2],A,b,Aeq,beq,lb,ub,@(x) mycon(x,n),options)

结果

x =

  1.4565

1.0299

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有