gonge.m

来自「学会不同搜索法(最速下降法」· M 代码 · 共 32 行

M
32
字号
%共轭剃度法极小化函数的通用子函数,gonge.m
%输入变量为初始的迭代点,输出变量为极小值点
function x0=gonge(x)
%判断梯度范数是否满足计算精度的要求.是,标志变量设为1,输出结果;否,标志变量设为0,继续迭代
if sum(abs(tidu(x)).^2)<1e-4
    flag=1;
    x0=x;
else 
    flag=0;
end
%第一次的迭代方法为负梯度方向
d1=-tidu(x);
a=gold(x,d1);
x1=x+a*d1;
%循环求解函数的极小点
while flag==0
    g1=tidu(x);
    g2=tidu(x1);
    %利用FR公式求解系数bata
    bata=(g2*g2')/(g1*g1');
    d2=-g1+bata*d1;
    a=gold(x1,d2);
    x=x1;
    x1=x+a*d2;
    %判断下一次和上一次迭代点之差是否满足计算精度的要求.是,标志变量设为1,输出结果;否,标志变量设为0,继续迭代
    if sum(abs(x1-x).^2)<1e-6 
       flag=1;
       x0=x1;
    else 
       flag=0;
    end
end

⌨️ 快捷键说明

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