请教高手如何用matlab解多元二次不等式的解,有三个未知数x1,x2,x3,约束条件如下:
0.36x1+0.25x2+0.39x3取最大12/5*x1+11/5*x2+10/3*x3-3/5*x1*x2-x1*x3-1/15*x2*x3-31/75*x1^2-...
0.36x1+0.25x2+0.39x3取最大
12/5*x1+11/5*x2+10/3*x3-3/5*x1*x2-x1*x3-1/15*x2*x3-31/75*x1^2-1/25*x2^2<=3
0<=5/9*x1+1/3*x2+7/9*x3<=1
0<=5/9*x1+4/9*x2+2/3*x3<=1
0<=1/3*x1+x2<=1
0<=1/3*x1+x3<=1
0<=x1,x2,x3<=1
等待高手解决啊。。200分送上了。。。 展开
12/5*x1+11/5*x2+10/3*x3-3/5*x1*x2-x1*x3-1/15*x2*x3-31/75*x1^2-1/25*x2^2<=3
0<=5/9*x1+1/3*x2+7/9*x3<=1
0<=5/9*x1+4/9*x2+2/3*x3<=1
0<=1/3*x1+x2<=1
0<=1/3*x1+x3<=1
0<=x1,x2,x3<=1
等待高手解决啊。。200分送上了。。。 展开
2个回答
展开全部
楼上正解无错
再给一种不同的形式
function zd0323
format long%改变格式,使更精确输出结果
%% 目标函数
function y=fun(x)
y=-(0.36*x(1)+0.25*x(2)+0.39*x(3));%求最大值,就是求负目标函数的最小值,然后取相反数即可
end
%% 非线性约束
function [c,ceq]=nonlcon(x)
c=12/5*x(1)+11/5*x(2)+10/3*x(3)-3/5*x(1)*x(2)-x(1)*x(3)-1/15*x(2)*x(3)-31/75*x(1)^2-1/25*x(2)^2-3;
ceq=[];
end
%% 线性约束
A =[5/9 1/3 7/9;5/9 4/9 2/3;1/3 1 0;1/3 0 1;...
-5/9 -1/3 -7/9;-5/9 -4/9 -2/3;-1/3 -1 0;-1/3 0 -1;];
b=[1 1 1 1 0 0 0 0]';
%% 自变量取值范围
lb=[0 0 0];
ub=[1 1 1];
%% 初值
x0=[0.1 0.1 0.1]
%% fmincon参数设定
options=optimset('Algorithm','active-set');
%% 计算非线性规划
[x,fval] = fmincon(@fun,x0,A,b,[],[],lb,ub,@nonlcon,options);
x=x
MAX=-fval
format short%恢复默认格式
end
保存运行即可
结果:
x =
1.000000000000000 0 0.434285714286495
MAX =
0.529371428571733
再给一种不同的形式
function zd0323
format long%改变格式,使更精确输出结果
%% 目标函数
function y=fun(x)
y=-(0.36*x(1)+0.25*x(2)+0.39*x(3));%求最大值,就是求负目标函数的最小值,然后取相反数即可
end
%% 非线性约束
function [c,ceq]=nonlcon(x)
c=12/5*x(1)+11/5*x(2)+10/3*x(3)-3/5*x(1)*x(2)-x(1)*x(3)-1/15*x(2)*x(3)-31/75*x(1)^2-1/25*x(2)^2-3;
ceq=[];
end
%% 线性约束
A =[5/9 1/3 7/9;5/9 4/9 2/3;1/3 1 0;1/3 0 1;...
-5/9 -1/3 -7/9;-5/9 -4/9 -2/3;-1/3 -1 0;-1/3 0 -1;];
b=[1 1 1 1 0 0 0 0]';
%% 自变量取值范围
lb=[0 0 0];
ub=[1 1 1];
%% 初值
x0=[0.1 0.1 0.1]
%% fmincon参数设定
options=optimset('Algorithm','active-set');
%% 计算非线性规划
[x,fval] = fmincon(@fun,x0,A,b,[],[],lb,ub,@nonlcon,options);
x=x
MAX=-fval
format short%恢复默认格式
end
保存运行即可
结果:
x =
1.000000000000000 0 0.434285714286495
MAX =
0.529371428571733
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询