|
软件是死的,人是活的,编程不求变通,死套help,那还不如别学。
仅仅就此问题而言,不是“MATLAB优化的缺陷”,而是人脑思考问题的缺陷罢了。如果真用MATLAB执行,并且只是想要正确结果,没有那么复杂:
MATLAB(Trust-reign-NEWTON SQP-fmincon)
利用循环给随机初值计算,最后找最小值,十次循环基本都可以搜索到楼主提供的值,至于主函数和约束函数,楼主自己去写,应该已经解决,不多说。- %% 窗口执行代码
- clc
- format long
- A=[];b=[];Aeq=[];beq=[];lb=[];ub=[];
- options=optimset('largescale','off');
- for i=1:30
- x0(1)=rand*(-1)^(round(10*rand));
- x0(2)=(-1)^(round(10*rand))*sqrt(9-x0(1)^2);
- [x,fval,exitflag,output]=fmincon(@EqnOptMain,x0,A,b,Aeq,beq,lb,ub,@EqnOptSub,options);
- x1(i,:)=x;
- fval1(i)=fval;
- end
- fmin=min(fval1)
复制代码 1stopt中的麦夸特法(Levenberg-Marquardt) + 通用全局优化法- Title "123";
- Constant n=2;
- Parameters x(1:2);
- minFunction 4-(x1+0.25)^2+(x1+0.25)^3+(x1+0.25)^4-x2;
- sqrt(x1^2+x2^2)=3;
复制代码 两者的计算结果均相同,都是
fmin =0.244013989410960
[ 本帖最后由 bainhome 于 2007-8-24 02:42 编辑 ] |
评分
-
1
查看全部评分
-
|