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

📄 jidaidianzi.m

📁 黄金分割法
💻 M
字号:
% mg0523073    梅益君
%求min(x1^2+x2^2)    条件:1-x1-x2<=0,

x1=1;                                                    %定义x1初始值
x2=1;                                                    %定义x2初始值
ck=10;                                                   %给出罚参数的初始值
n1=100000;                                                %给出罚函数法最大迭代次数
n2=100000;                                                %梯度下降法最大迭代次数
a=1.0e-7;                                                %罚函数法误差界
b=1.0e-7;                                                %梯度下降法误差界
step=0.0004;                                             %梯度下降法步长
for i=1:n1
    pc=ck*(max(1-x1-x2,0))^2;                            %构造罚函数
    fc=x1^2+x2^2+pc;                                     %构造增广目标函数
    for j=1:n2     
        if pc==0                                         %计算梯度(最大为0)
           daofcx1=2*x1;                                 %x1的偏导
           daofcx2=2*x2;                                 %x2的偏导                
        else
           daofcx1=2*x1-ck*2*(1-x1-x2);                  %计算梯度(最小为0)
           daofcx2=2*x2-ck*2*(1-x1-x2);
        end
        if (abs(daofcx1)<b)&(abs(daofcx2)<b)             %梯度值满足条件,则结束迭代
            break;                                        
        end
        x1=x1+step;                                      %调整x1,x2,为下次迭代做准备
        x2=x2+step;
    end
    if (max(1-x1-x2,0))^2<a                              %x1,x2满足条件
        break;                                           %结束迭代
    end
    ck=ck*10;                                            %调整罚参数
end
x1                                                       %输出结果x1,x2
x2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -