作业帮 > 综合 > 作业

matlab这个程序哪出错了,怎么不能运行啊

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 16:21:42
matlab这个程序哪出错了,怎么不能运行啊
syms w1 w2 w3 w4 w5;
w0=[0.4;0.1;0.1;0.1;0.3];
w=[w1;w2;w3;w4;w5];
e=[0.147 -0.017 0.311 -0.025 0.22;-0.017 0.025 -0.052 0.001 -0.003;0.311 -0.052 2.278 0.023 0.595;-0.025 0.001 0.023 0.056 0.183;0.22 -0.003 0.595 0.183 4.794];
objfun=w'*e*w;
r=[10;7.3;13;8;14];
r0=10;
A=[];
b=[];
Aeq=[10 7.3 13 8 14;1 1 1 1 1];
beq=[10;1];
lb=[0 0 0 0 0];
w=fmincon(@objfun,w0,A,b,Aeq,beq,lb)
‘objfun’是一个变量 而‘fmincon' 第一个参数必须是一个函数名.所以不对了.
不知道你到底要实现什么目的.改为如下可以运行.
syms w1 w2 w3 w4 w5;
w0=[0.4;0.1;0.1;0.1;0.3];
w=[w1;w2;w3;w4;w5];
e=[0.147 -0.017 0.311 -0.025 0.22;-0.017 0.025 -0.052 0.001 -0.003;0.311 -0.052 2.278 0.023 0.595;-0.025 0.001 0.023 0.056 0.183;0.22 -0.003 0.595 0.183 4.794];
objfun=@ (x) x'*e*x; %定义一个函数句柄.
r=[10;7.3;13;8;14];
r0=10;
A=[];
b=[];
Aeq=[10 7.3 13 8 14;1 1 1 1 1];
beq=[10;1];
lb=[0 0 0 0 0];
w=fmincon(objfun,w0,A,b,Aeq,beq,lb)