%建立M-文件 fun3.m,定义目标函数:
function f=fun3(x)
f=-0.043*x(1)-0.5*(0.054*x(2)+0.050*x(3)+0.044*x(4)+0.045*x(5));
%再建立M文件mycon.m,定义非线性约束条件:
function [g,ceq]=mycon(x)
g={
(2*x(1)+2*x(2)+x(3)+x(4)+5*x(5))/(x(1)+x(2)+x(3)+x(4)+x(5))-1.4;
(9*x(1)+15*x(2)+4*x(3)+3*x(4)+2*x(5))/(x(1)+x(2)+x(3)+x(4)+x(5))-5
};
ceq=[];
%再建立主程序
x0=[100;100;100;100;100]; %迭代初值选择
A=[1 1 0 0 0;1 1 1 1 1];b=[400;1000]; %两个线性约束矩阵
VLB=[0 0 0 0 0];VUB=[]; %各变量最小值大于0
Aeq=[];beq=[];
[x,fval]=fmincon('fun3',x0,A,b,Aeq,beq,VLB,VUB,'mycon')
运行时出现fmincon函数返回值错误,
错误使用 fmincon (line 710)
FMINCON requires all values returned by functions to be of data type double.
出错 LCX2222111031 (line 6)
[x,fval]=fmincon('fun3',x0,A,b,Aeq,beq,VLB,VUB,'mycon')
目标函数和约束条件如下:
这个错误应该怎么解决那
把第7行末尾的分号改成逗号