matlab源程序代码

更新时间:2023-08-05 19:27:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

clear all;

clc;

tic;

X=zeros(1000,4);Y=zeros(1000,4);U=zeros(1000,1);

M=3;

a=[28 18 74 74 70 72 60 36 12 18 14 90 78 24 54 62 98 36 38 32]; b=[42 50 34 6 18 98 50 40 4 20 78 36 20 52 6 60 14 58 88 54]; Aeq=zeros(20,80);

for j=1:20

for k=1:20

if j==k

Aeq(j,k)=1;

else

Aeq(j,k)=0;

end

end

for k=21:40

if k==j+20

Aeq(j,k)=1;

else

Aeq(j,k)=0;

end

end

for k=41:60

if k==j+40

Aeq(j,k)=1;

else

Aeq(j,k)=0;

end

end

for k=61:80

if k==j+60

Aeq(j,k)=1;

else

Aeq(j,k)=0;

end

end

end

Aeq;

A=zeros(4,80);

for i=1:4

for k=1:80

if i==1

for k=1:20

A(i,k)=1;

end

end

if i==2

for k=21:40

A(i,k)=1;

end

end

if i==3

for k=41:60

A(i,k)=1;

end

end

if i==4

for k=61:80

A(i,k)=1;

end

end

end

end

A;

B=[40;50;60;70]; % B=[s1 s2 s3 s4] zm=zeros(80,1);

for kkk=1:M

x=unifrnd(2,100,1,4);

X(kkk,:)=x;

y=unifrnd(2,100,1,4);

Y(kkk,:)=y;

f=zeros(80,1);

for i=1:4

for j=1:20

d(i,j)=sqrt((x(i)-a(j))^2+(y(i)-b(j))^2); end

end

d=[d(1:4,1:20)];

f=reshape(d,4*20,1);

kk=0;

N=1000;

u=0;

while (kk<N)

for j=1:20

for j=1:10

Beq(j)=normrnd(5,1);

end

for j=11:20

Beq(j)=unifrnd(8,12);

end

end

Beq;

[z,f_opt,key,c]=linprog(f,A,B,Aeq,Beq,zm,[]); u=u+f_opt;

kk=kk+1;

end

U(kkk)=u/N;

kkk=kkk+1;

end

U;

toc;

本文来源:https://www.bwwdw.com/article/xa3m.html

Top