声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 940|回复: 2

[综合讨论] 用复合形做优化结果不对,不知错哪里了

[复制链接]
发表于 2007-9-23 15:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
按照书上介绍的复合形算法写的小程序,运行倒是通过了
可结果却不敢恭维, 不知错哪里了, 请大家帮忙看一下,
非常非常感谢!
自己觉得算法本身可能有问题

clear;format long;a=4;b=9;
V=zeros(4,2);r=rand(4,2);Y=zeros(4,1);
for i=1:4
    V(i,:)=a+r(i,:).*(b-a);
end
for i=1:4
    Z=V(i,:);Y(i)=feval(@f,Z);%f=x.^2-7*x+y.^2-4*y-x.*y
end
[m l]=min(Y);[m h]=max(Y);
cnt=0;
F=sum((Y-Y(l)).^2);e=0.0001;u=2.5;
while F<e
    S=zeros(1,2);
    for i=1:4
        S=S+V(i,:);
    end
    M=(S-V(h,:))/3;yM=feval(@f,M);
    R=2*M-V(h,:);
    while (R(1)<4|R(1)>9)|(R(2)<4|R(2)>9)
           R=(R+M)/2;
    end
    yR=feval(@f,R);
    if yR<Y(l)
        E=u*M-(1-u)*V(h,:);
        while (E(1)<4|E(1)>9)|(E(2)<4|E(2)>9)
               E=(E+M)/2;
        end
        yE=feval(@f,E);
        if yE<yR
            V(h,:)=E;Y(h)=yE;
        else
            V(h,:)=R;Y(h)=yR;
        end
    else
        if yR>Y(l)&yR<Y(h)
            V(h,:)=R;Y(h)=yR;
        else
            if yR>Y(h)
                N=0.5*M-0.5*V(h,:);
            else
                N=1.5*M+0.5*V(h,:);
            end
            while (N(1)<4|N(1)>9)|(N(2)<4|N(2)>9)
                   N=(N+M)/2;
            end
                yN=feval(@f,N)
                if yN<Y(h)
                    V(h,:)=N;Y(h)=yN;
                else
                    for i=1:4
                        V(i,:)=(V(i,:)+V(l,:))/2;
                         Z=V(i,:);Y(i)=feval(@f,Z);
                    end
                end            
        end
    end
    [m l]=min(Y);[m h]=max(Y);
    F=sum((Y-Y(l)).^2);
    cnt=cnt+1;
end
    x=V(l,:)

虽然MATLAB自带了优化工具箱,但实际优化的目标函数不是显函数,
所以只能自己动手编, 郁闷啊现在

[ 本帖最后由 花如月 于 2007-9-23 20:44 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-9-24 00:22 | 显示全部楼层
http://www.simwe.com/forum/viewthread.php?tid=791513
http://www.simwe.com/forum/viewthread.php?tid=797984
上面两个帖子可以参考下。

[ 本帖最后由 rocwoods 于 2007-9-24 00:25 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2007-9-24 09:17 | 显示全部楼层
谢谢 :handshake :@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 09:30 , Processed in 0.070340 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表