求助 Matlab优化函数fmincon的问题
小弟刚刚开始学这个优化问题,遇到一个程序问题,优化问题是一个例子,程序也是教材上的,但运行起来老是出问题,麻烦各位大侠给看看啊,谢谢了。这个是报错的信息:Warning:...
小弟刚刚开始学这个优化问题,遇到一个程序问题,优化问题是一个例子,程序也是教材上的,但运行起来老是出问题,麻烦各位大侠给看看啊,谢谢了。这个是报错的信息:Warning: Large-scale (trust region) method does not currently solve this type of problem,switching to medium-scale (line search).> In fmincon at 260 In fftest at 9??? Error using ==> fminconFMINCON cannot continue because user supplied objective function failed with the following error:Error using ==> fevalUndefined command/function 'myfun'.Error in ==> fftest at 9[x,fval]=fmincon('myfun',x0,A,b,Aeq,beq,lb,ub,'mycon')下面是m文件:function fftestclearx0=[-1;1];A=[];b=[];Aeq=[1 1];beq=[0];lb=[];ub=[];[x,fval]=fmincon('myfun',x0,A,b,Aeq,beq,lb,ub,'mycon')function f=myfun(x) f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);function [g,ceq]=mycon(x) g=[x(1)+x(2);1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];按F5运行时就出现了错误,不知道哪里出问题了
展开
2个回答
2013-11-13
展开全部
呵呵 这个是一个很不容易觉察到的错误1.至于那个warning,不要紧,可以不理他,它只是告诉你没有使用默认的算法,而是换了另外一种。如果你将largescale关闭,并且算法对应设置就不会有这个warning2.对于这个error,这是一个很诡异的东西,如果将你的目标函数保存为myfun.m文件,那么你的代码没有任何问题,可以正常运行,现在问题是你个目标函数不是M文件。我们如下分析下fmincon(myfun....)中的myfun必须是目标函数的句柄或者对应M文件名字符串,记住只能是这两种!!!!当你的目标函数是M文件时,那么我们可以如下调用句柄方式:fmincon(@myfun...)文件名方式:fmincon('myfun'....),由于文件名可以作为M函数来调用当你的目标函数是子函数时,那么只能使用句柄,不能使用函数名字符串,因为函数名在Matlab中是不能直接调用(注意:Matlab调用M函数的时候都是使用M文件名,只是通常将文件名和函数名设置成一样),故此是只能句柄方式:fmincon(@myfun,...)不知道我的意思你明白没有,你可以根据我说明的试试,自己体会下
2013-11-13
展开全部
我能在这求助么,我很急啊,希望别扣我分目标函数:f=0.192457e-4*(x2+2)*x1^2*x3;约束函数:g1=350-163*x1^(-2.86)*x3^0.86;>> g2=0.4e-2*x1^(-4)*x2*x3^3-10;>> g3=3.7*x3-(x2+1.5)*x1-0.44e-2*x1^(-4)*x2*x3^3;>> g4=0.356e6*x1*x2^(-1)*x3^(-2)-375;>> g5=x3/x1-4;>> g6=x1-1;>> g7=4-x1;>> g8=x2-4.5;>> g9=50-x2;>> g10=x3-10;>> g11=30-x3;采用约束坐标轮换法(或者别的优化方法,只要能优化就行)求解,初始设计参数为X0=[2.0,5.0,25.0]T,初始质量为F(X(0))=0.013472kg=13.472g
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询