多元函数的极值matlab,利用MATLAB求多元函数的极值(2)

利用MATLAB求多元函数的极值分两种情况,(1)无约束条件;(2)有约束条件。

(2)有约束条件下求极小值的方法:

假设多变量非线性函数的数学模型为

min f(x)

c(x)<=0

ceq(x)=0

A·x<=b

Aeq·x<=x<=beq

lb<=x<=ub

X, b,beq,lb,ub为矢量,A,Aeq为矩阵,c(X),ceq(X)为函数(可非线性)。

命令格式:x = fmincon(fun,x0,A,b)

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

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

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

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

[x,fval] = fmincon(...)

[x,fval,exitflag] = fmincon(...)

[x,fval,exitflag,output] = fmincon(...)

[x,fval,exitflag,output,lambda] = fmincon(...)

[x,fval,exitflag,output,lambda,grad] = fmincon(...) [x,fval,exitflag,output,lambda,grad,hessian]= fmincon(...) 例如

3d9d7e6d9cb995cda9b68275cdc54fca.png

90f02e4c04e0242d8695cea1b38a44b1.png

求函数满足条件

的极小值

解:首先,编制M-file文件

function f myfun(x)

f=-x(1)*x(2)*x(3)

然后重写约束条件为两个小于或等于一个常数的不等式,

2c850ee3687e09353cc216afdaa7fa04.png

因为约束条件是线性的,

用矩阵表示为Ax<=b 其中;

adf3393efaa0f5c63b6b21b943bbd167.png

其次,猜测估计提供一个起点,调用优化程序。

x0 = [10; 10; 10]; % 猜测可能的结果作为起点

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值