例如:F(a,b)=|0.3a+0.57b|+|0.23b-0.376b|,其中a+b=1
求函数F(a,b)取最小值时a,b的值,
怎样用matlab计算求解,求各位大侠指导!!
F(a,b)=|0.3a+0.57b|+|0.23a-0.376b|,其中a+b=1
a>=0;b>=0
a+b=1
a>=0;b>=0
说明a的上限为1,b也是如此
其中exitflag=1,说明了什么?
恩,我没考虑到,a的上限应该改成1。
exitflag=1表示这个函数最值在0<=a<=1中是唯一的。
对于这样的一个程序,我运行结果都是exitflag>1的,怎么样调呢?
x0=[0;0];
A=[]; b=[];
Aeq=[1,1];beq=1;
VLB=[0;0]; VUB=[1;1];
[x,fval,exitflag]=fmincon('ztiaohe4',x0,A,b,Aeq,beq,VLB,VUB)
exitflag的值对于不同的函数有不同的意义。不同的exitflag值其实指示着不同的程序终止的原因。因为matlab做的是数值运算,所以得到的最优解都是满足某种误差要求的近似解。
对于fminbnd, 只有得到exitflag=1才能说明解的可用性。但是对于fmincon,只要exitflag不是0或-1,解都是可用的。只是不同的数值代表了不同的误差设置。你可以在命令窗口输入doc fmincon查看具体数值的含义。
能给个具体的程序吗?matlab不怎么会