golddiv.m

来自「黄金分割法求极小」· M 代码 · 共 27 行

M
27
字号
function [fm,tm]=golddiv(f,t,mi,ma)   
%黄金分割法求极小,返回值fm为函数极小值,tm为极小值点,f为给定函数,t为函数变量,[a,b]为变量t的搜索区间
beta=(sqrt(5)-1)/2;            %黄金分割比例
a=mi;
b=ma;
t2=a+beta*(b-a);
f2=subs(f,t,t2);
t1=a+b-t2;
f1=subs(f,t,t1);
while(abs(t1-t2)>=1e-4)       %当两插值相差小于1e-4时停止搜索
    if(f1<=f2)
        b=t2;
        t2=t1;
        f2=f1;
        t1=a+b-t2;
        f1=subs(f,t,t1);
    else
        a=t1;
        t1=t2;
        f1=f2;
        t2=a+beta*(b-a);
        f2=subs(f,t,t2);
    end
end
tm=(t1+t2)/2;
fm=subs(f,t,tm);
end

⌨️ 快捷键说明

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