jintui.m

来自「黄金分割法(0.618)程序」· M 代码 · 共 41 行

M
41
字号
function [a,b]=JinTui(x0,h)
%进退法,调用函数为F,x0为初始值,h为步长,其中h应大于0
x1=x0;     f1=F(x0);
x2=x0+h;   f2=F(x2);
if f1>f2
        h=2*h;
        x3=x0+h;
        f3=F(x3);
    else
        h=-h;
        x3=x1;  f3=f1;
         x1=x2;  f1=f2;
          x2=x3;  f2=f3;
          x3=x0+h;  f3=F(x3);
end
   while  f2>f3
    h=2*h;
    x1=x2;
    x2=x3;
    x3=x0+h;
    f3=F(x3);
   end
    if h>0
a=x1;
b=x3;
    else
        a=x3;
b=x1;
    end
%============================================
%测试数据  测试函数为f(x)=3*x^3-4*x+2
% >> [a,b]=JinTui(0,1)
%
% a =
%
%    0
%
%
% b =
%
%    2

⌨️ 快捷键说明

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