欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

打工中||最优化作业

程序员文章站 2024-01-02 23:41:04
...

外推内插法代码

// 外推内插法
function [a,b]=JinTui(f,x0,h0)
%f为函数
%x0为初始点
%h0为初始步长
x1=x0;
x2=x1+h0;
i=1;
if f(x2) < f(x1)  %下降沿,前进运算
    h=2*h0;
    x3=x2+h;
    while f(x3) < f(x2) %迭代过程
        h=2*h;%步长翻倍
        x1=x2;
        x2=x3;
        x3=x3+h;
    end
    %x1,x3即为所求区间
    a=x1;
    b=x3;
    %进一步缩小,在x2和x3之间插入一点x4
    x4=(x2+x3)/2;
    if f(x4)<f(x2)
        a=x2;
    else
        b=x4;
    end
else        %上升沿,后退运算
	x1=x0+h0;
    x2=x0;
    h=-1*h0;  %改变方向
    x3=x0+h;
    while f(x3) < f(x2)   %迭代过程
        h=2*h;
        x1=x2;
        x2=x3;
        x3=x3+h;
    end
    %x1,x3即为所求区间
    a=x3
    b=x1
    %进一步缩小,在x3和x2之间插入一点x4
    x4=(x2+x3)/2;
    if f(x4)<f(x2)
        b=x2;
    else
        a=x4;
    end
end

end

上一篇:

下一篇: