当前位置:编程学习 > Matlab >>

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)

上一个:Matlab程序编写
下一个:求MATLAB高手帮忙修改程序!!!我不知道错在哪里了,但是这个程序运行不出来。解答出来,再给200分

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,