如何用matlab求函数最优解
我要求函数在最小值下的x解怎么办啊min100000/x+333xx在[1,100]之间的整数。求大神用matlab告知...
我要求函数在最小值下的x解怎么办啊
min 100000/x+333x
x在[1,100]之间的整数。求大神用matlab告知 展开
min 100000/x+333x
x在[1,100]之间的整数。求大神用matlab告知 展开
3个回答
2014-04-08
展开全部
追问
百度就只能选一个最佳答案,但你的代码也成功了,谢谢你!
追答
的确只能选一个,但选哪个也应该看看回答的质量吧?
算了,不说了。
展开全部
function f=myfun(x)
f=x(1)+x(2)+81;
end %%函数,其中x=x(1)y=x(2)
function [c,ceq]=mycon(x)
c(1)=100000-x(1)*x(2);
c(2)=1-x(1);
c(3)=1-x(2);
ceq=[];
end %%条件
clc,clear all
x0=[400 ;400];
[x,fval]=fmincon(@myfun,x0,[],[],[],[],[],[],@mycon)
x =
316.3406
316.1150 %即x=y等于这个数时最小
fval =
713.4556 %最小值为这个值
f=x(1)+x(2)+81;
end %%函数,其中x=x(1)y=x(2)
function [c,ceq]=mycon(x)
c(1)=100000-x(1)*x(2);
c(2)=1-x(1);
c(3)=1-x(2);
ceq=[];
end %%条件
clc,clear all
x0=[400 ;400];
[x,fval]=fmincon(@myfun,x0,[],[],[],[],[],[],@mycon)
x =
316.3406
316.1150 %即x=y等于这个数时最小
fval =
713.4556 %最小值为这个值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for i=1:100 %% x在[1,100]
x=i;
f(i)=100000/x+333*x;
end
x=find(f==min(f)) %%计算出f在取得最小值下,x的值
x=i;
f(i)=100000/x+333*x;
end
x=find(f==min(f)) %%计算出f在取得最小值下,x的值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询