Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-07-22, 19:42   #1
骑单车的男孩
初级会员
 
注册日期: 2009-07-22
帖子: 3
声望力: 0
骑单车的男孩 正向着好的方向发展
难过 关于fmincon的问题,急呀!

哪位高手能帮个忙?目标函数是非线性,约束只有[30 0 0 0 ]<=x, x为一向量。运行总过不去,老有错误信息
??? Error using ==> optimfcnchk
NONLCON must be a function.

Error in ==> fmincon at 257
[confcn, msg] = optimfcnchk(NONLCON,'fmincon',length(varargin),funValCheck,gradconstflag,false,1);

>> 下面是程序:
目标函数:
function f = myfun(x)
C1= 1 %待加工点z坐标
C2= 2 %待加工点y坐标
C3= 3 %待加工点z坐标

z12=1/5*[sqrt(500^2-(x(1)*cos(x(2))+c1)^2-(x(1)*sin(x(2))+c2)^2)-...
sqrt(500^2-(x(1)*cos(x(3))+c1)^2-(x(1)*sin(x(3))+c2)^2)] %p1点与p2点z坐标差

z32=1/5*[sqrt(500^2-(x(1)*cos(x(4))+c1)^2-(x(1)*sin(x(4))+c2)^2)-...
sqrt(500^2-(x(1)*cos(x(3))+c1)^2-(x(1)*sin(x(3))+c2)^2)] %p3点与p2点z坐标差

N=[x(0)*((sin(x(4))-sin(x(3)))*z12-(sin(x(4))-sin(x(3)))*z32),
x(0)*((sin(x(2))-sin(x(3)))*z32-(sin(x(4))-sin(x(3)))*z12),
x(0)*((sin(x(4))-sin(x(3)))*(sin(x(4))-sin(x(3)))-(sin(x(2))-sin(x(3)))*(sin(x(4))-sin(x(3))))] %测量模型的法向量

M=[2*C1/500^2,2*C2/500^2,2*C3/100^2] %理论法向量

f=1-abs(dot(N,M))/(norm(N)*norm(M))


下面是主程序:
x0=[30 0 2*pi/3 4*pi/3]
A=[]
b=[]
Aep=[]
Beq=[]
lp=[30 0 0 0]
up=[]
options(3)=1-cos(0.5*pi/180)
[x,fval]=fmincon(@myfun,x0,A,b,Aep,Beq,lp,up,options)

运行结果:
??? Error using ==> optimfcnchk
NONLCON must be a function.

Error in ==> fmincon at 257
[confcn, msg] = optimfcnchk(NONLCON,'fmincon',length(varargin),funValCheck,gradconstflag,false,1);
应该设nonlcon么?但我这里只有变量x的下限,没有nonlcon呀!!
骑单车的男孩 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 14:46


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.