请问用MATLAB编程,哪里错了?

functionf=fun(x);f=4233.1*(1/x(1))+1539.2*(1/x(2))+4667.5*(1/x(3))+1263.8*(1/x(4))+51... function f=fun(x);
f=4233.1*(1/x(1))+1539.2*(1/x(2))+4667.5*(1/x(3))+1263.8*(1/x(4))+511.2*(1/x(5))+3292.2*(1/x(6))+2.4973*(1/x(7));
function [g,ceq]=mycon(x);
g=[1539.2*x(7)+2497.3*x(2)+640*x(2)*x(7)];
ceq=[];

x0=[2;2;2;2;2;3;3];
A=[];
b=[];
Aeq=[1 1 1 1 1 1 1];
beq=[18];
vlb=[0 0 6.4826 0 0 9.145 0 ];
vub=[18 18 18 18 18 18 18];
[x,fval]=fmincon('fun',A,b,Aeq,beq,vlb,vub,'mycon')
报错Error using fmincon (line 225)
FMINCON requires the following inputs to be of data type double: 'UB'
展开
 我来答
金鱼头头啊
2013-08-06 · TA获得超过428个赞
知道答主
回答量:152
采纳率:0%
帮助的人:97万
展开全部
很明显,是变量出错!
为什么呢?因为matlab的编程对于数据操作比较严格,一般不能自动转换比如要实现一个浮点数的运算,算一个1/x,当想要的结果为float的时候,这个时候就会报错,为什么呢?因为1不是浮点数,要改成1.0,由于你程序不够完整,咱不能具体看出到底哪些变量错误,不过大概可以知道你
vlb=[0 0 6.4826 0 0 9.145 0 ];
vub=[18 18 18 18 18 18 18];
此处你有浮点型,又有整型的,当你把他们混合一起运算,应该就会出问题,你试着都改成浮点型试试看吧。比如
vub=[18 .0 18.0 18.0 18.0 18.0 18.0 18.0];
把1/x改成1.0/x
追问
还是报错了,也是报的Error using fmincon (line 225)
FMINCON requires the following inputs to be of data type double: 'UB',请问是什么原因?
我行我素850915
2013-08-06 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1691万
展开全部
function f=fun(x)
f=4233.1*(1/x(1))+1539.2*(1/x(2))+4667.5*(1/x(3))+1263.8*(1/x(4))+511.2*(1/x(5))+3292.2*(1/x(6))+2.4973*(1/x(7));
上面保存为fun.m
function [g,ceq]=mycon(x)
g=[1539.2*x(7)+2497.3*x(2)+640*x(2)*x(7)];
ceq=[];
上面保存为mycon.m
x0=[2;2;2;2;2;3;3];
A=[];
b=[];
Aeq=[1 1 1 1 1 1 1];
beq=[18];
vlb=[0 0 6.4826 0 0 9.145 0 ];
vub=[18 18 18 18 18 18 18];
[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,vlb,vub,'mycon')
在命令行中输入上面语句试试
更多追问追答
追问
我就是这样弄的,报错了Error using fmincon (line 225)
FMINCON requires the following inputs to be of data type double: 'UB'
追答
我这儿运行没问题,你的电脑或matlab版本有问题吧,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
crazy1155211
2013-08-06
知道答主
回答量:19
采纳率:0%
帮助的人:16.5万
展开全部
右键MATLAB属性,兼容性 选择VISTA 最下面以管理员运行 就OK了
追问
还是报错Error using fmincon (line 225)
FMINCON requires the following inputs to be of data type double: 'UB'.
追答
那就装个2012把  就是有点大 快5G了 需要下载一会
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式