+㢭

来自「黄金分割法的matlab程序」· 代码 · 共 26 行

TXT
26
字号
%黄金分割法.m
f=inline('x^4-4*x^3-6*x^2-16*x+4');%目标函数
%搜索区间和精度
a=3;b=5;epsilon=0.001;la=0.618;
x1=b-la*(b-a);f1=f(x1);%左试点
x2=a+la*(b-a);f2=f(x2);%右试点
for k=1:7
    fprintf(1,'   迭代次数 k= %3.0f\n',k)
    if f1<=f2
        b=x2;x2=x1;f2=f1;
        x1=b-la*(b-a);f1=f(x1);
    else
        a=x1;x1=x2;f1=f2;
        x2=a+la*(b-a);f2=f(x2);
    end
    x=0.5*(b+a);
    fprintf(1,'   迭代区间-左端 a=% 3.4f\n',a)
    fprintf(1,'   试点1坐标值    x1=% 3.4f\n',x1)
    fprintf(1,'   函数值         f1 =% 3.4f\n',f1)
    fprintf(1,'   迭代区间-右端 b=% 3.4f\n',b)
    fprintf(1,'   试点2坐标值    x2=% 3.4f\n',x2)
    fprintf(1,'   函数值         f2=% 3.4f\n',f2)
   fprintf(1,'   区间中点        x=% 3.4f\n',x)
   disp ' '
end

⌨️ 快捷键说明

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