⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mg0523078.m

📁 黄金分割法
💻 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 + -