黄金分割法、斐波那契法求极值

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
iffx(x2)>=fx(x1)
b=x2;
x2=x1;
x1=a+b-x2;
else
a=x1;
x1=x2;
x2=a+b-x1;
end
end
xj=(a+b)/2;
yj=fx(xj);
end
此题中,a=-10,b=10,e=0.01,程序运行结果为:xj =1.9930,yj =2.8845e-004,若原方程改变,只需改变原方程函数即可。
end
end
xj=(a+b)/2;
yj=fx(xj);
end
此题中,a=0.2,b=1,e=0.01,程序运行结果为xj=0.9967,yj=21.0620。
改变方程,将原函数方程改变。
6、用斐波那契法求极值: ;
%建立原方程函数;
functiony=fx(x)
ifnargin==1
y=3*x^4-16*x^3+30*x^2-24*x+8;
5、用黄金分割法求极值: ;
%建立原方程函数;
functiony=fx(x)
ifnargin==1
y=x+20/x;
end
end
%a为区间下限,b为区间上限,e为精度;
%fx(x)为原方程函数;
function[xj,yj]=huangjin(a,b,e)
a=input('Please enter the valuห้องสมุดไป่ตู้ of a:');
functionn=cishu(s)
ifnargin==1
n=1;
whileF(n)<s
n=n+1;
end
end
end
%求极值函数;
%a为区间下限,b为区间上限,e为精度;
function[xj,yj]=fib(a,b,e)
a=input('Please enter the value of a:');
b=input('Please enter the value of b:');
e=input('Please enter the valud of e:');
s=(b-a)/e;
n=cishu(s);
x2=a+F(n-1)/F(n)*(b-a);
x1=b-F(n-1)/F(n)*(b-a);
while(b-a)>e
end
end
%建立斐波那契数列函数;
functionfn=F(n)
ifnargin==1
y=[0];
y(1)=[1];
y(2)=[1];
fork=3:1:n
y(k)=[y(k-1)+y(k-2)];
end
fn=y(n);
end
end
%求解应计算次数的函数;
%s为(b-a)/e的值,其中(a,b)为单峰区间,e为精度;
b=input('Please enter the value of b:');
e=input('Please enter the value of e:');
whileb-a>e
x1=a+0.382*(b-a);
x2=a+0.618*(b-a);
iffx(x1)<fx(x2)
b=x2;
else
a=x1;
相关文档
最新文档