clear
c1=10496108;
c2=10500275;
c3=10504442;
c4=10508609;
c5=10512776;
a=[1,c1,c1^2,c1^3;
1,c2,c2^2,c2^3;
1,c3,c3^2,c3^3;
1,c4,c4^2,c4^3;
1,c5,c5^2,c5^3;];
b=[-304376603
;-304280953;-304178784;-304070105;-303954925];
xyzt=pinv(a)b
%伪逆法求解
%xyzt=a\b
%左除法
xyzt
=
10e+004
00005
18316
-00004
00000线性规划的问题。
一般情况靠求偏导数,来取极值,
本题,分母恰为x1+x2+x3,将x1+x2+x3=140
代入,由系数可以看出x3、x2尽可能地小,所以极小值在x3=30,x2=30,x1=80时取得。
使用matlab简单计算可以得到:minf=943
。在MATLAB的M文件编辑窗口中编入目标函数(obj_funm)以及非线性的约束条件(nl_con_funm)的M文件。在MATLAB的命令窗口中输入所需参数:A=[…];B=[…];Aeq=[…];Beq=[…];LB;UB以及X0等。最后在命令窗口中输入命令:
[x,obj_value,EXITFLAG]=FMINCON('obj_fun',X0,A,B,Aeq,Beq,LB,UB,'nl_con_fun');
如果 (EXITFLAG<=0),则原问题不可行或无解。如果 (EXITFLAG>0),则x与obj_value分别为最优解和目标函数的最优值。找到一组解:
x1=6348704488
x2=5541935041
maxY1=1900000001
maxY2=220
maxY3=1747165589
根据你的诚意,再告诉你方法,呵呵。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 =
3163406
3161150 %即x=y等于这个数时最小
fval =
7134556 %最小值为这个值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)