MATLAB 命令中输入主函数
Syms t
f=t^4-t^2-2*t+5;
[x1,x2] = minJT(f,0,0.1)
进退法确定搜索区间函数文件minJT如下:
function [minx,maxx]= minJT(f,x0,h0,eps)
%目标函数: f ;
%初始点 : x0;
%初始步长: h0;
%精度 :esp;
%区间左端点 : minx;
%区间右端点: maxx;
format long;
if nargin ==3
    esp =1.0e-6;
end 
x1 = x0;
k = 0;
h = h0;
while 1 
    x4=x1+h;           %试探歩
    k=k+1;
    f4=subs(f,findsym(f),x4);
    f1=subs(f,findsym(f),x1);
    if f4 < f1
        x2=x1;
        x1=x4;
        f2=f1;
        f1=f4;
        h=2*h;         %加大步长
    else
        if k ==1
            h=-h;      %反向搜索
            x2=x4;
            f2=f4;
        else
            x3=x2;
            x2=x1;
            x1=x4;
            break ;                %终止循环进行
        end
    end
end
minx = min (x1,x3);
maxx=x1+x3-minx;
format short ;