matlab——三元二次函数求最值

fmincon函数

今天晚上帮姐姐求一个方程的最值

果断用matlab啊

刚开始想得挺简单的,就是for循环

后来一想计算量太大

百度了一下都是用fmincon这个函数

可是算出来的是最小值


然后又找求最大值的函数

可是找了半天没找到

最后我机智的把函数前面加了一个负号

哈哈


贴一下函数吧,挺简单的

比如说

Y=99.27932+20.21776X1+4.67531X2-5.32589X3-1.26466X1^2-4.79916X2^2-6.13593X3^2-2.50155X1X2-4.77292X1X3-2.61070X2X3
这个方程自变量都在-1.682-1.682之间时Y的最大值。。。

options = optimset('Algorithm','active-set');

 [X,FVAL,EXITFLAG] = fmincon(@(x)(-(99.27932+20.21776*x(1)+4.67531*x(2)-5.32589*x(3)-1.26466*x(1)^2-2.50155*x(1)*x(2)-4.79916*x(2)^2-6.13593*x(3)^2-4.77292*x(1)*x(3)-2.61070*x(2)*x(3))),[0 0 0],[],[],[],[],[-1.682 -1.682 -1.682],[1.682 1.682 1.682],[],options) 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值