📄 mg0523078.m
字号:
%作业+mg0523078 宋斌
%求min(x1^2+x2^2) 条件:1-x1-x2<=0
%0.618法,f=x1^2+x2^2+ck*(max(1-x1-x2),0)^2
c_jingdu=[0.001,0.001];
a=[0,0];
b=[20,20]; %单谷搜索区间及其精度
t1=[0.01,0.01];
x11=t1(1,1);
x12=t1(1,2);
t2=[9.90,9.90]; %最初的两个探索点 %给出最初两个探索点
x21=t2(1,1);
x22=t2(1,2);
ck=20; %给出罚参数
f1=x11^2+x12^2+ck*(max(1-x11-x12,0))^2;
f2=x21^2+x22^2+ck*(max(1-x21-x22,0))^2; %给出f的初值,进而迭代
t1=a+0.382*(b-a);
t2=a+0.618*(b-a);
N=10000; %给出迭代次数
for i=1:N
if f1<=f2
if x21-a(1,1)<=c_jingdu(1,1)
break
else
b=t2;
t2=t1;
t1=a+0.382*(b-a);
f2=f1;
f1=x11^2+x22^2+ck*(max(1-x11-x12,0))^2;
end
else
if b(1,1)-x11<=c_jingdu(1,1)
break
else
a=t1;
t1=t2;
t2=a+0.618*(b-a);
f1=f2;
f2=x21^2+x22^2+ck*(max(1-x21-x22,0))^2;
end
end
ck=ck*2;
end
(t1+t2)/2
t1
t2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -