用matlab求有约束条件函数的极值

用matlab求有约束条件函数的极值

机房里的R2010a版本

命令:

1、fmincon
FMINCON finds a constrained minimum of a function of several variables.
fmincon
2、fmincon用法:
X = FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON)
或者[x,fmin]=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON)

其中Fun为函数X0为初值,NONLCON为非线性约束条件。

以p194task1_1为例:

先建立约束条件,创建.m文件,内容如下:

%p194task1_1.m
%nonlcon1_1.m
function [c,ceq]=nonlcon1_1(x)
c(1)=-1*(25-x(1)^2-x(2)^2);
c(2)=-1*(7-x(1)^2+x(2)^2);
ceq=0;

其中c为非线性不等式约束,ceq为非线性等式约束。
再在同一目录下创建%p194task1-1.m

%p194task1_1.m
%min(f)=-2*x(1)-x(2);
%g1(x)=25-x(1)^2-x(2)^2>=0
%g2(x)=7-x(1)^2+x(2)^2>=0
%0<=x(1)<=5
%0<=x(2)<=10
clc,clear
% f='-2*x(1)-x(2)';
x0=[0,0];
[x,fmin]=fmincon(@(x) -2*x(1)-x(2),x0,[],[],[],[],[0,0],[5,10],@nonlcon1_1)

运行结果

x =

    4.0000    3.0000


fmin =

  -11.0000

除了以字符串、.m文件创建函数,学到了一个新的创建数量值函数的方法,在fmincon()的第一个参数中采用了此方法:

@(自变量名) 不加引号的函数
  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值