matlab算最大值用matlab计算y=x1+x1*x2+x3-x2*x3+x3*x4+134,其中x1到x4范围分别为(1到5),(2到7)(3-11),(4-10),当y最大时的x1,x2,x3,x4,请写出代码,

来源:学生作业帮助网 编辑:作业帮 时间:2024/12/01 19:12:39
matlab算最大值用matlab计算y=x1+x1*x2+x3-x2*x3+x3*x4+134,其中x1到x4范围分别为(1到5),(2到7)(3-11),(4-10),当y最大时的x1,x2,x3,x4,请写出代码,
xTn@o*<6%UH 0j+,Uhڤ/Uj%4 Bg'X]tu};Ofl:;4?o599By ! "90EP "5U"Cc#uM>$=n.mǯ/$eSpY5 b ?y8 !YBTi;'{ )%sh@6}S;xTL^|MxA:o1 B2CfHdȞR . ::6~i<鄦E)ߜmzYOR#/Ö򕼖 3l%. 4dNԌ?s6%88bqPOfcNt͙_XVW|}f>Г8],tz KrujMO'Mc2F/YQ[U1.Cm=1ݔZ+C:i3ʂ87+fe(S61PLU؂4IZw)-,1t܂k9d-Ad0Q =|`

matlab算最大值用matlab计算y=x1+x1*x2+x3-x2*x3+x3*x4+134,其中x1到x4范围分别为(1到5),(2到7)(3-11),(4-10),当y最大时的x1,x2,x3,x4,请写出代码,
matlab算最大值
用matlab计算y=x1+x1*x2+x3-x2*x3+x3*x4+134,其中x1到x4范围分别为(1到5),(2到7)(3-11),(4-10),当y最大时的x1,x2,x3,x4,请写出代码,

matlab算最大值用matlab计算y=x1+x1*x2+x3-x2*x3+x3*x4+134,其中x1到x4范围分别为(1到5),(2到7)(3-11),(4-10),当y最大时的x1,x2,x3,x4,请写出代码,
显然y>0;
用fmincon,求最小值
取y=-(x(1)+x(1)*x(2)+x(3)-x(2)*x(3)+x(3)*x(4)+134);
那么求出来的就是y的最大值

function y=OptimFun(x)
y=-(x(1)+x(1)*x(2)+x(3)-x(2)*x(3)+x(3)*x(4)+134);
%%%%%%%%%%%%%%%%%%%%%%
clc;clear;
[x,fval]=fmincon(@OptimFun,[1 2 3 4],[],[],[],[],[1 2 3 4],[5 7 11 10])

x =
5 2 11 10
fval =
-248
那么
y=-fval=248


%%%%%%%%%%%%%
可以用循环验证一下
clc;clear;
y=zeros(4*5*8*6+1);
y(1)=0;
for j=1:4*5*8*6;
for x1=1:1:5
for x2=2:1:7
for x3=3:1:11
for x4=4:1:10
y(j+1)=x1+x1*x2+x3-x2*x3+x3*x4+134;
if y(j+1)>y(j)
yy=y(j+1);
a=x1;b=x2;c=x3;d=x4;
j=j+1;
end
end
end
end
end
end
yy

yy =
248

显然y>0;
用fmincon,求最小值
取y=-(x(1)+x(1)*x(2)+x(3)-x(2)*x(3)+x(3)*x(4)+134);
那么求出来的就是y的最大值

function y=OptimFun(x)
y=-(x(1)+x(1)*x(2)+x(3)-x(2)*x(3)+x(3)*x(4)+134);
%%%%%%%%%%%...

全部展开

显然y>0;
用fmincon,求最小值
取y=-(x(1)+x(1)*x(2)+x(3)-x(2)*x(3)+x(3)*x(4)+134);
那么求出来的就是y的最大值

function y=OptimFun(x)
y=-(x(1)+x(1)*x(2)+x(3)-x(2)*x(3)+x(3)*x(4)+134);
%%%%%%%%%%%%%%%%%%%%%%
clc;clear;
[x,fval]=fmincon(@OptimFun,[1 2 3 4],[],[],[],[],[1 2 3 4],[5 7 11 10])

x =
5 2 11 10
fval =
-248
那么
y=-fval=248


%%%%%%%%%%%%%
可以用循环验证一下
clc;clear;
y=zeros(4*5*8*6+1);
y(1)=0;
for j=1:4*5*8*6;
for x1=1:1:5
for x2=2:1:7
for x3=3:1:11
for x4=4:1:10
y(j+1)=x1+x1*x2+x3-x2*x3+x3*x4+134;
if y(j+1)>y(j)
yy=y(j+1);
a=x1;b=x2;c=x3;d=x4;
j=j+1;
end
end
end
end
end
end
yy

yy =
248

收起