QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3962|回复: 7
打印 上一主题 下一主题

[问题求助] 哪位高手帮我看下下面程序

[复制链接]
字体大小: 正常 放大

1

主题

3

听众

25

积分

升级  21.05%

该用户从未签到

自我介绍
打酱油的
跳转到指定楼层
1#
发表于 2010-5-22 09:16 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
本帖最后由 干一@者 于 2010-5-22 09:22 编辑

程序1 求初解

clc,clear

A1=eye(6,6);

A2=eye(4,4);

B1=A1(1:5,:);

B2=A2(1,:);

X1=[A1;A1;A1;A1;B1];

X4=[A2;A2;A2;A2;A2;A2;A2;B2];

%以下程序用于求解X2X31-9个决策变量

P1=X1;t=0;

while(t<2)


X=zeros(29,6);


c11=zeros(1,6);


c1=zeros(1,6);


count=0;


for
m=1:9


tag11=0;


for
n=1:6


if
P1(m,n)==0


if
c11(n)<2&tag11==0&count<3



X(m,n)=1;


tag11=1;


c11(n)=c11(n)+1;


c1(n)=c1(n)+1;


if
c11(n)==2


count=count+1;


end


elseif
c11(n)<1&tag11==0



X(m,n)=1;


tag11=1;


c11(n)=c11(n)+1;


c1(n)=c1(n)+1;


end


end


end


end


%以下程序用于调整X3中前9行中不满足条件的决策变量


if(t==1)


a=sum(X(1:9,:)');



for
m=1:9


if
a(m)==0


b=m;


break;


end


end


Y=X(1:9,:);


for
m=1:9


kk=0;


c=P1(b,:)+Y(m,:);


for
n=1:6


if
c(n)==2



kk=1;


break;


end


end


if
kk==0


X(b,:)=Y(m,:);


X(m,:)=Y(b,:);


for
n=1:6


if
P1(m,n)==0


X(m,n)=1;


break


end


end


break


end


end


end


%以下程序用于求解X2X320-29个决策变量


for m=10:29


tag12=0;


for
n=1:6


if
P1(m,n)==0



if
c1(n)<5&tag12==0


X(m,n)=1;


tag12=1;


c1(n)=c1(n)+1;


else


X(m,n)=0;


end


else


X(m,n)=0;


end


end


end


%以下程序用于调整X320-29个不满足条件的决策变量


if
t==1


Y=X


for
m=10:29


if
P1(m,6)==0


X(m,:)=Y(29,:);


X(29,:)=Y(m,:);


X(m,6)=1;


break


end



end


end


if
t==0


X2=X;


else


X3=X;


end


P1=P1+X;


t=t+1;

end

%以下程序用以求得满足约束条件的X5X6X7

t=0;

while
(t<3)


C2=randperm1(A2);


B2= C2(1,:);


Y=[randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2);



randperm1(A2); randperm1(A2); randperm1(A2);B2];


if
t==0


X5=Y;


elseif
t==1


X6=Y;


else


X7=Y;


end


t=t+1;

end

%将初解保存在文本文件shuju

save
shuju X1 X2 X3 X4 X5 X6 X7

程序2 目标函数

function f=F(A,B,C,D,E,F,G)

Q1=A*A-eye(29,29);

Q2=B*B-eye(29,29);

Q3=C*C-eye(29,29);

Q4=D*D-eye(29,29);

Q5=E*E-eye(29,29);

Q6=F*F-eye(29,29);

Q7=G*G-eye(29,29);

Q_sum=Q1+Q2+Q3+Q4+Q5+Q6+Q7;

Q_sum=Q_sum+eye(29,29);

M=Q_sum==zeros(29,29);

count=sum(sum(M));

g=norm(Q_sum);

f=0.7*count+0.3*g;

程序3 随即变换

function[X]=randperm1(A)

n=size(A,1);

y=randperm(n);

for p=1:n

X(p,:)=A(y(p),:);

end

程序4 退火过程

%模拟退火算法求最优解

tic;

clc;clear

load shuju;

t0=100;

tf=0.01;

k=1000;

f=F(X1,X2,X3,X4,X5,X6,X7);

t=t0;

while t>tf

for k=1:k

y=randperm(9);

for m=1:9

X11(m,:)=X1(y(m),:);

X22(m,:)=X2(y(m),:);

X33(m,:)=X3(y(m),:);

end

z=randperm(20);

z=z+9*ones(1,20);

for m=10:29

X11(m,:)=X1(z(m-9),:);

X22(m,:)=X2(z(m-9),:);

X33(m,:)=X3(z(m-9),:);

end

p=randperm(6);

for m=1:6

X11(:,m)=X1(:,p(m));

X22(:,m)=X2(:,p(m));

X33(:,m)=X3(:,p(m));

end

A2=eye(4,4);

C4=randperm1(A2);

B4=C4(1,:);

C5=randperm1(A2);

B5=C5(1,:);

C6=randperm1(A2);

B6=C6(1,:);

C7=randperm1(A2);

B7=C7(1,:);

X44=[randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2);B4];

X55=[randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2);B5];

X66=[randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2);B6];

X77=[randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2); randperm1(A2);B7];

ff=F(X11,X22,X33,X44,X55,X66,X77);

if ff<f

X1=X11;

X2=X22;

X3=X33;

X4=X44;

X5=X55;

X6=X66;

X7=X77;

elseif exp((f-ff)/t)>rand(1)

X1=X11;

X2=X22;

X3=X33;

X4=X44;

X5=X55;

X6=X66;

X7=X77;

end

f=ff;

end

t=0.87*t;

end

toc;

%1=toc

save zhi X1 X2 X3 X4 X5 X6 X7
%
将结果保留在zhi

程序5
计算见面次数

load zhi

Q1=X1*X1-eye(29,29);

Q2=X2*X2-eye(29,29);

Q3=X3*X3-eye(29,29);

Q4=X4*X4-eye(29,29);

Q5=X5*X5-eye(29,29);

Q6=X6*X6-eye(29,29);

Q7=X7*X7-eye(29,29);

Q_sum=Q1+Q2+Q3+Q4+Q5+Q6+Q7;

Q_sum1=Q_sum+eye(29,29);

M=Q_sum1==zeros(29,29);

count=sum(sum(M));

g=norm(Q_sum);

f=0.7*count+0.3*g;

f,count,g

count0=0;count1=0;count2=0;count3=0;count4=0;count5=0;count6=0;count7=0;

for m=1:29

for n=1:29

if Q_sum(m,n)==0

count0=count0+1;

elseif Q_sum(m,n)==1

count1=count1+1;

elseif Q_sum(m,n)==2

count2=count2+1;

elseif Q_sum(m,n)==3

count3=count3+1;

elseif Q_sum(m,n)==4

count4=count4+1;

elseif Q_sum(m,n)==5

count5=count5+1;

elseif Q_sum(m,n)==6

count6=count6+1;

elseif Q_sum(m,n)==0

count7=count7+1;

end

end

end

(count0-29)/2,count1/2,count2/2,count3/2,count4/2,count5/2,count6/2,count7/2

我运行程序四时就运行不了,错误提示如下

??? Undefined function or method 'F' for input arguments of type 'double'.



希望哪位高手帮我解决下,我很急用,谢谢

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

21

主题

7

听众

3435

积分

升级  47.83%

  • TA的每日心情

    2014-5-25 20:58
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    新人进步奖 优秀斑竹奖

    群组Matlab讨论组

    群组小草的客厅

    群组数学趣味、游戏、IQ等

    群组C 语言讨论组

    群组我行我数

    回复

    使用道具 举报

    1

    主题

    3

    听众

    25

    积分

    升级  21.05%

    该用户从未签到

    自我介绍
    打酱油的
    回复

    使用道具 举报

    hugoczx        

    33

    主题

    5

    听众

    274

    积分

    升级  87%

    该用户从未签到

    新人进步奖

    回复

    使用道具 举报

    16

    主题

    21

    听众

    3372

    积分

    升级  45.73%

  • TA的每日心情
    开心
    2013-10-25 15:56
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    自我介绍
    活泼,爱交友

    发帖功臣 新人进步奖

    群组数学建模

    群组数学趣味、游戏、IQ等

    群组我行我数

    群组Mathematica研究小组

    群组LINGO

    都要在.M文件下进行吗?模拟退火的程序似乎有点难,错误很难发现,建议搜索哈网上的……看看某些书籍里面的
    回复

    使用道具 举报

    gaoxian 实名认证       

    2

    主题

    6

    听众

    1265

    积分

  • TA的每日心情
    难过
    2012-10-26 11:15
  • 签到天数: 58 天

    [LV.5]常住居民I

    新人进步奖

    群组Matlab讨论组

    群组建模军团

    群组数学建摸协会

    群组数模应用

    群组B题讨论群

    回复

    使用道具 举报

    alair006        
    头像被屏蔽

    0

    主题

    4

    听众

    558

    积分

    升级  86%

  • TA的每日心情
    擦汗
    2012-2-8 08:16
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    alair002        
    头像被屏蔽

    1

    主题

    4

    听众

    328

    积分

    升级  9.33%

  • TA的每日心情
    擦汗
    2012-2-6 07:40
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-11 21:35 , Processed in 0.419774 second(s), 93 queries .

    回顶部