?? zhu.m
字號:
%MC搜索
%復(fù)雜度低隨機(jī)性強(qiáng)
r1=unifrnd(0,10,100000,1); %產(chǎn)生x1的n*1隨機(jī)矩陣
r2=unifrnd(0,10,100000,1); %產(chǎn)生x2的n*1隨機(jī)矩陣
sol=[r1(1) r2(1)];
z0=-inf; %z0初始化
f=inline('-2*x(1)^2-x(2)^2+x(1)*x(2)+8*x(1)+3*x(2)','x'); %目標(biāo)函數(shù)
for i=1:100000
x1=r1(i);
x2=r2(i);
y=yueshu([x1 x2]);
if y==1 %當(dāng)滿足約束條件時
z=f([x1 x2]);
if z>=z0 %求最大值
z0=z;
sol=[x1 x2]; %最值解
end
end
end
sol
z0
%網(wǎng)格搜索
%復(fù)雜度高確定性好
clear all
r1=linspace(0,10,1000); %產(chǎn)生x1的n*1均勻矩陣
r2=linspace(0,10,1000); %產(chǎn)生x2的n*1均勻矩陣
sol=[r1(1) r2(1)];
z0=-inf; %z0初始化
f=inline('-2*x(1)^2-x(2)^2+x(1)*x(2)+8*x(1)+3*x(2)','x'); %目標(biāo)函數(shù)
for j=1:1000 %窮舉網(wǎng)格點
for i=1:1000
x1=r1(j);
x2=r2(i);
y=yueshu([x1 x2]);
if y==1 %當(dāng)滿足約束條件時
z=f([x1 x2]);
if z>=z0 %求最大值
z0=z;
sol=[x1 x2]; %最值解
end
end
end
end
sol
z0
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -