min f(x)=12*x(1)+21*x(2)+21*x(3)+13*x(4)+20*x(5)+23*x(6)+15*x(7)+17*x(8)+27*x(9)+17*x(10)+19*x(11)+31*x(12)+200*[(x(1)+x(2)+x(3))^0.6+(x(4)+x(5)+x(6))^0.6+(x(7)+x(8)+x(9))^0.6+(x(10)+x(11)+x(12))^0.6]
s.t. x(1)+x(2)+x(3)<=183.55;
x(4)+x(5)+x(6)<=283.55;
x(7)+x(8)+x(9)<=383.55;
x(10)+x(11)+x(12)<=183.55;
x(1)+x(4)+x(7)+x(10)>=116.45;
x(2)+x(5)+x(8)+x(11)>=316.45;
x(3)+x(6)+x(9)+x(12)>=416.45;
x(1),…x(12)>=0;
我是这样求的:
目标函数(运行显示下标不对)
function f=myobj(x)
c = [12 21 21; 13 20 23; 15 17 27; 17 19 31];
size(x) = [4,3];
y = c.*x;
y = sum(y(:));
s = 0;
for i = 1:4
sg = sum(x(i,:));
s = s+sg^0.6;
end
f = y+200*s;
command window
A= [1,1,1,0,0,0,0,0,0,0,0,0;
0,0,0,1,1,1,0,0,0,0,0,0;
0,0,0,0,0,0,1,1,1,0,0,0;
0,0,0,0,0,0,0,0,0,1,1,1;
-1,0,0,-1,0,0,-1,0,0,-1,0,0;
0,-1,0,0,-1,0,0,-1,0,0,-1,0;
0,0,-1,0,0,-1,0,0,-1,0,0,-1]
b=[200-1.645*10;
300-1.645*10;
400-1.645*10;
200-1.645*10;
-100-1.645*10;
-300-1.645*10;
-400-1.645*10]
x0=[0,0,0,0,0,0,0,0,0,0,0,0];
lb=[0,0,0,0,0,0,0,0,0,0,0,0];
ub=[];
[X,FVAL]=fmincon(@myobj,x0,A,b,[],[],lb,ub)
运行显示:
Warning: Large-scale (trust region) method does not currently solve this type of problem,
switching to medium-scale (line search).
> In fmincon at 260
??? Error using ==> fmincon
FMINCON cannot continue because user supplied objective function failed with the following error:
Subscript indices must either be real positive integers or logicals.
请热心人士帮忙看下怎么改?谢谢!
fval不可能是0.我觉得求出来的x是1*12矩阵,需转换为4*3矩阵,代到目标函数中算才有结果,但我不知道怎么转换。
...求解一个优化问题(目标函数非线性,约束函数线性)?
x(1) = -4.0301e+016 x11 x(2) = -5.3913e+016 x12 x(3) = -4.4068e+016 x13 x(4)= -4.5546e+016 x14 x(5) = -4.5676e+016 x21 x(6)= -4.9899e+016 x22 x(7) = -4.7096e+016 x23 x(8) = -5.1703e+016 x24 x(9) = -4.1...
如何用matlab求解非线性约束优化问题
此题的问题描如下图。由于本经验主要是谈非线性约束下的最优化问题,对于其他线性约束就不再考虑。然后启动matlab。新建一个函数文件,用来写目标函数。在编辑器窗口中写入我们要求的目标函数,并保存,注意使函数名与文件名相同。然后再新建一个函数文件,用来编写非线性约束条件。步骤及其注意事项同上。额...
MATLAB罚函数法解非线性有约束优化问题,毕业设计急用!哪位大神能帮这个...
function[c,ceq]=confuna(x)c(1)=2-x(3);c(2)=x(3)-40;c(3)=17-x(1);c(4)=5*x(3)-x(2);c(5)=x(2)-17*x(3);c(6)=2000-689*x(1);c(7)=2758.91-x(1)^2*x(3)^3;c(8)=20.48-x(1)*x(2)*sqrt(x(3));ceq=[];第二个:function f = myfuna(x)...
用matlab进行卧室储罐的结构优化目标函数是非线性,约束条件有非线性的...
1、确定结构优化目标函数,是最大值还是最小值 2、根据非约束条件(不等式)和约束条件(等式),确定结构优化约束函数 3、确定变量的初值(有必要时,需要调整)4、用fmincon()函数求得,其最优解 5、对最优解进行验证,是否符合不等式条件和等式条件。如满足,则求解成功。
matlab遗传算法优化问题中,非线性等式约束怎么添加啊?
建立约束条件函数,把非线性的等式约束条件添加加在[c,ceq]中。如 function [c,ceq]=NonCon(x)c=x(1)^2+x(2)^2-9;ceq=[];然后,再用ga()函数调用,如 [x, fval, exitflag] =ga(o@FitFun,nvars,A,b,Aeq,beq,lb,ub,NonCon)
matlab非线性约束优化设计-求大神指教,最好能发个源程序供参考_百度知 ...
根据上述,可以用matlab的fmincon()最小值函数求解,得到最优解。首先、建立目标函数,fmincon_fun(x)第二,建立约束函数,fmincon_con(x)第三,用fmincon函数求解,即 [x,fval,exitflag] = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],lb,ub,@(x) fmincon_con(x));求解结果 x1=...
matlab 向凸优化非线性约束函数传递参数 fmincon
计算x处的非线性不等约束 的函数值。Ceq = …计算x处的非线性等式约束 的函数值。lambda是Lagrange乘子,它体现哪一个约束有效。output输出优化信息;grad表示目标函数在x处的梯度;hessian表示目标函数在x处的Hessiab值。注意:1. fmincon 函数提供了大型优化算法和中型优化算法。默认时,若在 fun 函数...
使用matlab的fmincon优化解决非线性问题,一直报错,求大神解答,小白在线...
这道题我试了fmincon函数,效果不明显,所以改用全局搜索函数GlobalSearch。另外说明一下,这都是求极小值的函数,如果要求m的最大值,那就先求出-m的最小值,其相反数即为最大值。下面给出优化过程:先在m文件中创建约束函数 function [c,ceq] = fun_con(x) % 非线性不等约束 c = [];...
优化模型Matlab的求解方法,附代码演示
- 目标函数 - 约束函数(所有变量为正)【解答】a. 首先,根据题目确认这是一个线性规划问题。线性规划的通用数学表达式和MATLAB标准形式为:创建符合标准格式的A、b、Aeq、beq、lb、ub参数,才能顺利运行优化算法。b. 对于线性规划的优化求解步骤(也适用于其他优化方案),建议如下:1) 选择优化求解器...
利用matlab 求解非线性规划问题
利用matlab 求解非线性规划问题,其运行代码编写,可以这样来考虑:1、创建目标函数,myobj(x)f=-(2*x1+3*x1^2+3*x2+x2^2+x3)2、创建约束条件函数,mycon(x)根据给出的条件,来写不等式条件和等式条件 3、使用fmincon()函数,求解x1,x2,x3。即 [x,fval,exitflag]=fmincon(@myobj,x...