📄 golden.txt
字号:
程序:定义函数
%黄金分割法
function f=gnew(f,a,b,epsilon);%定义函数和精度
la=0.618;
x1=b-la*(b-a);f1=f(x1);%左试点
x2=a+la*(b-a);f2=f(x2);%右试点
for k=1:(log(epsilon/(b-a))/log(0.618)+2)
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
调用函数,输入条件,运行结果;>> format long;gnew(inline('x^2+2*x'),-3,5,0.001),format short;
迭代次数 k= 1
迭代区间-左端 a=-3.0000
试点1坐标值 x1=-1.1114
函数值 f1 =-0.9876
迭代区间-右端 b= 1.9440
试点2坐标值 x2= 0.0560
函数值 f2= 0.1151
区间中点 x=-0.5280
迭代次数 k= 2
迭代区间-左端 a=-3.0000
试点1坐标值 x1=-1.8326
函数值 f1 =-0.3068
迭代区间-右端 b= 0.0560
试点2坐标值 x2=-1.1114
函数值 f2=-0.9876
区间中点 x=-1.4720
迭代次数 k= 3
迭代区间-左端 a=-1.8326
试点1坐标值 x1=-1.1114
函数值 f1 =-0.9876
迭代区间-右端 b= 0.0560
试点2坐标值 x2=-0.6654
函数值 f2=-0.8881
区间中点 x=-0.8883
迭代次数 k= 4
迭代区间-左端 a=-1.8326
试点1坐标值 x1=-1.3868
函数值 f1 =-0.8504
迭代区间-右端 b=-0.6654
试点2坐标值 x2=-1.1114
函数值 f2=-0.9876
区间中点 x=-1.2490
迭代次数 k= 5
迭代区间-左端 a=-1.3868
试点1坐标值 x1=-1.1114
函数值 f1 =-0.9876
迭代区间-右端 b=-0.6654
试点2坐标值 x2=-0.9410
函数值 f2=-0.9965
区间中点 x=-1.0261
迭代次数 k= 6
迭代区间-左端 a=-1.1114
试点1坐标值 x1=-0.9410
函数值 f1 =-0.9965
迭代区间-右端 b=-0.6654
试点2坐标值 x2=-0.8358
函数值 f2=-0.9730
区间中点 x=-0.8884
迭代次数 k= 7
迭代区间-左端 a=-1.1114
试点1坐标值 x1=-1.0061
函数值 f1 =-1.0000
迭代区间-右端 b=-0.8358
试点2坐标值 x2=-0.9410
函数值 f2=-0.9965
区间中点 x=-0.9736
迭代次数 k= 8
迭代区间-左端 a=-1.1114
试点1坐标值 x1=-1.0463
函数值 f1 =-0.9979
迭代区间-右端 b=-0.9410
试点2坐标值 x2=-1.0061
函数值 f2=-1.0000
区间中点 x=-1.0262
迭代次数 k= 9
迭代区间-左端 a=-1.0463
试点1坐标值 x1=-1.0061
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9410
试点2坐标值 x2=-0.9812
函数值 f2=-0.9996
区间中点 x=-0.9936
迭代次数 k= 10
迭代区间-左端 a=-1.0463
试点1坐标值 x1=-1.0214
函数值 f1 =-0.9995
迭代区间-右端 b=-0.9812
试点2坐标值 x2=-1.0061
函数值 f2=-1.0000
区间中点 x=-1.0138
迭代次数 k= 11
迭代区间-左端 a=-1.0214
试点1坐标值 x1=-1.0061
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9812
试点2坐标值 x2=-0.9966
函数值 f2=-1.0000
区间中点 x=-1.0013
迭代次数 k= 12
迭代区间-左端 a=-1.0061
试点1坐标值 x1=-0.9966
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9812
试点2坐标值 x2=-0.9907
函数值 f2=-0.9999
区间中点 x=-0.9937
迭代次数 k= 13
迭代区间-左端 a=-1.0061
试点1坐标值 x1=-1.0002
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9907
试点2坐标值 x2=-0.9966
函数值 f2=-1.0000
区间中点 x=-0.9984
迭代次数 k= 14
迭代区间-左端 a=-1.0061
试点1坐标值 x1=-1.0025
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9966
试点2坐标值 x2=-1.0002
函数值 f2=-1.0000
区间中点 x=-1.0013
迭代次数 k= 15
迭代区间-左端 a=-1.0025
试点1坐标值 x1=-1.0002
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9966
试点2坐标值 x2=-0.9988
函数值 f2=-1.0000
区间中点 x=-0.9995
迭代次数 k= 16
迭代区间-左端 a=-1.0025
试点1坐标值 x1=-1.0011
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9988
试点2坐标值 x2=-1.0002
函数值 f2=-1.0000
区间中点 x=-1.0007
迭代次数 k= 17
迭代区间-左端 a=-1.0011
试点1坐标值 x1=-1.0002
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9988
试点2坐标值 x2=-0.9997
函数值 f2=-1.0000
区间中点 x=-1.0000
迭代次数 k= 18
迭代区间-左端 a=-1.0011
试点1坐标值 x1=-1.0006
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9997
试点2坐标值 x2=-1.0002
函数值 f2=-1.0000
区间中点 x=-1.0004
迭代次数 k= 19
迭代区间-左端 a=-1.0006
试点1坐标值 x1=-1.0002
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9997
试点2坐标值 x2=-1.0000
函数值 f2=-1.0000
区间中点 x=-1.0001
迭代次数 k= 20
迭代区间-左端 a=-1.0002
试点1坐标值 x1=-1.0000
函数值 f1 =-1.0000
迭代区间-右端 b=-0.9997
试点2坐标值 x2=-0.9999
函数值 f2=-1.0000
区间中点 x=-1.0000
ans =
Inline function:
ans(x) = x^2+2*x
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -