进退法.m

来自「在matlab上利用进退法求解的优化算法以及实例」· M 代码 · 共 36 行

M
36
字号
%进退法
clear
fun=inline('x^2-7*x+10');
a=-50  ;   %a的初始值
h0=1  ;    %步长值
e=0.00000001
x=a;h=h0;

y1=fun(x);
flag=0;t=0;
while flag==0
    y2=fun(x+h);
    while y2<y1;
        x=x+h;
        y1=y2;
        h=2*h0;
        
    end

    if abs(h)>abs(e);
        h=-(h/4);
        flag=0;
    else
        flag=1;
    end
    t=t+1 ;%跌代次数
end
h
t
x1=x %x值
disp(['x值为' num2str(x)])
y=y2; %y值
disp(['y值为' num2str(y)])
%跌代次数
disp(['跌代次数' num2str(t)])

⌨️ 快捷键说明

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