如何用matlab求函数最优解(2)

我要求函数在最小值下x和y的解怎么办啊minx+y+81条件是xy>100000,x>1,y>1... 我要求函数在最小值下x和y的解怎么办啊
min x+y+81
条件是xy>100000,x>1,y>1
展开
 我来答
百度网友565924f
2014-04-08 · TA获得超过144个赞
知道答主
回答量:34
采纳率:0%
帮助的人:61.9万
展开全部
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 %最小值为这个值
aabbffcv0223
2014-04-08
知道答主
回答量:6
采纳率:0%
帮助的人:6.1万
展开全部
利用罚函数法求解

syms x y M
%罚函数的形式写成如下函数P
P= x+y+81+M*[(x-1)^2+(y-1)^2+(x*y-10000)^2];
%计算雅可比矩阵
J=jacobian(P,[x,y]);
%雅可比矩阵等于零的解,关于M的函数表达式
[x,y]=solve(J);
%给M赋值 这里赋值100,求x y 的值
x0=subs(x,M,100)
y0=subs(y,M,100)
%得到x0,y0会有多组解 ,取有意义的值 得
x0=y0=99.9950

%通过理论求解 这里的x,y取值应是 x0=y0=100 x+y >= 2*sqrt(xy) = 2*100 =200.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钺联昱M
2014-04-08 · TA获得超过706个赞
知道小有建树答主
回答量:1789
采纳率:33%
帮助的人:901万
展开全部
应该是小于100000吧 如果大于 那没有什么意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式