matlab 非线性有约束的优化问题

这是我的M文件:
function f=myfun(x)
f=-x(1)*x(2)*x(3);

funtion [c,ceq]=mycon(x)
ceq=x(2)*x(3)+x(3)*x(1)+x(1)*x(2)-75
c=0;

x0=[4; 5; 6];
lb=zeros{3,1};
[x, fval, exitflag. output, lambda]=fmincon(@myfun,x0, [], [], [], [], lb, [], @mycon);

当我运行第一个文件时:出现了这样的错误
??? Input argument "x" is undefined.

Error in ==> myfun at 2
f=-x(1)*x(2)*x(3);

我在网上也查了很多资料,不过都没解决!求大神帮忙,急用 谢谢!!!!
如果觉得在知道里说不清,请加我QQ:369487257

第1个回答  2013-05-20
搞定,以下程序放在一个m文件中,我给你做成子函数了
function [] = myhelp()
clear;
clc;
x0=[4; 5; 6];
lb = zeros(3,1);
[x, fval, exitflag. output, lambda]=fmincon(@myfun,x0, [], [], [], [], lb, [], @mycon);

function f=myfun(x)
f=-x(1)*x(2)*x(3);
function [c,ceq]=mycon(x)
ceq=x(2)*x(3)+x(3)*x(1)+x(1)*x(2)-75
c=0;

有问题欢迎追问,没问题别忘了采纳追问

好像还是不行啊,我把你说的所有程序写在一个M文件里面,但是有很多语法错误
运行结果:
??? Undefined function or method 'fmincon' for input arguments of type
'function_handle'.

Error in ==> myhelp at 6
[~, ~, ~,~, ~]=fmincon(@myfun,x0, [], [], [], [], lb, [], @mycon);
不过还是谢谢你

追答

不可能啊,我的都可以。结果如下:你要是不行还是多个m文件吧
ceq =
-9.5736e-008

ceq =
-5.8265e-013

ceq =
7.4506e-007

ceq =
7.4506e-007

ceq =
7.4506e-007
Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
1
>>