如何用matlab求解非线性最优化

如何用matlab求解非线性最优化,假如f=a*(b^x)+c*(d^x)+……,0<x<1,当然这里b和d等也是在0和1之间。求x使得f最小。希望能给出代码,谢谢。b和... 如何用matlab求解非线性最优化,假如f=a*(b^x)+c*(d^x)+……,0<x<1,当然这里b和d等也是在0和1之间。求x使得f最小。希望能给出代码,谢谢。
b和d可能是在0,1之间,也可能大于1,反正不为负数就对了。
展开
 我来答
lhmhz
高粉答主

推荐于2016-11-30 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17013

向TA提问 私信TA
展开全部
数学模型:min z=f(x)
s.t. Ax<b
语法:[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)
例:min f(x)=-5x(1)-4x(2)-6x(3)
s.t. x(1)-x(2)+x(3)≤20
3x(1)+2x(2)+4x(3)≤42
3x(1)+2x(2)≤30
x(1),x(2),x(3)≥0
f=[-5 -4 -6]
A=[1 -1 1;3 2 4;3 2 0]
b=[20;42;30]
lb=zeros(3,1)
[x,fval]=linprog(f,A,b,[],[],lb,[])
x =
0.0000 x(1)
15.0000 x(2)
3.0000 x(3)
fval =
-78.0000 目标值
更多追问追答
追问
函数是幂次形式也可以用linprog么,之前用fmincon老报错。

看了下帮助文档,这个貌似不行的啊,注意我这里的函数是幂次形式哈
追答
你可以用这个函数fmincon()试一试
[x,fval,exitflag]=fmincon('gearboxfun',x0,A,b,Aeq,beq,lb,ub,'gearboxcon')
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式