![]() |
求助!! fmincon优化问题
各位好,我最近在做一个fmincon优化问题,但始终有个错误,恳请各位高手指教!!!!
我已经查看了很多关于fmincom的帖子,并且help里面的调用格式也看了,还是不知道错在哪。 M文件程序: 1 x0=[0.055;5.0;30]; 2 ub=[0.07;8.0;50]; 3 lb=[0.04;1.7;20]; 4 [x,fn]=fmincon(@lianyouhua_f,x0,[],[],[], [],lb,ub,@lianyouhua_g); 5 disp 6 fprintf(1,' x1= % 3.4f \n',x(1)) 7 fprintf(1,' x2= % 3.4f \n',x(2)) 8 fprintf(1,' x3= % 3.4f \n',x(3)) 9 fprintf(1,' f= % 3.4f \n',fn) 10 g=lianyouhua_g(x); 11 disp' 12 fprintf(1,' g1= % 3.4f \n',g(1)) 13 fprintf(1,' g2= % 3.4f \n',g(2)) 14 function f=lianyouhua_f(x); 15 f=(127.4*((444.5*x(1)/x(2))^1.35))*sqrt(x(1)^2+x(2)^2+2*x(1)*x(2)*cos(pi*x(3)/180))+1 6.9*cos(x(3))+0.00023*x(1);16 16 function [g,ceq]=lianyouhua_g(x); 17 g(1)=444.5*x(1)/x(2)-15; 18 g(2)=3-444.5*x(1)/x(2); 19 ceq=[]; 问题: ??? Error: File: E:\MATLAB7.0\work\lian.m Line: 14 Column: 1Function definitions are not permitted at the prompt or in scripts. 说实话,我学MATLAB只有三天,这段程序是我从别人论文上摘录的,想运行好了之后自己用,可现在原程序都运行不好!!! (第14行)function f=lianyouhua_f(x); 这和help里面fmincon的调用格式完全一致啊,为什么会错呢。 谢谢各位大虾了 !!!!! |
回复: 求助!! fmincon优化问题
函数1:
function f=lianyouhua_f(x); f=(127.4*((444.5*x(1)/x(2))^1.35))*sqrt(x(1)^2+x(2)^2+2*x(1)*x(2)*cos(pi*x(3)/180))+16.9*cos(x(3))+0.00023*x(1); 函数2: function [g,ceq]=lianyouhua_g(x); g(1)=444.5*x(1)/x(2)-15; g(2)=3-444.5*x(1)/x(2); ceq=[]; 将两函数分别保存在当前工作目录下; 要运行的程序: x0=[0.055;5.0;30]; ub=[0.07;8.0;50]; lb=[0.04;1.7;20]; [x,fn]=fmincon(@lianyouhua_f,x0,[],[],[], [],lb,ub,@lianyouhua_g); fprintf(1,' x1= % 3.4f \n',x(1)) fprintf(1,' x2= % 3.4f \n',x(2)) fprintf(1,' x3= % 3.4f \n',x(3)) fprintf(1,' f= % 3.4f \n',fn) g=lianyouhua_g(x); fprintf(1,' g1= % 3.4f \n',g(1)) fprintf(1,' g2= % 3.4f \n',g(2)) 望有帮助!!! 希望多看点基础资料,那样效率更高点!!!! |
回复: 求助!! fmincon优化问题
谢谢 谢谢二楼的帮助
有点疑惑,我看过不少关于fmincon函数的帖子,也看过help里面的内容,一般都是同一个m文件运行的啊 我先按你说的方法试试 有问题再来请教你 谢谢 !!!!!! |
所有时间均为北京时间。现在的时间是 13:36。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.